mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 02:37:28 +02:00
add x509 TBS getter function
This commit is contained in:
37
src/ssl.c
37
src/ssl.c
@ -15389,6 +15389,39 @@ WOLFSSL_X509* wolfSSL_X509_d2i(WOLFSSL_X509** x509, const byte* in, int len)
|
||||
}
|
||||
|
||||
|
||||
/* get the buffer to be signed (tbs) from the WOLFSSL_X509 certificate
|
||||
*
|
||||
* outSz : gets set to the size of the buffer
|
||||
* returns a pointer to the internal buffer at the location of TBS on
|
||||
* on success and NULL on failure.
|
||||
*/
|
||||
const unsigned char* wolfSSL_X509_get_tbs(WOLFSSL_X509* x509, int* outSz)
|
||||
{
|
||||
int sz = 0, len;
|
||||
unsigned int idx = 0;
|
||||
const unsigned char* der = NULL;
|
||||
const unsigned char* tbs = NULL;
|
||||
|
||||
if (x509 == NULL || outSz == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
der = wolfSSL_X509_get_der(x509, &sz);
|
||||
if (der == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (GetSequence(der, &idx, &len, sz) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
tbs = der + idx;
|
||||
if (GetSequence(der, &idx, &len, sz) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
*outSz = len;
|
||||
return tbs;
|
||||
}
|
||||
|
||||
int wolfSSL_X509_version(WOLFSSL_X509* x509)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_X509_version");
|
||||
@ -34000,8 +34033,8 @@ WOLFSSL_CTX* wolfSSL_get_SSL_CTX(WOLFSSL* ssl)
|
||||
}
|
||||
|
||||
#if defined(OPENSSL_ALL) || \
|
||||
(defined(OPENSSL_EXTRA) && (defined(HAVE_STUNNEL) || \
|
||||
defined(WOLFSSL_NGINX)) || defined(WOLFSSL_HAPROXY))
|
||||
defined(OPENSSL_EXTRA) || defined(HAVE_STUNNEL) || \
|
||||
defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
|
||||
const byte* wolfSSL_SESSION_get_id(WOLFSSL_SESSION* sess, unsigned int* idLen)
|
||||
{
|
||||
|
@ -1590,6 +1590,7 @@ WOLFSSL_API const unsigned char* wolfSSL_get_sessionID(const WOLFSSL_SESSION* s)
|
||||
WOLFSSL_API int wolfSSL_X509_get_serial_number(WOLFSSL_X509*,unsigned char*,int*);
|
||||
WOLFSSL_API char* wolfSSL_X509_get_subjectCN(WOLFSSL_X509*);
|
||||
WOLFSSL_API const unsigned char* wolfSSL_X509_get_der(WOLFSSL_X509*, int*);
|
||||
WOLFSSL_API const unsigned char* wolfSSL_X509_get_tbs(WOLFSSL_X509*, int*);
|
||||
WOLFSSL_API const unsigned char* wolfSSL_X509_notBefore(WOLFSSL_X509*);
|
||||
WOLFSSL_API const unsigned char* wolfSSL_X509_notAfter(WOLFSSL_X509*);
|
||||
WOLFSSL_API int wolfSSL_X509_version(WOLFSSL_X509*);
|
||||
|
Reference in New Issue
Block a user