forked from wolfSSL/wolfssl
This commit is contained in:
23
src/ssl.c
23
src/ssl.c
@@ -20269,7 +20269,7 @@ int wolfSSL_X509_get_pubkey_buffer(WOLFSSL_X509* x509,
|
|||||||
word32 idx;
|
word32 idx;
|
||||||
const byte* der;
|
const byte* der;
|
||||||
int length = 0;
|
int length = 0;
|
||||||
int ret, derSz = 0;
|
int ret = 0, derSz = 0;
|
||||||
int badDate = 0;
|
int badDate = 0;
|
||||||
const byte* pubKeyX509 = NULL;
|
const byte* pubKeyX509 = NULL;
|
||||||
int pubKeyX509Sz = 0;
|
int pubKeyX509Sz = 0;
|
||||||
@@ -20291,17 +20291,18 @@ int wolfSSL_X509_get_pubkey_buffer(WOLFSSL_X509* x509,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
der = wolfSSL_X509_get_der(x509, &derSz);
|
der = wolfSSL_X509_get_der(x509, &derSz);
|
||||||
InitDecodedCert(cert, der, derSz, NULL);
|
if (der != NULL) {
|
||||||
ret = wc_GetPubX509(cert, 0, &badDate);
|
InitDecodedCert(cert, der, derSz, NULL);
|
||||||
if (ret >= 0) {
|
ret = wc_GetPubX509(cert, 0, &badDate);
|
||||||
idx = cert->srcIdx;
|
if (ret >= 0) {
|
||||||
pubKeyX509 = cert->source + cert->srcIdx;
|
idx = cert->srcIdx;
|
||||||
ret = GetSequence(cert->source, &cert->srcIdx, &length,
|
pubKeyX509 = cert->source + cert->srcIdx;
|
||||||
cert->maxIdx);
|
ret = GetSequence(cert->source, &cert->srcIdx, &length,
|
||||||
pubKeyX509Sz = length + (cert->srcIdx - idx);
|
cert->maxIdx);
|
||||||
|
pubKeyX509Sz = length + (cert->srcIdx - idx);
|
||||||
|
}
|
||||||
|
FreeDecodedCert(cert);
|
||||||
}
|
}
|
||||||
|
|
||||||
FreeDecodedCert(cert);
|
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(cert, x509->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(cert, x509->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user