mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-08-06 07:00:05 +08:00
feat(wolfssl): update version to v3.15.3
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
/* ssl.h
|
||||
*
|
||||
* Copyright (C) 2006-2017 wolfSSL Inc. All rights reserved.
|
||||
* Copyright (C) 2006-2018 wolfSSL Inc. All rights reserved.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@ -9,8 +9,10 @@
|
||||
* http://www.wolfssl.com
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\file ../wolfssl/ssl.h
|
||||
\brief Header file containing key wolfSSL API
|
||||
*/
|
||||
|
||||
/* wolfSSL API */
|
||||
|
||||
@ -22,6 +24,7 @@
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfssl/version.h>
|
||||
#include <wolfssl/wolfcrypt/logging.h>
|
||||
#include <wolfssl/wolfcrypt/asn_public.h>
|
||||
|
||||
#ifdef HAVE_WOLF_EVENT
|
||||
#include <wolfssl/wolfcrypt/wolfevent.h>
|
||||
@ -109,6 +112,7 @@ typedef struct WOLFSSL_X509 WOLFSSL_X509;
|
||||
typedef struct WOLFSSL_X509_NAME WOLFSSL_X509_NAME;
|
||||
typedef struct WOLFSSL_X509_NAME_ENTRY WOLFSSL_X509_NAME_ENTRY;
|
||||
typedef struct WOLFSSL_X509_CHAIN WOLFSSL_X509_CHAIN;
|
||||
typedef struct WC_PKCS12 WOLFSSL_X509_PKCS12;
|
||||
|
||||
typedef struct WOLFSSL_CERT_MANAGER WOLFSSL_CERT_MANAGER;
|
||||
typedef struct WOLFSSL_SOCKADDR WOLFSSL_SOCKADDR;
|
||||
@ -152,7 +156,7 @@ typedef struct WOLFSSL_ECDSA_SIG WOLFSSL_ECDSA_SIG;
|
||||
typedef struct WOLFSSL_CIPHER WOLFSSL_CIPHER;
|
||||
typedef struct WOLFSSL_X509_LOOKUP WOLFSSL_X509_LOOKUP;
|
||||
typedef struct WOLFSSL_X509_LOOKUP_METHOD WOLFSSL_X509_LOOKUP_METHOD;
|
||||
typedef struct WOLFSSL_X509_CRL WOLFSSL_X509_CRL;
|
||||
typedef struct WOLFSSL_CRL WOLFSSL_X509_CRL;
|
||||
typedef struct WOLFSSL_X509_STORE WOLFSSL_X509_STORE;
|
||||
typedef struct WOLFSSL_X509_VERIFY_PARAM WOLFSSL_X509_VERIFY_PARAM;
|
||||
typedef struct WOLFSSL_BIO WOLFSSL_BIO;
|
||||
@ -170,11 +174,17 @@ typedef struct WOLFSSL_ASN1_BIT_STRING WOLFSSL_ASN1_BIT_STRING;
|
||||
#define WOLFSSL_ASN1_UTCTIME WOLFSSL_ASN1_TIME
|
||||
#define WOLFSSL_ASN1_GENERALIZEDTIME WOLFSSL_ASN1_TIME
|
||||
|
||||
#define WOLFSSL_ASN1_INTEGER_MAX 20
|
||||
struct WOLFSSL_ASN1_INTEGER {
|
||||
/* size can be increased set at 20 for tag, length then to hold at least 16
|
||||
* byte type */
|
||||
unsigned char data[20];
|
||||
unsigned char intData[WOLFSSL_ASN1_INTEGER_MAX];
|
||||
/* ASN_INTEGER | LENGTH | hex of number */
|
||||
unsigned char negative; /* negative number flag */
|
||||
|
||||
unsigned char* data;
|
||||
unsigned int dataMax; /* max size of data buffer */
|
||||
unsigned char isDynamic:1; /* flag for if data pointer dynamic (1 is yes 0 is no) */
|
||||
};
|
||||
|
||||
struct WOLFSSL_ASN1_TIME {
|
||||
@ -283,11 +293,15 @@ struct WOLFSSL_X509_STORE {
|
||||
#ifdef OPENSSL_EXTRA
|
||||
int isDynamic;
|
||||
#endif
|
||||
#if defined(OPENSSL_EXTRA) && defined(HAVE_CRL)
|
||||
WOLFSSL_X509_CRL *crl;
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
#define WOLFSSL_USE_CHECK_TIME 0x2
|
||||
#define WOLFSSL_NO_CHECK_TIME 0x200000
|
||||
#define WOLFSSL_NO_WILDCARDS 0x4
|
||||
struct WOLFSSL_X509_VERIFY_PARAM {
|
||||
time_t check_time;
|
||||
unsigned long flags;
|
||||
@ -372,6 +386,7 @@ enum AlertDescription {
|
||||
unsupported_extension = 110, /**< RFC 5246, section 7.2.2 */
|
||||
unrecognized_name = 112, /**< RFC 6066, section 3 */
|
||||
bad_certificate_status_response = 113, /**< RFC 6066, section 8 */
|
||||
unknown_psk_identity = 115, /**< RFC 4279, section 2 */
|
||||
no_application_protocol = 120
|
||||
};
|
||||
|
||||
@ -383,6 +398,8 @@ enum AlertLevel {
|
||||
|
||||
/* Maximum master key length (SECRET_LEN) */
|
||||
#define WOLFSSL_MAX_MASTER_KEY_LENGTH 48
|
||||
/* Maximum number of groups that can be set */
|
||||
#define WOLFSSL_MAX_GROUP_COUNT 10
|
||||
|
||||
typedef WOLFSSL_METHOD* (*wolfSSL_method_func)(void* heap);
|
||||
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_server_method_ex(void* heap);
|
||||
@ -478,6 +495,8 @@ WOLFSSL_API int wolfSSL_CTX_trust_peer_cert(WOLFSSL_CTX*, const char*, int);
|
||||
#endif
|
||||
WOLFSSL_API int wolfSSL_CTX_use_certificate_chain_file(WOLFSSL_CTX *,
|
||||
const char *file);
|
||||
WOLFSSL_API int wolfSSL_CTX_use_certificate_chain_file_format(WOLFSSL_CTX *,
|
||||
const char *file, int format);
|
||||
WOLFSSL_API int wolfSSL_CTX_use_RSAPrivateKey_file(WOLFSSL_CTX*, const char*, int);
|
||||
|
||||
WOLFSSL_API long wolfSSL_get_verify_depth(WOLFSSL* ssl);
|
||||
@ -486,6 +505,8 @@ WOLFSSL_API void wolfSSL_CTX_set_verify_depth(WOLFSSL_CTX *ctx,int depth);
|
||||
WOLFSSL_API int wolfSSL_use_certificate_file(WOLFSSL*, const char*, int);
|
||||
WOLFSSL_API int wolfSSL_use_PrivateKey_file(WOLFSSL*, const char*, int);
|
||||
WOLFSSL_API int wolfSSL_use_certificate_chain_file(WOLFSSL*, const char *file);
|
||||
WOLFSSL_API int wolfSSL_use_certificate_chain_file_format(WOLFSSL*,
|
||||
const char *file, int format);
|
||||
WOLFSSL_API int wolfSSL_use_RSAPrivateKey_file(WOLFSSL*, const char*, int);
|
||||
|
||||
#ifdef WOLFSSL_DER_LOAD
|
||||
@ -498,11 +519,6 @@ WOLFSSL_API int wolfSSL_use_RSAPrivateKey_file(WOLFSSL*, const char*, int);
|
||||
/* load NTRU private key blob */
|
||||
#endif
|
||||
|
||||
#ifndef WOLFSSL_PEMCERT_TODER_DEFINED
|
||||
WOLFSSL_API int wolfSSL_PemCertToDer(const char*, unsigned char*, int);
|
||||
#define WOLFSSL_PEMCERT_TODER_DEFINED
|
||||
#endif
|
||||
|
||||
#endif /* !NO_FILESYSTEM && !NO_CERTS */
|
||||
|
||||
WOLFSSL_API WOLFSSL_CTX* wolfSSL_CTX_new(WOLFSSL_METHOD*);
|
||||
@ -516,12 +532,12 @@ WOLFSSL_API char* wolfSSL_get_cipher_list(int priority);
|
||||
WOLFSSL_API char* wolfSSL_get_cipher_list_ex(WOLFSSL* ssl, int priority);
|
||||
WOLFSSL_API int wolfSSL_get_ciphers(char*, int);
|
||||
WOLFSSL_API const char* wolfSSL_get_cipher_name(WOLFSSL* ssl);
|
||||
WOLFSSL_API const char* wolfSSL_get_cipher_name_from_suite(const unsigned char,
|
||||
const unsigned char);
|
||||
WOLFSSL_API const char* wolfSSL_get_shared_ciphers(WOLFSSL* ssl, char* buf,
|
||||
int len);
|
||||
WOLFSSL_API const char* wolfSSL_get_curve_name(WOLFSSL* ssl);
|
||||
WOLFSSL_API int wolfSSL_get_fd(const WOLFSSL*);
|
||||
WOLFSSL_API void wolfSSL_set_using_nonblock(WOLFSSL*, int);
|
||||
WOLFSSL_API int wolfSSL_get_using_nonblock(WOLFSSL*);
|
||||
/* please see note at top of README if you get an error from connect */
|
||||
WOLFSSL_API int wolfSSL_connect(WOLFSSL*);
|
||||
WOLFSSL_API int wolfSSL_write(WOLFSSL*, const void*, int);
|
||||
@ -540,6 +556,11 @@ WOLFSSL_API int wolfSSL_CTX_allow_post_handshake_auth(WOLFSSL_CTX* ctx);
|
||||
WOLFSSL_API int wolfSSL_allow_post_handshake_auth(WOLFSSL* ssl);
|
||||
WOLFSSL_API int wolfSSL_request_certificate(WOLFSSL* ssl);
|
||||
|
||||
WOLFSSL_API int wolfSSL_preferred_group(WOLFSSL* ssl);
|
||||
WOLFSSL_API int wolfSSL_CTX_set_groups(WOLFSSL_CTX* ctx, int* groups,
|
||||
int count);
|
||||
WOLFSSL_API int wolfSSL_set_groups(WOLFSSL* ssl, int* groups, int count);
|
||||
|
||||
WOLFSSL_API int wolfSSL_connect_TLSv13(WOLFSSL*);
|
||||
WOLFSSL_API int wolfSSL_accept_TLSv13(WOLFSSL*);
|
||||
|
||||
@ -563,12 +584,11 @@ WOLFSSL_API void wolfSSL_set_quiet_shutdown(WOLFSSL*, int);
|
||||
WOLFSSL_API int wolfSSL_get_error(WOLFSSL*, int);
|
||||
WOLFSSL_API int wolfSSL_get_alert_history(WOLFSSL*, WOLFSSL_ALERT_HISTORY *);
|
||||
|
||||
WOLFSSL_API int wolfSSL_set_session(WOLFSSL* ssl,WOLFSSL_SESSION* session);
|
||||
WOLFSSL_API long wolfSSL_SSL_SESSION_set_timeout(WOLFSSL_SESSION* session, long t);
|
||||
WOLFSSL_API WOLFSSL_SESSION* wolfSSL_get_session(WOLFSSL* ssl);
|
||||
WOLFSSL_API void wolfSSL_flush_sessions(WOLFSSL_CTX *ctx, long tm);
|
||||
WOLFSSL_API int wolfSSL_SetServerID(WOLFSSL* ssl, const unsigned char*,
|
||||
int, int);
|
||||
WOLFSSL_API int wolfSSL_set_session(WOLFSSL*, WOLFSSL_SESSION*);
|
||||
WOLFSSL_API long wolfSSL_SSL_SESSION_set_timeout(WOLFSSL_SESSION*, long);
|
||||
WOLFSSL_API WOLFSSL_SESSION* wolfSSL_get_session(WOLFSSL*);
|
||||
WOLFSSL_API void wolfSSL_flush_sessions(WOLFSSL_CTX*, long);
|
||||
WOLFSSL_API int wolfSSL_SetServerID(WOLFSSL*, const unsigned char*, int, int);
|
||||
|
||||
#ifdef SESSION_INDEX
|
||||
WOLFSSL_API int wolfSSL_GetSessionIndex(WOLFSSL* ssl);
|
||||
@ -581,7 +601,6 @@ WOLFSSL_API
|
||||
#endif /* SESSION_INDEX && SESSION_CERTS */
|
||||
|
||||
typedef int (*VerifyCallback)(int, WOLFSSL_X509_STORE_CTX*);
|
||||
typedef int (pem_password_cb)(char*, int, int, void*);
|
||||
#ifdef OPENSSL_EXTRA
|
||||
typedef void (CallbackInfoState)(const WOLFSSL*, int, int);
|
||||
|
||||
@ -637,6 +656,11 @@ WOLFSSL_API int wolfSSL_CTX_set_cipher_list(WOLFSSL_CTX*, const char*);
|
||||
WOLFSSL_API int wolfSSL_set_cipher_list(WOLFSSL*, const char*);
|
||||
|
||||
/* Nonblocking DTLS helper functions */
|
||||
WOLFSSL_API void wolfSSL_dtls_set_using_nonblock(WOLFSSL*, int);
|
||||
WOLFSSL_API int wolfSSL_dtls_get_using_nonblock(WOLFSSL*);
|
||||
#define wolfSSL_set_using_nonblock wolfSSL_dtls_set_using_nonblock
|
||||
#define wolfSSL_get_using_nonblock wolfSSL_dtls_get_using_nonblock
|
||||
/* The old names are deprecated. */
|
||||
WOLFSSL_API int wolfSSL_dtls_get_current_timeout(WOLFSSL* ssl);
|
||||
WOLFSSL_API int wolfSSL_dtls_set_timeout_init(WOLFSSL* ssl, int);
|
||||
WOLFSSL_API int wolfSSL_dtls_set_timeout_max(WOLFSSL* ssl, int);
|
||||
@ -774,6 +798,10 @@ WOLFSSL_API long wolfSSL_BIO_set_fd(WOLFSSL_BIO* b, int fd, int flag);
|
||||
WOLFSSL_API void wolfSSL_set_bio(WOLFSSL*, WOLFSSL_BIO* rd, WOLFSSL_BIO* wr);
|
||||
WOLFSSL_API int wolfSSL_add_all_algorithms(void);
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
WOLFSSL_API int wolfSSL_OPENSSL_add_all_algorithms_noconf(void);
|
||||
#endif
|
||||
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_file(void);
|
||||
#endif
|
||||
@ -805,6 +833,7 @@ WOLFSSL_API int wolfSSL_RAND_egd(const char*);
|
||||
WOLFSSL_API int wolfSSL_RAND_seed(const void*, int);
|
||||
WOLFSSL_API void wolfSSL_RAND_Cleanup(void);
|
||||
WOLFSSL_API void wolfSSL_RAND_add(const void*, int, double);
|
||||
WOLFSSL_API int wolfSSL_RAND_poll(void);
|
||||
|
||||
WOLFSSL_API WOLFSSL_COMP_METHOD* wolfSSL_COMP_zlib(void);
|
||||
WOLFSSL_API WOLFSSL_COMP_METHOD* wolfSSL_COMP_rle(void);
|
||||
@ -916,6 +945,8 @@ WOLFSSL_API WOLFSSL_X509_REVOKED* wolfSSL_X509_CRL_get_REVOKED(WOLFSSL_X509_CRL*
|
||||
WOLFSSL_API WOLFSSL_X509_REVOKED* wolfSSL_sk_X509_REVOKED_value(
|
||||
WOLFSSL_X509_REVOKED*,int);
|
||||
WOLFSSL_API WOLFSSL_ASN1_INTEGER* wolfSSL_X509_get_serialNumber(WOLFSSL_X509*);
|
||||
WOLFSSL_API void wolfSSL_ASN1_INTEGER_free(WOLFSSL_ASN1_INTEGER*);
|
||||
WOLFSSL_API WOLFSSL_ASN1_INTEGER* wolfSSL_ASN1_INTEGER_new(void);
|
||||
|
||||
WOLFSSL_API int wolfSSL_ASN1_TIME_print(WOLFSSL_BIO*, const WOLFSSL_ASN1_TIME*);
|
||||
|
||||
@ -947,7 +978,8 @@ WOLFSSL_API void wolfSSL_CTX_set_default_passwd_cb_userdata(WOLFSSL_CTX*,
|
||||
void* userdata);
|
||||
WOLFSSL_API void wolfSSL_CTX_set_default_passwd_cb(WOLFSSL_CTX*,
|
||||
pem_password_cb*);
|
||||
|
||||
WOLFSSL_API pem_password_cb* wolfSSL_CTX_get_default_passwd_cb(WOLFSSL_CTX *ctx);
|
||||
WOLFSSL_API void *wolfSSL_CTX_get_default_passwd_cb_userdata(WOLFSSL_CTX *ctx);
|
||||
|
||||
WOLFSSL_API void wolfSSL_CTX_set_info_callback(WOLFSSL_CTX*,
|
||||
void (*)(const WOLFSSL* ssl, int type, int val));
|
||||
@ -961,8 +993,10 @@ WOLFSSL_API const char* wolfSSL_state_string_long(const WOLFSSL*);
|
||||
|
||||
WOLFSSL_API WOLFSSL_RSA* wolfSSL_RSA_generate_key(int, unsigned long,
|
||||
void(*)(int, int, void*), void*);
|
||||
WOLFSSL_API void wolfSSL_CTX_set_tmp_rsa_callback(WOLFSSL_CTX*,
|
||||
WOLFSSL_RSA*(*)(WOLFSSL*, int, int));
|
||||
WOLFSSL_API WOLFSSL_RSA *wolfSSL_d2i_RSAPublicKey(WOLFSSL_RSA **r, const unsigned char **pp, long len);
|
||||
WOLFSSL_API int wolfSSL_i2d_RSAPublicKey(WOLFSSL_RSA *r, const unsigned char **pp);
|
||||
WOLFSSL_API void wolfSSL_CTX_set_tmp_rsa_callback(WOLFSSL_CTX *,
|
||||
WOLFSSL_RSA *(*)(WOLFSSL *, int, int));
|
||||
|
||||
WOLFSSL_API int wolfSSL_PEM_def_callback(char*, int num, int w, void* key);
|
||||
|
||||
@ -1184,9 +1218,9 @@ enum {
|
||||
/* wolfSSL extension, provide last error from SSL_get_error
|
||||
since not using thread storage error queue */
|
||||
#include <stdio.h>
|
||||
WOLFSSL_API void wolfSSL_ERR_print_errors_fp(FILE*, int err);
|
||||
WOLFSSL_API void wolfSSL_ERR_print_errors_fp(XFILE, int err);
|
||||
#if defined(OPENSSL_EXTRA) || defined(DEBUG_WOLFSSL_VERBOSE)
|
||||
WOLFSSL_API void wolfSSL_ERR_dump_errors_fp(FILE* fp);
|
||||
WOLFSSL_API void wolfSSL_ERR_dump_errors_fp(XFILE fp);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -1349,7 +1383,6 @@ enum {
|
||||
WOLFSSL_BIO_UNSET = -2,
|
||||
WOLFSSL_BIO_SIZE = 17000 /* default BIO write size if not set */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
WOLFSSL_API void wolfSSL_ERR_put_error(int lib, int fun, int err,
|
||||
@ -1401,8 +1434,9 @@ WOLFSSL_API int wolfSSL_ASN1_UTCTIME_print(WOLFSSL_BIO*,
|
||||
const WOLFSSL_ASN1_UTCTIME*);
|
||||
WOLFSSL_API int wolfSSL_ASN1_GENERALIZEDTIME_print(WOLFSSL_BIO*,
|
||||
const WOLFSSL_ASN1_GENERALIZEDTIME*);
|
||||
WOLFSSL_API int wolfSSL_sk_num(WOLFSSL_X509_REVOKED*);
|
||||
WOLFSSL_API void* wolfSSL_sk_value(WOLFSSL_X509_REVOKED*, int);
|
||||
WOLFSSL_API void wolfSSL_ASN1_GENERALIZEDTIME_free(WOLFSSL_ASN1_GENERALIZEDTIME*);
|
||||
WOLFSSL_API int wolfSSL_sk_num(WOLF_STACK_OF(WOLFSSL_ASN1_OBJECT)*);
|
||||
WOLFSSL_API void* wolfSSL_sk_value(WOLF_STACK_OF(WOLFSSL_ASN1_OBJECT)*, int);
|
||||
|
||||
/* stunnel 4.28 needs */
|
||||
WOLFSSL_API void* wolfSSL_CTX_get_ex_data(const WOLFSSL_CTX*, int);
|
||||
@ -1487,10 +1521,17 @@ WOLFSSL_API WOLFSSL_X509* wolfSSL_d2i_X509(WOLFSSL_X509** x509,
|
||||
WOLFSSL_API WOLFSSL_X509*
|
||||
wolfSSL_X509_d2i(WOLFSSL_X509** x509, const unsigned char* in, int len);
|
||||
WOLFSSL_API int wolfSSL_i2d_X509(WOLFSSL_X509* x509, unsigned char** out);
|
||||
WOLFSSL_API WOLFSSL_X509_CRL *wolfSSL_d2i_X509_CRL(WOLFSSL_X509_CRL **crl,
|
||||
const unsigned char *in, int len);
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API WOLFSSL_X509_CRL *wolfSSL_d2i_X509_CRL_fp(XFILE file, WOLFSSL_X509_CRL **crl);
|
||||
#endif
|
||||
WOLFSSL_API void wolfSSL_X509_CRL_free(WOLFSSL_X509_CRL *crl);
|
||||
|
||||
#ifndef NO_FILESYSTEM
|
||||
#ifndef NO_STDIO_FILESYSTEM
|
||||
WOLFSSL_API WOLFSSL_X509*
|
||||
wolfSSL_X509_d2i_fp(WOLFSSL_X509** x509, FILE* file);
|
||||
wolfSSL_X509_d2i_fp(WOLFSSL_X509** x509, XFILE file);
|
||||
#endif
|
||||
WOLFSSL_API WOLFSSL_X509*
|
||||
wolfSSL_X509_load_certificate_file(const char* fname, int format);
|
||||
@ -1516,6 +1557,10 @@ WOLFSSL_API int wolfSSL_connect_cert(WOLFSSL* ssl);
|
||||
typedef struct WC_PKCS12 WC_PKCS12;
|
||||
WOLFSSL_API WC_PKCS12* wolfSSL_d2i_PKCS12_bio(WOLFSSL_BIO* bio,
|
||||
WC_PKCS12** pkcs12);
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API WOLFSSL_X509_PKCS12* wolfSSL_d2i_PKCS12_fp(XFILE fp,
|
||||
WOLFSSL_X509_PKCS12** pkcs12);
|
||||
#endif
|
||||
WOLFSSL_API int wolfSSL_PKCS12_parse(WC_PKCS12* pkcs12, const char* psw,
|
||||
WOLFSSL_EVP_PKEY** pkey, WOLFSSL_X509** cert,
|
||||
WOLF_STACK_OF(WOLFSSL_X509)** ca);
|
||||
@ -1690,21 +1735,14 @@ WOLFSSL_API int wolfSSL_GetOutputSize(WOLFSSL*, int);
|
||||
WOLFSSL_API int wolfSSL_GetMaxOutputSize(WOLFSSL*);
|
||||
WOLFSSL_API int wolfSSL_GetVersion(WOLFSSL* ssl);
|
||||
WOLFSSL_API int wolfSSL_SetVersion(WOLFSSL* ssl, int version);
|
||||
WOLFSSL_API int wolfSSL_KeyPemToDer(const unsigned char*, int,
|
||||
unsigned char*, int, const char*);
|
||||
WOLFSSL_API int wolfSSL_CertPemToDer(const unsigned char*, int,
|
||||
unsigned char*, int, int);
|
||||
#if defined(WOLFSSL_CERT_EXT) || defined(WOLFSSL_PUB_PEM_TO_DER)
|
||||
#ifndef WOLFSSL_PEMPUBKEY_TODER_DEFINED
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API int wolfSSL_PemPubKeyToDer(const char* fileName,
|
||||
unsigned char* derBuf, int derSz);
|
||||
#endif
|
||||
WOLFSSL_API int wolfSSL_PubKeyPemToDer(const unsigned char*, int,
|
||||
unsigned char*, int);
|
||||
#define WOLFSSL_PEMPUBKEY_TODER_DEFINED
|
||||
#endif /* WOLFSSL_PEMPUBKEY_TODER_DEFINED */
|
||||
#endif /* WOLFSSL_CERT_EXT || WOLFSSL_PUB_PEM_TO_DER*/
|
||||
|
||||
/* moved to asn.c, old names kept for backwards compatability */
|
||||
#define wolfSSL_KeyPemToDer wc_KeyPemToDer
|
||||
#define wolfSSL_CertPemToDer wc_CertPemToDer
|
||||
#define wolfSSL_PemPubKeyToDer wc_PemPubKeyToDer
|
||||
#define wolfSSL_PubKeyPemToDer wc_PubKeyPemToDer
|
||||
#define wolfSSL_PemCertToDer wc_PemCertToDer
|
||||
|
||||
|
||||
typedef void (*CallbackCACache)(unsigned char* der, int sz, int type);
|
||||
typedef void (*CbMissingCRL)(const char* url);
|
||||
@ -1881,6 +1919,7 @@ typedef int (*CallbackRsaVerify)(WOLFSSL* ssl,
|
||||
const unsigned char* keyDer, unsigned int keySz,
|
||||
void* ctx);
|
||||
WOLFSSL_API void wolfSSL_CTX_SetRsaVerifyCb(WOLFSSL_CTX*, CallbackRsaVerify);
|
||||
WOLFSSL_API void wolfSSL_CTX_SetRsaSignCheckCb(WOLFSSL_CTX*, CallbackRsaVerify);
|
||||
WOLFSSL_API void wolfSSL_SetRsaVerifyCtx(WOLFSSL* ssl, void *ctx);
|
||||
WOLFSSL_API void* wolfSSL_GetRsaVerifyCtx(WOLFSSL* ssl);
|
||||
|
||||
@ -1903,6 +1942,8 @@ typedef int (*CallbackRsaPssVerify)(WOLFSSL* ssl,
|
||||
void* ctx);
|
||||
WOLFSSL_API void wolfSSL_CTX_SetRsaPssVerifyCb(WOLFSSL_CTX*,
|
||||
CallbackRsaPssVerify);
|
||||
WOLFSSL_API void wolfSSL_CTX_SetRsaPssSignCheckCb(WOLFSSL_CTX*,
|
||||
CallbackRsaPssVerify);
|
||||
WOLFSSL_API void wolfSSL_SetRsaPssVerifyCtx(WOLFSSL* ssl, void *ctx);
|
||||
WOLFSSL_API void* wolfSSL_GetRsaPssVerifyCtx(WOLFSSL* ssl);
|
||||
#endif
|
||||
@ -2112,7 +2153,7 @@ enum {
|
||||
WOLFSSL_MAX_ALPN_NUMBER = 257
|
||||
};
|
||||
|
||||
#if defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
typedef int (*CallbackALPNSelect)(WOLFSSL* ssl, const unsigned char** out,
|
||||
unsigned char* outLen, const unsigned char* in, unsigned int inLen,
|
||||
void *arg);
|
||||
@ -2297,7 +2338,6 @@ WOLFSSL_API int wolfSSL_set_SessionTicket_cb(WOLFSSL*,
|
||||
CallbackSessionTicket, void*);
|
||||
#endif /* NO_WOLFSSL_CLIENT */
|
||||
|
||||
#ifndef NO_WOLFSSL_SERVER
|
||||
|
||||
#define WOLFSSL_TICKET_NAME_SZ 16
|
||||
#define WOLFSSL_TICKET_IV_SZ 16
|
||||
@ -2310,6 +2350,8 @@ enum TicketEncRet {
|
||||
WOLFSSL_TICKET_RET_CREATE /* existing ticket ok and create new one */
|
||||
};
|
||||
|
||||
#ifndef NO_WOLFSSL_SERVER
|
||||
|
||||
typedef int (*SessionTicketEncCb)(WOLFSSL*,
|
||||
unsigned char key_name[WOLFSSL_TICKET_NAME_SZ],
|
||||
unsigned char iv[WOLFSSL_TICKET_IV_SZ],
|
||||
@ -2412,7 +2454,7 @@ WOLFSSL_API int wolfSSL_accept_ex(WOLFSSL*, HandShakeCallBack, TimeoutCallBack,
|
||||
WOLFSSL_API void wolfSSL_cert_service(void);
|
||||
#endif
|
||||
|
||||
#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL))
|
||||
#if defined(OPENSSL_ALL) || defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
|
||||
/* Smaller subset of X509 compatibility functions. Avoid increasing the size of
|
||||
* this subset and its memory usage */
|
||||
|
||||
@ -2425,9 +2467,10 @@ struct WOLFSSL_X509_NAME_ENTRY {
|
||||
int set;
|
||||
int size;
|
||||
};
|
||||
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
|
||||
#endif /* OPENSSL_ALL || OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
|
||||
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)
|
||||
|
||||
enum {
|
||||
WOLFSSL_SYS_ACCEPT = 0,
|
||||
@ -2462,11 +2505,6 @@ WOLFSSL_API int wolfSSL_OBJ_obj2txt(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT
|
||||
WOLFSSL_API void wolfSSL_OBJ_cleanup(void);
|
||||
/* end of object functions */
|
||||
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API long wolfSSL_BIO_set_fp(WOLFSSL_BIO *bio, XFILE fp, int c);
|
||||
WOLFSSL_API long wolfSSL_BIO_get_fp(WOLFSSL_BIO *bio, XFILE* fp);
|
||||
#endif
|
||||
|
||||
WOLFSSL_API unsigned long wolfSSL_ERR_peek_last_error_line(const char **file, int *line);
|
||||
WOLFSSL_API long wolfSSL_ctrl(WOLFSSL* ssl, int cmd, long opt, void* pt);
|
||||
WOLFSSL_API long wolfSSL_CTX_ctrl(WOLFSSL_CTX* ctx, int cmd, long opt,void* pt);
|
||||
@ -2507,6 +2545,10 @@ WOLFSSL_API int wolfSSL_SESSION_get_master_key_length(const WOLFSSL_SESSION* ses
|
||||
WOLFSSL_API void wolfSSL_CTX_set_cert_store(WOLFSSL_CTX* ctx,
|
||||
WOLFSSL_X509_STORE* str);
|
||||
WOLFSSL_API int wolfSSL_i2d_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509* x509);
|
||||
#if !defined(NO_FILESYSTEM)
|
||||
WOLFSSL_API WOLFSSL_X509* wolfSSL_d2i_X509_fp(XFILE fp,
|
||||
WOLFSSL_X509** x509);
|
||||
#endif
|
||||
WOLFSSL_API WOLFSSL_X509* wolfSSL_d2i_X509_bio(WOLFSSL_BIO* bio,
|
||||
WOLFSSL_X509** x509);
|
||||
WOLFSSL_API WOLFSSL_X509_STORE* wolfSSL_CTX_get_cert_store(WOLFSSL_CTX* ctx);
|
||||
@ -2516,12 +2558,14 @@ WOLFSSL_API size_t wolfSSL_get_server_random(const WOLFSSL *ssl,
|
||||
unsigned char *out, size_t outlen);
|
||||
WOLFSSL_API size_t wolfSSL_get_client_random(const WOLFSSL* ssl,
|
||||
unsigned char* out, size_t outSz);
|
||||
WOLFSSL_API pem_password_cb* wolfSSL_CTX_get_default_passwd_cb(WOLFSSL_CTX *ctx);
|
||||
WOLFSSL_API void *wolfSSL_CTX_get_default_passwd_cb_userdata(WOLFSSL_CTX *ctx);
|
||||
WOLFSSL_API int wolfSSL_CTX_use_PrivateKey(WOLFSSL_CTX *ctx, WOLFSSL_EVP_PKEY *pkey);
|
||||
WOLFSSL_API WOLFSSL_X509 *wolfSSL_PEM_read_bio_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 **x, pem_password_cb *cb, void *u);
|
||||
WOLFSSL_API WOLFSSL_X509 *wolfSSL_PEM_read_bio_X509_AUX
|
||||
(WOLFSSL_BIO *bp, WOLFSSL_X509 **x, pem_password_cb *cb, void *u);
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API WOLFSSL_X509_CRL *wolfSSL_PEM_read_X509_CRL(XFILE fp, WOLFSSL_X509_CRL **x,
|
||||
pem_password_cb *cb, void *u);
|
||||
#endif
|
||||
|
||||
/*lighttp compatibility */
|
||||
|
||||
@ -2533,11 +2577,13 @@ struct WOLFSSL_ASN1_BIT_STRING {
|
||||
};
|
||||
|
||||
|
||||
#if defined(HAVE_LIGHTY) || defined(WOLFSSL_MYSQL_COMPATIBLE) \
|
||||
|| defined(HAVE_STUNNEL) \
|
||||
|| defined(WOLFSSL_NGINX) \
|
||||
|| defined(WOLFSSL_HAPROXY) \
|
||||
|| defined(OPENSSL_EXTRA)
|
||||
#if defined(OPENSSL_EXTRA) \
|
||||
|| defined(OPENSSL_ALL) \
|
||||
|| defined(HAVE_LIGHTY) \
|
||||
|| defined(WOLFSSL_MYSQL_COMPATIBLE) \
|
||||
|| defined(HAVE_STUNNEL) \
|
||||
|| defined(WOLFSSL_NGINX) \
|
||||
|| defined(WOLFSSL_HAPROXY)
|
||||
WOLFSSL_API void wolfSSL_X509_NAME_ENTRY_free(WOLFSSL_X509_NAME_ENTRY* ne);
|
||||
WOLFSSL_API WOLFSSL_X509_NAME_ENTRY* wolfSSL_X509_NAME_ENTRY_new(void);
|
||||
WOLFSSL_API void wolfSSL_X509_NAME_free(WOLFSSL_X509_NAME* name);
|
||||
@ -2552,17 +2598,28 @@ WOLFSSL_API WOLFSSL_X509_NAME_ENTRY *wolfSSL_X509_NAME_get_entry(WOLFSSL_X509_NA
|
||||
WOLFSSL_API void wolfSSL_sk_X509_NAME_pop_free(WOLF_STACK_OF(WOLFSSL_X509_NAME)* sk, void f (WOLFSSL_X509_NAME*));
|
||||
WOLFSSL_API unsigned char *wolfSSL_SHA1(const unsigned char *d, size_t n, unsigned char *md);
|
||||
WOLFSSL_API unsigned char *wolfSSL_SHA256(const unsigned char *d, size_t n, unsigned char *md);
|
||||
WOLFSSL_API unsigned char *wolfSSL_SHA384(const unsigned char *d, size_t n, unsigned char *md);
|
||||
WOLFSSL_API unsigned char *wolfSSL_SHA512(const unsigned char *d, size_t n, unsigned char *md);
|
||||
WOLFSSL_API int wolfSSL_X509_check_private_key(WOLFSSL_X509*, WOLFSSL_EVP_PKEY*);
|
||||
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_X509_NAME) *wolfSSL_dup_CA_list( WOLF_STACK_OF(WOLFSSL_X509_NAME) *sk );
|
||||
WOLFSSL_API int wolfSSL_X509_check_ca(WOLFSSL_X509 *x509);
|
||||
|
||||
/* end lighttpd*/
|
||||
#endif
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API long wolfSSL_BIO_set_fp(WOLFSSL_BIO *bio, XFILE fp, int c);
|
||||
WOLFSSL_API long wolfSSL_BIO_get_fp(WOLFSSL_BIO *bio, XFILE* fp);
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STUNNEL) || defined(HAVE_LIGHTY) \
|
||||
|| defined(WOLFSSL_MYSQL_COMPATIBLE) \
|
||||
|| defined(WOLFSSL_HAPROXY) \
|
||||
|| defined(OPENSSL_EXTRA)
|
||||
#endif /* OPENSSL_EXTRA || OPENSSL_ALL || HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || HAVE_STUNNEL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */
|
||||
|
||||
#endif /* OPENSSL_EXTRA || OPENSSL_ALL */
|
||||
|
||||
|
||||
#if defined(OPENSSL_ALL) \
|
||||
|| defined(HAVE_STUNNEL) \
|
||||
|| defined(HAVE_LIGHTY) \
|
||||
|| defined(WOLFSSL_MYSQL_COMPATIBLE) \
|
||||
|| defined(WOLFSSL_HAPROXY) \
|
||||
|| defined(OPENSSL_EXTRA)
|
||||
|
||||
WOLFSSL_API WOLFSSL_BIO* wolfSSL_BIO_new_file(const char *filename, const char *mode);
|
||||
WOLFSSL_API long wolfSSL_CTX_set_tmp_dh(WOLFSSL_CTX*, WOLFSSL_DH*);
|
||||
@ -2577,8 +2634,11 @@ WOLFSSL_API int wolfSSL_PEM_write_bio_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 *x);
|
||||
#endif /* HAVE_STUNNEL || HAVE_LIGHTY */
|
||||
|
||||
|
||||
#if defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || \
|
||||
defined(WOLFSSL_HAPROXY) || defined(OPENSSL_EXTRA)
|
||||
#if defined(OPENSSL_ALL) \
|
||||
|| defined(HAVE_STUNNEL) \
|
||||
|| defined(WOLFSSL_NGINX) \
|
||||
|| defined(WOLFSSL_HAPROXY) \
|
||||
|| defined(OPENSSL_EXTRA)
|
||||
|
||||
#include <wolfssl/openssl/crypto.h>
|
||||
|
||||
@ -2673,10 +2733,11 @@ WOLFSSL_API WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_X509_STORE_get1_certs(
|
||||
WOLFSSL_X509_STORE_CTX*, WOLFSSL_X509_NAME*);
|
||||
|
||||
WOLFSSL_API void wolfSSL_sk_X509_pop_free(WOLF_STACK_OF(WOLFSSL_X509)* sk, void f (WOLFSSL_X509*));
|
||||
#endif /* HAVE_STUNNEL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */
|
||||
#endif /* OPENSSL_ALL || HAVE_STUNNEL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */
|
||||
|
||||
#if defined(HAVE_STUNNEL) || defined(WOLFSSL_MYSQL_COMPATIBLE) \
|
||||
|| defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
#if defined(OPENSSL_ALL) || \
|
||||
defined(HAVE_STUNNEL) || defined(WOLFSSL_MYSQL_COMPATIBLE) || \
|
||||
defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
|
||||
WOLFSSL_API int wolfSSL_CTX_get_verify_mode(WOLFSSL_CTX* ctx);
|
||||
|
||||
@ -2713,19 +2774,24 @@ WOLFSSL_API void *wolfSSL_OPENSSL_memdup(const void *data,
|
||||
WOLFSSL_API void wolfSSL_ERR_load_BIO_strings(void);
|
||||
#endif
|
||||
|
||||
#if defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) || \
|
||||
defined(OPENSSL_EXTRA)
|
||||
#if defined(OPENSSL_ALL) \
|
||||
|| defined(WOLFSSL_NGINX) \
|
||||
|| defined(WOLFSSL_HAPROXY) \
|
||||
|| defined(OPENSSL_EXTRA)
|
||||
WOLFSSL_API void wolfSSL_OPENSSL_config(char *config_name);
|
||||
#endif
|
||||
|
||||
#if defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
/* Not an OpenSSL API. */
|
||||
WOLFSSL_LOCAL int wolfSSL_get_ocsp_response(WOLFSSL* ssl, byte** response);
|
||||
/* Not an OpenSSL API. */
|
||||
WOLFSSL_LOCAL char* wolfSSL_get_ocsp_url(WOLFSSL* ssl);
|
||||
/* Not an OpenSSL API. */
|
||||
WOLFSSL_API int wolfSSL_set_ocsp_url(WOLFSSL* ssl, char* url);
|
||||
#endif
|
||||
|
||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) \
|
||||
|| defined(OPENSSL_EXTRA)
|
||||
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_CIPHER) *wolfSSL_get_ciphers_compat(const WOLFSSL *ssl);
|
||||
WOLFSSL_API int wolfSSL_X509_get_ex_new_index(int idx, void *arg, void *a,
|
||||
void *b, void *c);
|
||||
@ -2785,7 +2851,7 @@ WOLFSSL_API char* wolfSSL_sk_WOLFSSL_STRING_value(
|
||||
WOLFSSL_API int PEM_write_bio_WOLFSSL_X509(WOLFSSL_BIO *bio,
|
||||
WOLFSSL_X509 *cert);
|
||||
|
||||
#endif /* WOLFSSL_NGINX */
|
||||
#endif /* OPENSSL_ALL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */
|
||||
|
||||
WOLFSSL_API void wolfSSL_get0_alpn_selected(const WOLFSSL *ssl,
|
||||
const unsigned char **data, unsigned int *len);
|
||||
@ -2818,7 +2884,7 @@ WOLFSSL_API void wolfSSL_get0_next_proto_negotiated(const WOLFSSL *s, const unsi
|
||||
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
#if defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||
WOLFSSL_API const unsigned char *SSL_SESSION_get0_id_context(
|
||||
const WOLFSSL_SESSION *sess, unsigned int *sid_ctx_length);
|
||||
WOLFSSL_API size_t SSL_get_finished(const WOLFSSL *s, void *buf, size_t count);
|
||||
@ -2835,14 +2901,24 @@ WOLFSSL_API int i2t_ASN1_OBJECT(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT *a);
|
||||
WOLFSSL_API void SSL_CTX_set_tmp_dh_callback(WOLFSSL_CTX *ctx, WOLFSSL_DH *(*dh) (WOLFSSL *ssl, int is_export, int keylength));
|
||||
WOLFSSL_API WOLF_STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
|
||||
WOLFSSL_API int X509_STORE_load_locations(WOLFSSL_X509_STORE *ctx, const char *file, const char *dir);
|
||||
WOLFSSL_API int wolfSSL_X509_STORE_add_crl(WOLFSSL_X509_STORE *ctx, WOLFSSL_X509_CRL *x);
|
||||
WOLFSSL_API int wolfSSL_sk_SSL_CIPHER_num(const void * p);
|
||||
WOLFSSL_API int wolfSSL_sk_SSL_COMP_zero(WOLFSSL_STACK* st);
|
||||
WOLFSSL_API WOLFSSL_CIPHER* wolfSSL_sk_SSL_CIPHER_value(void *ciphers, int idx);
|
||||
WOLFSSL_API void ERR_load_SSL_strings(void);
|
||||
WOLFSSL_API void wolfSSL_EC_POINT_dump(const char *msg, const WOLFSSL_EC_POINT *p);
|
||||
|
||||
WOLFSSL_API const char *wolfSSL_ASN1_tag2str(int tag);
|
||||
WOLFSSL_API int wolfSSL_ASN1_STRING_print_ex(WOLFSSL_BIO *out, WOLFSSL_ASN1_STRING *str, unsigned long flags);
|
||||
WOLFSSL_API WOLFSSL_ASN1_TIME *wolfSSL_ASN1_TIME_to_generalizedtime(WOLFSSL_ASN1_TIME *t,
|
||||
WOLFSSL_ASN1_TIME **out);
|
||||
WOLFSSL_API int wolfSSL_i2c_ASN1_INTEGER(WOLFSSL_ASN1_INTEGER *a, unsigned char **pp);
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#ifdef HAVE_PK_CALLBACKS
|
||||
WOLFSSL_API int wolfSSL_CTX_IsPrivatePkSet(WOLFSSL_CTX* ctx);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user