@@ -553,14 +553,16 @@ struct WOLFSSL_X509_STORE_CTX {
553553#if defined(OPENSSL_EXTRA ) || defined(OPENSSL_EXTRA_X509_SMALL )
554554 WOLFSSL_X509_STORE * store ; /* Store full of a CA cert chain */
555555 WOLFSSL_X509 * current_cert ; /* current X509 (OPENSSL_EXTRA) */
556- #if defined(WOLFSSL_ASIO ) || defined(OPENSSL_EXTRA )
556+ #if defined(WOLFSSL_ASIO ) || defined(OPENSSL_EXTRA )
557557 WOLFSSL_X509 * current_issuer ; /* asio dereference */
558- #endif
558+ #endif
559+ #endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
559560 WOLFSSL_X509_CHAIN * sesChain ; /* pointer to WOLFSSL_SESSION peer chain */
561+ #if defined(OPENSSL_EXTRA ) || defined(OPENSSL_EXTRA_X509_SMALL )
560562 WOLFSSL_STACK * chain ;
561- #ifdef OPENSSL_EXTRA
563+ #ifdef OPENSSL_EXTRA
562564 WOLFSSL_X509_VERIFY_PARAM * param ; /* certificate validation parameter */
563- #endif
565+ #endif
564566#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
565567
566568 char * domain ; /* subject CN domain name */
@@ -1408,11 +1410,6 @@ WOLFSSL_API int wolfSSL_GetSessionIndex(WOLFSSL* ssl);
14081410WOLFSSL_API int wolfSSL_GetSessionAtIndex (int index , WOLFSSL_SESSION * session );
14091411#endif /* SESSION_INDEX */
14101412
1411- #ifdef SESSION_CERTS
1412- WOLFSSL_API
1413- WOLFSSL_X509_CHAIN * wolfSSL_SESSION_get_peer_chain (WOLFSSL_SESSION * session );
1414- WOLFSSL_API WOLFSSL_X509 * wolfSSL_SESSION_get0_peer (WOLFSSL_SESSION * session );
1415- #endif /* SESSION_CERTS */
14161413
14171414#ifdef OPENSSL_EXTRA
14181415/* compatibility callback for TLS state */
@@ -1864,9 +1861,6 @@ WOLFSSL_API int wolfSSL_sk_X509_EXTENSION_num(WOLF_STACK_OF(WOLFSSL_X509_EXTENSI
18641861WOLFSSL_API WOLFSSL_X509_EXTENSION * wolfSSL_sk_X509_EXTENSION_value (
18651862 const WOLF_STACK_OF (WOLFSSL_X509_EXTENSION )* sk , int idx );
18661863
1867- WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_new (void );
1868- WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_new_ex (void * heap );
1869- WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_dup (WOLFSSL_X509 * x );
18701864#if defined(OPENSSL_EXTRA_X509_SMALL ) || defined(OPENSSL_EXTRA )
18711865WOLFSSL_API int wolfSSL_RSA_up_ref (WOLFSSL_RSA * rsa );
18721866WOLFSSL_API int wolfSSL_X509_up_ref (WOLFSSL_X509 * x509 );
@@ -2101,7 +2095,6 @@ WOLFSSL_API unsigned long wolfSSL_X509_subject_name_hash(const WOLFSSL_X509* x5
21012095WOLFSSL_API int wolfSSL_X509_ext_isSet_by_NID (WOLFSSL_X509 * x509 , int nid );
21022096WOLFSSL_API int wolfSSL_X509_ext_get_critical_by_NID (WOLFSSL_X509 * x509 , int nid );
21032097WOLFSSL_API int wolfSSL_X509_EXTENSION_set_critical (WOLFSSL_X509_EXTENSION * ex , int crit );
2104- WOLFSSL_API int wolfSSL_X509_get_isCA (WOLFSSL_X509 * x509 );
21052098WOLFSSL_API int wolfSSL_X509_get_isSet_pathLength (WOLFSSL_X509 * x509 );
21062099WOLFSSL_API unsigned int wolfSSL_X509_get_pathLength (WOLFSSL_X509 * x509 );
21072100WOLFSSL_API unsigned int wolfSSL_X509_get_keyUsage (WOLFSSL_X509 * x509 );
@@ -2164,11 +2157,6 @@ WOLFSSL_API int wolfSSL_ASN1_STRING_copy(WOLFSSL_ASN1_STRING* dst,
21642157 const WOLFSSL_ASN1_STRING * src );
21652158WOLFSSL_API int wolfSSL_X509_verify_cert (WOLFSSL_X509_STORE_CTX * ctx );
21662159WOLFSSL_API const char * wolfSSL_X509_verify_cert_error_string (long err );
2167- WOLFSSL_API int wolfSSL_X509_get_signature_type (WOLFSSL_X509 * x509 );
2168- WOLFSSL_API int wolfSSL_X509_get_signature (WOLFSSL_X509 * x509 , unsigned char * buf , int * bufSz );
2169- WOLFSSL_API int wolfSSL_X509_get_pubkey_buffer (WOLFSSL_X509 * x509 , unsigned char * buf ,
2170- int * bufSz );
2171- WOLFSSL_API int wolfSSL_X509_get_pubkey_type (WOLFSSL_X509 * x509 );
21722160
21732161WOLFSSL_API int wolfSSL_X509_LOOKUP_add_dir (WOLFSSL_X509_LOOKUP * lookup ,const char * dir ,long type );
21742162WOLFSSL_API int wolfSSL_X509_LOOKUP_load_file (WOLFSSL_X509_LOOKUP * lookup , const char * file ,
@@ -2774,10 +2762,6 @@ WOLFSSL_API void wolfSSL_X509_STORE_CTX_free(WOLFSSL_X509_STORE_CTX* ctx);
27742762WOLFSSL_API long wolfSSL_set_options (WOLFSSL * s , long op );
27752763WOLFSSL_API long wolfSSL_get_options (const WOLFSSL * s );
27762764
2777- WOLFSSL_ABI WOLFSSL_API WOLFSSL_X509_NAME * wolfSSL_X509_get_issuer_name (
2778- WOLFSSL_X509 * cert );
2779- WOLFSSL_ABI WOLFSSL_API WOLFSSL_X509_NAME * wolfSSL_X509_get_subject_name (
2780- WOLFSSL_X509 * cert );
27812765WOLFSSL_ABI WOLFSSL_API char * wolfSSL_X509_NAME_oneline (WOLFSSL_X509_NAME * name ,
27822766 char * in , int sz );
27832767
@@ -3118,6 +3102,21 @@ WOLFSSL_API unsigned long wolfSSL_SESSION_get_ticket_lifetime_hint(
31183102WOLFSSL_API long wolfSSL_SESSION_get_timeout (const WOLFSSL_SESSION * session );
31193103WOLFSSL_API long wolfSSL_SESSION_get_time (const WOLFSSL_SESSION * session );
31203104
3105+
3106+ #ifdef SESSION_CERTS
3107+ #ifdef OPENSSL_EXTRA
3108+ WOLFSSL_API const char * wolfSSL_get0_peername (WOLFSSL * ssl );
3109+ #endif
3110+
3111+ WOLFSSL_API
3112+ WOLFSSL_X509_CHAIN * wolfSSL_SESSION_get_peer_chain (WOLFSSL_SESSION * session );
3113+ WOLFSSL_API WOLFSSL_X509 * wolfSSL_SESSION_get0_peer (WOLFSSL_SESSION * session );
3114+
3115+ WOLFSSL_API int wolfSSL_get_chain_cert_pem (WOLFSSL_X509_CHAIN * chain , int idx ,
3116+ unsigned char * buf , int inLen , int * outLen );
3117+ #endif /* SESSION_CERTS */
3118+
3119+
31213120/* extra ends */
31223121
31233122
@@ -3127,9 +3126,6 @@ WOLFSSL_API long wolfSSL_SESSION_get_time(const WOLFSSL_SESSION* session);
31273126 date check and signature check */
31283127WOLFSSL_ABI WOLFSSL_API int wolfSSL_check_domain_name (WOLFSSL * ssl , const char * dn );
31293128
3130- #if defined(SESSION_CERTS ) && defined(OPENSSL_EXTRA )
3131- WOLFSSL_API const char * wolfSSL_get0_peername (WOLFSSL * ssl );
3132- #endif
31333129
31343130/* need to call once to load library (session cache) */
31353131WOLFSSL_ABI WOLFSSL_API int wolfSSL_Init (void );
@@ -3171,13 +3167,49 @@ WOLFSSL_API int wolfSSL_get_chain_length(WOLFSSL_X509_CHAIN* chain, int idx);
31713167WOLFSSL_API unsigned char * wolfSSL_get_chain_cert (WOLFSSL_X509_CHAIN * chain , int idx );
31723168/* index cert in X509 */
31733169WOLFSSL_API WOLFSSL_X509 * wolfSSL_get_chain_X509 (WOLFSSL_X509_CHAIN * chain , int idx );
3170+
3171+
3172+ #if defined(OPENSSL_EXTRA ) || defined(OPENSSL_EXTRA_X509_SMALL ) || \
3173+ defined(KEEP_PEER_CERT ) || defined(KEEP_OUR_CERT ) || defined(SESSION_CERTS )
3174+
3175+ WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_new (void );
3176+ WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_new_ex (void * heap );
3177+ WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_dup (WOLFSSL_X509 * x );
3178+
3179+ WOLFSSL_ABI WOLFSSL_API WOLFSSL_X509_NAME * wolfSSL_X509_get_issuer_name (
3180+ WOLFSSL_X509 * cert );
3181+ WOLFSSL_ABI WOLFSSL_API WOLFSSL_X509_NAME * wolfSSL_X509_get_subject_name (
3182+ WOLFSSL_X509 * cert );
3183+
3184+ WOLFSSL_API int wolfSSL_X509_get_signature_type (WOLFSSL_X509 * x509 );
3185+ WOLFSSL_API int wolfSSL_X509_get_isCA (WOLFSSL_X509 * x509 );
3186+ WOLFSSL_API int wolfSSL_X509_get_signature (WOLFSSL_X509 * x509 ,
3187+ unsigned char * buf , int * bufSz );
3188+ WOLFSSL_API int wolfSSL_X509_get_pubkey_buffer (WOLFSSL_X509 * x509 ,
3189+ unsigned char * buf , int * bufSz );
3190+ WOLFSSL_API int wolfSSL_X509_get_pubkey_type (WOLFSSL_X509 * x509 );
3191+
3192+ #ifndef NO_FILESYSTEM
3193+ WOLFSSL_ABI WOLFSSL_API WOLFSSL_X509 *
3194+ wolfSSL_X509_load_certificate_file (const char * fname , int format );
3195+ #endif
3196+ WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_load_certificate_buffer (
3197+ const unsigned char * buf , int sz , int format );
3198+ #ifdef WOLFSSL_CERT_REQ
3199+ WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_REQ_load_certificate_buffer (
3200+ const unsigned char * buf , int sz , int format );
3201+ #endif
3202+
31743203/* free X509 */
31753204#define wolfSSL_FreeX509 (x509 ) wolfSSL_X509_free ( (x509 ))
31763205WOLFSSL_ABI WOLFSSL_API void wolfSSL_X509_free (WOLFSSL_X509 * x509 );
31773206
3207+ #endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL || KEEP_PEER_CERT || \
3208+ KEEP_OUR_CERT || SESSION_CERTS */
3209+
3210+
31783211/* get index cert in PEM */
3179- WOLFSSL_API int wolfSSL_get_chain_cert_pem (WOLFSSL_X509_CHAIN * chain , int idx ,
3180- unsigned char * buf , int inLen , int * outLen );
3212+
31813213WOLFSSL_ABI WOLFSSL_API const unsigned char * wolfSSL_get_sessionID (
31823214 const WOLFSSL_SESSION * s );
31833215WOLFSSL_API int wolfSSL_X509_get_serial_number (WOLFSSL_X509 * x509 ,unsigned char * in ,int * inOutSz );
@@ -3302,17 +3334,6 @@ const WOLFSSL_ASN1_TIME* wolfSSL_X509_REVOKED_get0_revocation_date(const
33023334/* connect enough to get peer cert */
33033335WOLFSSL_API int wolfSSL_connect_cert (WOLFSSL * ssl );
33043336
3305- #if defined(OPENSSL_EXTRA ) || defined(OPENSSL_EXTRA_X509_SMALL )
3306- WOLFSSL_ABI WOLFSSL_API WOLFSSL_X509 *
3307- wolfSSL_X509_load_certificate_file (const char * fname , int format );
3308- WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_load_certificate_buffer (
3309- const unsigned char * buf , int sz , int format );
3310- #ifdef WOLFSSL_CERT_REQ
3311- WOLFSSL_API WOLFSSL_X509 * wolfSSL_X509_REQ_load_certificate_buffer (
3312- const unsigned char * buf , int sz , int format );
3313- #endif
3314- #endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
3315-
33163337
33173338#ifdef OPENSSL_EXTRA
33183339/* PKCS12 compatibility */
0 commit comments