mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +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)
|
int wolfSSL_X509_version(WOLFSSL_X509* x509)
|
||||||
{
|
{
|
||||||
WOLFSSL_ENTER("wolfSSL_X509_version");
|
WOLFSSL_ENTER("wolfSSL_X509_version");
|
||||||
@ -34000,8 +34033,8 @@ WOLFSSL_CTX* wolfSSL_get_SSL_CTX(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OPENSSL_ALL) || \
|
#if defined(OPENSSL_ALL) || \
|
||||||
(defined(OPENSSL_EXTRA) && (defined(HAVE_STUNNEL) || \
|
defined(OPENSSL_EXTRA) || defined(HAVE_STUNNEL) || \
|
||||||
defined(WOLFSSL_NGINX)) || defined(WOLFSSL_HAPROXY))
|
defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||||
|
|
||||||
const byte* wolfSSL_SESSION_get_id(WOLFSSL_SESSION* sess, unsigned int* idLen)
|
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 int wolfSSL_X509_get_serial_number(WOLFSSL_X509*,unsigned char*,int*);
|
||||||
WOLFSSL_API char* wolfSSL_X509_get_subjectCN(WOLFSSL_X509*);
|
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_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_notBefore(WOLFSSL_X509*);
|
||||||
WOLFSSL_API const unsigned char* wolfSSL_X509_notAfter(WOLFSSL_X509*);
|
WOLFSSL_API const unsigned char* wolfSSL_X509_notAfter(WOLFSSL_X509*);
|
||||||
WOLFSSL_API int wolfSSL_X509_version(WOLFSSL_X509*);
|
WOLFSSL_API int wolfSSL_X509_version(WOLFSSL_X509*);
|
||||||
|
Reference in New Issue
Block a user