Skip to content

Commit 4cf2e80

Browse files
committed
remove oid_st
1 parent af23fdd commit 4cf2e80

File tree

5 files changed

+24
-23
lines changed

5 files changed

+24
-23
lines changed

src/headers/tomcrypt_private.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,6 @@ enum public_key_algorithms {
3030
* Internal Types
3131
*/
3232

33-
typedef struct Oid {
34-
unsigned long OID[16];
35-
/** Number of OID digits in use */
36-
unsigned long OIDlen;
37-
} oid_st;
38-
3933
typedef struct {
4034
int size;
4135
const char *name, *base, *prime;

src/pk/asn1/x509/x509_decode_subject_public_key_info.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ int x509_decode_subject_public_key_info(const unsigned char *in, unsigned long i
4343
{
4444
int err;
4545
unsigned long len, alg_id_num;
46-
oid_st oid;
46+
const char* oid;
4747
unsigned char *tmpbuf;
4848
unsigned long tmpoid[16];
4949
ltc_asn1_list alg_id[2];
@@ -92,11 +92,9 @@ int x509_decode_subject_public_key_info(const unsigned char *in, unsigned long i
9292
*parameters_len = alg_id[1].size;
9393
}
9494

95-
if ((alg_id[0].size != oid.OIDlen) ||
96-
XMEMCMP(oid.OID, alg_id[0].data, oid.OIDlen * sizeof(oid.OID[0])) != 0) {
97-
/* OID mismatch */
98-
err = CRYPT_PK_INVALID_TYPE;
99-
goto LBL_ERR;
95+
if ((err = pk_oid_cmp_with_asn1(oid, &alg_id[0])) != CRYPT_OK) {
96+
/* OID mismatch */
97+
goto LBL_ERR;
10098
}
10199

102100
len = subject_pubkey[1].size/8;

src/pk/asn1/x509/x509_encode_subject_public_key_info.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,22 @@ int x509_encode_subject_public_key_info(unsigned char *out, unsigned long *outle
4343
{
4444
int err;
4545
ltc_asn1_list alg_id[2];
46-
oid_st oid;
46+
const char *OID;
47+
unsigned long oid[16], oidlen;
4748

4849
LTC_ARGCHK(out != NULL);
4950
LTC_ARGCHK(outlen != NULL);
5051

51-
err = pk_get_oid(algorithm, &oid);
52-
if (err != CRYPT_OK) {
52+
if ((err = pk_get_oid(algorithm, &OID)) != CRYPT_OK) {
5353
return err;
5454
}
5555

56-
LTC_SET_ASN1(alg_id, 0, LTC_ASN1_OBJECT_IDENTIFIER, oid.OID, oid.OIDlen);
56+
oidlen = sizeof(oid)/sizeof(oid[0]);
57+
if ((err = pk_oid_str_to_num(OID, oid, &oidlen)) != CRYPT_OK) {
58+
return err;
59+
}
60+
61+
LTC_SET_ASN1(alg_id, 0, LTC_ASN1_OBJECT_IDENTIFIER, oid, oidlen);
5762
LTC_SET_ASN1(alg_id, 1, parameters_type, parameters, parameters_len);
5863

5964
return der_encode_sequence_multi(out, outlen,

src/pk/ecc/ecc_export_openssl.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ int ecc_export_openssl(unsigned char *out, unsigned long *outlen, int type, cons
2727
unsigned char bin_a[256], bin_b[256], bin_k[256], bin_g[512], bin_xy[512];
2828
unsigned long len_a, len_b, len_k, len_g, len_xy;
2929
unsigned long cofactor, one = 1;
30-
oid_st oid;
30+
const char *OID;
31+
unsigned long oid[16], oidlen;
3132
ltc_asn1_list seq_fieldid[2], seq_curve[2], seq_ecparams[6], seq_priv[4], pub_xy, ecparams;
3233
int flag_oid = type & PK_CURVEOID ? 1 : 0;
3334
int flag_com = type & PK_COMPRESSED ? 1 : 0;
@@ -72,7 +73,7 @@ int ecc_export_openssl(unsigned char *out, unsigned long *outlen, int type, cons
7273
cofactor = key->dp.cofactor;
7374

7475
/* we support only prime-field EC */
75-
if ((err = pk_get_oid(PKA_EC_PRIMEF, &oid)) != CRYPT_OK) { goto error; }
76+
if ((err = pk_get_oid(PKA_EC_PRIMEF, &OID)) != CRYPT_OK) { goto error; }
7677

7778
if (flag_oid) {
7879
/* http://tools.ietf.org/html/rfc5912
@@ -102,8 +103,13 @@ int ecc_export_openssl(unsigned char *out, unsigned long *outlen, int type, cons
102103
}
103104
*/
104105

106+
oidlen = sizeof(oid)/sizeof(oid[0]);
107+
if ((err = pk_oid_str_to_num(OID, oid, &oidlen)) != CRYPT_OK) {
108+
goto error;
109+
}
110+
105111
/* FieldID SEQUENCE */
106-
LTC_SET_ASN1(seq_fieldid, 0, LTC_ASN1_OBJECT_IDENTIFIER, oid.OID, oid.OIDlen);
112+
LTC_SET_ASN1(seq_fieldid, 0, LTC_ASN1_OBJECT_IDENTIFIER, oid, oidlen);
107113
LTC_SET_ASN1(seq_fieldid, 1, LTC_ASN1_INTEGER, prime, 1UL);
108114

109115
/* Curve SEQUENCE */

src/pk/rsa/rsa_import_pkcs8.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ int rsa_import_pkcs8(const unsigned char *in, unsigned long inlen,
5656
unsigned char *buf1 = NULL, *buf2 = NULL;
5757
unsigned long buf1len, buf2len;
5858
unsigned long oid[16];
59-
oid_st rsaoid;
59+
const char *rsaoid;
6060
ltc_asn1_list alg_seq[2], top_seq[3];
6161
ltc_asn1_list alg_seq_e[2], key_seq_e[2], top_seq_e[2];
6262
unsigned char *decrypted = NULL;
@@ -113,9 +113,7 @@ int rsa_import_pkcs8(const unsigned char *in, unsigned long inlen,
113113
if (err != CRYPT_OK) { goto LBL_ERR; }
114114

115115
/* check alg oid */
116-
if ((alg_seq[0].size != rsaoid.OIDlen) ||
117-
XMEMCMP(rsaoid.OID, alg_seq[0].data, rsaoid.OIDlen * sizeof(rsaoid.OID[0])) != 0) {
118-
err = CRYPT_PK_INVALID_TYPE;
116+
if ((err = pk_oid_cmp_with_asn1(rsaoid, &alg_seq[0]))) {
119117
goto LBL_ERR;
120118
}
121119

0 commit comments

Comments
 (0)