source: azure_iot_hub_f767zi/trunk/wolfssl-4.7.0/wolfssl/openssl/ssl.h@ 464

Last change on this file since 464 was 464, checked in by coas-nagasima, 3 years ago

WolfSSLとAzure IoT SDKを更新

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 66.4 KB
Line 
1/* ssl.h
2 *
3 * Copyright (C) 2006-2020 wolfSSL Inc.
4 *
5 * This file is part of wolfSSL.
6 *
7 * wolfSSL is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * wolfSSL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20 */
21
22
23
24/* ssl.h defines wolfssl_openssl compatibility layer
25 *
26 */
27
28
29#ifndef WOLFSSL_OPENSSL_H_
30#define WOLFSSL_OPENSSL_H_
31
32/* wolfssl_openssl compatibility layer */
33#ifndef OPENSSL_EXTRA_SSL_GUARD
34#define OPENSSL_EXTRA_SSL_GUARD
35#include <wolfssl/ssl.h>
36#endif /* OPENSSL_EXTRA_SSL_GUARD */
37
38#include <wolfssl/openssl/tls1.h>
39#include <wolfssl/openssl/evp.h>
40#include <wolfssl/openssl/bio.h>
41#ifdef OPENSSL_EXTRA
42#include <wolfssl/openssl/crypto.h>
43#endif
44
45#if defined(WOLFSSL_QT) || defined(OPENSSL_ALL)
46#include <wolfssl/openssl/dh.h>
47#include <wolfssl/openssl/objects.h>
48#endif
49
50/* need MIN_CODE_E to determine wolfSSL error range */
51#include <wolfssl/wolfcrypt/error-crypt.h>
52
53/* all NID_* values are in asn.h */
54#include <wolfssl/wolfcrypt/asn.h>
55
56#include <wolfssl/openssl/x509.h>
57
58#ifdef __cplusplus
59 extern "C" {
60#endif
61
62#ifdef _WIN32
63 /* wincrypt.h clashes */
64 #undef X509_NAME
65#endif
66
67#ifdef WOLFSSL_UTASKER
68 /* tcpip.h clashes */
69 #undef ASN1_INTEGER
70#endif
71
72#ifdef OPENSSL_EXTRA
73WOLFSSL_API int wolfSSL_OPENSSL_init_ssl(word64 opts, const OPENSSL_INIT_SETTINGS *settings);
74#endif
75
76typedef WOLFSSL SSL;
77typedef WOLFSSL_SESSION SSL_SESSION;
78typedef WOLFSSL_METHOD SSL_METHOD;
79typedef WOLFSSL_CTX SSL_CTX;
80
81typedef WOLFSSL_X509 X509;
82typedef WOLFSSL_X509 X509_REQ;
83typedef WOLFSSL_X509_NAME X509_NAME;
84typedef WOLFSSL_X509_INFO X509_INFO;
85typedef WOLFSSL_X509_CHAIN X509_CHAIN;
86
87/* STACK_OF(ASN1_OBJECT) */
88typedef WOLFSSL_STACK EXTENDED_KEY_USAGE;
89
90
91/* redeclare guard */
92#define WOLFSSL_TYPES_DEFINED
93
94typedef WOLFSSL_BIO BIO;
95typedef WOLFSSL_BIO_METHOD BIO_METHOD;
96typedef WOLFSSL_CIPHER SSL_CIPHER;
97typedef WOLFSSL_X509_LOOKUP X509_LOOKUP;
98typedef WOLFSSL_X509_LOOKUP_METHOD X509_LOOKUP_METHOD;
99typedef WOLFSSL_X509_CRL X509_CRL;
100typedef WOLFSSL_X509_EXTENSION X509_EXTENSION;
101typedef WOLFSSL_X509_PUBKEY X509_PUBKEY;
102typedef WOLFSSL_X509_ALGOR X509_ALGOR;
103typedef WOLFSSL_ASN1_TIME ASN1_TIME;
104typedef WOLFSSL_ASN1_INTEGER ASN1_INTEGER;
105typedef WOLFSSL_ASN1_OBJECT ASN1_OBJECT;
106typedef WOLFSSL_ASN1_STRING ASN1_STRING;
107typedef WOLFSSL_ASN1_TYPE ASN1_TYPE;
108typedef WOLFSSL_X509_ATTRIBUTE X509_ATTRIBUTE;
109typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING;
110typedef WOLFSSL_dynlock_value CRYPTO_dynlock_value;
111typedef WOLFSSL_BUF_MEM BUF_MEM;
112typedef WOLFSSL_GENERAL_NAMES GENERAL_NAMES;
113typedef WOLFSSL_GENERAL_NAME GENERAL_NAME;
114
115#define X509_L_FILE_LOAD WOLFSSL_X509_L_FILE_LOAD
116#define X509_L_ADD_DIR WOLFSSL_X509_L_ADD_DIR
117#define X509_L_ADD_STORE WOLFSSL_X509_L_ADD_STORE
118#define X509_L_LOAD_STORE WOLFSSL_X509_L_LOAD_STORE
119
120#define ASN1_UTCTIME WOLFSSL_ASN1_TIME
121#define ASN1_GENERALIZEDTIME WOLFSSL_ASN1_TIME
122
123typedef WOLFSSL_COMP_METHOD COMP_METHOD;
124typedef WOLFSSL_COMP SSL_COMP;
125typedef WOLFSSL_X509_REVOKED X509_REVOKED;
126typedef WOLFSSL_X509_OBJECT X509_OBJECT;
127typedef WOLFSSL_X509_STORE X509_STORE;
128typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
129typedef WOLFSSL_X509_VERIFY_PARAM X509_VERIFY_PARAM;
130
131#define EVP_CIPHER_INFO EncryptedInfo
132
133#define STACK_OF(x) WOLFSSL_STACK
134#define OPENSSL_STACK WOLFSSL_STACK
135#define _STACK OPENSSL_STACK
136
137#define CONF_get1_default_config_file wolfSSL_CONF_get1_default_config_file
138typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
139
140#define CRYPTO_free(xp) XFREE(xp, NULL, DYNAMIC_TYPE_TMP_BUFFER)
141#define CRYPTO_malloc(sz) XMALLOC(sz, NULL, DYNAMIC_TYPE_TMP_BUFFER)
142#define CRYPTO_EX_new WOLFSSL_CRYPTO_EX_new
143#define CRYPTO_EX_dup WOLFSSL_CRYPTO_EX_dup
144#define CRYPTO_EX_free WOLFSSL_CRYPTO_EX_free
145#define CRYPTO_EX_DATA WOLFSSL_CRYPTO_EX_DATA
146
147/* depreciated */
148#define CRYPTO_thread_id wolfSSL_thread_id
149#define CRYPTO_set_id_callback wolfSSL_set_id_callback
150
151#define CRYPTO_LOCK 0x01
152#define CRYPTO_UNLOCK 0x02
153#define CRYPTO_READ 0x04
154#define CRYPTO_WRITE 0x08
155
156#define CRYPTO_set_locking_callback wolfSSL_set_locking_callback
157#define CRYPTO_set_dynlock_create_callback wolfSSL_set_dynlock_create_callback
158#define CRYPTO_set_dynlock_lock_callback wolfSSL_set_dynlock_lock_callback
159#define CRYPTO_set_dynlock_destroy_callback wolfSSL_set_dynlock_destroy_callback
160#define CRYPTO_num_locks wolfSSL_num_locks
161#define CRYPTO_dynlock_value WOLFSSL_dynlock_value
162
163#define CRYPTO_cleanup_all_ex_data wolfSSL_cleanup_all_ex_data
164#define set_ex_data wolfSSL_CRYPTO_set_ex_data
165#define get_ex_data wolfSSL_CRYPTO_get_ex_data
166#define CRYPTO_memcmp wolfSSL_CRYPTO_memcmp
167
168/* this function was used to set the default malloc, free, and realloc */
169#define CRYPTO_malloc_init() 0 /* CRYPTO_malloc_init is not needed */
170#define OPENSSL_malloc_init() 0 /* OPENSSL_malloc_init is not needed */
171
172#define SSL_get_client_random(ssl,out,outSz) \
173 wolfSSL_get_client_random((ssl),(out),(outSz))
174#define SSL_get_cipher_list(ctx,i) wolfSSL_get_cipher_list_ex((ctx),(i))
175#define SSL_get_cipher_name(ctx) wolfSSL_get_cipher((ctx))
176#define SSL_get_shared_ciphers(ctx,buf,len) \
177 wolfSSL_get_shared_ciphers((ctx),(buf),(len))
178
179/* at the moment only returns ok */
180#define SSL_get_verify_result wolfSSL_get_verify_result
181#define SSL_get_verify_mode wolfSSL_get_verify_mode
182#define SSL_get_verify_depth wolfSSL_get_verify_depth
183#define SSL_CTX_get_verify_mode wolfSSL_CTX_get_verify_mode
184#define SSL_CTX_get_verify_depth wolfSSL_CTX_get_verify_depth
185#define SSL_get_certificate wolfSSL_get_certificate
186#define SSL_CTX_get0_certificate wolfSSL_CTX_get0_certificate
187#define SSL_use_certificate wolfSSL_use_certificate
188#define SSL_use_certificate_ASN1 wolfSSL_use_certificate_ASN1
189#define d2i_PKCS8_PRIV_KEY_INFO_bio wolfSSL_d2i_PKCS8_PKEY_bio
190#define d2i_PKCS8PrivateKey_bio wolfSSL_d2i_PKCS8PrivateKey_bio
191#define i2d_PKCS8PrivateKey_bio wolfSSL_PEM_write_bio_PKCS8PrivateKey
192#define PKCS8_PRIV_KEY_INFO_free wolfSSL_EVP_PKEY_free
193#define d2i_PKCS12_fp wolfSSL_d2i_PKCS12_fp
194
195#define i2d_PUBKEY wolfSSL_i2d_PUBKEY
196#define d2i_PUBKEY wolfSSL_d2i_PUBKEY
197#define d2i_PUBKEY_bio wolfSSL_d2i_PUBKEY_bio
198#define d2i_PrivateKey wolfSSL_d2i_PrivateKey
199#define d2i_AutoPrivateKey wolfSSL_d2i_AutoPrivateKey
200#define SSL_use_PrivateKey wolfSSL_use_PrivateKey
201#define SSL_use_PrivateKey_ASN1 wolfSSL_use_PrivateKey_ASN1
202#define SSL_use_RSAPrivateKey_ASN1 wolfSSL_use_RSAPrivateKey_ASN1
203#define SSL_get_privatekey wolfSSL_get_privatekey
204#define SSL_CTX_use_PrivateKey_ASN1 wolfSSL_CTX_use_PrivateKey_ASN1
205
206#define SSLv23_method wolfSSLv23_method
207#define SSLv23_client_method wolfSSLv23_client_method
208#define SSLv2_client_method wolfSSLv2_client_method
209#define SSLv2_server_method wolfSSLv2_server_method
210#define SSLv3_server_method wolfSSLv3_server_method
211#define SSLv3_client_method wolfSSLv3_client_method
212#define TLS_client_method wolfTLS_client_method
213#define TLS_server_method wolfTLS_server_method
214#define TLSv1_method wolfTLSv1_method
215#define TLSv1_server_method wolfTLSv1_server_method
216#define TLSv1_client_method wolfTLSv1_client_method
217#define TLSv1_1_method wolfTLSv1_1_method
218#define TLSv1_1_server_method wolfTLSv1_1_server_method
219#define TLSv1_1_client_method wolfTLSv1_1_client_method
220#define TLSv1_2_method wolfTLSv1_2_method
221#define TLSv1_2_server_method wolfTLSv1_2_server_method
222#define TLSv1_2_client_method wolfTLSv1_2_client_method
223#define TLSv1_3_method wolfTLSv1_3_method
224#define TLSv1_3_server_method wolfTLSv1_3_server_method
225#define TLSv1_3_client_method wolfTLSv1_3_client_method
226#define TLS_method wolfSSLv23_method
227
228#define X509_FILETYPE_ASN1 SSL_FILETYPE_ASN1
229
230#define X509_F_X509_CHECK_PRIVATE_KEY 128
231
232#ifdef WOLFSSL_DTLS
233 #define DTLSv1_client_method wolfDTLSv1_client_method
234 #define DTLSv1_server_method wolfDTLSv1_server_method
235 #define DTLSv1_2_client_method wolfDTLSv1_2_client_method
236 #define DTLSv1_2_server_method wolfDTLSv1_2_server_method
237 #define DTLS_method wolfDTLS_method
238#endif
239
240
241#ifndef NO_FILESYSTEM
242 #define SSL_CTX_use_certificate_file wolfSSL_CTX_use_certificate_file
243 #define SSL_CTX_use_PrivateKey_file wolfSSL_CTX_use_PrivateKey_file
244#ifdef WOLFSSL_APACHE_HTTPD
245 #define SSL_CTX_load_verify_locations(ctx,file,path) \
246 wolfSSL_CTX_load_verify_locations_ex(ctx,file,path,\
247 WOLFSSL_LOAD_FLAG_IGNORE_ERR)
248#else
249 #define SSL_CTX_load_verify_locations wolfSSL_CTX_load_verify_locations
250#endif
251 #define SSL_CTX_use_certificate_chain_file wolfSSL_CTX_use_certificate_chain_file
252 #define SSL_CTX_use_RSAPrivateKey_file wolfSSL_CTX_use_RSAPrivateKey_file
253
254 #define SSL_use_certificate_file wolfSSL_use_certificate_file
255 #define SSL_use_PrivateKey_file wolfSSL_use_PrivateKey_file
256 #define SSL_use_certificate_chain_file wolfSSL_use_certificate_chain_file
257 #define SSL_use_RSAPrivateKey_file wolfSSL_use_RSAPrivateKey_file
258#endif
259
260#define SSL_CTX_new(method) wolfSSL_CTX_new((WOLFSSL_METHOD*)(method))
261#ifdef OPENSSL_EXTRA
262#define SSL_CTX_up_ref wolfSSL_CTX_up_ref
263#endif
264#define SSL_new wolfSSL_new
265#define SSL_set_fd wolfSSL_set_fd
266#define SSL_get_fd wolfSSL_get_fd
267#define SSL_connect wolfSSL_connect
268#define SSL_clear wolfSSL_clear
269#define SSL_state wolfSSL_state
270
271#define SSL_write wolfSSL_write
272#define SSL_read wolfSSL_read
273#define SSL_peek wolfSSL_peek
274#define SSL_accept wolfSSL_accept
275#define SSL_CTX_free wolfSSL_CTX_free
276#define SSL_free wolfSSL_free
277#define SSL_shutdown wolfSSL_shutdown
278#define SSL_set_timeout wolfSSL_set_timeout
279
280#define SSL_CTX_set_quiet_shutdown wolfSSL_CTX_set_quiet_shutdown
281#define SSL_set_quiet_shutdown wolfSSL_set_quiet_shutdown
282#define SSL_get_error wolfSSL_get_error
283#define SSL_set_session wolfSSL_set_session
284#define SSL_get_session(x) wolfSSL_get_session((WOLFSSL*) (x))
285#define SSL_SESSION_get0_peer wolfSSL_SESSION_get0_peer
286#define SSL_flush_sessions wolfSSL_flush_sessions
287/* assume unlimited temporarily */
288#define SSL_CTX_get_session_cache_mode(ctx) 0
289
290#define SSL_CTX_set_verify wolfSSL_CTX_set_verify
291#define SSL_CTX_set_cert_verify_callback wolfSSL_CTX_set_cert_verify_callback
292#define SSL_set_verify wolfSSL_set_verify
293#define SSL_set_verify_result wolfSSL_set_verify_result
294#define SSL_verify_client_post_handshake wolfSSL_verify_client_post_handshake
295#define SSL_set_post_handshake_auth wolfSSL_set_post_handshake_auth
296#define SSL_CTX_set_post_handshake_auth wolfSSL_CTX_set_post_handshake_auth
297#define SSL_pending wolfSSL_pending
298#define SSL_load_error_strings wolfSSL_load_error_strings
299#define SSL_library_init wolfSSL_library_init
300#define OPENSSL_init_ssl wolfSSL_OPENSSL_init_ssl
301#define OpenSSL_add_ssl_algorithms wolfSSL_library_init
302#define SSL_CTX_set_session_cache_mode wolfSSL_CTX_set_session_cache_mode
303#define SSL_CTX_set_cipher_list wolfSSL_CTX_set_cipher_list
304#define SSL_CTX_set_ciphersuites wolfSSL_CTX_set_cipher_list
305#define SSL_set_cipher_list wolfSSL_set_cipher_list
306/* wolfSSL does not support security levels */
307#define SSL_CTX_set_security_level(...)
308/* wolfSSL does not support exporting keying material */
309#define SSL_export_keying_material wolfSSL_export_keying_material
310
311#define SSL_CTX_set1_groups wolfSSL_CTX_set1_groups
312#define SSL_set1_groups wolfSSL_set1_groups
313
314#define SSL_CTX_set1_groups_list wolfSSL_CTX_set1_groups_list
315#define SSL_set1_groups_list wolfSSL_set1_groups_list
316
317#define SSL_set_ex_data wolfSSL_set_ex_data
318#define SSL_get_shutdown wolfSSL_get_shutdown
319#define SSL_get_finished wolfSSL_get_finished
320#define SSL_get_peer_finished wolfSSL_get_peer_finished
321#define SSL_set_rfd wolfSSL_set_rfd
322#define SSL_set_wfd wolfSSL_set_wfd
323#define SSL_set_shutdown wolfSSL_set_shutdown
324#define SSL_set_session_id_context wolfSSL_set_session_id_context
325#define SSL_set_connect_state wolfSSL_set_connect_state
326#define SSL_set_accept_state wolfSSL_set_accept_state
327#define SSL_session_reused wolfSSL_session_reused
328#define SSL_SESSION_up_ref wolfSSL_SESSION_up_ref
329#define SSL_SESSION_dup wolfSSL_SESSION_dup
330#define SSL_SESSION_free wolfSSL_SESSION_free
331#define SSL_is_init_finished wolfSSL_is_init_finished
332
333#define SSL_get_version wolfSSL_get_version
334#define SSL_get_current_cipher wolfSSL_get_current_cipher
335
336/* use wolfSSL_get_cipher_name for its return format */
337#define SSL_get_cipher wolfSSL_get_cipher_name
338#define SSL_CIPHER_description wolfSSL_CIPHER_description
339#define SSL_CIPHER_get_name wolfSSL_CIPHER_get_name
340#define SSL_CIPHER_get_version wolfSSL_CIPHER_get_version
341#define SSL_CIPHER_get_id wolfSSL_CIPHER_get_id
342#define SSL_CIPHER_get_rfc_name wolfSSL_CIPHER_get_name
343#define SSL_CIPHER_standard_name wolfSSL_CIPHER_get_name
344#define SSL_get_cipher_by_value wolfSSL_get_cipher_by_value
345
346#define SSL_get1_session wolfSSL_get1_session
347
348#define SSL_get_keyblock_size wolfSSL_get_keyblock_size
349#define SSL_get_keys wolfSSL_get_keys
350#define SSL_SESSION_get_master_key wolfSSL_SESSION_get_master_key
351#define SSL_SESSION_get_master_key_length wolfSSL_SESSION_get_master_key_length
352
353#if defined(WOLFSSL_QT) || defined(OPENSSL_ALL)
354 #define SSL_MODE_RELEASE_BUFFERS 0x00000010U
355 #define ASN1_BOOLEAN WOLFSSL_ASN1_BOOLEAN
356 #define X509_get_ext wolfSSL_X509_get_ext
357 #define X509_get_ext_by_OBJ wolfSSL_X509_get_ext_by_OBJ
358 #define X509_cmp wolfSSL_X509_cmp
359 #define X509_EXTENSION_get_object wolfSSL_X509_EXTENSION_get_object
360 #define X509_EXTENSION_get_critical wolfSSL_X509_EXTENSION_get_critical
361 #define X509_EXTENSION_get_data wolfSSL_X509_EXTENSION_get_data
362 #define X509_EXTENSION_new wolfSSL_X509_EXTENSION_new
363 #define X509_EXTENSION_free wolfSSL_X509_EXTENSION_free
364 #define X509_gmtime_adj wolfSSL_X509_gmtime_adj
365#endif
366
367#define DSA_dup_DH wolfSSL_DSA_dup_DH
368/* wolfSSL does not support DSA as the cert public key */
369#define EVP_PKEY_get0_DSA wolfSSL_EVP_PKEY_get0_DSA
370#define DSA_bits wolfSSL_DSA_bits
371
372#define i2d_X509_bio wolfSSL_i2d_X509_bio
373#define i2d_X509_REQ_bio wolfSSL_i2d_X509_REQ_bio
374#define d2i_X509_bio wolfSSL_d2i_X509_bio
375#define d2i_X509_REQ_bio wolfSSL_d2i_X509_REQ_bio
376#define d2i_X509_fp wolfSSL_d2i_X509_fp
377#define i2d_X509 wolfSSL_i2d_X509
378#define d2i_X509 wolfSSL_d2i_X509
379#define PEM_read_bio_X509 wolfSSL_PEM_read_bio_X509
380#define PEM_read_bio_X509_REQ wolfSSL_PEM_read_bio_X509_REQ
381#define PEM_read_bio_X509_CRL wolfSSL_PEM_read_bio_X509_CRL
382#define PEM_read_bio_X509_AUX wolfSSL_PEM_read_bio_X509_AUX
383#define PEM_read_X509 wolfSSL_PEM_read_X509
384#define PEM_X509_INFO_read_bio wolfSSL_PEM_X509_INFO_read_bio
385#define PEM_write_bio_X509 wolfSSL_PEM_write_bio_X509
386#define PEM_write_bio_X509_AUX wolfSSL_PEM_write_bio_X509_AUX
387#define PEM_X509_INFO_read_bio wolfSSL_PEM_X509_INFO_read_bio
388#define i2d_PrivateKey wolfSSL_i2d_PrivateKey
389
390#define i2d_X509_REQ wolfSSL_i2d_X509_REQ
391#define d2i_X509_REQ wolfSSL_d2i_X509_REQ
392#define X509_REQ_new wolfSSL_X509_REQ_new
393#define X509_REQ_free wolfSSL_X509_REQ_free
394#define X509_REQ_sign wolfSSL_X509_REQ_sign
395#define X509_REQ_sign_ctx wolfSSL_X509_REQ_sign_ctx
396#define X509_REQ_add_extensions wolfSSL_X509_REQ_add_extensions
397#define X509_REQ_add1_attr_by_NID wolfSSL_X509_REQ_add1_attr_by_NID
398#define X509_REQ_add1_attr_by_txt wolfSSL_X509_REQ_add1_attr_by_txt
399#define X509_REQ_get_attr_by_NID wolfSSL_X509_REQ_get_attr_by_NID
400#define X509_REQ_get_attr wolfSSL_X509_REQ_get_attr
401#define X509_ATTRIBUTE_get0_type wolfSSL_X509_ATTRIBUTE_get0_type
402#define X509_to_X509_REQ wolfSSL_X509_to_X509_REQ
403#define X509_REQ_set_subject_name wolfSSL_X509_REQ_set_subject_name
404#define X509_REQ_set_pubkey wolfSSL_X509_REQ_set_pubkey
405#define PEM_write_bio_X509_REQ wolfSSL_PEM_write_bio_X509_REQ
406
407#define X509_new wolfSSL_X509_new
408#define X509_up_ref wolfSSL_X509_up_ref
409#define X509_free wolfSSL_X509_free
410#define X509_load_certificate_file wolfSSL_X509_load_certificate_file
411#define X509_digest wolfSSL_X509_digest
412#define X509_get_ext_count wolfSSL_X509_get_ext_count
413#define X509_get_ext_d2i wolfSSL_X509_get_ext_d2i
414#define X509V3_EXT_i2d wolfSSL_X509V3_EXT_i2d
415#define X509_get0_extensions wolfSSL_X509_get0_extensions
416#define X509_get_extensions wolfSSL_X509_get0_extensions
417#define X509_REQ_get_extensions wolfSSL_X509_REQ_get_extensions
418#define X509_get_ext wolfSSL_X509_get_ext
419#define X509_get_ext_by_NID wolfSSL_X509_get_ext_by_NID
420#define X509_get_issuer_name wolfSSL_X509_get_issuer_name
421#define X509_issuer_name_hash wolfSSL_X509_issuer_name_hash
422#define X509_subject_name_hash wolfSSL_X509_subject_name_hash
423#define X509_get_subject_name wolfSSL_X509_get_subject_name
424#define X509_REQ_get_subject_name wolfSSL_X509_get_subject_name
425#define X509_get_pubkey wolfSSL_X509_get_pubkey
426#define X509_get0_pubkey wolfSSL_X509_get_pubkey
427#define X509_REQ_get_pubkey wolfSSL_X509_get_pubkey
428#define X509_get_notBefore wolfSSL_X509_get_notBefore
429#define X509_get0_notBefore wolfSSL_X509_get_notBefore
430#define X509_get_notAfter wolfSSL_X509_get_notAfter
431#define X509_get0_notAfter wolfSSL_X509_get_notAfter
432#define X509_get_serialNumber wolfSSL_X509_get_serialNumber
433#define X509_get0_pubkey_bitstr wolfSSL_X509_get0_pubkey_bitstr
434#define X509_get_ex_new_index wolfSSL_X509_get_ex_new_index
435#define X509_get_ex_data wolfSSL_X509_get_ex_data
436#define X509_set_ex_data wolfSSL_X509_set_ex_data
437#define X509_get1_ocsp wolfSSL_X509_get1_ocsp
438#ifndef WOLFSSL_HAPROXY
439#define X509_get_version wolfSSL_X509_get_version
440#endif
441#define X509_get_signature_nid wolfSSL_X509_get_signature_nid
442#define X509_set_subject_name wolfSSL_X509_set_subject_name
443#define X509_set_issuer_name wolfSSL_X509_set_issuer_name
444#define X509_set_pubkey wolfSSL_X509_set_pubkey
445#define X509_set_notAfter wolfSSL_X509_set_notAfter
446#define X509_set_notBefore wolfSSL_X509_set_notBefore
447#define X509_set_serialNumber wolfSSL_X509_set_serialNumber
448#define X509_set_version wolfSSL_X509_set_version
449#define X509_REQ_set_version wolfSSL_X509_set_version
450#define X509_sign wolfSSL_X509_sign
451#define X509_sign_ctx wolfSSL_X509_sign_ctx
452#define X509_print wolfSSL_X509_print
453#define X509_REQ_print wolfSSL_X509_print
454#define X509_print_ex wolfSSL_X509_print_ex
455#define X509_print_fp wolfSSL_X509_print_fp
456#define X509_REQ_print_fp wolfSSL_X509_print_fp
457#define X509_signature_print wolfSSL_X509_signature_print
458#define X509_get0_signature wolfSSL_X509_get0_signature
459#define X509_verify_cert_error_string wolfSSL_X509_verify_cert_error_string
460#define X509_verify_cert wolfSSL_X509_verify_cert
461#define X509_verify wolfSSL_X509_verify
462#define X509_REQ_verify wolfSSL_X509_REQ_verify
463#define X509_check_private_key wolfSSL_X509_check_private_key
464#define X509_REQ_check_private_key wolfSSL_X509_check_private_key
465#define X509_check_ca wolfSSL_X509_check_ca
466#define X509_check_host wolfSSL_X509_check_host
467#define X509_check_ip_asc wolfSSL_X509_check_ip_asc
468#define X509_email_free wolfSSL_X509_email_free
469#define X509_check_issued wolfSSL_X509_check_issued
470#define X509_dup wolfSSL_X509_dup
471#define X509_add_ext wolfSSL_X509_add_ext
472#define X509_delete_ext wolfSSL_X509_delete_ext
473
474#define X509_EXTENSION_get_object wolfSSL_X509_EXTENSION_get_object
475#define X509_EXTENSION_get_data wolfSSL_X509_EXTENSION_get_data
476
477#define sk_X509_new wolfSSL_sk_X509_new
478#define sk_X509_new_null wolfSSL_sk_X509_new
479#define sk_X509_num wolfSSL_sk_X509_num
480#define sk_X509_value wolfSSL_sk_X509_value
481#define sk_X509_shift wolfSSL_sk_X509_shift
482#define sk_X509_push wolfSSL_sk_X509_push
483#define sk_X509_pop wolfSSL_sk_X509_pop
484#define sk_X509_pop_free wolfSSL_sk_X509_pop_free
485#define sk_X509_dup wolfSSL_sk_dup
486#define sk_X509_free wolfSSL_sk_X509_free
487
488#define sk_X509_EXTENSION_num wolfSSL_sk_X509_EXTENSION_num
489#define sk_X509_EXTENSION_value wolfSSL_sk_X509_EXTENSION_value
490#define sk_X509_EXTENSION_new_null wolfSSL_sk_X509_EXTENSION_new_null
491#define sk_X509_EXTENSION_pop_free wolfSSL_sk_X509_EXTENSION_pop_free
492#define sk_X509_EXTENSION_push wolfSSL_sk_X509_EXTENSION_push
493
494#define X509_INFO_new wolfSSL_X509_INFO_new
495#define X509_INFO_free wolfSSL_X509_INFO_free
496
497#define sk_X509_INFO_new_null wolfSSL_sk_X509_INFO_new_null
498#define sk_X509_INFO_num wolfSSL_sk_X509_INFO_num
499#define sk_X509_INFO_value wolfSSL_sk_X509_INFO_value
500#define sk_X509_INFO_push wolfSSL_sk_X509_INFO_push
501#define sk_X509_INFO_pop wolfSSL_sk_X509_INFO_pop
502#define sk_X509_INFO_pop_free wolfSSL_sk_X509_INFO_pop_free
503#define sk_X509_INFO_free wolfSSL_sk_X509_INFO_free
504#define sk_X509_INFO_shift wolfSSL_sk_X509_INFO_pop
505
506#define i2d_X509_NAME wolfSSL_i2d_X509_NAME
507#define d2i_X509_NAME wolfSSL_d2i_X509_NAME
508#define X509_NAME_new wolfSSL_X509_NAME_new
509#define X509_NAME_free wolfSSL_X509_NAME_free
510#define X509_NAME_dup wolfSSL_X509_NAME_dup
511#define X509_NAME_get_text_by_NID wolfSSL_X509_NAME_get_text_by_NID
512#define X509_NAME_get_index_by_OBJ wolfSSL_X509_NAME_get_index_by_OBJ
513#define X509_NAME_cmp wolfSSL_X509_NAME_cmp
514#define X509_NAME_ENTRY_new wolfSSL_X509_NAME_ENTRY_new
515#define X509_NAME_ENTRY_free wolfSSL_X509_NAME_ENTRY_free
516#define X509_NAME_ENTRY_create_by_NID wolfSSL_X509_NAME_ENTRY_create_by_NID
517#define X509_NAME_ENTRY_create_by_txt wolfSSL_X509_NAME_ENTRY_create_by_txt
518#define X509_NAME_add_entry wolfSSL_X509_NAME_add_entry
519#define X509_NAME_add_entry_by_txt wolfSSL_X509_NAME_add_entry_by_txt
520#define X509_NAME_add_entry_by_NID wolfSSL_X509_NAME_add_entry_by_NID
521#define X509_NAME_delete_entry wolfSSL_X509_NAME_delete_entry
522#define X509_NAME_oneline wolfSSL_X509_NAME_oneline
523#define X509_NAME_get_index_by_NID wolfSSL_X509_NAME_get_index_by_NID
524#define X509_NAME_print_ex wolfSSL_X509_NAME_print_ex
525#define X509_NAME_print_ex_fp wolfSSL_X509_NAME_print_ex_fp
526#define X509_NAME_digest wolfSSL_X509_NAME_digest
527#define X509_cmp_current_time wolfSSL_X509_cmp_current_time
528#define X509_cmp_time wolfSSL_X509_cmp_time
529#define X509_time_adj wolfSSL_X509_time_adj
530#define X509_time_adj_ex wolfSSL_X509_time_adj_ex
531
532#define sk_ACCESS_DESCRIPTION_num wolfSSL_sk_ACCESS_DESCRIPTION_num
533#define sk_ACCESS_DESCRIPTION_value wolfSSL_sk_ACCESS_DESCRIPTION_value
534
535#define sk_X509_NAME_new wolfSSL_sk_X509_NAME_new
536#define sk_X509_NAME_push wolfSSL_sk_X509_NAME_push
537#define sk_X509_NAME_find wolfSSL_sk_X509_NAME_find
538#define sk_X509_NAME_set_cmp_func wolfSSL_sk_X509_NAME_set_cmp_func
539#define sk_X509_NAME_num wolfSSL_sk_X509_NAME_num
540#define sk_X509_NAME_value wolfSSL_sk_X509_NAME_value
541#define sk_X509_NAME_pop wolfSSL_sk_X509_NAME_pop
542#define sk_X509_NAME_pop_free wolfSSL_sk_X509_NAME_pop_free
543#define sk_X509_NAME_free wolfSSL_sk_X509_NAME_free
544
545typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY;
546
547#define X509_NAME_entry_count wolfSSL_X509_NAME_entry_count
548#define X509_NAME_ENTRY_get_object wolfSSL_X509_NAME_ENTRY_get_object
549#define X509_NAME_get_entry wolfSSL_X509_NAME_get_entry
550#define X509_NAME_ENTRY_get_data wolfSSL_X509_NAME_ENTRY_get_data
551#define X509_NAME_ENTRY_get_object wolfSSL_X509_NAME_ENTRY_get_object
552
553#define X509_V_FLAG_CRL_CHECK WOLFSSL_CRL_CHECK
554#define X509_V_FLAG_CRL_CHECK_ALL WOLFSSL_CRL_CHECKALL
555
556#define X509_V_FLAG_USE_CHECK_TIME WOLFSSL_USE_CHECK_TIME
557#define X509_V_FLAG_NO_CHECK_TIME WOLFSSL_NO_CHECK_TIME
558#define X509_CHECK_FLAG_NO_WILDCARDS WOLFSSL_NO_WILDCARDS
559
560#define X509_STORE_CTX_get_current_cert wolfSSL_X509_STORE_CTX_get_current_cert
561#define X509_STORE_CTX_set_verify_cb wolfSSL_X509_STORE_CTX_set_verify_cb
562#define X509_STORE_CTX_new wolfSSL_X509_STORE_CTX_new
563#define X509_STORE_CTX_free wolfSSL_X509_STORE_CTX_free
564#define X509_STORE_CTX_get_chain wolfSSL_X509_STORE_CTX_get_chain
565#define X509_STORE_CTX_get1_chain wolfSSL_X509_STORE_CTX_get1_chain
566#define X509_STORE_CTX_get0_parent_ctx wolfSSL_X509_STORE_CTX_get0_parent_ctx
567#define X509_STORE_CTX_get_error wolfSSL_X509_STORE_CTX_get_error
568#define X509_STORE_CTX_get_error_depth wolfSSL_X509_STORE_CTX_get_error_depth
569#define X509_STORE_CTX_init wolfSSL_X509_STORE_CTX_init
570#define X509_STORE_CTX_cleanup wolfSSL_X509_STORE_CTX_cleanup
571#define X509_STORE_CTX_set_error wolfSSL_X509_STORE_CTX_set_error
572#define X509_STORE_CTX_set_error_depth wolfSSL_X509_STORE_CTX_set_error_depth
573#define X509_STORE_CTX_get_ex_data wolfSSL_X509_STORE_CTX_get_ex_data
574#define X509_STORE_CTX_set_ex_data wolfSSL_X509_STORE_CTX_set_ex_data
575#define X509_STORE_CTX_set_depth wolfSSL_X509_STORE_CTX_set_depth
576#define X509_STORE_CTX_verify_cb WOLFSSL_X509_STORE_CTX_verify_cb
577#define X509_STORE_CTX_get0_current_issuer \
578 wolfSSL_X509_STORE_CTX_get0_current_issuer
579#define X509_STORE_CTX_get0_store wolfSSL_X509_STORE_CTX_get0_store
580#define X509_STORE_CTX_get0_cert wolfSSL_X509_STORE_CTX_get0_cert
581#define X509_STORE_CTX_trusted_stack wolfSSL_X509_STORE_CTX_trusted_stack
582
583#define X509_STORE_set_verify_cb(s, c) \
584wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_CTX_verify_cb)(c))
585#define X509_STORE_set_verify_cb_func(s, c) \
586wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_CTX_verify_cb)(c))
587
588
589#define X509_STORE_new wolfSSL_X509_STORE_new
590#define X509_STORE_free wolfSSL_X509_STORE_free
591#define X509_STORE_add_lookup wolfSSL_X509_STORE_add_lookup
592#define X509_STORE_add_cert wolfSSL_X509_STORE_add_cert
593#define X509_STORE_add_crl wolfSSL_X509_STORE_add_crl
594#define X509_STORE_set_flags wolfSSL_X509_STORE_set_flags
595#define X509_STORE_get1_certs wolfSSL_X509_STORE_get1_certs
596#define X509_STORE_get_by_subject wolfSSL_X509_STORE_get_by_subject
597#define X509_STORE_CTX_get1_issuer wolfSSL_X509_STORE_CTX_get1_issuer
598#define X509_STORE_CTX_set_time wolfSSL_X509_STORE_CTX_set_time
599#define X509_VERIFY_PARAM_new wolfSSL_X509_VERIFY_PARAM_new
600#define X509_VERIFY_PARAM_free wolfSSL_X509_VERIFY_PARAM_free
601#define X509_VERIFY_PARAM_set_flags wolfSSL_X509_VERIFY_PARAM_set_flags
602#define X509_VERIFY_PARAM_get_flags wolfSSL_X509_VERIFY_PARAM_get_flags
603#define X509_VERIFY_PARAM_clear_flags wolfSSL_X509_VERIFY_PARAM_clear_flags
604#define X509_VERIFY_PARAM_set_hostflags wolfSSL_X509_VERIFY_PARAM_set_hostflags
605#define X509_VERIFY_PARAM_set1_host wolfSSL_X509_VERIFY_PARAM_set1_host
606#define X509_VERIFY_PARAM_set1_ip_asc wolfSSL_X509_VERIFY_PARAM_set1_ip_asc
607#define X509_STORE_load_locations wolfSSL_X509_STORE_load_locations
608
609#define X509_LOOKUP_add_dir wolfSSL_X509_LOOKUP_add_dir
610#define X509_LOOKUP_load_file wolfSSL_X509_LOOKUP_load_file
611#define X509_LOOKUP_hash_dir wolfSSL_X509_LOOKUP_hash_dir
612#define X509_LOOKUP_file wolfSSL_X509_LOOKUP_file
613#define X509_LOOKUP_ctrl wolfSSL_X509_LOOKUP_ctrl
614
615#define d2i_X509_CRL wolfSSL_d2i_X509_CRL
616#define d2i_X509_CRL_fp wolfSSL_d2i_X509_CRL_fp
617#define PEM_read_X509_CRL wolfSSL_PEM_read_X509_CRL
618
619#define X509_CRL_free wolfSSL_X509_CRL_free
620#define X509_CRL_get_lastUpdate wolfSSL_X509_CRL_get_lastUpdate
621#define X509_CRL_get_nextUpdate wolfSSL_X509_CRL_get_nextUpdate
622#define X509_CRL_verify wolfSSL_X509_CRL_verify
623#define X509_CRL_get_REVOKED wolfSSL_X509_CRL_get_REVOKED
624
625#define X509_get_X509_PUBKEY wolfSSL_X509_get_X509_PUBKEY
626#define X509_REQ_get_X509_PUBKEY wolfSSL_X509_get_X509_PUBKEY
627#define X509_get0_tbs_sigalg wolfSSL_X509_get0_tbs_sigalg
628#define X509_PUBKEY_get0_param wolfSSL_X509_PUBKEY_get0_param
629#define X509_PUBKEY_get wolfSSL_X509_PUBKEY_get
630#define X509_PUBKEY_set wolfSSL_X509_PUBKEY_set
631#define X509_ALGOR_get0 wolfSSL_X509_ALGOR_get0
632#define X509_ALGOR_set0 wolfSSL_X509_ALGOR_set0
633
634#define X509_ALGOR_new wolfSSL_X509_ALGOR_new
635#define X509_ALGOR_free wolfSSL_X509_ALGOR_free
636#define X509_PUBKEY_new wolfSSL_X509_PUBKEY_new
637#define X509_PUBKEY_free wolfSSL_X509_PUBKEY_free
638
639#define sk_X509_REVOKED_num wolfSSL_sk_X509_REVOKED_num
640#define sk_X509_REVOKED_value wolfSSL_sk_X509_REVOKED_value
641
642#define X509_OBJECT_free_contents wolfSSL_X509_OBJECT_free_contents
643
644#define X509_check_purpose(...) 0
645
646#define OCSP_parse_url wolfSSL_OCSP_parse_url
647
648#define MD4_Init wolfSSL_MD4_Init
649#define MD4_Update wolfSSL_MD4_Update
650#define MD4_Final wolfSSL_MD4_Final
651
652#define BIO_new wolfSSL_BIO_new
653#define BIO_free wolfSSL_BIO_free
654#define BIO_vfree wolfSSL_BIO_vfree
655#define BIO_free_all wolfSSL_BIO_free_all
656#define BIO_nread0 wolfSSL_BIO_nread0
657#define BIO_nread wolfSSL_BIO_nread
658#define BIO_read wolfSSL_BIO_read
659#define BIO_nwrite0 wolfSSL_BIO_nwrite0
660#define BIO_nwrite wolfSSL_BIO_nwrite
661#define BIO_write wolfSSL_BIO_write
662#define BIO_push wolfSSL_BIO_push
663#define BIO_pop wolfSSL_BIO_pop
664#define BIO_flush wolfSSL_BIO_flush
665#define BIO_pending wolfSSL_BIO_pending
666
667#define BIO_get_mem_data wolfSSL_BIO_get_mem_data
668#define BIO_new_mem_buf wolfSSL_BIO_new_mem_buf
669
670#define BIO_f_buffer wolfSSL_BIO_f_buffer
671#define BIO_set_write_buffer_size wolfSSL_BIO_set_write_buffer_size
672#define BIO_f_ssl wolfSSL_BIO_f_ssl
673#define BIO_new_socket wolfSSL_BIO_new_socket
674#ifndef NO_WOLFSSL_STUB
675#define BIO_new_connect wolfSSL_BIO_new_connect
676#define BIO_set_conn_port wolfSSL_BIO_set_conn_port
677#define BIO_do_connect wolfSSL_BIO_do_connect
678#endif
679#define SSL_set_bio wolfSSL_set_bio
680#define BIO_set_ssl wolfSSL_BIO_set_ssl
681#define BIO_eof wolfSSL_BIO_eof
682#define BIO_set_ss wolfSSL_BIO_set_ss
683
684#define BIO_f_md wolfSSL_BIO_f_md
685#define BIO_get_md_ctx wolfSSL_BIO_get_md_ctx
686#define BIO_s_mem wolfSSL_BIO_s_mem
687#define BIO_f_base64 wolfSSL_BIO_f_base64
688#define BIO_set_flags wolfSSL_BIO_set_flags
689#define BIO_set_nbio wolfSSL_BIO_set_nbio
690
691#define SSLeay_add_ssl_algorithms wolfSSL_add_all_algorithms
692#define SSLeay_add_all_algorithms wolfSSL_add_all_algorithms
693
694#define RAND_screen wolfSSL_RAND_screen
695#define RAND_file_name wolfSSL_RAND_file_name
696#define RAND_write_file wolfSSL_RAND_write_file
697#define RAND_load_file wolfSSL_RAND_load_file
698#define RAND_egd wolfSSL_RAND_egd
699#define RAND_seed wolfSSL_RAND_seed
700#define RAND_cleanup wolfSSL_RAND_Cleanup
701#define RAND_add wolfSSL_RAND_add
702#define RAND_poll wolfSSL_RAND_poll
703#define RAND_status wolfSSL_RAND_status
704#define RAND_bytes wolfSSL_RAND_bytes
705#define RAND_pseudo_bytes wolfSSL_RAND_pseudo_bytes
706
707#define COMP_zlib wolfSSL_COMP_zlib
708#define COMP_rle wolfSSL_COMP_rle
709#define SSL_COMP_add_compression_method wolfSSL_COMP_add_compression_method
710
711#define SSL_get_ex_new_index wolfSSL_get_ex_new_index
712#define RSA_get_ex_new_index wolfSSL_get_ex_new_index
713
714#define ASN1_BIT_STRING_new wolfSSL_ASN1_BIT_STRING_new
715#define ASN1_BIT_STRING_free wolfSSL_ASN1_BIT_STRING_free
716#define ASN1_BIT_STRING_get_bit wolfSSL_ASN1_BIT_STRING_get_bit
717#define ASN1_BIT_STRING_set_bit wolfSSL_ASN1_BIT_STRING_set_bit
718
719#define sk_ASN1_OBJECT_free wolfSSL_sk_ASN1_OBJECT_free
720
721#define ASN1_TIME_new wolfSSL_ASN1_TIME_new
722#define ASN1_UTCTIME_new wolfSSL_ASN1_TIME_new
723#define ASN1_TIME_free wolfSSL_ASN1_TIME_free
724#define ASN1_UTCTIME_free wolfSSL_ASN1_TIME_free
725#define ASN1_TIME_adj wolfSSL_ASN1_TIME_adj
726#define ASN1_TIME_print wolfSSL_ASN1_TIME_print
727#define ASN1_TIME_to_generalizedtime wolfSSL_ASN1_TIME_to_generalizedtime
728#define ASN1_TIME_set wolfSSL_ASN1_TIME_set
729#define ASN1_TIME_set_string wolfSSL_ASN1_TIME_set_string
730#define ASN1_TIME_to_string wolfSSL_ASN1_TIME_to_string
731#define ASN1_GENERALIZEDTIME_print wolfSSL_ASN1_GENERALIZEDTIME_print
732#define ASN1_GENERALIZEDTIME_free wolfSSL_ASN1_GENERALIZEDTIME_free
733
734#define ASN1_tag2str wolfSSL_ASN1_tag2str
735
736#define a2i_ASN1_INTEGER wolfSSL_a2i_ASN1_INTEGER
737#define i2a_ASN1_INTEGER wolfSSL_i2a_ASN1_INTEGER
738#define i2c_ASN1_INTEGER wolfSSL_i2c_ASN1_INTEGER
739#define ASN1_INTEGER_new wolfSSL_ASN1_INTEGER_new
740#define ASN1_INTEGER_free wolfSSL_ASN1_INTEGER_free
741#define ASN1_INTEGER_cmp wolfSSL_ASN1_INTEGER_cmp
742#define ASN1_INTEGER_get wolfSSL_ASN1_INTEGER_get
743#define ASN1_INTEGER_set wolfSSL_ASN1_INTEGER_set
744#define ASN1_INTEGER_to_BN wolfSSL_ASN1_INTEGER_to_BN
745
746#define i2a_ASN1_OBJECT wolfSSL_i2a_ASN1_OBJECT
747#define i2d_ASN1_OBJECT wolfSSL_i2d_ASN1_OBJECT
748
749#define ASN1_STRING_new wolfSSL_ASN1_STRING_new
750#define ASN1_STRING_free wolfSSL_ASN1_STRING_free
751#define ASN1_STRING_cmp wolfSSL_ASN1_STRING_cmp
752#define ASN1_STRING_data wolfSSL_ASN1_STRING_data
753#define ASN1_STRING_get0_data wolfSSL_ASN1_STRING_data
754#define ASN1_STRING_length wolfSSL_ASN1_STRING_length
755#define ASN1_STRING_to_UTF8 wolfSSL_ASN1_STRING_to_UTF8
756#define ASN1_UNIVERSALSTRING_to_string wolfSSL_ASN1_UNIVERSALSTRING_to_string
757#define ASN1_STRING_print_ex wolfSSL_ASN1_STRING_print_ex
758#define ASN1_STRING_print(x, y) wolfSSL_ASN1_STRING_print ((WOLFSSL_BIO*)(x), (WOLFSSL_ASN1_STRING*)(y))
759#define d2i_DISPLAYTEXT wolfSSL_d2i_DISPLAYTEXT
760#ifndef NO_WOLFSSL_STUB
761#define ASN1_STRING_set_default_mask_asc(...) 1
762#endif
763
764#define ASN1_PRINTABLE_type(...) V_ASN1_PRINTABLESTRING
765
766#define ASN1_UTCTIME_pr wolfSSL_ASN1_UTCTIME_pr
767
768#define ASN1_IA5STRING WOLFSSL_ASN1_STRING
769
770#define ASN1_OCTET_STRING WOLFSSL_ASN1_STRING
771#define ASN1_BOOLEAN WOLFSSL_ASN1_BOOLEAN
772
773#define SSL_load_client_CA_file wolfSSL_load_client_CA_file
774
775#define SSL_CTX_get_client_CA_list wolfSSL_CTX_get_client_CA_list
776#define SSL_CTX_set_client_CA_list wolfSSL_CTX_set_client_CA_list
777#define SSL_CTX_set_client_cert_cb wolfSSL_CTX_set_client_cert_cb
778#define SSL_CTX_set_cert_store wolfSSL_CTX_set_cert_store
779#define SSL_CTX_get_cert_store(x) wolfSSL_CTX_get_cert_store ((WOLFSSL_CTX*) (x))
780#define SSL_get_client_CA_list wolfSSL_get_client_CA_list
781#define SSL_get_ex_data_X509_STORE_CTX_idx wolfSSL_get_ex_data_X509_STORE_CTX_idx
782#define SSL_get_ex_data wolfSSL_get_ex_data
783
784#define SSL_CTX_set_default_passwd_cb_userdata wolfSSL_CTX_set_default_passwd_cb_userdata
785#define SSL_CTX_set_default_passwd_cb wolfSSL_CTX_set_default_passwd_cb
786
787#define SSL_CTX_set_timeout(ctx, to) \
788 wolfSSL_CTX_set_timeout(ctx, (unsigned int) to)
789#define SSL_CTX_set_info_callback wolfSSL_CTX_set_info_callback
790#define SSL_CTX_set_alpn_protos wolfSSL_CTX_set_alpn_protos
791
792#define SSL_alert_type_string wolfSSL_alert_type_string
793#define SSL_alert_desc_string wolfSSL_alert_desc_string
794#define SSL_state_string wolfSSL_state_string
795
796#define RSA_free wolfSSL_RSA_free
797#define RSA_generate_key wolfSSL_RSA_generate_key
798#define SSL_CTX_set_tmp_rsa_callback wolfSSL_CTX_set_tmp_rsa_callback
799#define RSA_print wolfSSL_RSA_print
800#define RSA_bits wolfSSL_RSA_size
801#define RSA_up_ref wolfSSL_RSA_up_ref
802#define RSA_padding_add_PKCS1_PSS wolfSSL_RSA_padding_add_PKCS1_PSS
803#define RSA_verify_PKCS1_PSS wolfSSL_RSA_verify_PKCS1_PSS
804
805#define PEM_def_callback wolfSSL_PEM_def_callback
806
807#define SSL_CTX_sess_accept wolfSSL_CTX_sess_accept
808#define SSL_CTX_sess_connect wolfSSL_CTX_sess_connect
809#define SSL_CTX_sess_accept_good wolfSSL_CTX_sess_accept_good
810#define SSL_CTX_sess_connect_good wolfSSL_CTX_sess_connect_good
811#define SSL_CTX_sess_accept_renegotiate wolfSSL_CTX_sess_accept_renegotiate
812#define SSL_CTX_sess_connect_renegotiate wolfSSL_CTX_sess_connect_renegotiate
813#define SSL_CTX_sess_hits wolfSSL_CTX_sess_hits
814#define SSL_CTX_sess_cb_hits wolfSSL_CTX_sess_cb_hits
815#define SSL_CTX_sess_cache_full wolfSSL_CTX_sess_cache_full
816#define SSL_CTX_sess_misses wolfSSL_CTX_sess_misses
817#define SSL_CTX_sess_timeouts wolfSSL_CTX_sess_timeouts
818#define SSL_CTX_sess_number wolfSSL_CTX_sess_number
819#define SSL_CTX_sess_get_cache_size wolfSSL_CTX_sess_get_cache_size
820
821
822#define SSL_DEFAULT_CIPHER_LIST WOLFSSL_DEFAULT_CIPHER_LIST
823
824#define SSL_CTX_set_psk_client_callback wolfSSL_CTX_set_psk_client_callback
825#define SSL_set_psk_client_callback wolfSSL_set_psk_client_callback
826
827#define SSL_get_psk_identity_hint wolfSSL_get_psk_identity_hint
828#define SSL_get_psk_identity wolfSSL_get_psk_identity
829
830#define SSL_CTX_use_psk_identity_hint wolfSSL_CTX_use_psk_identity_hint
831#define SSL_use_psk_identity_hint wolfSSL_use_psk_identity_hint
832
833#define SSL_CTX_set_psk_server_callback wolfSSL_CTX_set_psk_server_callback
834#define SSL_set_psk_server_callback wolfSSL_set_psk_server_callback
835
836/* system file ints for ERR_put_error */
837#define SYS_F_ACCEPT WOLFSSL_SYS_ACCEPT
838#define SYS_F_BIND WOLFSSL_SYS_BIND
839#define SYS_F_CONNECT WOLFSSL_SYS_CONNECT
840#define SYS_F_FOPEN WOLFSSL_SYS_FOPEN
841#define SYS_F_FREAD WOLFSSL_SYS_FREAD
842#define SYS_F_GETADDRINFO WOLFSSL_SYS_GETADDRINFO
843#define SYS_F_GETSOCKOPT WOLFSSL_SYS_GETSOCKOPT
844#define SYS_F_GETSOCKNAME WOLFSSL_SYS_GETSOCKNAME
845#define SYS_F_OPENDIR WOLFSSL_SYS_OPENDIR
846#define SYS_F_SETSOCKOPT WOLFSSL_SYS_SETSOCKOPT
847#define SYS_F_SOCKET WOLFSSL_SYS_SOCKET
848#define SYS_F_GETHOSTBYNAME WOLFSSL_SYS_GETHOSTBYNAME
849#define SYS_F_GETNAMEINFO WOLFSSL_SYS_GETNAMEINFO
850#define SYS_F_GETSERVBYNAME WOLFSSL_SYS_GETSERVBYNAME
851#define SYS_F_IOCTLSOCKET WOLFSSL_SYS_IOCTLSOCKET
852#define SYS_F_LISTEN WOLFSSL_SYS_LISTEN
853
854#define ERR_GET_LIB wolfSSL_ERR_GET_LIB
855#define ERR_GET_REASON wolfSSL_ERR_GET_REASON
856
857#define ERR_put_error wolfSSL_ERR_put_error
858#define ERR_peek_error wolfSSL_ERR_peek_error
859#define ERR_peek_errors_fp wolfSSL_ERR_peek_errors_fp
860#define ERR_peek_error_line_data wolfSSL_ERR_peek_error_line_data
861#define ERR_peek_last_error wolfSSL_ERR_peek_last_error
862#define ERR_peek_last_error_line wolfSSL_ERR_peek_last_error_line
863#define ERR_get_error_line wolfSSL_ERR_get_error_line
864#define ERR_get_error_line_data wolfSSL_ERR_get_error_line_data
865#define ERR_get_error wolfSSL_ERR_get_error
866#define ERR_print_errors_fp(file) wolfSSL_ERR_dump_errors_fp((file))
867#define ERR_print_errors_cb wolfSSL_ERR_print_errors_cb
868#define ERR_print_errors wolfSSL_ERR_print_errors
869#define ERR_clear_error wolfSSL_ERR_clear_error
870#define ERR_free_strings wolfSSL_ERR_free_strings
871#define ERR_remove_state wolfSSL_ERR_remove_state
872#define ERR_remove_thread_state wolfSSL_ERR_remove_thread_state
873#define ERR_error_string wolfSSL_ERR_error_string
874#define ERR_error_string_n wolfSSL_ERR_error_string_n
875#define ERR_reason_error_string wolfSSL_ERR_reason_error_string
876#define ERR_load_BIO_strings wolfSSL_ERR_load_BIO_strings
877
878#ifndef WOLFCRYPT_ONLY
879#define PEMerr(func, reason) wolfSSL_ERR_put_error(ERR_LIB_PEM, \
880 (func), (reason), __FILE__, __LINE__)
881#else
882#define PEMerr(func, reason) WOLFSSL_ERROR_LINE((reason), \
883 NULL, __LINE__, __FILE__, NULL)
884#endif
885#ifndef WOLFCRYPT_ONLY
886#define EVPerr(func, reason) wolfSSL_ERR_put_error(ERR_LIB_EVP, \
887 (func), (reason), __FILE__, __LINE__)
888#else
889#define EVPerr(func, reason) WOLFSSL_ERROR_LINE((reason), \
890 NULL, __LINE__, __FILE__, NULL)
891#endif
892
893#define SSLv23_server_method wolfSSLv23_server_method
894#define SSL_CTX_set_options wolfSSL_CTX_set_options
895#define SSL_CTX_get_options wolfSSL_CTX_get_options
896#define SSL_CTX_clear_options wolfSSL_CTX_clear_options
897
898#define SSL_CTX_check_private_key wolfSSL_CTX_check_private_key
899#define SSL_check_private_key wolfSSL_check_private_key
900
901#define SSL_CTX_set_mode wolfSSL_CTX_set_mode
902#define SSL_CTX_get_mode wolfSSL_CTX_get_mode
903#define SSL_CTX_set_default_read_ahead wolfSSL_CTX_set_default_read_ahead
904
905#define SSL_CTX_sess_set_cache_size wolfSSL_CTX_sess_set_cache_size
906#define SSL_CTX_set_default_verify_paths wolfSSL_CTX_set_default_verify_paths
907
908#define SSL_CTX_set_session_id_context wolfSSL_CTX_set_session_id_context
909#define SSL_get_peer_certificate wolfSSL_get_peer_certificate
910#define SSL_get_peer_cert_chain wolfSSL_get_peer_cert_chain
911
912#define SSL_want wolfSSL_want
913#define SSL_want_read wolfSSL_want_read
914#define SSL_want_write wolfSSL_want_write
915
916#define BIO_prf wolfSSL_BIO_prf
917
918#define sk_num wolfSSL_sk_num
919#define sk_ASN1_OBJECT_num wolfSSL_sk_num
920#define sk_value wolfSSL_sk_value
921#define sk_ASN1_OBJECT_value wolfSSL_sk_value
922
923#define d2i_PKCS12_bio wolfSSL_d2i_PKCS12_bio
924#define d2i_PKCS12_fp wolfSSL_d2i_PKCS12_fp
925#define i2d_PKCS12_bio wolfSSL_i2d_PKCS12_bio
926
927#define d2i_RSAPublicKey wolfSSL_d2i_RSAPublicKey
928#define d2i_RSAPrivateKey wolfSSL_d2i_RSAPrivateKey
929#define i2d_RSAPrivateKey wolfSSL_i2d_RSAPrivateKey
930#define i2d_RSAPublicKey wolfSSL_i2d_RSAPublicKey
931
932#define SSL_CTX_get_ex_data wolfSSL_CTX_get_ex_data
933#define SSL_CTX_set_ex_data wolfSSL_CTX_set_ex_data
934#define SSL_CTX_sess_set_get_cb wolfSSL_CTX_sess_set_get_cb
935#define SSL_CTX_sess_set_new_cb wolfSSL_CTX_sess_set_new_cb
936#define SSL_CTX_sess_set_remove_cb wolfSSL_CTX_sess_set_remove_cb
937
938#define i2d_SSL_SESSION wolfSSL_i2d_SSL_SESSION
939#define d2i_SSL_SESSION wolfSSL_d2i_SSL_SESSION
940#define SSL_SESSION_set_timeout wolfSSL_SSL_SESSION_set_timeout
941#define SSL_SESSION_get_timeout wolfSSL_SESSION_get_timeout
942#define SSL_SESSION_get_time wolfSSL_SESSION_get_time
943
944#define SSL_CTX_get_ex_new_index wolfSSL_CTX_get_ex_new_index
945#define PEM_read wolfSSL_PEM_read
946#define PEM_write wolfSSL_PEM_write
947#define PEM_get_EVP_CIPHER_INFO wolfSSL_PEM_get_EVP_CIPHER_INFO
948#define PEM_do_header wolfSSL_PEM_do_header
949
950/*#if OPENSSL_API_COMPAT < 0x10100000L*/
951#define CONF_modules_free()
952#define ENGINE_cleanup()
953#define SSL_CTX_need_tmp_RSA(ctx) 0
954#define SSL_CTX_set_tmp_rsa(ctx,rsa) 1
955#define SSL_need_tmp_RSA(ssl) 0
956#define SSL_set_tmp_rsa(ssl,rsa) 1
957/*#endif*/
958
959#define CONF_modules_unload(a)
960#define CONF_get1_default_config_file wolfSSL_CONF_get1_default_config_file
961
962#define SSL_get_hit wolfSSL_session_reused
963
964/* yassl had set the default to be 500 */
965#define SSL_get_default_timeout(ctx) 500
966
967#define DTLSv1_get_timeout(ssl, timeleft) wolfSSL_DTLSv1_get_timeout((ssl), (WOLFSSL_TIMEVAL*)(timeleft))
968#define DTLSv1_handle_timeout wolfSSL_DTLSv1_handle_timeout
969#define DTLSv1_set_initial_timeout_duration wolfSSL_DTLSv1_set_initial_timeout_duration
970
971#ifndef NO_WOLFSSL_STUB
972#define SSL_CTX_set_current_time_cb(ssl, cb) ({ (void)ssl; (void)cb; })
973#endif
974
975#define SSL_CTX_use_certificate wolfSSL_CTX_use_certificate
976#define SSL_CTX_add1_chain_cert wolfSSL_CTX_add1_chain_cert
977#define SSL_CTX_use_PrivateKey wolfSSL_CTX_use_PrivateKey
978#define BIO_read_filename wolfSSL_BIO_read_filename
979#define SSL_CTX_set_verify_depth wolfSSL_CTX_set_verify_depth
980#define SSL_set_verify_depth wolfSSL_set_verify_depth
981#define SSL_get_app_data wolfSSL_get_app_data
982#define SSL_set_app_data wolfSSL_set_app_data
983#define SHA1 wolfSSL_SHA1
984
985#define SSL_dup_CA_list wolfSSL_dup_CA_list
986
987#define sk_X509_NAME_find wolfSSL_sk_X509_NAME_find
988
989#define DHparams_dup wolfSSL_DH_dup
990#define PEM_read_bio_DHparams wolfSSL_PEM_read_bio_DHparams
991#define PEM_read_bio_DSAparams wolfSSL_PEM_read_bio_DSAparams
992
993#if defined(OPENSSL_ALL) || defined(WOLFSSL_HAPROXY)
994#define SSL_get_rbio wolfSSL_SSL_get_rbio
995#define SSL_get_wbio wolfSSL_SSL_get_wbio
996#define SSL_do_handshake wolfSSL_SSL_do_handshake
997#define SSL_get_ciphers(x) wolfSSL_get_ciphers_compat(x)
998#define SSL_SESSION_get_id wolfSSL_SESSION_get_id
999#define SSL_get_cipher_bits(s,np) \
1000 wolfSSL_CIPHER_get_bits(SSL_get_current_cipher(s),np)
1001#define sk_SSL_CIPHER_num wolfSSL_sk_SSL_CIPHER_num
1002#define sk_SSL_COMP_zero wolfSSL_sk_SSL_COMP_zero
1003#define sk_SSL_CIPHER_value wolfSSL_sk_SSL_CIPHER_value
1004#endif /* OPENSSL_ALL || WOLFSSL_HAPROXY */
1005#define sk_SSL_CIPHER_dup wolfSSL_sk_dup
1006#define sk_SSL_CIPHER_free wolfSSL_sk_SSL_CIPHER_free
1007#define sk_SSL_CIPHER_find wolfSSL_sk_SSL_CIPHER_find
1008
1009#if defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO) || defined(WOLFSSL_HAPROXY) \
1010 || defined(WOLFSSL_NGINX)
1011#include <wolfssl/openssl/pem.h>
1012
1013#define SSL_CTRL_CHAIN 88
1014#define ERR_LIB_SSL 20
1015#define SSL_R_SHORT_READ 10
1016#define ERR_R_PEM_LIB 9
1017#define SSL_CTRL_MODE 33
1018
1019#define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83
1020
1021#define SSL_CTX_clear_chain_certs(ctx) SSL_CTX_set0_chain(ctx,NULL)
1022#define d2i_RSAPrivateKey_bio wolfSSL_d2i_RSAPrivateKey_bio
1023#define SSL_CTX_use_RSAPrivateKey wolfSSL_CTX_use_RSAPrivateKey
1024#define d2i_PrivateKey_bio wolfSSL_d2i_PrivateKey_bio
1025#define BIO_new_bio_pair wolfSSL_BIO_new_bio_pair
1026#define SSL_get_verify_callback wolfSSL_get_verify_callback
1027
1028#define SSL_set_mode(ssl,op) wolfSSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL)
1029
1030#define SSL_CTX_use_certificate_ASN1 wolfSSL_CTX_use_certificate_ASN1
1031#define SSL_CTX_set0_chain(ctx,sk) \
1032 wolfSSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk))
1033#define SSL_CTX_get_app_data(ctx) wolfSSL_CTX_get_ex_data(ctx,0)
1034#define SSL_CTX_set_app_data(ctx,arg) wolfSSL_CTX_set_ex_data(ctx,0, \
1035 (char *)(arg))
1036#endif /* OPENSSL_ALL || WOLFSSL_ASIO || WOLFSSL_HAPROXY */
1037
1038#define SSL_CTX_set_tmp_dh wolfSSL_CTX_set_tmp_dh
1039
1040#define TLSEXT_STATUSTYPE_ocsp 1
1041
1042#define SSL_set_options wolfSSL_set_options
1043#define SSL_get_options wolfSSL_get_options
1044#define SSL_clear_options wolfSSL_clear_options
1045#define SSL_set_tmp_dh wolfSSL_set_tmp_dh
1046#define SSL_clear_num_renegotiations wolfSSL_clear_num_renegotiations
1047#define SSL_total_renegotiations wolfSSL_total_renegotiations
1048#define SSL_num_renegotiations wolfSSL_num_renegotiations
1049#define SSL_renegotiate wolfSSL_Rehandshake
1050#define SSL_get_secure_renegotiation_support wolfSSL_SSL_get_secure_renegotiation_support
1051#define SSL_renegotiate_pending wolfSSL_SSL_renegotiate_pending
1052#define SSL_set_tlsext_debug_arg wolfSSL_set_tlsext_debug_arg
1053#define SSL_set_tlsext_status_type wolfSSL_set_tlsext_status_type
1054#define SSL_set_tlsext_status_exts wolfSSL_set_tlsext_status_exts
1055#define SSL_get_tlsext_status_ids wolfSSL_get_tlsext_status_ids
1056#define SSL_set_tlsext_status_ids wolfSSL_set_tlsext_status_ids
1057#define SSL_get_tlsext_status_ocsp_res wolfSSL_get_tlsext_status_ocsp_resp
1058#define SSL_set_tlsext_status_ocsp_res wolfSSL_set_tlsext_status_ocsp_resp
1059#define SSL_set_tlsext_status_ocsp_resp wolfSSL_set_tlsext_status_ocsp_resp
1060#define SSL_get_tlsext_status_ocsp_resp wolfSSL_get_tlsext_status_ocsp_resp
1061
1062#define SSL_CTX_add_extra_chain_cert wolfSSL_CTX_add_extra_chain_cert
1063#define SSL_CTX_get_read_ahead wolfSSL_CTX_get_read_ahead
1064#define SSL_CTX_set_read_ahead wolfSSL_CTX_set_read_ahead
1065#define SSL_CTX_set_tlsext_status_arg wolfSSL_CTX_set_tlsext_status_arg
1066#define SSL_CTX_set_tlsext_opaque_prf_input_callback_arg \
1067 wolfSSL_CTX_set_tlsext_opaque_prf_input_callback_arg
1068#define SSL_get_server_random wolfSSL_get_server_random
1069#define SSL_get_server_tmp_key wolfSSL_get_server_tmp_key
1070
1071#define SSL_CTX_set_min_proto_version wolfSSL_CTX_set_min_proto_version
1072#define SSL_CTX_set_max_proto_version wolfSSL_CTX_set_max_proto_version
1073
1074#define SSL_get_tlsext_status_exts wolfSSL_get_tlsext_status_exts
1075
1076#define SSL_CTX_get_tlsext_ticket_keys wolfSSL_CTX_get_tlsext_ticket_keys
1077#define SSL_CTX_set_tlsext_ticket_keys wolfSSL_CTX_set_tlsext_ticket_keys
1078
1079#define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11
1080#define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12
1081#define SSL_CTRL_SET_TMP_DH 3
1082#define SSL_CTRL_SET_TMP_ECDH 4
1083#define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57
1084#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65
1085#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66
1086#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67
1087#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68
1088#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69
1089#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70
1090#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71
1091
1092#define SSL_CTRL_EXTRA_CHAIN_CERT 14
1093#define SSL_CTRL_OPTIONS 32
1094
1095#define SSL_CTRL_SET_SESS_CACHE_SIZE 42
1096#define SSL_CTRL_GET_READ_AHEAD 40
1097#define SSL_CTRL_SET_READ_AHEAD 41
1098
1099#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63
1100#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64
1101
1102#define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82
1103#define SSL_CTRL_GET_SESSION_REUSED 0
1104
1105#define SSL_ctrl wolfSSL_ctrl
1106#define SSL_CTX_ctrl wolfSSL_CTX_ctrl
1107#define SSL_CTX_callback_ctrl wolfSSL_CTX_callback_ctrl
1108
1109#define SSL3_RANDOM_SIZE 32 /* same as RAN_LEN in internal.h */
1110
1111#define SSL2_VERSION 0x0002
1112#define SSL3_VERSION 0x0300
1113#define TLS1_VERSION 0x0301
1114#define TLS1_1_VERSION 0x0302
1115#define TLS1_2_VERSION 0x0303
1116#define TLS1_3_VERSION 0x0304
1117#define DTLS1_VERSION 0xFEFF
1118#define DTLS1_2_VERSION 0xFEFD
1119
1120#if defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || defined(OPENSSL_EXTRA) \
1121 || defined(OPENSSL_ALL)
1122#include <wolfssl/openssl/asn1.h>
1123
1124#define SSL23_ST_SR_CLNT_HELLO_A (0x210|0x2000)
1125#define SSL3_ST_SR_CLNT_HELLO_A (0x110|0x2000)
1126
1127#define SSL3_AD_BAD_CERTIFICATE bad_certificate
1128#define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE
1129
1130#define ASN1_STRFLGS_ESC_MSB 4
1131
1132#define SSL_MAX_MASTER_KEY_LENGTH WOLFSSL_MAX_MASTER_KEY_LENGTH
1133
1134#define SSL_alert_desc_string_long wolfSSL_alert_desc_string_long
1135#define SSL_alert_type_string_long wolfSSL_alert_type_string_long
1136#define SSL_CIPHER_get_bits wolfSSL_CIPHER_get_bits
1137#define sk_GENERAL_NAME_num wolfSSL_sk_GENERAL_NAME_num
1138#define SSL_CTX_get_options wolfSSL_CTX_get_options
1139
1140#define SSL_CTX_flush_sessions wolfSSL_flush_sessions
1141#define SSL_CTX_add_session wolfSSL_CTX_add_session
1142#define SSL_version(x) wolfSSL_version ((WOLFSSL*) (x))
1143#define SSL_get_state wolfSSL_get_state
1144#define SSL_state_string_long wolfSSL_state_string_long
1145
1146#define GENERAL_NAME_new wolfSSL_GENERAL_NAME_new
1147#define GENERAL_NAME_free wolfSSL_GENERAL_NAME_free
1148#define sk_GENERAL_NAME_push wolfSSL_sk_GENERAL_NAME_push
1149#define sk_GENERAL_NAME_value wolfSSL_sk_GENERAL_NAME_value
1150#define SSL_SESSION_get_ex_data wolfSSL_SESSION_get_ex_data
1151#define SSL_SESSION_set_ex_data wolfSSL_SESSION_set_ex_data
1152#define SSL_SESSION_get_ex_new_index wolfSSL_SESSION_get_ex_new_index
1153#define SSL_SESSION_get_id wolfSSL_SESSION_get_id
1154#define SSL_SESSION_print wolfSSL_SESSION_print
1155#define sk_GENERAL_NAME_pop_free wolfSSL_sk_GENERAL_NAME_pop_free
1156#define sk_GENERAL_NAME_free wolfSSL_sk_GENERAL_NAME_free
1157#define sk_ASN1_OBJECT_pop_free wolfSSL_sk_ASN1_OBJECT_pop_free
1158#define GENERAL_NAME_free wolfSSL_GENERAL_NAME_free
1159#define GENERAL_NAMES_free wolfSSL_GENERAL_NAMES_free
1160
1161#define AUTHORITY_INFO_ACCESS_free wolfSSL_AUTHORITY_INFO_ACCESS_free
1162#define sk_ACCESS_DESCRIPTION_pop_free wolfSSL_sk_ACCESS_DESCRIPTION_pop_free
1163#define sk_ACCESS_DESCRIPTION_free wolfSSL_sk_ACCESS_DESCRIPTION_free
1164#define ACCESS_DESCRIPTION_free wolfSSL_ACCESS_DESCRIPTION_free
1165
1166#define SSL3_AL_FATAL 2
1167#define SSL_TLSEXT_ERR_OK 0
1168#define SSL_TLSEXT_ERR_ALERT_FATAL alert_fatal
1169#define SSL_TLSEXT_ERR_NOACK alert_warning
1170#define TLSEXT_NAMETYPE_host_name WOLFSSL_SNI_HOST_NAME
1171
1172#define SSL_set_tlsext_host_name wolfSSL_set_tlsext_host_name
1173#define SSL_get_servername wolfSSL_get_servername
1174#define SSL_set_SSL_CTX wolfSSL_set_SSL_CTX
1175#define SSL_CTX_get_verify_callback wolfSSL_CTX_get_verify_callback
1176#define SSL_CTX_set_tlsext_servername_callback wolfSSL_CTX_set_tlsext_servername_callback
1177#define SSL_CTX_set_tlsext_servername_arg wolfSSL_CTX_set_servername_arg
1178
1179#define PSK_MAX_PSK_LEN 256
1180#define PSK_MAX_IDENTITY_LEN 128
1181#define SSL_CTX_clear_options wolfSSL_CTX_clear_options
1182
1183
1184#endif /* HAVE_STUNNEL || WOLFSSL_NGINX */
1185
1186#ifndef NO_WOLFSSL_STUB
1187#define b2i_PrivateKey_bio(...) NULL
1188#define b2i_PVK_bio(...) NULL
1189#endif
1190
1191#define SSL_CTX_get_default_passwd_cb wolfSSL_CTX_get_default_passwd_cb
1192#define SSL_CTX_get_default_passwd_cb_userdata wolfSSL_CTX_get_default_passwd_cb_userdata
1193
1194#define SSL_CTX_set_msg_callback wolfSSL_CTX_set_msg_callback
1195#define SSL_set_msg_callback wolfSSL_set_msg_callback
1196#define SSL_CTX_set_msg_callback_arg wolfSSL_CTX_set_msg_callback_arg
1197#define SSL_set_msg_callback_arg wolfSSL_set_msg_callback_arg
1198
1199#define SSL_CTX_clear_extra_chain_certs wolfSSL_CTX_clear_extra_chain_certs
1200
1201
1202/* Nginx uses this to determine if reached end of certs in file.
1203 * PEM_read_bio_X509 is called and the return error is lost.
1204 * The error that needs to be detected is: SSL_NO_PEM_HEADER.
1205 */
1206#define ERR_GET_FUNC(l) (int)((((unsigned long)l) >> 12L) & 0xfffL)
1207
1208#define PEM_F_PEM_DEF_CALLBACK 100
1209
1210/* Avoid wolfSSL error code range */
1211#define PEM_R_NO_START_LINE (-MIN_CODE_E + 1)
1212#define PEM_R_PROBLEMS_GETTING_PASSWORD (-MIN_CODE_E + 2)
1213#define PEM_R_BAD_PASSWORD_READ (-MIN_CODE_E + 3)
1214#define PEM_R_BAD_DECRYPT (-MIN_CODE_E + 4)
1215
1216#define ERR_LIB_PEM 9
1217#define ERR_LIB_X509 10
1218#define ERR_LIB_EVP 11
1219#define ERR_LIB_ASN1 12
1220
1221#if defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) || \
1222 defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(OPENSSL_ALL) || \
1223 defined(HAVE_LIGHTY)
1224
1225#include <wolfssl/error-ssl.h>
1226
1227#define OPENSSL_STRING WOLFSSL_STRING
1228#define OPENSSL_CSTRING WOLFSSL_STRING
1229
1230#define TLSEXT_TYPE_application_layer_protocol_negotiation 16
1231
1232#define OPENSSL_NPN_UNSUPPORTED 0
1233#define OPENSSL_NPN_NEGOTIATED 1
1234#define OPENSSL_NPN_NO_OVERLAP 2
1235
1236/* Nginx checks these to see if the error was a handshake error. */
1237#define SSL_R_BAD_CHANGE_CIPHER_SPEC LENGTH_ERROR
1238#define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG BUFFER_E
1239#define SSL_R_DIGEST_CHECK_FAILED VERIFY_MAC_ERROR
1240#define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST SUITES_ERROR
1241#define SSL_R_EXCESSIVE_MESSAGE_SIZE BUFFER_ERROR
1242#define SSL_R_LENGTH_MISMATCH LENGTH_ERROR
1243#define SSL_R_NO_CIPHERS_SPECIFIED SUITES_ERROR
1244#define SSL_R_NO_COMPRESSION_SPECIFIED COMPRESSION_ERROR
1245#define SSL_R_NO_SHARED_CIPHER MATCH_SUITE_ERROR
1246#define SSL_R_RECORD_LENGTH_MISMATCH HANDSHAKE_SIZE_ERROR
1247#define SSL_R_UNEXPECTED_MESSAGE OUT_OF_ORDER_E
1248#define SSL_R_UNEXPECTED_RECORD SANITY_MSG_E
1249#define SSL_R_UNKNOWN_ALERT_TYPE BUFFER_ERROR
1250#define SSL_R_UNKNOWN_PROTOCOL VERSION_ERROR
1251#define SSL_R_WRONG_VERSION_NUMBER VERSION_ERROR
1252#define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ENCRYPT_ERROR
1253#define SSL_R_HTTPS_PROXY_REQUEST PARSE_ERROR
1254#define SSL_R_HTTP_REQUEST PARSE_ERROR
1255#define SSL_R_UNSUPPORTED_PROTOCOL VERSION_ERROR
1256
1257
1258#ifdef HAVE_SESSION_TICKET
1259#define SSL_OP_NO_TICKET SSL_OP_NO_TICKET
1260#define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72
1261#endif
1262
1263#define OPENSSL_config wolfSSL_OPENSSL_config
1264#define OPENSSL_memdup wolfSSL_OPENSSL_memdup
1265#define OPENSSL_cleanse wolfSSL_OPENSSL_cleanse
1266#define SSL_CTX_get_timeout wolfSSL_SSL_CTX_get_timeout
1267#define SSL_CTX_set_tmp_ecdh wolfSSL_SSL_CTX_set_tmp_ecdh
1268#define SSL_CTX_set_ecdh_auto(...)
1269#define SSL_CTX_remove_session wolfSSL_SSL_CTX_remove_session
1270#define SSL_get_rbio wolfSSL_SSL_get_rbio
1271#define SSL_get_wbio wolfSSL_SSL_get_wbio
1272#define SSL_do_handshake wolfSSL_SSL_do_handshake
1273#define SSL_in_init wolfSSL_SSL_in_init
1274#define SSL_in_connect_init wolfSSL_SSL_in_connect_init
1275#define SSL_get0_session wolfSSL_SSL_get0_session
1276#define SSL_CTX_set_tlsext_ticket_key_cb wolfSSL_CTX_set_tlsext_ticket_key_cb
1277#define SSL_CTX_set_tlsext_status_cb wolfSSL_CTX_set_tlsext_status_cb
1278#define SSL_CTX_get_extra_chain_certs wolfSSL_CTX_get_extra_chain_certs
1279#define sk_OPENSSL_STRING_num wolfSSL_sk_WOLFSSL_STRING_num
1280#define sk_OPENSSL_STRING_value wolfSSL_sk_WOLFSSL_STRING_value
1281#define sk_OPENSSL_PSTRING_num wolfSSL_sk_WOLFSSL_STRING_num
1282#define sk_OPENSSL_PSTRING_value (WOLFSSL_STRING*)wolfSSL_sk_WOLFSSL_STRING_value
1283#define sk_OPENSSL_STRING_free wolfSSL_sk_free
1284#define SSL_get0_alpn_selected wolfSSL_get0_alpn_selected
1285#define SSL_select_next_proto wolfSSL_select_next_proto
1286#define SSL_CTX_set_alpn_select_cb wolfSSL_CTX_set_alpn_select_cb
1287#define SSL_CTX_set_next_protos_advertised_cb wolfSSL_CTX_set_next_protos_advertised_cb
1288#define SSL_CTX_set_next_proto_select_cb wolfSSL_CTX_set_next_proto_select_cb
1289#define SSL_set_alpn_protos wolfSSL_set_alpn_protos
1290#define SSL_get0_next_proto_negotiated wolfSSL_get0_next_proto_negotiated
1291#define SSL_is_server wolfSSL_is_server
1292
1293#endif /* WOLFSSL_NGINX || WOLFSSL_HAPROXY || WOLFSSL_MYSQL_COMPATIBLE ||
1294 OPENSSL_ALL || HAVE_LIGHTY */
1295
1296#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC)
1297#define SSL_CTX_set1_curves_list wolfSSL_CTX_set1_curves_list
1298#define SSL_set1_curves_list wolfSSL_set1_curves_list
1299#endif
1300
1301#ifdef OPENSSL_EXTRA
1302#define SSL_CTX_add_client_CA wolfSSL_CTX_add_client_CA
1303#define SSL_CTX_set_srp_password wolfSSL_CTX_set_srp_password
1304#define SSL_CTX_set_srp_username wolfSSL_CTX_set_srp_username
1305#define SSL_CTX_set_srp_strength wolfSSL_CTX_set_srp_strength
1306#define SSL_get_SSL_CTX wolfSSL_get_SSL_CTX
1307#define SSL_get0_param wolfSSL_get0_param
1308#define SSL_get_srp_username wolfSSL_get_srp_username
1309
1310#define ERR_NUM_ERRORS 16
1311#define SN_pkcs9_emailAddress "Email"
1312#define LN_pkcs9_emailAddress "emailAddress"
1313#define NID_pkcs9_emailAddress 48
1314#define OBJ_pkcs9_emailAddress 1L,2L,840L,113539L,1L,9L,1L
1315
1316#define SSL_get_rbio wolfSSL_SSL_get_rbio
1317#define SSL_get_wbio wolfSSL_SSL_get_wbio
1318#define SSL_do_handshake wolfSSL_SSL_do_handshake
1319#endif /* OPENSSL_EXTRA */
1320
1321/* cipher suites for compatibility */
1322#define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
1323#define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
1324#define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
1325#define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
1326#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
1327#define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
1328#define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
1329#define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)
1330
1331#define X509_STORE_get0_objects wolfSSL_X509_STORE_get0_objects
1332#define sk_X509_OBJECT_num wolfSSL_sk_X509_OBJECT_num
1333#define sk_X509_OBJECT_value wolfSSL_sk_X509_OBJECT_value
1334#define sk_X509_OBJECT_delete wolfSSL_sk_X509_OBJECT_delete
1335#define X509_OBJECT_free wolfSSL_X509_OBJECT_free
1336#define X509_OBJECT_get_type(x) 0
1337
1338#define OpenSSL_version(x) wolfSSL_OpenSSL_version()
1339
1340#ifndef NO_WOLFSSL_STUB
1341#define OBJ_create_objects(...)
1342#endif
1343
1344#ifdef __cplusplus
1345 } /* extern "C" */
1346#endif
1347
1348#endif /* wolfSSL_openssl_h__ */
Note: See TracBrowser for help on using the repository browser.