Skip to content

Commit 40562a0

Browse files
Merge pull request #7599 from dgarske/asn_checkcertsig
Expose `wc_CheckCertSigPubKey` with `WOLFSSL_SMALL_CERT_VERIFY`
2 parents 4b77d4c + 0789ecb commit 40562a0

4 files changed

Lines changed: 30 additions & 28 deletions

File tree

src/internal.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14057,7 +14057,7 @@ PRAGMA_GCC_DIAG_POP
1405714057
}
1405814058

1405914059
/* perform cert parsing and signature check */
14060-
sigRet = CheckCertSignature(cert->buffer, cert->length,
14060+
sigRet = wc_CheckCertSignature(cert->buffer, cert->length,
1406114061
ssl->heap, SSL_CM(ssl));
1406214062
/* fail on errors here after the ParseCertRelative call, so dCert is populated */
1406314063

tests/api.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53099,37 +53099,37 @@ static int test_CheckCertSignature(void)
5309953099
int certSz;
5310053100
#endif
5310153101

53102-
ExpectIntEQ(BAD_FUNC_ARG, CheckCertSignature(NULL, 0, NULL, NULL));
53102+
ExpectIntEQ(BAD_FUNC_ARG, wc_CheckCertSignature(NULL, 0, NULL, NULL));
5310353103
ExpectNotNull(cm = wolfSSL_CertManagerNew_ex(NULL));
53104-
ExpectIntEQ(BAD_FUNC_ARG, CheckCertSignature(NULL, 0, NULL, cm));
53104+
ExpectIntEQ(BAD_FUNC_ARG, wc_CheckCertSignature(NULL, 0, NULL, cm));
5310553105

5310653106
#ifndef NO_RSA
5310753107
#ifdef USE_CERT_BUFFERS_1024
53108-
ExpectIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(server_cert_der_1024,
53108+
ExpectIntEQ(ASN_NO_SIGNER_E, wc_CheckCertSignature(server_cert_der_1024,
5310953109
sizeof_server_cert_der_1024, NULL, cm));
5311053110
ExpectIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCABuffer(cm,
5311153111
ca_cert_der_1024, sizeof_ca_cert_der_1024,
5311253112
WOLFSSL_FILETYPE_ASN1));
53113-
ExpectIntEQ(0, CheckCertSignature(server_cert_der_1024,
53113+
ExpectIntEQ(0, wc_CheckCertSignature(server_cert_der_1024,
5311453114
sizeof_server_cert_der_1024, NULL, cm));
5311553115
#elif defined(USE_CERT_BUFFERS_2048)
53116-
ExpectIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(server_cert_der_2048,
53116+
ExpectIntEQ(ASN_NO_SIGNER_E, wc_CheckCertSignature(server_cert_der_2048,
5311753117
sizeof_server_cert_der_2048, NULL, cm));
5311853118
ExpectIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCABuffer(cm,
5311953119
ca_cert_der_2048, sizeof_ca_cert_der_2048,
5312053120
WOLFSSL_FILETYPE_ASN1));
53121-
ExpectIntEQ(0, CheckCertSignature(server_cert_der_2048,
53121+
ExpectIntEQ(0, wc_CheckCertSignature(server_cert_der_2048,
5312253122
sizeof_server_cert_der_2048, NULL, cm));
5312353123
#endif
5312453124
#endif
5312553125

5312653126
#if defined(HAVE_ECC) && defined(USE_CERT_BUFFERS_256)
53127-
ExpectIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(serv_ecc_der_256,
53127+
ExpectIntEQ(ASN_NO_SIGNER_E, wc_CheckCertSignature(serv_ecc_der_256,
5312853128
sizeof_serv_ecc_der_256, NULL, cm));
5312953129
ExpectIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCABuffer(cm,
5313053130
ca_ecc_cert_der_256, sizeof_ca_ecc_cert_der_256,
5313153131
WOLFSSL_FILETYPE_ASN1));
53132-
ExpectIntEQ(0, CheckCertSignature(serv_ecc_der_256, sizeof_serv_ecc_der_256,
53132+
ExpectIntEQ(0, wc_CheckCertSignature(serv_ecc_der_256, sizeof_serv_ecc_der_256,
5313353133
NULL, cm));
5313453134
#endif
5313553135

@@ -53144,10 +53144,10 @@ static int test_CheckCertSignature(void)
5314453144
XFCLOSE(fp);
5314553145
fp = XBADFILE;
5314653146
}
53147-
ExpectIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(cert, certSz, NULL, cm));
53147+
ExpectIntEQ(ASN_NO_SIGNER_E, wc_CheckCertSignature(cert, certSz, NULL, cm));
5314853148
ExpectIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCA(cm,
5314953149
"./certs/ca-cert.pem", NULL));
53150-
ExpectIntEQ(0, CheckCertSignature(cert, certSz, NULL, cm));
53150+
ExpectIntEQ(0, wc_CheckCertSignature(cert, certSz, NULL, cm));
5315153151
#endif
5315253152
#ifdef HAVE_ECC
5315353153
ExpectTrue((fp = XFOPEN("./certs/server-ecc.der", "rb")) != XBADFILE);
@@ -53156,10 +53156,10 @@ static int test_CheckCertSignature(void)
5315653156
XFCLOSE(fp);
5315753157
fp = XBADFILE;
5315853158
}
53159-
ExpectIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(cert, certSz, NULL, cm));
53159+
ExpectIntEQ(ASN_NO_SIGNER_E, wc_CheckCertSignature(cert, certSz, NULL, cm));
5316053160
ExpectIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCA(cm,
5316153161
"./certs/ca-ecc-cert.pem", NULL));
53162-
ExpectIntEQ(0, CheckCertSignature(cert, certSz, NULL, cm));
53162+
ExpectIntEQ(0, wc_CheckCertSignature(cert, certSz, NULL, cm));
5316353163
#endif
5316453164
#endif
5316553165

wolfcrypt/src/asn.c

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23239,16 +23239,15 @@ static int CheckCertSignature_ex(const byte* cert, word32 certSz, void* heap,
2323923239
#endif /* WOLFSSL_ASN_TEMPLATE */
2324023240
}
2324123241

23242-
#ifdef OPENSSL_EXTRA
23243-
/* Call CheckCertSignature_ex using a public key buffer for verification
23244-
*/
23242+
/* Call CheckCertSignature_ex using a public key buffer for verification */
2324523243
int CheckCertSignaturePubKey(const byte* cert, word32 certSz, void* heap,
2324623244
const byte* pubKey, word32 pubKeySz, int pubKeyOID)
2324723245
{
2324823246
return CheckCertSignature_ex(cert, certSz, heap, NULL,
2324923247
pubKey, pubKeySz, pubKeyOID, 0);
2325023248
}
2325123249

23250+
/* Call CheckCertSignature_ex using a public key and oid */
2325223251
int wc_CheckCertSigPubKey(const byte* cert, word32 certSz, void* heap,
2325323252
const byte* pubKey, word32 pubKeySz, int pubKeyOID)
2325423253
{
@@ -23264,15 +23263,12 @@ int CheckCSRSignaturePubKey(const byte* cert, word32 certSz, void* heap,
2326423263
pubKey, pubKeySz, pubKeyOID, 1);
2326523264
}
2326623265
#endif /* WOLFSSL_CERT_REQ */
23267-
#endif /* OPENSSL_EXTRA */
23268-
#ifdef WOLFSSL_SMALL_CERT_VERIFY
23269-
/* Call CheckCertSignature_ex using a certificate manager (cm)
23270-
*/
23271-
int CheckCertSignature(const byte* cert, word32 certSz, void* heap, void* cm)
23266+
23267+
/* Call CheckCertSignature_ex using a certificate manager (cm) */
23268+
int wc_CheckCertSignature(const byte* cert, word32 certSz, void* heap, void* cm)
2327223269
{
2327323270
return CheckCertSignature_ex(cert, certSz, heap, cm, NULL, 0, 0, 0);
2327423271
}
23275-
#endif /* WOLFSSL_SMALL_CERT_VERIFY */
2327623272
#endif /* WOLFSSL_SMALL_CERT_VERIFY || OPENSSL_EXTRA */
2327723273

2327823274
#if (defined(HAVE_ED25519) && defined(HAVE_ED25519_KEY_IMPORT) || \

wolfssl/wolfcrypt/asn.h

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2149,14 +2149,20 @@ WOLFSSL_LOCAL int DecodePolicyOID(char *out, word32 outSz, const byte *in,
21492149
word32 inSz);
21502150
WOLFSSL_LOCAL int EncodePolicyOID(byte *out, word32 *outSz,
21512151
const char *in, void* heap);
2152-
WOLFSSL_API int CheckCertSignature(const byte*,word32,void*,void* cm);
21532152
WOLFSSL_LOCAL int CheckCertSignaturePubKey(const byte* cert, word32 certSz,
21542153
void* heap, const byte* pubKey, word32 pubKeySz, int pubKeyOID);
2155-
#ifdef OPENSSL_EXTRA
2156-
WOLFSSL_API int wc_CheckCertSigPubKey(const byte* cert, word32 certSz,
2157-
void* heap, const byte* pubKey,
2158-
word32 pubKeySz, int pubKeyOID);
2159-
#endif
2154+
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_SMALL_CERT_VERIFY)
2155+
WOLFSSL_API int wc_CheckCertSignature(const byte* cert, word32 certSz,
2156+
void* heap, void* cm);
2157+
/* Depricated public API name kept for backwards build compatibility */
2158+
#define CheckCertSignature(cert, certSz, heap, cm) \
2159+
wc_CheckCertSignature(cert, certSz, heap, cm)
2160+
2161+
WOLFSSL_API int wc_CheckCertSigPubKey(const byte* cert, word32 certSz,
2162+
void* heap, const byte* pubKey,
2163+
word32 pubKeySz, int pubKeyOID);
2164+
#endif /* OPENSSL_EXTRA || WOLFSSL_SMALL_CERT_VERIFY */
2165+
21602166
#ifdef WOLFSSL_DUAL_ALG_CERTS
21612167
WOLFSSL_LOCAL int wc_ConfirmAltSignature(
21622168
const byte* buf, word32 bufSz,

0 commit comments

Comments
 (0)