Browse Source

prevent usage of ifdef in code

Steffen Jaeckel 5 years ago
parent
commit
93ae347132

+ 4 - 7
src/pk/asn1/x509/x509_decode_public_key_from_certificate.c

@@ -39,8 +39,9 @@ int x509_decode_public_key_from_certificate(const unsigned char *in, unsigned lo
    unsigned long tmpbuf_len, tmp_inlen;
    ltc_asn1_list *decoded_list = NULL, *l;
 
-   LTC_ARGCHK(in    != NULL);
-   LTC_ARGCHK(inlen != 0);
+   LTC_ARGCHK(in       != NULL);
+   LTC_ARGCHK(inlen    != 0);
+   LTC_ARGCHK(callback != NULL);
 
    tmpbuf_len = inlen;
    tmpbuf = XCALLOC(1, tmpbuf_len);
@@ -81,11 +82,7 @@ int x509_decode_public_key_from_certificate(const unsigned char *in, unsigned lo
                      && (l->data != NULL)
                      && LOOKS_LIKE_SPKI(l->child)) {
                   if (algorithm == PKA_EC) {
-#ifdef LTC_MECC
-                     err = ecc_import_subject_public_key_info(l->data, l->size, ctx);
-#else
-                     err = CRYPT_ERROR;
-#endif
+                     err = callback(l->data, l->size, ctx);
                   } else {
                      err = x509_decode_subject_public_key_info(l->data, l->size,
                                                                algorithm, tmpbuf, &tmpbuf_len,

+ 4 - 1
src/pk/ecc/ecc_import_x509.c

@@ -106,7 +106,10 @@ success:
 */
 int ecc_import_x509(const unsigned char *in, unsigned long inlen, ecc_key *key)
 {
-   return x509_decode_public_key_from_certificate(in, inlen, PKA_EC, LTC_ASN1_EOL, NULL, NULL, NULL, key);
+   return x509_decode_public_key_from_certificate(in, inlen,
+                                                  PKA_EC,
+                                                  LTC_ASN1_EOL, NULL, NULL,
+                                                  (public_key_decode_cb)ecc_import_subject_public_key_info, key);
 }
 
 #endif /* LTC_MECC */