From 86ed94f2e3aa61fc079fc90b80d625341e9d74ea Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Thu, 23 Jan 2025 16:17:03 -0700 Subject: [PATCH] change return of stub functions to be failure, pass PEM password cb and user data along --- src/x509.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/x509.c b/src/x509.c index 9550d6bc5..ed3d8865d 100644 --- a/src/x509.c +++ b/src/x509.c @@ -487,7 +487,7 @@ int wolfSSL_X509_OBJECT_set1_X509(WOLFSSL_X509_OBJECT *a, WOLFSSL_X509 *obj) WOLFSSL_STUB("wolfSSL_X509_OBJECT_set1_X509"); (void)a; (void)obj; - return 1; + return 0; } int wolfSSL_X509_OBJECT_set1_X509_CRL(WOLFSSL_X509_OBJECT *a, @@ -496,7 +496,7 @@ int wolfSSL_X509_OBJECT_set1_X509_CRL(WOLFSSL_X509_OBJECT *a, WOLFSSL_STUB("wolfSSL_X509_OBJECT_set1_X509_CRL"); (void)a; (void)obj; - return 1; + return 0; } #endif /* OPENSSL_ALL || OPENSSL_EXTRA */ @@ -5299,7 +5299,8 @@ WOLFSSL_X509* wolfSSL_X509_load_certificate_file(const char* fname, int format) #endif /* !NO_FILESYSTEM */ static WOLFSSL_X509* loadX509orX509REQFromBuffer( - const unsigned char* buf, int sz, int format, int type) + const unsigned char* buf, int sz, int format, int type, + wc_pem_password_cb *cb, void *u) { int ret = 0; @@ -5309,8 +5310,13 @@ static WOLFSSL_X509* loadX509orX509REQFromBuffer( WOLFSSL_ENTER("wolfSSL_X509_load_certificate_ex"); if (format == WOLFSSL_FILETYPE_PEM) { + EncryptedInfo info; + XMEMSET(&info, 0, sizeof(EncryptedInfo)); + info.passwd_cb = cb; + info.passwd_userdata = u; + #ifdef WOLFSSL_PEM_TO_DER - ret = PemToDer(buf, sz, type, &der, NULL, NULL, NULL); + ret = PemToDer(buf, sz, type, &der, NULL, &info, NULL); if (ret != 0) { FreeDer(&der); } @@ -5381,7 +5387,7 @@ WOLFSSL_X509* wolfSSL_X509_load_certificate_buffer( const unsigned char* buf, int sz, int format) { return loadX509orX509REQFromBuffer(buf, sz, - format, CERT_TYPE); + format, CERT_TYPE, NULL, NULL); } #ifdef WOLFSSL_CERT_REQ @@ -5389,7 +5395,7 @@ WOLFSSL_X509* wolfSSL_X509_REQ_load_certificate_buffer( const unsigned char* buf, int sz, int format) { return loadX509orX509REQFromBuffer(buf, sz, - format, CERTREQ_TYPE); + format, CERTREQ_TYPE, NULL, NULL); } #endif @@ -11985,12 +11991,12 @@ static WOLFSSL_X509 *loadX509orX509REQFromPemBio(WOLFSSL_BIO *bp, pemSz = (int)i; #ifdef WOLFSSL_CERT_REQ if (type == CERTREQ_TYPE) - x509 = wolfSSL_X509_REQ_load_certificate_buffer(pem, pemSz, - WOLFSSL_FILETYPE_PEM); + x509 = loadX509orX509REQFromBuffer(pem, pemSz, WOLFSSL_FILETYPE_PEM, + CERTREQ_TYPE, cb, u); else #endif - x509 = wolfSSL_X509_load_certificate_buffer(pem, pemSz, - WOLFSSL_FILETYPE_PEM); + x509 = loadX509orX509REQFromBuffer(pem, pemSz, WOLFSSL_FILETYPE_PEM, + CERT_TYPE, cb, u); } if (x != NULL) {