2
3
4
5
6
7
8
9
10
15# include <openssl/buffer.h>
16# include <openssl/x509.h>
23# ifndef OPENSSL_TLS_SECURITY_LEVEL
24# define OPENSSL_TLS_SECURITY_LEVEL 1
27# define TLS1_VERSION 0x0301
28# define TLS1_1_VERSION 0x0302
29# define TLS1_2_VERSION 0x0303
30# define TLS1_3_VERSION 0x0304
34# define TLS_ANY_VERSION 0x10000
36# define TLS1_VERSION_MAJOR 0x03
37# define TLS1_VERSION_MINOR 0x01
39# define TLS1_1_VERSION_MAJOR 0x03
40# define TLS1_1_VERSION_MINOR 0x02
42# define TLS1_2_VERSION_MAJOR 0x03
43# define TLS1_2_VERSION_MINOR 0x03
45# define TLS1_get_version(s)
48# define TLS1_get_client_version(s)
51# define TLS1_AD_DECRYPTION_FAILED 21
52# define TLS1_AD_RECORD_OVERFLOW 22
53# define TLS1_AD_UNKNOWN_CA 48
54# define TLS1_AD_ACCESS_DENIED 49
55# define TLS1_AD_DECODE_ERROR 50
56# define TLS1_AD_DECRYPT_ERROR 51
57# define TLS1_AD_EXPORT_RESTRICTION 60
58# define TLS1_AD_PROTOCOL_VERSION 70
59# define TLS1_AD_INSUFFICIENT_SECURITY 71
60# define TLS1_AD_INTERNAL_ERROR 80
61# define TLS1_AD_INAPPROPRIATE_FALLBACK 86
62# define TLS1_AD_USER_CANCELLED 90
63# define TLS1_AD_NO_RENEGOTIATION 100
65# define TLS13_AD_MISSING_EXTENSION 109
66# define TLS13_AD_CERTIFICATE_REQUIRED 116
68# define TLS1_AD_UNSUPPORTED_EXTENSION 110
69# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111
70# define TLS1_AD_UNRECOGNIZED_NAME 112
71# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113
72# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114
73# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115
74# define TLS1_AD_NO_APPLICATION_PROTOCOL 120
77# define TLSEXT_TYPE_server_name 0
78# define TLSEXT_TYPE_max_fragment_length 1
79# define TLSEXT_TYPE_client_certificate_url 2
80# define TLSEXT_TYPE_trusted_ca_keys 3
81# define TLSEXT_TYPE_truncated_hmac 4
82# define TLSEXT_TYPE_status_request 5
84# define TLSEXT_TYPE_user_mapping 6
86# define TLSEXT_TYPE_client_authz 7
87# define TLSEXT_TYPE_server_authz 8
89# define TLSEXT_TYPE_cert_type 9
93
94
95
96# define TLSEXT_TYPE_supported_groups 10
98# define TLSEXT_TYPE_ec_point_formats 11
102# define TLSEXT_TYPE_srp 12
105# define TLSEXT_TYPE_signature_algorithms 13
108# define TLSEXT_TYPE_use_srtp 14
111# define TLSEXT_TYPE_heartbeat 15
114# define TLSEXT_TYPE_application_layer_protocol_negotiation 16
117
118
119
120# define TLSEXT_TYPE_signed_certificate_timestamp 18
123
124
125
126# define TLSEXT_TYPE_padding 21
129# define TLSEXT_TYPE_encrypt_then_mac 22
132# define TLSEXT_TYPE_extended_master_secret 23
135# define TLSEXT_TYPE_session_ticket 35
138# define TLSEXT_TYPE_psk 41
139# define TLSEXT_TYPE_early_data 42
140# define TLSEXT_TYPE_supported_versions 43
141# define TLSEXT_TYPE_cookie 44
142# define TLSEXT_TYPE_psk_kex_modes 45
143# define TLSEXT_TYPE_certificate_authorities 47
144# define TLSEXT_TYPE_post_handshake_auth 49
145# define TLSEXT_TYPE_signature_algorithms_cert 50
146# define TLSEXT_TYPE_key_share 51
149# define TLSEXT_TYPE_renegotiate 0xff01
151# ifndef OPENSSL_NO_NEXTPROTONEG
153# define TLSEXT_TYPE_next_proto_neg 13172
157# define TLSEXT_NAMETYPE_host_name 0
159# define TLSEXT_STATUSTYPE_ocsp 1
162# define TLSEXT_ECPOINTFORMAT_first 0
163# define TLSEXT_ECPOINTFORMAT_uncompressed 0
164# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1
165# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2
166# define TLSEXT_ECPOINTFORMAT_last 2
169# define TLSEXT_signature_anonymous 0
170# define TLSEXT_signature_rsa 1
171# define TLSEXT_signature_dsa 2
172# define TLSEXT_signature_ecdsa 3
173# define TLSEXT_signature_gostr34102001 237
174# define TLSEXT_signature_gostr34102012_256 238
175# define TLSEXT_signature_gostr34102012_512 239
178# define TLSEXT_signature_num 7
180# define TLSEXT_hash_none 0
181# define TLSEXT_hash_md5 1
182# define TLSEXT_hash_sha1 2
183# define TLSEXT_hash_sha224 3
184# define TLSEXT_hash_sha256 4
185# define TLSEXT_hash_sha384 5
186# define TLSEXT_hash_sha512 6
187# define TLSEXT_hash_gostr3411 237
188# define TLSEXT_hash_gostr34112012_256 238
189# define TLSEXT_hash_gostr34112012_512 239
193# define TLSEXT_hash_num 10
196# define TLSEXT_nid_unknown 0x1000000
200# define TLSEXT_curve_P_256 23
201# define TLSEXT_curve_P_384 24
204# define TLSEXT_max_fragment_length_DISABLED 0
206# define TLSEXT_max_fragment_length_512 1
207# define TLSEXT_max_fragment_length_1024 2
208# define TLSEXT_max_fragment_length_2048 3
209# define TLSEXT_max_fragment_length_4096 4
214# define TLSEXT_MAXLEN_host_name 255
219
220
221
222
223
224
226 const char *label, size_t llen,
227 const unsigned char *context,
228 size_t contextlen,
int use_context);
231
232
233
234
235
236
238 size_t olen,
const char *label,
240 const unsigned char *context,
247 int *psign,
int *phash,
int *psignandhash,
248 unsigned char *rsig,
unsigned char *rhash);
251 int *psign,
int *phash,
int *psignandhash,
252 unsigned char *rsig,
unsigned char *rhash);
256# define SSL_set_tlsext_host_name(s,name)
260# define SSL_set_tlsext_debug_callback(ssl, cb)
264# define SSL_set_tlsext_debug_arg(ssl, arg)
267# define SSL_get_tlsext_status_type(ssl)
270# define SSL_set_tlsext_status_type(ssl, type)
273# define SSL_get_tlsext_status_exts(ssl, arg)
276# define SSL_set_tlsext_status_exts(ssl, arg)
279# define SSL_get_tlsext_status_ids(ssl, arg)
282# define SSL_set_tlsext_status_ids(ssl, arg)
285# define SSL_get_tlsext_status_ocsp_resp(ssl, arg)
288# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen)
291# define SSL_CTX_set_tlsext_servername_callback(ctx, cb)
295# define SSL_TLSEXT_ERR_OK 0
296# define SSL_TLSEXT_ERR_ALERT_WARNING 1
297# define SSL_TLSEXT_ERR_ALERT_FATAL 2
298# define SSL_TLSEXT_ERR_NOACK 3
300# define SSL_CTX_set_tlsext_servername_arg(ctx, arg)
303# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen)
305# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen)
308# define SSL_CTX_get_tlsext_status_cb(ssl, cb)
310# define SSL_CTX_set_tlsext_status_cb(ssl, cb)
314# define SSL_CTX_get_tlsext_status_arg(ssl, arg)
316# define SSL_CTX_set_tlsext_status_arg(ssl, arg)
319# define SSL_CTX_set_tlsext_status_type(ssl, type)
322# define SSL_CTX_get_tlsext_status_type(ssl)
325# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb)
330# define SSL_DTLSEXT_HB_ENABLED 0x01
331# define SSL_DTLSEXT_HB_DONT_SEND_REQUESTS 0x02
332# define SSL_DTLSEXT_HB_DONT_RECV_REQUESTS 0x04
333# define SSL_get_dtlsext_heartbeat_pending(ssl)
334 SSL_ctrl(ssl,SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING,0
,NULL)
335# define SSL_set_dtlsext_heartbeat_no_requests(ssl, arg)
336 SSL_ctrl(ssl,SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL)
338# if OPENSSL_API_COMPAT < 0x10100000L
339# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT
340 SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT
341# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING
342 SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING
343# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS
344 SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS
345# define SSL_TLSEXT_HB_ENABLED
346 SSL_DTLSEXT_HB_ENABLED
347# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS
348 SSL_DTLSEXT_HB_DONT_SEND_REQUESTS
349# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS
350 SSL_DTLSEXT_HB_DONT_RECV_REQUESTS
351# define SSL_get_tlsext_heartbeat_pending(ssl)
352 SSL_get_dtlsext_heartbeat_pending(ssl)
353# define SSL_set_tlsext_heartbeat_no_requests(ssl, arg)
354 SSL_set_dtlsext_heartbeat_no_requests(ssl,arg)
359# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A
360# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B
361# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C
362# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D
363# define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E
364# define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F
365# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090
366# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091
367# define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092
368# define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093
369# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094
370# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095
373# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8
374# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9
375# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA
376# define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB
377# define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC
378# define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD
379# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE
380# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF
381# define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0
382# define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1
383# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2
384# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3
385# define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4
386# define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5
387# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6
388# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7
389# define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8
390# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9
393# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C
394# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D
395# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E
398# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F
399# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030
400# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031
401# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032
402# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033
403# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034
404# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035
405# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036
406# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037
407# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038
408# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039
409# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A
412# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B
413# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C
414# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D
415# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E
416# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F
417# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040
420# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041
421# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042
422# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043
423# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044
424# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045
425# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046
428# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067
429# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068
430# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069
431# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A
432# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B
433# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C
434# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D
437# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084
438# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085
439# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086
440# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087
441# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088
442# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089
445# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096
446# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097
447# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098
448# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099
449# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A
450# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B
453# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C
454# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D
455# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E
456# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F
457# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0
458# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1
459# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2
460# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3
461# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4
462# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5
463# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6
464# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7
467# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C
468# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D
469# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E
470# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F
471# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0
472# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1
473# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2
474# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3
475# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4
476# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5
477# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6
478# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7
479# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8
480# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9
481# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA
482# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB
485# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC
486# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD
487# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE
488# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF
491# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA
492# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB
493# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC
494# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD
495# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE
496# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF
498# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0
499# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1
500# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2
501# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3
502# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4
503# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5
506# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001
507# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002
508# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003
509# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004
510# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005
512# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006
513# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007
514# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008
515# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009
516# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A
518# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B
519# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C
520# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D
521# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E
522# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F
524# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010
525# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011
526# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012
527# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013
528# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014
530# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015
531# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016
532# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017
533# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018
534# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019
537# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A
538# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B
539# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C
540# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D
541# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E
542# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F
543# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020
544# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021
545# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022
548# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023
549# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024
550# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025
551# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026
552# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027
553# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028
554# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029
555# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A
558# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B
559# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C
560# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D
561# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E
562# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F
563# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030
564# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031
565# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032
568# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033
569# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034
570# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035
571# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036
573# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037
574# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038
577# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039
578# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A
579# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B
582# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072
583# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073
584# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074
585# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075
586# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076
587# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077
588# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078
589# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079
591# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094
592# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095
593# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096
594# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097
595# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098
596# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099
597# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A
598# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B
601# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8
602# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9
603# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA
604# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB
605# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC
606# define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD
607# define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE
610# define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301
611# define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302
612# define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303
613# define TLS1_3_CK_AES_128_CCM_SHA256 0x03001304
614# define TLS1_3_CK_AES_128_CCM_8_SHA256 0x03001305
617# define TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C050
618# define TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C051
619# define TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C052
620# define TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C053
621# define TLS1_CK_DH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C054
622# define TLS1_CK_DH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C055
623# define TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C056
624# define TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C057
625# define TLS1_CK_DH_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C058
626# define TLS1_CK_DH_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C059
627# define TLS1_CK_DH_anon_WITH_ARIA_128_GCM_SHA256 0x0300C05A
628# define TLS1_CK_DH_anon_WITH_ARIA_256_GCM_SHA384 0x0300C05B
629# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05C
630# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05D
631# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05E
632# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05F
633# define TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C060
634# define TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C061
635# define TLS1_CK_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C062
636# define TLS1_CK_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C063
637# define TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06A
638# define TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06B
639# define TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06C
640# define TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06D
641# define TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06E
642# define TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06F
645# define TLS1_RFC_RSA_WITH_AES_128_SHA "TLS_RSA_WITH_AES_128_CBC_SHA"
646# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"
647# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"
648# define TLS1_RFC_ADH_WITH_AES_128_SHA "TLS_DH_anon_WITH_AES_128_CBC_SHA"
649# define TLS1_RFC_RSA_WITH_AES_256_SHA "TLS_RSA_WITH_AES_256_CBC_SHA"
650# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"
651# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"
652# define TLS1_RFC_ADH_WITH_AES_256_SHA "TLS_DH_anon_WITH_AES_256_CBC_SHA"
653# define TLS1_RFC_RSA_WITH_NULL_SHA256 "TLS_RSA_WITH_NULL_SHA256"
654# define TLS1_RFC_RSA_WITH_AES_128_SHA256 "TLS_RSA_WITH_AES_128_CBC_SHA256"
655# define TLS1_RFC_RSA_WITH_AES_256_SHA256 "TLS_RSA_WITH_AES_256_CBC_SHA256"
656# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256 "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"
657# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256 "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"
658# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256 "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"
659# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256 "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"
660# define TLS1_RFC_ADH_WITH_AES_128_SHA256 "TLS_DH_anon_WITH_AES_128_CBC_SHA256"
661# define TLS1_RFC_ADH_WITH_AES_256_SHA256 "TLS_DH_anon_WITH_AES_256_CBC_SHA256"
662# define TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256 "TLS_RSA_WITH_AES_128_GCM_SHA256"
663# define TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384 "TLS_RSA_WITH_AES_256_GCM_SHA384"
664# define TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
665# define TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"
666# define TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256 "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"
667# define TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384 "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"
668# define TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256 "TLS_DH_anon_WITH_AES_128_GCM_SHA256"
669# define TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384 "TLS_DH_anon_WITH_AES_256_GCM_SHA384"
670# define TLS1_RFC_RSA_WITH_AES_128_CCM "TLS_RSA_WITH_AES_128_CCM"
671# define TLS1_RFC_RSA_WITH_AES_256_CCM "TLS_RSA_WITH_AES_256_CCM"
672# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM "TLS_DHE_RSA_WITH_AES_128_CCM"
673# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM "TLS_DHE_RSA_WITH_AES_256_CCM"
674# define TLS1_RFC_RSA_WITH_AES_128_CCM_8 "TLS_RSA_WITH_AES_128_CCM_8"
675# define TLS1_RFC_RSA_WITH_AES_256_CCM_8 "TLS_RSA_WITH_AES_256_CCM_8"
676# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8 "TLS_DHE_RSA_WITH_AES_128_CCM_8"
677# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8 "TLS_DHE_RSA_WITH_AES_256_CCM_8"
678# define TLS1_RFC_PSK_WITH_AES_128_CCM "TLS_PSK_WITH_AES_128_CCM"
679# define TLS1_RFC_PSK_WITH_AES_256_CCM "TLS_PSK_WITH_AES_256_CCM"
680# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM "TLS_DHE_PSK_WITH_AES_128_CCM"
681# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM "TLS_DHE_PSK_WITH_AES_256_CCM"
682# define TLS1_RFC_PSK_WITH_AES_128_CCM_8 "TLS_PSK_WITH_AES_128_CCM_8"
683# define TLS1_RFC_PSK_WITH_AES_256_CCM_8 "TLS_PSK_WITH_AES_256_CCM_8"
684# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8 "TLS_PSK_DHE_WITH_AES_128_CCM_8"
685# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8 "TLS_PSK_DHE_WITH_AES_256_CCM_8"
686# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM "TLS_ECDHE_ECDSA_WITH_AES_128_CCM"
687# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM "TLS_ECDHE_ECDSA_WITH_AES_256_CCM"
688# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8"
689# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8"
690# define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256"
691# define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384"
692# define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256"
693# define TLS1_3_RFC_AES_128_CCM_SHA256 "TLS_AES_128_CCM_SHA256"
694# define TLS1_3_RFC_AES_128_CCM_8_SHA256 "TLS_AES_128_CCM_8_SHA256"
695# define TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA "TLS_ECDHE_ECDSA_WITH_NULL_SHA"
696# define TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"
697# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"
698# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"
699# define TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA "TLS_ECDHE_RSA_WITH_NULL_SHA"
700# define TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"
701# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"
702# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"
703# define TLS1_RFC_ECDH_anon_WITH_NULL_SHA "TLS_ECDH_anon_WITH_NULL_SHA"
704# define TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"
705# define TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"
706# define TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"
707# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
708# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
709# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
710# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
711# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
712# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
713# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
714# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
715# define TLS1_RFC_PSK_WITH_NULL_SHA "TLS_PSK_WITH_NULL_SHA"
716# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA "TLS_DHE_PSK_WITH_NULL_SHA"
717# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA "TLS_RSA_PSK_WITH_NULL_SHA"
718# define TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA "TLS_PSK_WITH_3DES_EDE_CBC_SHA"
719# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA "TLS_PSK_WITH_AES_128_CBC_SHA"
720# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA "TLS_PSK_WITH_AES_256_CBC_SHA"
721# define TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"
722# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"
723# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"
724# define TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"
725# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"
726# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"
727# define TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256 "TLS_PSK_WITH_AES_128_GCM_SHA256"
728# define TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384 "TLS_PSK_WITH_AES_256_GCM_SHA384"
729# define TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256 "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"
730# define TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384 "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"
731# define TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256 "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"
732# define TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384 "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"
733# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256 "TLS_PSK_WITH_AES_128_CBC_SHA256"
734# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384 "TLS_PSK_WITH_AES_256_CBC_SHA384"
735# define TLS1_RFC_PSK_WITH_NULL_SHA256 "TLS_PSK_WITH_NULL_SHA256"
736# define TLS1_RFC_PSK_WITH_NULL_SHA384 "TLS_PSK_WITH_NULL_SHA384"
737# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"
738# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"
739# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA256 "TLS_DHE_PSK_WITH_NULL_SHA256"
740# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA384 "TLS_DHE_PSK_WITH_NULL_SHA384"
741# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256 "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"
742# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384 "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"
743# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA256 "TLS_RSA_PSK_WITH_NULL_SHA256"
744# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA384 "TLS_RSA_PSK_WITH_NULL_SHA384"
745# define TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA"
746# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA"
747# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA"
748# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256"
749# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384"
750# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA "TLS_ECDHE_PSK_WITH_NULL_SHA"
751# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256 "TLS_ECDHE_PSK_WITH_NULL_SHA256"
752# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384 "TLS_ECDHE_PSK_WITH_NULL_SHA384"
753# define TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"
754# define TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"
755# define TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"
756# define TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"
757# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"
758# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"
759# define TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"
760# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"
761# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"
762# define TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305 "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
763# define TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
764# define TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"
765# define TLS1_RFC_PSK_WITH_CHACHA20_POLY1305 "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256"
766# define TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305 "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256"
767# define TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305 "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256"
768# define TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305 "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256"
769# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"
770# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"
771# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"
772# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"
773# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"
774# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"
775# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"
776# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"
777# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"
778# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"
779# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"
780# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"
781# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"
782# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"
783# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"
784# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"
785# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"
786# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"
787# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"
788# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384"
789# define TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256"
790# define TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384"
791# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"
792# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"
793# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256"
794# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384"
795# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"
796# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"
797# define TLS1_RFC_RSA_WITH_SEED_SHA "TLS_RSA_WITH_SEED_CBC_SHA"
798# define TLS1_RFC_DHE_DSS_WITH_SEED_SHA "TLS_DHE_DSS_WITH_SEED_CBC_SHA"
799# define TLS1_RFC_DHE_RSA_WITH_SEED_SHA "TLS_DHE_RSA_WITH_SEED_CBC_SHA"
800# define TLS1_RFC_ADH_WITH_SEED_SHA "TLS_DH_anon_WITH_SEED_CBC_SHA"
801# define TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA "TLS_ECDHE_PSK_WITH_RC4_128_SHA"
802# define TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA "TLS_ECDH_anon_WITH_RC4_128_SHA"
803# define TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA"
804# define TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA "TLS_ECDHE_RSA_WITH_RC4_128_SHA"
805# define TLS1_RFC_PSK_WITH_RC4_128_SHA "TLS_PSK_WITH_RC4_128_SHA"
806# define TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA "TLS_RSA_PSK_WITH_RC4_128_SHA"
807# define TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA "TLS_DHE_PSK_WITH_RC4_128_SHA"
808# define TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_WITH_ARIA_128_GCM_SHA256"
809# define TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_WITH_ARIA_256_GCM_SHA384"
810# define TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256"
811# define TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384"
812# define TLS1_RFC_DH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256"
813# define TLS1_RFC_DH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384"
814# define TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256"
815# define TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384"
816# define TLS1_RFC_DH_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256"
817# define TLS1_RFC_DH_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384"
818# define TLS1_RFC_DH_anon_WITH_ARIA_128_GCM_SHA256 "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256"
819# define TLS1_RFC_DH_anon_WITH_ARIA_256_GCM_SHA384 "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384"
820# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256"
821# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384"
822# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256"
823# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384"
824# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256"
825# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384"
826# define TLS1_RFC_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256"
827# define TLS1_RFC_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384"
828# define TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_PSK_WITH_ARIA_128_GCM_SHA256"
829# define TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_PSK_WITH_ARIA_256_GCM_SHA384"
830# define TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256"
831# define TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384"
832# define TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256"
833# define TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384"
837
838
839
840
841
842# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA"
844# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA"
845# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA"
846# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA"
849# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA"
850# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA"
851# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA"
852# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA"
853# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA"
854# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA"
856# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA"
857# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA"
858# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA"
859# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA"
860# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA"
861# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA"
864# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA"
865# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA"
866# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA"
867# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA"
868# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA"
870# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA"
871# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA"
872# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA"
873# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA"
874# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA"
876# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA"
877# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA"
878# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA"
879# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA"
880# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA"
882# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA"
883# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA"
884# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA"
885# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA"
886# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA"
888# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA"
889# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA"
890# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA"
891# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA"
892# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA"
895# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA"
896# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA"
897# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA"
898# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA"
900# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA"
901# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA"
902# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA"
903# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA"
904# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA"
905# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA"
906# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA"
907# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA"
910# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256"
911# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384"
912# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256"
913# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384"
914# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256"
915# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384"
917# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256"
918# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384"
919# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256"
920# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384"
922# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256"
923# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384"
924# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256"
925# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384"
927# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256"
928# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384"
929# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256"
930# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384"
933# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA"
934# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA"
935# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA"
936# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA"
937# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA"
938# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA"
939# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA"
940# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA"
941# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA"
944# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA"
945# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA"
946# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA"
947# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA"
948# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA"
949# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA"
951# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA"
952# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA"
953# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA"
954# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA"
955# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA"
956# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA"
959# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256"
960# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256"
961# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256"
962# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256"
963# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256"
964# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256"
966# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256"
967# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256"
968# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256"
969# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256"
970# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256"
971# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256"
973# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256"
974# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384"
975# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256"
976# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384"
977# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256"
978# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384"
979# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256"
980# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384"
983# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA"
984# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA"
985# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA"
986# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA"
987# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA"
988# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA"
991# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256"
992# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256"
993# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256"
994# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256"
995# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256"
996# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256"
997# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256"
998# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256"
999# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256"
1000# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256"
1001# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256"
1002# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256"
1003# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256"
1006# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256"
1007# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384"
1008# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256"
1009# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384"
1010# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256"
1011# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384"
1012# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256"
1013# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384"
1014# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256"
1015# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384"
1016# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256"
1017# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384"
1020# define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM"
1021# define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM"
1022# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM"
1023# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM"
1025# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8"
1026# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8"
1027# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8"
1028# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8"
1030# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM"
1031# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM"
1032# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM"
1033# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM"
1035# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8"
1036# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8"
1037# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8"
1038# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8"
1041# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM"
1042# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM"
1043# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8"
1044# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8"
1047# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256"
1048# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384"
1049# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256"
1050# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384"
1051# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256"
1052# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384"
1053# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256"
1054# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384"
1057# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256"
1058# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384"
1059# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256"
1060# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384"
1061# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256"
1062# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384"
1063# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256"
1064# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384"
1067# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256"
1068# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384"
1071# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA"
1072# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA"
1073# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA"
1074# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA"
1076# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256"
1077# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384"
1079# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA"
1080# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256"
1081# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384"
1084# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256"
1085# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384"
1086# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256"
1087# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384"
1088# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256"
1089# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384"
1090# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256"
1091# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384"
1094# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305"
1095# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305"
1096# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305"
1097# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305"
1098# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305"
1099# define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305"
1100# define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305"
1103# define TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256 "ARIA128-GCM-SHA256"
1104# define TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384 "ARIA256-GCM-SHA384"
1105# define TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "DHE-RSA-ARIA128-GCM-SHA256"
1106# define TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "DHE-RSA-ARIA256-GCM-SHA384"
1107# define TLS1_TXT_DH_RSA_WITH_ARIA_128_GCM_SHA256 "DH-RSA-ARIA128-GCM-SHA256"
1108# define TLS1_TXT_DH_RSA_WITH_ARIA_256_GCM_SHA384 "DH-RSA-ARIA256-GCM-SHA384"
1109# define TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "DHE-DSS-ARIA128-GCM-SHA256"
1110# define TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "DHE-DSS-ARIA256-GCM-SHA384"
1111# define TLS1_TXT_DH_DSS_WITH_ARIA_128_GCM_SHA256 "DH-DSS-ARIA128-GCM-SHA256"
1112# define TLS1_TXT_DH_DSS_WITH_ARIA_256_GCM_SHA384 "DH-DSS-ARIA256-GCM-SHA384"
1113# define TLS1_TXT_DH_anon_WITH_ARIA_128_GCM_SHA256 "ADH-ARIA128-GCM-SHA256"
1114# define TLS1_TXT_DH_anon_WITH_ARIA_256_GCM_SHA384 "ADH-ARIA256-GCM-SHA384"
1115# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ECDSA-ARIA128-GCM-SHA256"
1116# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ECDSA-ARIA256-GCM-SHA384"
1117# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ECDSA-ARIA128-GCM-SHA256"
1118# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ECDSA-ARIA256-GCM-SHA384"
1119# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ARIA128-GCM-SHA256"
1120# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ARIA256-GCM-SHA384"
1121# define TLS1_TXT_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ARIA128-GCM-SHA256"
1122# define TLS1_TXT_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ARIA256-GCM-SHA384"
1123# define TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256 "PSK-ARIA128-GCM-SHA256"
1124# define TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384 "PSK-ARIA256-GCM-SHA384"
1125# define TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "DHE-PSK-ARIA128-GCM-SHA256"
1126# define TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "DHE-PSK-ARIA256-GCM-SHA384"
1127# define TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "RSA-PSK-ARIA128-GCM-SHA256"
1128# define TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "RSA-PSK-ARIA256-GCM-SHA384"
1130# define TLS_CT_RSA_SIGN 1
1131# define TLS_CT_DSS_SIGN 2
1132# define TLS_CT_RSA_FIXED_DH 3
1133# define TLS_CT_DSS_FIXED_DH 4
1134# define TLS_CT_ECDSA_SIGN 64
1135# define TLS_CT_RSA_FIXED_ECDH 65
1136# define TLS_CT_ECDSA_FIXED_ECDH 66
1137# define TLS_CT_GOST01_SIGN 22
1138# define TLS_CT_GOST12_SIGN 238
1139# define TLS_CT_GOST12_512_SIGN 239
1142
1143
1144
1145# define TLS_CT_NUMBER 10
1149# error "SSL/TLS CT_NUMBER values do not match"
1153# define TLS1_FINISH_MAC_LENGTH 12
1155# define TLS_MD_MAX_CONST_SIZE 22
1156# define TLS_MD_CLIENT_FINISH_CONST "client finished"
1157# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15
1158# define TLS_MD_SERVER_FINISH_CONST "server finished"
1159# define TLS_MD_SERVER_FINISH_CONST_SIZE 15
1160# define TLS_MD_KEY_EXPANSION_CONST "key expansion"
1161# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13
1162# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key"
1163# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16
1164# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key"
1165# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16
1166# define TLS_MD_IV_BLOCK_CONST "IV block"
1167# define TLS_MD_IV_BLOCK_CONST_SIZE 8
1168# define TLS_MD_MASTER_SECRET_CONST "master secret"
1169# define TLS_MD_MASTER_SECRET_CONST_SIZE 13
1170# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "extended master secret"
1171# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22
1173# ifdef CHARSET_EBCDIC
1174# undef TLS_MD_CLIENT_FINISH_CONST
1176
1177
1178# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64"
1180# undef TLS_MD_SERVER_FINISH_CONST
1182
1183
1184# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64"
1186# undef TLS_MD_SERVER_WRITE_KEY_CONST
1188
1189
1190# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"
1192# undef TLS_MD_KEY_EXPANSION_CONST
1194
1195
1196# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e"
1198# undef TLS_MD_CLIENT_WRITE_KEY_CONST
1200
1201
1202# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"
1204# undef TLS_MD_SERVER_WRITE_KEY_CONST
1206
1207
1208# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"
1210# undef TLS_MD_IV_BLOCK_CONST
1212
1213
1214# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b"
1216# undef TLS_MD_MASTER_SECRET_CONST
1218
1219
1220# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74"
1221# undef TLS_MD_EXTENDED_MASTER_SECRET_CONST
1223
1224
1225# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74"
#define poco_unexpected()
#define poco_assert_dbg(cond)
#define POCO_EXTERNAL_OPENSSL
#define POCO_DECLARE_EXCEPTION(API, CLS, BASE)
#define POCO_DECLARE_EXCEPTION_CODE(API, CLS, BASE, CODE)
#define POCO_DO_JOIN2(X, Y)
#define POCO_DO_JOIN(X, Y)
#define OPENSSL_VERSION_PREREQ(maj, min)
RSAPaddingMode
The padding mode used for RSA public key encryption.
@ RSA_PADDING_PKCS1_OAEP
PKCS #1 v1.5 padding. This currently is the most widely used mode.
#define POCO_EXTERNAL_OPENSSL_SLPRO
void ASN1_STRING_clear_free(ASN1_STRING *a)
#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name)
int UTF8_getc(const unsigned char *str, int len, unsigned long *val)
ASN1_INTEGER * BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai)
#define ASN1_STRFLGS_ESC_QUOTE
void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags)
ASN1_TYPE * ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t)
int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str)
int ASN1_STRING_set_default_mask_asc(const char *p)
ASN1_STRING * ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in, int inlen, int inform, int nid)
const ASN1_ITEM * ASN1_ITEM_lookup(const char *name)
int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, int ctype_nid, int econt_nid, STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it)
#define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname)
#define B_ASN1_PRINTABLESTRING
#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name)
#define B_ASN1_NUMERICSTRING
ASN1_GENERALIZEDTIME * ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, time_t t, int offset_day, long offset_sec)
#define ASN1_STRFLGS_UTF8_CONVERT
int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v)
void ASN1_PCTX_free(ASN1_PCTX *p)
void ASN1_STRING_length_set(ASN1_STRING *x, int n)
unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p)
const ASN1_ITEM * ASN1_SCTX_get_item(ASN1_SCTX *p)
int ASN1_TIME_set_string(ASN1_TIME *s, const char *str)
#define DECLARE_ASN1_FUNCTIONS_name(type, name)
int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, int inform, unsigned long mask)
#define DECLARE_ASN1_PRINT_FUNCTION(stname)
int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b)
ASN1_ENUMERATED * BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai)
int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a)
int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags)
#define ASN1_STRFLGS_ESC_CTRL
#define TYPEDEF_D2I2D_OF(type)
ASN1_VALUE * ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, long len, const ASN1_ITEM *it)
int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
#define B_ASN1_UTF8STRING
void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags)
int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, const char *hdr, const ASN1_ITEM *it)
long ASN1_INTEGER_get(const ASN1_INTEGER *a)
int ASN1_TIME_normalize(ASN1_TIME *s)
unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p)
#define TYPEDEF_I2D_OF(type)
int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a)
BIO * BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it)
#define DECLARE_ASN1_NDEF_FUNCTION(name)
int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size)
#define ASN1_STRFLGS_ESC_MSB
int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a)
ASN1_TIME * ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day, long offset_sec)
int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in)
int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long)
int ASN1_check_infinite_end(unsigned char **p, long len)
int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s)
int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t)
int ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a)
#define ASN1_i2d_bio_of_const(type, i2d, out, x)
void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data)
int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, const unsigned char *flags, int flags_len)
int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a)
int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len)
unsigned long ASN1_tag2bit(int tag)
int UTF8_putc(unsigned char *str, int len, unsigned long value)
ASN1_SCTX * ASN1_SCTX_new(int(*scan_cb)(ASN1_SCTX *ctx))
int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
int ASN1_TIME_check(const ASN1_TIME *t)
void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags)
int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
int ASN1_UTCTIME_check(const ASN1_UTCTIME *a)
void ASN1_STRING_TABLE_cleanup(void)
int ASN1_object_size(int constructed, int length, int tag)
int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off)
struct ASN1_TEMPLATE_st ASN1_TEMPLATE
ASN1_UTCTIME * ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
#define ASN1_ITEM_rptr(ref)
int ASN1_TIME_diff(int *pday, int *psec, const ASN1_TIME *from, const ASN1_TIME *to)
struct ASN1_TLC_st ASN1_TLC
BIGNUM * ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn)
void * ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
#define V_ASN1_PRIMITIVE_TAG
#define ASN1_d2i_bio_of(type, xnew, d2i, in, x)
#define CHECKED_D2I_OF(type, d2i)
ASN1_GENERALIZEDTIME * ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, time_t t)
BIGNUM * ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn)
int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data, int len)
ASN1_TYPE * ASN1_generate_v3(const char *str, X509V3_CTX *cnf)
int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value)
#define CHECKED_NEW_OF(type, xnew)
#define DECLARE_ASN1_FUNCTIONS(type)
#define ASN1_STRFLGS_DUMP_UNKNOWN
ASN1_VALUE * SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it)
void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag, int xclass)
int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a)
void * ASN1_SCTX_get_app_data(ASN1_SCTX *p)
int ASN1_STRING_type(const ASN1_STRING *x)
int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r)
#define CHECKED_I2D_OF(type, i2d)
#define ASN1_dup_of(type, i2d, d2i, x)
int ASN1_str2mask(const char *str, unsigned long *pmask)
int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it)
int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
ASN1_VALUE * ASN1_item_new(const ASN1_ITEM *it)
int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, int dump)
void * ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)
int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a)
ASN1_GENERALIZEDTIME * ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, ASN1_GENERALIZEDTIME **out)
ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long length)
void * ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it)
const char * ASN1_tag2str(int tag)
#define B_ASN1_BIT_STRING
int SMIME_crlf_copy(BIO *in, BIO *out, int flags)
int ASN1_put_eoc(unsigned char **pp)
ASN1_STRING * ASN1_STRING_type_new(int type)
void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags)
int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, const ASN1_OCTET_STRING *b)
unsigned long ASN1_STRING_get_default_mask(void)
int ASN1_PRINTABLE_type(const unsigned char *s, int max)
#define ASN1_STRFLGS_RFC2253
ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a)
void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
int ASN1_const_check_infinite_end(const unsigned char **p, long len)
unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p)
int SMIME_text(BIO *in, BIO *out)
void ASN1_add_oid_module(void)
ASN1_INTEGER * d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, long length)
int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a)
void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags)
int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r)
#define TYPEDEF_D2I_OF(type)
int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x)
int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, BIT_STRING_BITNAME *tbl)
int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl)
int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a)
struct ASN1_VALUE_st ASN1_VALUE
void ASN1_SCTX_free(ASN1_SCTX *p)
void * ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x)
#define CHECKED_PTR_OF(type, p)
int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, int *pclass, long omax)
int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x)
int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len)
int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r)
int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x)
void ASN1_STRING_free(ASN1_STRING *a)
void * ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x)
ASN1_TYPE * ASN1_generate_nconf(const char *str, CONF *nconf)
unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p)
int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp)
int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a)
#define B_ASN1_UNIVERSALSTRING
ASN1_OBJECT * ASN1_OBJECT_new(void)
int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type)
int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a)
#define CHECKED_PPTR_OF(type, p)
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len)
ASN1_STRING * ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct)
int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, BIT_STRING_BITNAME *tbl, int indent)
void * ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x)
ASN1_UTCTIME * ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int offset_day, long offset_sec)
#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)
ASN1_STRING * ASN1_STRING_dup(const ASN1_STRING *a)
const unsigned char * ASN1_STRING_get0_data(const ASN1_STRING *x)
ASN1_INTEGER * ASN1_INTEGER_dup(const ASN1_INTEGER *x)
int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, int len)
ASN1_PCTX * ASN1_PCTX_new(void)
int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x)
unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p)
const ASN1_ITEM * ASN1_ITEM_get(size_t i)
unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p)
int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length)
void ASN1_OBJECT_free(ASN1_OBJECT *a)
int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str)
#define ASN1_STRFLGS_ESC_2253
ASN1_STRING * ASN1_STRING_new(void)
#define B_ASN1_VISIBLESTRING
int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, const ASN1_ITEM *it)
#define DECLARE_ASN1_ALLOC_FUNCTIONS(type)
int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it)
#define B_ASN1_TELETEXSTRING
void ASN1_add_stable_module(void)
void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len)
#define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name)
int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, unsigned char *buf, int off)
int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent)
#define DECLARE_ASN1_ITEM(name)
int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, int inform, unsigned long mask, long minsize, long maxsize)
#define ASN1_i2d_bio_of(type, i2d, out, x)
int ASN1_STRING_length(const ASN1_STRING *x)
int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, const ASN1_ITEM *it, const ASN1_PCTX *pctx)
void * ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t)
ASN1_OBJECT * ASN1_OBJECT_create(int nid, unsigned char *data, int len, const char *sn, const char *ln)
int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len)
#define ASN1_STRFLGS_DUMP_DER
void ASN1_STRING_set_default_mask(unsigned long mask)
const ASN1_TEMPLATE * ASN1_SCTX_get_template(ASN1_SCTX *p)
#define B_ASN1_GENERALIZEDTIME
#define STABLE_FLAGS_MALLOC
void * ASN1_item_dup(const ASN1_ITEM *it, void *x)
ASN1_STRING_TABLE * ASN1_STRING_TABLE_get(int nid)
int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b)
int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str)
const BIO_METHOD * BIO_f_asn1(void)
int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t)
int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags)
long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a)
int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
int ERR_load_ASN1_strings(void)
int ASYNC_init_thread(size_t max_size, size_t init_size)
ASYNC_WAIT_CTX * ASYNC_get_wait_ctx(ASYNC_JOB *job)
struct async_wait_ctx_st ASYNC_WAIT_CTX
void ASYNC_block_pause(void)
int ASYNC_is_capable(void)
void ASYNC_unblock_pause(void)
void ASYNC_cleanup_thread(void)
struct async_job_st ASYNC_JOB
ASYNC_JOB * ASYNC_get_current_job(void)
int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, int(*func)(void *), void *args, size_t size)
int ASYNC_pause_job(void)
int ERR_load_ASYNC_strings(void)
#define BIO_C_SET_WRITE_BUF_SIZE
#define BIO_C_GET_READ_REQUEST
int(*)(BIO *, char *, size_t, size_t *) BIO_meth_get_read_ex(const BIO_METHOD *biom)
#define BIO_C_GET_CIPHER_STATUS
#define BIO_C_MAKE_BIO_PAIR
#define BIO_C_SET_BUFF_SIZE
#define BIO_C_SET_BUFF_READ_DATA
int(*)(BIO *, char *, int) BIO_meth_get_read(const BIO_METHOD *biom)
#define BIO_TYPE_DESCRIPTOR
#define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT
#define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD
#define BIO_TYPE_SOURCE_SINK
#define BIO_C_DO_STATE_MACHINE
#define BIO_C_GET_WRITE_BUF_SIZE
#define BIO_CTRL_SET_CLOSE
#define BIO_C_SET_CONNECT_MODE
int(*)(BIO *, const char *) BIO_meth_get_puts(const BIO_METHOD *biom)
#define BIO_FLAGS_IO_SPECIAL
int(*)(BIO *) BIO_meth_get_destroy(const BIO_METHOD *biom)
#define BIO_CTRL_WPENDING
int(*)(BIO *) BIO_meth_get_create(const BIO_METHOD *bion)
#define BIO_CTRL_SET_CALLBACK
#define BIO_C_SET_CONNECT
#define BIO_C_GET_WRITE_GUARANTEE
#define BIO_do_handshake(b)
#define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP
#define BIO_C_SET_BIND_MODE
#define BIO_C_GET_BIND_MODE
#define ossl_bio__attr__(x)
#define BIO_C_GET_SSL_NUM_RENEGOTIATES
#define BIO_C_GET_BUF_MEM_PTR
#define BIO_C_SET_FILE_PTR
#define BIO_CTRL_DGRAM_SET_PEER
#define BIO_C_GET_CONNECT
#define BIO_C_DESTROY_BIO_PAIR
#define BIO_SOCK_REUSEADDR
#define BIO_C_SET_SSL_RENEGOTIATE_BYTES
#define BIO_C_GET_BUFF_NUM_LINES
#define BIO_CTRL_DGRAM_GET_PEER
#define BIO_CTRL_GET_CLOSE
#define BIO_C_SET_BUF_MEM_EOF_RETURN
#define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP
#define BIO_C_SHUTDOWN_WR
#define BIO_C_SET_FILENAME
#define BIO_CTRL_DGRAM_CONNECT
#define BIO_CTRL_DGRAM_SET_CONNECTED
#define BIO_C_GET_CIPHER_CTX
#define BIO_C_GET_FILE_PTR
int(*)(BIO *, char *, int) BIO_meth_get_gets(const BIO_METHOD *biom)
#define BIO_C_SET_BUF_MEM
#define BIO_FLAGS_SHOULD_RETRY
long(*)(BIO *, int, BIO_info_cb *) BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)
#define BIO_CTRL_GET_CALLBACK
int ERR_load_BIO_strings(void)
void BN_GENCB_set(BN_GENCB *gencb, int(*callback)(int, int, BN_GENCB *), void *cb_arg)
int BN_GENCB_call(BN_GENCB *cb, int a, int b)
BN_GENCB * BN_GENCB_new(void)
int BN_get_flags(const BIGNUM *b, int n)
void BN_set_flags(BIGNUM *b, int n)
void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags)
void * BN_GENCB_get_arg(BN_GENCB *cb)
void BN_GENCB_free(BN_GENCB *cb)
void BN_GENCB_set_old(BN_GENCB *gencb, void(*callback)(int, int, void *), void *cb_arg)
int ERR_load_BN_strings(void)
int ERR_load_BUF_strings(void)
virtual std::unique_ptr< ArkApi::ICommands > & GetCommands()=0
void WriteRequest(std::function< void(bool, std::string)> callback, bool success, std::string result)
std::string GetResponse(Poco::Net::HTTPClientSession *session, Poco::Net::HTTPResponse &response)
Poco::Net::HTTPRequest ConstructRequest(const std::string &url, Poco::Net::HTTPClientSession *&session, const std::vector< std::string > &headers, const std::string &request_type)
std::vector< RequestData > RequestsVec_
Requests(Requests &&)=delete
ARK_API bool CreateGetRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, std::vector< std::string > headers={})
Creates an async GET Request that runs in another thread but calls the callback from the main thread.
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::vector< std::string > &post_ids, const std::vector< std::string > &post_data, std::vector< std::string > headers={})
Creates an async POST Request that runs in another thread but calls the callback from the main thread...
Requests & operator=(Requests &&)=delete
ARK_API bool CreateDeleteRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, std::vector< std::string > headers={})
Creates an async DELETE Request that runs in another thread but calls the callback from the main thre...
Requests & operator=(const Requests &)=delete
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::string &post_data, std::vector< std::string > headers={})
Creates an async POST Request with application/x-www-form-urlencoded content type that runs in anothe...
static ARK_API Requests & Get()
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::string &post_data, const std::string &content_type, std::vector< std::string > headers={})
Creates an async POST Request that runs in another thread but calls the callback from the main thread...
std::unique_ptr< impl > pimpl
Requests(const Requests &)=delete
virtual void AddOnTickCallback(const FString &id, const std::function< void(float)> &callback)=0
Added function will be called every frame.
virtual bool RemoveOnTickCallback(const FString &id)=0
Removes a on-tick callback.
static std::shared_ptr< spdlog::logger > & GetLog()
ValueType operator--()
Increments the counter and returns the previous value.
ValueType operator++()
Returns the value of the counter.
ValueType operator++(int)
Increments the counter and returns the result.
AtomicCounter(ValueType initialValue)
Creates a new AtomicCounter and initializes it to zero.
operator ValueType() const
Assigns a value to the counter.
ValueType operator--(int)
Decrements the counter and returns the result.
ValueType value() const
Converts the AtomicCounter to ValueType.
AtomicCounter & operator=(const AtomicCounter &counter)
Destroys the AtomicCounter.
AtomicCounter & operator=(ValueType value)
Assigns the value of another AtomicCounter.
AtomicCounter()
The underlying integer type.
bool operator!() const
Decrements the counter and returns the previous value.
AtomicCounter(const AtomicCounter &counter)
~AtomicCounter()
Creates the counter by copying another one.
std::atomic< int > _counter
Returns true if the counter is zero, false otherwise.
static std::string what(const char *msg, const char *file, int line, const char *text=0)
static void bugcheck(const char *msg, const char *file, int line)
static void nullPointer(const char *ptr, const char *file, int line)
static void debugger(const char *msg, const char *file, int line)
static void debugger(const char *file, int line)
static void bugcheck(const char *file, int line)
static void assertion(const char *cond, const char *file, int line, const char *text=0)
static void unexpected(const char *file, int line)
static struct CRYPTO_dynlock_value * dynlockCreate(const char *file, int line)
static void uninitialize()
Initializes the OpenSSL machinery.
static void initialize()
Automatically shut down OpenSSL on exit.
~OpenSSLInitializer()
Automatically initialize OpenSSL on startup.
static void lock(int mode, int n, const char *file, int line)
static unsigned long id()
static Poco::AtomicCounter _rc
static void enableFIPSMode(bool enabled)
static Poco::FastMutex * _mutexes
static void dynlock(int mode, struct CRYPTO_dynlock_value *lock, const char *file, int line)
static bool isFIPSEnabled()
Shuts down the OpenSSL machinery.
static void dynlockDestroy(struct CRYPTO_dynlock_value *lock, const char *file, int line)
This class represents a X509 Certificate.
void swap(X509Certificate &cert)
Move assignment.
std::string subjectName(NID nid) const
Returns the certificate subject's distinguished name.
bool equals(const X509Certificate &otherCertificate) const
const X509 * certificate() const
Poco::DateTime expiresOn() const
Returns the date and time the certificate is valid from.
X509Certificate(X509 *pCert, bool shared)
@ NID_PKCS9_EMAIL_ADDRESS
@ NID_ORGANIZATION_UNIT_NAME
std::string issuerName(NID nid) const
Returns the certificate issuer's distinguished name.
const std::string & subjectName() const
X509Certificate(const X509Certificate &cert)
const std::string & serialNumber() const
Returns the version of the certificate.
X509Certificate & operator=(const X509Certificate &cert)
Creates the certificate by moving another one.
X509 * dup() const
Returns the underlying OpenSSL certificate.
~X509Certificate()
Exchanges the certificate with another one.
bool issuedBy(const X509Certificate &issuerCertificate) const
const std::string & issuerName() const
X509Certificate(X509 *pCert)
long version() const
Destroys the X509Certificate.
X509Certificate(X509Certificate &&cert) noexcept
Creates the certificate by copying another one.
void load(std::istream &stream)
Writes the list of certificates to the specified PEM file.
std::string signatureAlgorithm() const
void print(std::ostream &out) const
Returns the certificate signature algorithm long name.
Poco::DateTime validFrom() const
X509Certificate(std::istream &istr)
std::string commonName() const
void save(std::ostream &stream) const
OpenSSLInitializer _openSSLInitializer
std::string _serialNumber
X509Certificate & operator=(X509Certificate &&cert) noexcept
Assigns a certificate.
void swap(DateTime &dateTime)
bool operator<=(const DateTime &dateTime) const
DateTime & operator-=(const Timespan &span)
int millisecond() const
Returns the second (0 to 59).
static bool isValid(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
bool operator!=(const DateTime &dateTime) const
static bool isLeapYear(int year)
Converts a UTC time into a local time, by applying the given time zone differential.
void makeUTC(int tzd)
Converts DateTime to tm struct.
DateTime(double julianDay)
int microsecond() const
Returns the millisecond (0 to 999)
Timestamp::UtcTimeVal utcTime() const
Returns the date and time expressed as a Timestamp.
Months
Symbolic names for month numbers (1 to 12).
bool operator<(const DateTime &dateTime) const
DateTime & operator=(double julianDay)
Assigns a Timestamp.
bool operator>(const DateTime &dateTime) const
bool operator>=(const DateTime &dateTime) const
bool isPM() const
Returns true if hour < 12;.
int hourAMPM() const
Returns the hour (0 to 23).
double julianDay() const
Returns the microsecond (0 to 999)
static double toJulianDay(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
Computes the Julian day for an UTC time.
DaysOfWeek
Symbolic names for week day numbers (0 to 6).
DateTime & operator=(const DateTime &dateTime)
Destroys the DateTime.
void makeLocal(int tzd)
Converts a local time into UTC, by applying the given time zone differential.
DateTime(const Timestamp ×tamp)
Creates a DateTime from tm struct.
static double toJulianDay(Timestamp::UtcTimeVal utcTime)
Timespan operator-(const DateTime &dateTime) const
DateTime operator-(const Timespan &span) const
DateTime & operator+=(const Timespan &span)
static Timestamp::UtcTimeVal toUtcTime(double julianDay)
Timestamp timestamp() const
Returns the julian day for the date and time.
int week(int firstDayOfWeek=MONDAY) const
Returns the month (1 to 12).
int second() const
Returns the minute (0 to 59).
~DateTime()
Copy constructor. Creates the DateTime from another one.
bool operator==(const DateTime &dateTime) const
int year() const
Swaps the DateTime with another one.
static int daysOfMonth(int year, int month)
void computeGregorian(double julianDay)
Computes the UTC time for a Julian day.
int dayOfWeek() const
Returns the day within the month (1 to 31).
DateTime & assign(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microseconds=0)
Assigns a Julian day.
void checkLimit(short &lower, short &higher, short limit)
Extracts the daytime (hours, minutes, seconds, etc.) from the stored utcTime.
DateTime(const DateTime &dateTime)
Timestamp::UtcTimeVal _utcTime
utility functions used to correct the overflow in computeGregorian
int month() const
Returns the year.
DateTime(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
DateTime(const tm &tmStruct)
Creates a DateTime for the current date and time.
DateTime(Timestamp::UtcTimeVal utcTime, Timestamp::TimeDiff diff)
Creates a DateTime for the given Julian day.
DateTime & operator=(const Timestamp ×tamp)
Assigns another DateTime.
DateTime operator+(const Timespan &span) const
int minute() const
Returns true if hour >= 12.
bool isAM() const
Returns the hour (0 to 12).
virtual void updateImpl(const void *data, std::size_t length)=0
virtual const Digest & digest()=0
DigestEngine & operator=(const DigestEngine &)
virtual std::size_t digestLength() const =0
Updates the digest with the given data.
DigestEngine(const DigestEngine &)
void update(const void *data, std::size_t length)
virtual void reset()=0
Returns the length of the digest in bytes.
Exception(const Exception &exc)
virtual const char * what() const noexcept
Returns the name of the exception class.
const std::string & message() const
void message(const std::string &msg)
Standard constructor.
Exception(const std::string &msg, const Exception &nested, int code=0)
Creates an exception.
std::string _msg
Sets the extended message for the exception.
Exception(const std::string &msg, const std::string &arg, int code=0)
Creates an exception.
const Exception * nested() const
virtual Exception * clone() const
Exception & operator=(const Exception &exc)
Destroys the exception and deletes the nested exception.
virtual void rethrow() const
void extendedMessage(const std::string &arg)
Sets the message for the exception.
virtual const char * name() const noexcept
Assignment operator.
int code() const
Returns the message text.
~Exception() noexcept
Copy constructor.
std::string displayText() const
Returns the exception code if defined.
Exception(const std::string &msg, int code=0)
virtual const char * className() const noexcept
Returns a static string describing the exception.
bool tryLock(long milliseconds)
~FastMutex()
creates the Mutex.
void lock()
destroys the Mutex.
FastMutex(const FastMutex &)
void lock(long milliseconds)
FastMutex & operator=(const FastMutex &)
bool tryLock(long milliseconds)
void lock(long milliseconds)
void lock()
destroys the Mutex.
Mutex & operator=(const Mutex &)
~Mutex()
creates the Mutex.
bool tryLockImpl(long milliseconds)
void init(const Params ¶ms)
void setSessionCacheSize(std::size_t size)
Returns true iff the session cache is enabled.
std::size_t getSessionCacheSize() const
Context::VerificationMode verificationMode() const
Returns true iff the context is for use by a server.
void requireMinimumProtocol(Protocols protocol)
void enableExtendedCertificateVerification(bool flag=true)
void setInvalidCertificateHandler(InvalidCertificateHandlerPtr pInvalidCertificageHandler)
Usage _usage
Create a SSL_CTX object according to Context configuration.
Usage usage() const
Returns the underlying OpenSSL SSL Context object.
SSL_CTX * sslContext() const
long getSessionTimeout() const
void usePrivateKey(const Poco::Crypto::RSAKey &key)
Add one trusted certification authority to be used by the Context.
void enableSessionCache(bool flag=true)
Returns the verification mode.
void addCertificateAuthority(const Poco::Crypto::X509Certificate &certificate)
Adds a certificate for certificate chain validation.
void usePrivateKey(const Poco::Crypto::EVPPKey &pkey)
bool extendedCertificateVerificationEnabled() const
bool isForServerUse() const
void addChainCertificate(const Poco::Crypto::X509Certificate &certificate)
bool _ocspStaplingResponseVerification
bool ocspStaplingResponseVerificationEnabled() const
bool _extendedCertificateVerification
@ SERVER_USE
DEPRECATED. Context is used by a client.
@ TLSV1_2_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.1 (OpenSSL 1.0.0 or newer).
@ TLSV1_CLIENT_USE
DEPRECATED. Context is used by a server.
@ TLSV1_3_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.3 (OpenSSL 1.1.1 or newer).
@ CLIENT_USE
Context is used by a client for TLSv1 or higher. Use requireMinimumProtocol() or disableProtocols() t...
@ TLSV1_2_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.2 (OpenSSL 1.0.1 or newer).
@ TLSV1_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.
@ TLSV1_3_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.2 (OpenSSL 1.0.1 or newer).
@ TLS_SERVER_USE
Context is used by a client for TLSv1 or higher. Use requireMinimumProtocol() or disableProtocols() t...
@ TLSV1_1_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.
@ TLSV1_1_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.1 (OpenSSL 1.0.0 or newer).
void useCertificate(const Poco::Crypto::X509Certificate &certificate)
Destroys the Context.
void preferServerCiphers()
Context(Usage usage, const Params ¶ms)
InvalidCertificateHandlerPtr _pInvalidCertificateHandler
void setSessionTimeout(long seconds)
InvalidCertificateHandlerPtr getInvalidCertificateHandler() const
void disableStatelessSessionResumption()
bool sessionCacheEnabled() const
void disableProtocols(int protocols)
virtual std::istream & receiveResponse(HTTPResponse &response)
virtual std::ostream & sendRequest(HTTPRequest &request)
Returns the connection timeout for HTTP connections.
static const std::string HTTP_1_1
void setContentLength(std::streamsize length)
Returns the HTTP version for this message.
HTTPRequest(const std::string &method, const std::string &uri, const std::string &version)
Creates a HTTP/1.0 request with the given method and URI.
static const std::string HTTP_GET
static const std::string HTTP_DELETE
static const std::string HTTP_POST
const std::string & getReason() const
Sets the HTTP reason phrase.
HTTPResponse(HTTPStatus status)
HTTPStatus getStatus() const
HTTPSClientSession(const std::string &host, Poco::UInt16 port, Context::Ptr pContext, Session::Ptr pSession)
std::string proxyRequestPrefix() const
Sends the given HTTPRequest over an existing connection.
HTTPSClientSession(Context::Ptr pContext, Session::Ptr pSession)
Session::Ptr sslSession()
HTTPSClientSession(Context::Ptr pContext)
Creates a HTTPSClientSession using the given host and port.
void proxyAuthenticate(HTTPRequest &request)
Checks if we can reuse a persistent connection.
int read(char *buffer, std::streamsize length)
HTTPSClientSession(const HTTPSClientSession &)
void connect(const SocketAddress &address)
Refills the internal buffer.
HTTPSClientSession(const SecureStreamSocket &socket, Session::Ptr pSession)
X509Certificate serverCertificate()
HTTPSClientSession & operator=(const HTTPSClientSession &)
HTTPSClientSession(const std::string &host, Poco::UInt16 port=HTTPS_PORT)
HTTPSClientSession(const SecureStreamSocket &socket)
Creates an unconnected HTTPSClientSession.
HTTPSClientSession(const std::string &host, Poco::UInt16 port, Context::Ptr pContext)
bool _handleErrorsOnServerSide
InvalidCertificateHandler(bool handleErrorsOnServerSide)
virtual void onInvalidCertificate(const void *pSender, VerificationErrorArgs &errorCert)=0
Destroys the InvalidCertificateHandler.
virtual ~InvalidCertificateHandler()
RejectCertificateHandler(bool handleErrorsOnServerSide)
void initializeClient(PrivateKeyPassphraseHandlerPtr ptrPassphraseHandler, InvalidCertificateHandlerPtr ptrHandler, Context::Ptr ptrContext)
static SSLManager & instance()
static std::string convertCertificateError(long errCode)
static std::string getLastError()
Converts an SSL certificate handling error code into an error message.
static void clearErrorStack()
Returns the last error from the error stack.
A utility class for certificate error handling.
void unlock()
Does nothing.
void lock(long)
Does nothing.
NullMutex()
Creates the NullMutex.
bool tryLock()
Does nothing and always returns true.
~NullMutex()
Destroys the NullMutex.
bool tryLock(long)
Does nothing and always returns true.
This stream discards all characters written to it.
Simple ReferenceCounter object, does not delete itself when count reaches 0.
int referenceCount() const
The release policy for SharedPtr holding arrays.
static void release(C *pObj) noexcept
static void release(C *pObj) noexcept
ScopedLock(M &mutex, long milliseconds)
ScopedLock(const ScopedLock &)
ScopedLock & operator=(const ScopedLock &)
ScopedLockWithUnlock(M &mutex)
ScopedLockWithUnlock & operator=(const ScopedLockWithUnlock &)
ScopedLockWithUnlock(const ScopedLockWithUnlock &)
ScopedLockWithUnlock(M &mutex, long milliseconds)
bool operator!=(const SharedPtr &ptr) const
SharedPtr(SharedPtr &&ptr) noexcept
SharedPtr & operator=(SharedPtr &&ptr) noexcept
SharedPtr< Other, RC, RP > cast() const
bool operator<=(C *ptr) const
bool operator<(const C *ptr) const
bool operator<=(const C *ptr) const
bool operator>=(C *ptr) const
void swap(SharedPtr &ptr)
SharedPtr(const SharedPtr< Other, RC, OtherRP > &ptr)
void reset(const SharedPtr< Other, RC, OtherRP > &ptr)
bool operator==(const SharedPtr &ptr) const
bool operator>=(const C *ptr) const
bool operator!=(const C *ptr) const
bool operator>(C *ptr) const
bool operator>(const C *ptr) const
void reset(const SharedPtr &ptr)
bool operator==(C *ptr) const
bool operator<=(const SharedPtr &ptr) const
bool operator!=(C *ptr) const
bool operator>=(const SharedPtr &ptr) const
bool operator==(std::nullptr_t ptr) const
SharedPtr(const SharedPtr &ptr)
SharedPtr(RC *pCounter, C *ptr)
SharedPtr< Other, RC, RP > unsafeCast() const
SharedPtr & assign(const SharedPtr &ptr)
SharedPtr & operator=(const SharedPtr &ptr)
operator const C *() const
SharedPtr & assign(C *ptr)
const C & operator*() const
const C * operator->() const
int referenceCount() const
SharedPtr & assign(const SharedPtr< Other, RC, OtherRP > &ptr)
bool operator==(const C *ptr) const
bool operator>(const SharedPtr &ptr) const
SharedPtr & operator=(const SharedPtr< Other, RC, OtherRP > &ptr)
bool operator<(const SharedPtr &ptr) const
SharedPtr & operator=(C *ptr)
bool operator<(C *ptr) const
bool operator!=(std::nullptr_t ptr) const
static std::streamsize copyStream(std::istream &istr, std::ostream &ostr, std::size_t bufferSize=8192)
A class that represents time spans up to microsecond resolution.
Timespan(const Timespan ×pan)
Creates a Timespan.
int totalMinutes() const
Returns the number of minutes (0 to 59).
static const TimeDiff SECONDS
The number of microseconds in a millisecond.
bool operator>=(TimeDiff microSeconds) const
bool operator>(TimeDiff microSeconds) const
int seconds() const
Returns the total number of minutes.
Timespan(int days, int hours, int minutes, int seconds, int microSeconds)
Timespan & operator=(TimeDiff microseconds)
Assignment operator.
Timespan operator-(TimeDiff microSeconds) const
bool operator<=(const Timespan &ts) const
static const TimeDiff HOURS
The number of microseconds in a minute.
Timespan & assign(long seconds, long microseconds)
Assigns a new span.
bool operator==(const Timespan &ts) const
Swaps the Timespan with another one.
void swap(Timespan ×pan)
bool operator==(TimeDiff microSeconds) const
TimeDiff _span
The number of microseconds in a day.
Timespan & operator-=(TimeDiff microSeconds)
Timespan(long seconds, long microseconds)
Creates a Timespan.
TimeDiff totalMicroseconds() const
int totalHours() const
Returns the number of hours (0 to 23).
Timespan & operator=(const Timespan ×pan)
Destroys the Timespan.
int totalSeconds() const
Returns the number of seconds (0 to 59).
TimeDiff totalMilliseconds() const
Returns the number of milliseconds (0 to 999).
Timespan & operator-=(const Timespan &d)
bool operator>=(const Timespan &ts) const
int hours() const
Returns the number of days.
Timespan(TimeDiff microseconds)
Creates a zero Timespan.
int minutes() const
Returns the total number of hours.
bool operator!=(const Timespan &ts) const
Timespan operator+(TimeDiff microSeconds) const
bool operator>(const Timespan &ts) const
bool operator<(TimeDiff microSeconds) const
static const TimeDiff DAYS
The number of microseconds in a hour.
int microseconds() const
Returns the total number of milliseconds.
int milliseconds() const
Returns the total number of seconds.
Timespan & operator+=(TimeDiff microSeconds)
static const TimeDiff MINUTES
The number of microseconds in a second.
~Timespan()
Creates a Timespan from another one.
Timespan & operator+=(const Timespan &d)
static const TimeDiff MILLISECONDS
Returns the total number of microseconds.
bool operator<(const Timespan &ts) const
Timespan operator-(const Timespan &d) const
Timespan & assign(int days, int hours, int minutes, int seconds, int microSeconds)
Assignment operator.
Timespan operator+(const Timespan &d) const
bool operator<=(TimeDiff microSeconds) const
bool operator!=(TimeDiff microSeconds) const
Timestamp & operator=(const Timestamp &other)
Destroys the timestamp.
Timestamp & operator+=(TimeDiff d)
Timestamp & operator-=(TimeDiff d)
Timestamp(TimeVal tv)
Creates a timestamp with the current time.
Timestamp & operator=(TimeVal tv)
bool isElapsed(TimeDiff interval) const
static const TimeVal TIMEVAL_MIN
Difference between two TimeVal values in microseconds.
TimeVal epochMicroseconds() const
static Timestamp fromUtcTime(UtcTimeVal val)
Creates a timestamp from a std::time_t.
static TimeDiff resolution()
bool operator<=(const Timestamp &ts) const
Timestamp operator+(const Timespan &span) const
std::time_t epochTime() const
~Timestamp()
Copy constructor.
Timestamp operator-(const Timespan &span) const
bool operator==(const Timestamp &ts) const
Updates the Timestamp with the current time.
bool operator>=(const Timestamp &ts) const
Timestamp & operator-=(const Timespan &span)
UtcTimeVal utcTime() const
Timestamp operator+(TimeDiff d) const
bool operator<(const Timestamp &ts) const
static Timestamp fromEpochTime(std::time_t t)
Timestamp()
Maximum timestamp value.
bool operator!=(const Timestamp &ts) const
static const TimeVal TIMEVAL_MAX
Minimum timestamp value.
TimeDiff operator-(const Timestamp &ts) const
Timestamp & operator+=(const Timespan &span)
bool operator>(const Timestamp &ts) const
Timestamp(const Timestamp &other)
void swap(Timestamp ×tamp)
Timestamp operator-(TimeDiff d) const
void update()
Swaps the Timestamp with another one.
const std::string & getHost() const
Sets the user-info part of the URI.
const std::string & getScheme() const
URI(const std::string &uri)
Creates an empty URI.
unsigned short getPort() const
Sets the host part of the URI.
std::string getPathAndQuery() const
Returns the encoded path, query and fragment parts of the URI.
int COMP_CTX_get_type(const COMP_CTX *comp)
int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, unsigned char *in, int ilen)
int COMP_get_type(const COMP_METHOD *meth)
int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, unsigned char *in, int ilen)
const COMP_METHOD * COMP_CTX_get_method(const COMP_CTX *ctx)
const char * COMP_get_name(const COMP_METHOD *meth)
COMP_CTX * COMP_CTX_new(COMP_METHOD *meth)
void COMP_CTX_free(COMP_CTX *ctx)
COMP_METHOD * COMP_zlib(void)
int ERR_load_COMP_strings(void)
int ERR_load_CRYPTO_strings(void)
const char * CTLOG_get0_name(const CTLOG *log)
void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs)
int SCT_get_signature_nid(const SCT *sct)
int CTLOG_new_from_base64(CTLOG **ct_log, const char *pkey_base64, const char *name)
sct_validation_status_t SCT_get_validation_status(const SCT *sct)
void SCT_LIST_free(STACK_OF(SCT) *a)
__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type)
X509 * CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx)
X509 * CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx)
const CTLOG_STORE * CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx)
uint64_t SCT_get_timestamp(const SCT *sct)
SCT * SCT_new_from_base64(unsigned char version, const char *logid_base64, ct_log_entry_type_t entry_type, uint64_t timestamp, const char *extensions_base64, const char *signature_base64)
const CTLOG * CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, const uint8_t *log_id, size_t log_id_len)
const unsigned char ** pp
const char * SCT_validation_status_string(const SCT *sct)
void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms)
__owur int i2o_SCT(const SCT *sct, unsigned char **out)
size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext)
__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp)
SCT * o2i_SCT(SCT **psct, const unsigned char **in, size_t len)
__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file)
size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id)
__owur int SCT_set_version(SCT *sct, sct_version_t version)
void CTLOG_STORE_free(CTLOG_STORE *store)
__owur int SCT_set_source(SCT *sct, sct_source_t source)
void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len)
void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, CTLOG_STORE *log_store)
CTLOG * CTLOG_new(EVP_PKEY *public_key, const char *name)
int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer)
__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store)
size_t SCT_get0_signature(const SCT *sct, unsigned char **sig)
__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx)
void SCT_set_timestamp(SCT *sct, uint64_t timestamp)
__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len)
ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct)
uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx)
sct_source_t SCT_get_source(const SCT *sct)
EVP_PKEY * CTLOG_get0_public_key(const CTLOG *log)
@ SCT_VALIDATION_STATUS_UNKNOWN_VERSION
@ SCT_VALIDATION_STATUS_UNVERIFIED
@ SCT_VALIDATION_STATUS_INVALID
@ SCT_VALIDATION_STATUS_NOT_SET
@ SCT_VALIDATION_STATUS_UNKNOWN_LOG
@ SCT_VALIDATION_STATUS_VALID
__owur int SCT_set_signature_nid(SCT *sct, int nid)
void CTLOG_free(CTLOG *log)
int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert)
sct_version_t SCT_get_version(const SCT *sct)
__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, size_t ext_len)
@ CT_LOG_ENTRY_TYPE_PRECERT
@ CT_LOG_ENTRY_TYPE_NOT_SET
void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, size_t *log_id_len)
__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp)
@ SCT_SOURCE_X509V3_EXTENSION
@ SCT_SOURCE_TLS_EXTENSION
@ SCT_SOURCE_OCSP_STAPLED_RESPONSE
__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, size_t log_id_len)
CT_POLICY_EVAL_CTX * CT_POLICY_EVAL_CTX_new(void)
const unsigned char size_t len
void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, const char *separator, const CTLOG_STORE *logs)
void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx)
CTLOG_STORE * CTLOG_STORE_new(void)
void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len)
__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, CT_POLICY_EVAL_CTX *ctx)
__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, size_t sig_len)
int ERR_load_CT_strings(void)
const BIGNUM * DH_get0_p(const DH *dh)
int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes)
#define EVP_PKEY_CTRL_DH_KDF_OUTLEN
int i2d_DHxparams(const DH *a, unsigned char **pp)
const BIGNUM * DH_get0_priv_key(const DH *dh)
#define EVP_PKEY_CTRL_DH_PAD
int DH_check_params(const DH *dh, int *ret)
const DH_METHOD * DH_get_default_method(void)
const char * DH_meth_get0_name(const DH_METHOD *dhm)
int i2d_DHparams(const DH *a, unsigned char **pp)
int(*)(unsigned char *key, const BIGNUM *pub_key, DH *dh) DH_meth_get_compute_key(const DH_METHOD *dhm)
int DHparams_print_fp(FILE *fp, const DH *x)
DH * d2i_DHparams(DH **a, const unsigned char **pp, long length)
DH * DH_new_method(ENGINE *engine)
int DH_set_method(DH *dh, const DH_METHOD *meth)
DH * DH_get_2048_224(void)
#define EVP_PKEY_CTRL_DH_KDF_TYPE
int DH_KDF_X9_42(unsigned char *out, size_t outlen, const unsigned char *Z, size_t Zlen, ASN1_OBJECT *key_oid, const unsigned char *ukm, size_t ukmlen, const EVP_MD *md)
int DH_meth_set_compute_key(DH_METHOD *dhm, int(*compute_key)(unsigned char *key, const BIGNUM *pub_key, DH *dh))
#define EVP_PKEY_CTRL_GET_DH_KDF_MD
int(*)(DH *) DH_meth_get_finish(const DH_METHOD *dhm)
int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key)
#define EVP_PKEY_CTRL_DH_KDF_OID
int DH_meth_get_flags(const DH_METHOD *dhm)
void DH_clear_flags(DH *dh, int flags)
int DH_set_ex_data(DH *d, int idx, void *arg)
int DH_test_flags(const DH *dh, int flags)
#define EVP_PKEY_CTRL_GET_DH_KDF_UKM
#define EVP_PKEY_CTRL_DH_NID
int(*)(DH *) DH_meth_get_init(const DH_METHOD *dhm)
void DH_set_default_method(const DH_METHOD *meth)
void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
int DH_security_bits(const DH *dh)
const DH_METHOD * DH_OpenSSL(void)
void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
DH * DH_new_by_nid(int nid)
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
int DH_meth_set_init(DH_METHOD *dhm, int(*init)(DH *))
DH * DH_get_2048_256(void)
DH * DH_get_1024_160(void)
int DH_meth_set_generate_key(DH_METHOD *dhm, int(*generate_key)(DH *))
int DH_bits(const DH *dh)
int DH_meth_set_generate_params(DH_METHOD *dhm, int(*generate_params)(DH *, int, int, BN_GENCB *))
void * DH_get_ex_data(DH *d, int idx)
ENGINE * DH_get0_engine(DH *d)
int DHparams_print(BIO *bp, const DH *x)
const BIGNUM * DH_get0_q(const DH *dh)
int DH_get_nid(const DH *dh)
#define EVP_PKEY_CTRL_GET_DH_KDF_OID
int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, int(*bn_mod_exp)(const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *))
int DH_size(const DH *dh)
int DH_meth_set1_name(DH_METHOD *dhm, const char *name)
int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data)
DH * d2i_DHxparams(DH **a, const unsigned char **pp, long length)
#define EVP_PKEY_CTRL_DH_KDF_MD
int DH_meth_set_finish(DH_METHOD *dhm, int(*finish)(DH *))
#define DH_CHECK_P_NOT_SAFE_PRIME
int(*)(DH *, int, int, BN_GENCB *) DH_meth_get_generate_params(const DH_METHOD *dhm)
void DH_meth_free(DH_METHOD *dhm)
#define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR
int DH_generate_key(DH *dh)
DH_METHOD * DH_meth_new(const char *name, int flags)
#define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE
int(*)(const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)
int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
#define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN
const BIGNUM * DH_get0_pub_key(const DH *dh)
long DH_get_length(const DH *dh)
int(*)(DH *) DH_meth_get_generate_key(const DH_METHOD *dhm)
int DH_set_length(DH *dh, long length)
#define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN
#define EVP_PKEY_CTRL_DH_KDF_UKM
int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh)
#define EVP_PKEY_CTRL_DH_RFC5114
void DH_set_flags(DH *dh, int flags)
#define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN
int DH_check(const DH *dh, int *codes)
void * DH_meth_get0_app_data(const DH_METHOD *dhm)
const BIGNUM * DH_get0_g(const DH *dh)
int DH_meth_set_flags(DH_METHOD *dhm, int flags)
DH_METHOD * DH_meth_dup(const DH_METHOD *dhm)
int DH_check_params_ex(const DH *dh)
int DH_check_ex(const DH *dh)
int ERR_load_DH_strings(void)
void DSA_meth_free(DSA_METHOD *dsam)
DSA_METHOD * DSA_meth_new(const char *name, int flags)
int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, DSA *dsa)
int(*)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)
int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp)
const BIGNUM * DSA_get0_pub_key(const DSA *d)
int DSA_meth_set_verify(DSA_METHOD *dsam, int(*verify)(const unsigned char *, int, DSA_SIG *, DSA *))
DSA_SIG * DSA_SIG_new(void)
int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp)
DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
int DSA_bits(const DSA *d)
int(*)(const unsigned char *, int, DSA_SIG *, DSA *) DSA_meth_get_verify(const DSA_METHOD *dsam)
int DSA_verify(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int siglen, DSA *dsa)
int DSA_meth_set_keygen(DSA_METHOD *dsam, int(*keygen)(DSA *))
int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name)
int(*)(DSA *) DSA_meth_get_init(const DSA_METHOD *dsam)
int const unsigned char int seed_len
int DSA_size(const DSA *)
void DSA_set_default_method(const DSA_METHOD *)
DSA * DSA_new_method(ENGINE *engine)
int const unsigned char * seed
const DSA_METHOD * DSA_get_method(DSA *d)
int DSA_meth_set_flags(DSA_METHOD *dsam, int flags)
void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
DSA_METHOD * DSA_meth_dup(const DSA_METHOD *dsam)
DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length)
int DSA_meth_set_paramgen(DSA_METHOD *dsam, int(*paramgen)(DSA *, int, const unsigned char *, int, int *, unsigned long *, BN_GENCB *))
int(*)(DSA *) DSA_meth_get_keygen(const DSA_METHOD *dsam)
void DSA_clear_flags(DSA *d, int flags)
int DSA_security_bits(const DSA *d)
int(*)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) DSA_meth_get_mod_exp(const DSA_METHOD *dsam)
#define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS
DH * DSA_dup_DH(const DSA *r)
int DSAparams_print_fp(FILE *fp, const DSA *x)
int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, int(*bn_mod_exp)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *))
#define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS
const BIGNUM * DSA_get0_q(const DSA *d)
const BIGNUM * DSA_get0_g(const DSA *d)
int DSA_meth_set_sign(DSA_METHOD *dsam, DSA_SIG *(*sign)(const unsigned char *, int, DSA *))
int const unsigned char int int unsigned long * h_ret
DSA * d2i_DSAparams(DSA **a, const unsigned char **pp, long length)
int DSA_meth_set_finish(DSA_METHOD *dsam, int(*finish)(DSA *))
void * DSA_get_ex_data(DSA *d, int idx)
void DSA_SIG_free(DSA_SIG *a)
int DSAparams_print(BIO *bp, const DSA *x)
DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length)
int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data)
int DSA_meth_set_mod_exp(DSA_METHOD *dsam, int(*mod_exp)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *))
const BIGNUM * DSA_get0_priv_key(const DSA *d)
int(*)(DSA *, BN_CTX *, BIGNUM **, BIGNUM **) DSA_meth_get_sign_setup(const DSA_METHOD *dsam)
const BIGNUM * DSA_get0_p(const DSA *d)
int DSA_meth_set_sign_setup(DSA_METHOD *dsam, int(*sign_setup)(DSA *, BN_CTX *, BIGNUM **, BIGNUM **))
const char * DSA_meth_get0_name(const DSA_METHOD *dsam)
void DSA_set_flags(DSA *d, int flags)
const DSA_METHOD * DSA_OpenSSL(void)
int i2d_DSAPublicKey(const DSA *a, unsigned char **pp)
int DSA_generate_key(DSA *a)
void * DSA_meth_get0_app_data(const DSA_METHOD *dsam)
int const unsigned char int int * counter_ret
int DSA_meth_get_flags(const DSA_METHOD *dsam)
struct DSA_SIG_st DSA_SIG
int const unsigned char int int unsigned long BN_GENCB * cb
int DSA_print(BIO *bp, const DSA *x, int off)
void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)
int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
int(*)(DSA *) DSA_meth_get_finish(const DSA_METHOD *dsam)
int DSA_set_method(DSA *dsa, const DSA_METHOD *)
int DSA_meth_set_init(DSA_METHOD *dsam, int(*init)(DSA *))
int DSA_test_flags(const DSA *d, int flags)
ENGINE * DSA_get0_engine(DSA *d)
int DSA_set_ex_data(DSA *d, int idx, void *arg)
int DSA_print_fp(FILE *bp, const DSA *x, int off)
#define EVP_PKEY_CTRL_DSA_PARAMGEN_MD
DSA_SIG * d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length)
const DSA_METHOD * DSA_get_default_method(void)
void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
int i2d_DSAparams(const DSA *a, unsigned char **pp)
int(*)(DSA *, int, const unsigned char *, int, int *, unsigned long *, BN_GENCB *) DSA_meth_get_paramgen(const DSA_METHOD *dsam)
DSA * DSAparams_dup(DSA *x)
int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, DSA *dsa)
int ERR_load_DSA_strings(void)
int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, unsigned int *k2, unsigned int *k3)
unsigned EC_KEY_get_enc_flags(const EC_KEY *key)
int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp)
int EC_curve_nist2nid(const char *name)
ECDSA_SIG * d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len)
ECDSA_SIG * ECDSA_SIG_new(void)
EC_GROUP * EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params)
void EC_GROUP_clear_free(EC_GROUP *group)
size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len)
const EC_METHOD * EC_GFp_mont_method(void)
void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, int(*ckey)(unsigned char **psec, size_t *pseclen, const EC_POINT *pub_key, const EC_KEY *ecdh))
const EC_POINT * EC_KEY_get0_public_key(const EC_KEY *key)
int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx)
size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, point_conversion_form_t form, unsigned char **pbuf, BN_CTX *ctx)
int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
EC_POINT const BIGNUM const BIGNUM BN_CTX *ctx EC_POINT const BIGNUM int BN_CTX *ctx size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, point_conversion_form_t form, unsigned char *buf, size_t len, BN_CTX *ctx)
size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf)
EC_KEY * d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len)
struct ecpk_parameters_st ECPKPARAMETERS
int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, int(**pinit)(EC_KEY *key), void(**pfinish)(EC_KEY *key), int(**pcopy)(EC_KEY *dest, const EC_KEY *src), int(**pset_group)(EC_KEY *key, const EC_GROUP *grp), int(**pset_private)(EC_KEY *key, const BIGNUM *priv_key), int(**pset_public)(EC_KEY *key, const EC_POINT *pub_key))
BIGNUM BIGNUM BIGNUM BN_CTX *ctx BIGNUM BIGNUM BIGNUM BN_CTX *ctx int EC_GROUP_get_degree(const EC_GROUP *group)
void EC_KEY_set_default_method(const EC_KEY_METHOD *meth)
int EC_KEY_up_ref(EC_KEY *key)
void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, int(*init)(EC_KEY *key), void(*finish)(EC_KEY *key), int(*copy)(EC_KEY *dest, const EC_KEY *src), int(*set_group)(EC_KEY *key, const EC_GROUP *grp), int(*set_private)(EC_KEY *key, const BIGNUM *priv_key), int(*set_public)(EC_KEY *key, const EC_POINT *pub_key))
void EC_KEY_METHOD_free(EC_KEY_METHOD *meth)
int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, unsigned char *sig, unsigned int *siglen, EC_KEY *eckey)
ENGINE * EC_KEY_get0_engine(const EC_KEY *eckey)
#define EVP_PKEY_CTRL_EC_KDF_TYPE
BN_MONT_CTX * EC_GROUP_get_mont_data(const EC_GROUP *group)
#define EVP_PKEY_CTRL_GET1_ID_LEN
int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx)
int EC_GROUP_order_bits(const EC_GROUP *group)
const BIGNUM * EC_GROUP_get0_order(const EC_GROUP *group)
EC_KEY * o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len)
EC_GROUP * EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
const BIGNUM * ECDSA_SIG_get0_r(const ECDSA_SIG *sig)
void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, int(**psign)(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey), int(**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp), ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, int dgst_len, const BIGNUM *in_kinv, const BIGNUM *in_r, EC_KEY *eckey))
int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out)
#define EVP_PKEY_CTRL_GET1_ID
const EC_METHOD * EC_GFp_nist_method(void)
const BIGNUM * EC_GROUP_get0_cofactor(const EC_GROUP *group)
void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform)
int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group)
const EC_KEY_METHOD * EC_KEY_OpenSSL(void)
#define EVP_PKEY_ECDH_KDF_X9_63
void EC_KEY_clear_flags(EC_KEY *key, int flags)
EC_KEY * EC_KEY_new_by_curve_name(int nid)
int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, BN_CTX *ctx)
#define EVP_PKEY_CTRL_EC_PARAM_ENC
int ECParameters_print_fp(FILE *fp, const EC_KEY *key)
unsigned char * EC_GROUP_get0_seed(const EC_GROUP *x)
EC_KEY * EC_KEY_copy(EC_KEY *dst, const EC_KEY *src)
int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, const unsigned char *buf, size_t len, BN_CTX *ctx)
const BIGNUM * EC_KEY_get0_private_key(const EC_KEY *key)
ECDSA_SIG * ECDSA_do_sign(const unsigned char *dgst, int dgst_len, EC_KEY *eckey)
const BIGNUM * ECDSA_SIG_get0_s(const ECDSA_SIG *sig)
int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BIGNUM *y)
const EC_GROUP * EC_KEY_get0_group(const EC_KEY *key)
int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx)
struct ec_parameters_st ECPARAMETERS
void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form)
int ECParameters_print(BIO *bp, const EC_KEY *key)
int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out)
#define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN
const EC_POINT * EC_GROUP_get0_generator(const EC_GROUP *group)
int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey)
#define EVP_PKEY_CTRL_EC_KDF_MD
int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src)
ECDSA_SIG * ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey)
int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, const BIGNUM *order, const BIGNUM *cofactor)
int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx)
int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, BN_CTX *ctx)
size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)
int EC_KEY_get_flags(const EC_KEY *key)
#define EVP_PKEY_CTRL_EC_KDF_OUTLEN
int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth)
int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx)
void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag)
int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx)
char * EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, point_conversion_form_t form, BN_CTX *)
void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, int(**pck)(unsigned char **psec, size_t *pseclen, const EC_POINT *pub_key, const EC_KEY *ecdh))
EC_GROUP * d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len)
void EC_GROUP_set_curve_name(EC_GROUP *group, int nid)
const char * EC_curve_nid2nist(int nid)
int EC_KEY_generate_key(EC_KEY *key)
#define EVP_PKEY_CTRL_EC_ECDH_COFACTOR
struct ECDSA_SIG_st ECDSA_SIG
EC_GROUP * EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
EC_GROUP * EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params)
int EC_GROUP_get_asn1_flag(const EC_GROUP *group)
int EC_KEY_decoded_from_explicit_params(const EC_KEY *key)
EC_POINT * EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, EC_POINT *, BN_CTX *)
const EC_METHOD * EC_GFp_simple_method(void)
int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off)
int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src)
void EC_GROUP_free(EC_GROUP *group)
void EC_POINT_free(EC_POINT *point)
ECPARAMETERS * EC_GROUP_get_ecparameters(const EC_GROUP *group, ECPARAMETERS *params)
EC_GROUP * EC_GROUP_new_by_curve_name(int nid)
EC_POINT * EC_POINT_new(const EC_GROUP *group)
const EC_METHOD * EC_GF2m_simple_method(void)
EC_KEY * EC_KEY_new(void)
EC_POINT * EC_POINT_hex2point(const EC_GROUP *, const char *, EC_POINT *, BN_CTX *)
int ECDSA_size(const EC_KEY *eckey)
int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx)
const EC_METHOD * EC_POINT_method_of(const EC_POINT *point)
int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p)
BIGNUM * EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, point_conversion_form_t form, BIGNUM *, BN_CTX *)
int EC_KEY_can_sign(const EC_KEY *eckey)
void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag)
const EC_KEY_METHOD * EC_KEY_get_method(const EC_KEY *key)
void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, int(*verify)(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int sig_len, EC_KEY *eckey), int(*verify_sig)(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey))
const EC_KEY_METHOD * EC_KEY_get_default_method(void)
int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, BN_CTX *ctx)
const EC_POINT BIGNUM BIGNUM BN_CTX *ctx int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, int y_bit, BN_CTX *ctx)
void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, int(**pverify)(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int sig_len, EC_KEY *eckey), int(**pverify_sig)(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey))
int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx)
void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
EC_GROUP * EC_GROUP_dup(const EC_GROUP *src)
@ POINT_CONVERSION_UNCOMPRESSED
@ POINT_CONVERSION_COMPRESSED
@ POINT_CONVERSION_HYBRID
int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx)
int i2d_ECParameters(EC_KEY *key, unsigned char **out)
int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg)
EC_POINT * EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group)
const EC_METHOD * EC_GROUP_method_of(const EC_GROUP *group)
int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, BN_CTX *ctx)
EC_KEY_METHOD * EC_KEY_METHOD_new(const EC_KEY_METHOD *meth)
void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, int(*keygen)(EC_KEY *key))
const EC_POINT BIGNUM * x
void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, int(**pkeygen)(EC_KEY *key))
#define EVP_PKEY_CTRL_EC_KDF_UKM
EC_KEY * d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len)
int EC_GROUP_get_basis_type(const EC_GROUP *)
void EC_POINT_clear_free(EC_POINT *point)
int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, const EC_KEY *ecdh, void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen))
int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub)
struct ec_point_st EC_POINT
int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx)
#define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID
int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point)
void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags)
size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, unsigned char **pbuf, BN_CTX *ctx)
int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, const unsigned char *Z, size_t Zlen, const unsigned char *sinfo, size_t sinfolen, const EVP_MD *md)
int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, const unsigned char *sig, int siglen, EC_KEY *eckey)
int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off)
int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv)
struct ec_group_st EC_GROUP
void * EC_KEY_get_ex_data(const EC_KEY *key, int idx)
ECPKPARAMETERS * EC_GROUP_get_ecpkparameters(const EC_GROUP *group, ECPKPARAMETERS *params)
void ECDSA_SIG_free(ECDSA_SIG *sig)
#define EVP_PKEY_CTRL_SET1_ID
point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key)
EC_POINT const BIGNUM const BIGNUM BN_CTX *ctx EC_POINT const BIGNUM int y_bit
int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx)
int EC_GROUP_get_curve_name(const EC_GROUP *group)
#define EVP_PKEY_CTRL_GET_EC_KDF_MD
EC_KEY * EC_KEY_dup(const EC_KEY *src)
int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k)
int EC_METHOD_get_field_type(const EC_METHOD *meth)
int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey)
int EC_GROUP_have_precompute_mult(const EC_GROUP *group)
#define EVP_PKEY_CTRL_GET_EC_KDF_UKM
int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out)
int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp)
struct ec_method_st EC_METHOD
int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len)
void EC_KEY_set_flags(EC_KEY *key, int flags)
int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx)
const EC_POINT BIGNUM BIGNUM * y
int EC_KEY_print(BIO *bp, const EC_KEY *key, int off)
int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx)
void EC_KEY_free(EC_KEY *key)
EC_KEY * EC_KEY_new_method(ENGINE *engine)
int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx)
size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len)
int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx)
int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx)
void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, int(*sign)(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey), int(*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp), ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, int dgst_len, const BIGNUM *in_kinv, const BIGNUM *in_r, EC_KEY *eckey))
point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *)
size_t EC_GROUP_get_seed_len(const EC_GROUP *)
int EC_KEY_check_key(const EC_KEY *key)
EC_GROUP * EC_GROUP_new(const EC_METHOD *meth)
int ERR_load_EC_strings(void)
int(*)(EVP_MD_CTX *ctx) EVP_MD_meth_get_cleanup(const EVP_MD *md)
int(*)(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher)
int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize)
#define EVP_get_cipherbynid(a)
#define EVP_PKEY_OP_DECRYPT
EVP_MD * EVP_MD_meth_new(int md_type, int pkey_type)
#define EVP_PKEY_OP_ENCRYPT
int(*)(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher)
int EVP_MD_meth_get_app_datasize(const EVP_MD *md)
#define EVP_CTRL_AEAD_SET_IVLEN
#define EVP_PKEY_OP_KEYGEN
int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags)
int(*)(EVP_MD_CTX *ctx, const void *data, size_t count) EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx)
int EVP_MD_meth_set_cleanup(EVP_MD *md, int(*cleanup)(EVP_MD_CTX *ctx))
int EVP_MD_meth_set_ctrl(EVP_MD *md, int(*ctrl)(EVP_MD_CTX *ctx, int cmd, int p1, void *p2))
EVP_MD * EVP_MD_meth_dup(const EVP_MD *md)
int EVP_MD_meth_set_final(EVP_MD *md, int(*final)(EVP_MD_CTX *ctx, unsigned char *md))
int EVP_MD_meth_get_result_size(const EVP_MD *md)
int(*)(EVP_MD_CTX *ctx) EVP_MD_meth_get_init(const EVP_MD *md)
unsigned long EVP_MD_meth_get_flags(const EVP_MD *md)
#define EVP_MAX_IV_LENGTH
int EVP_MD_meth_set_copy(EVP_MD *md, int(*copy)(EVP_MD_CTX *to, const EVP_MD_CTX *from))
int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize)
#define EVP_CIPHER_mode(e)
int(*)(EVP_MD_CTX *ctx, unsigned char *md) EVP_MD_meth_get_final(const EVP_MD *md)
int EVP_MD_meth_set_init(EVP_MD *md, int(*init)(EVP_MD_CTX *ctx))
#define EVP_PKEY_OP_VERIFYCTX
int EVP_MD_meth_set_update(EVP_MD *md, int(*update)(EVP_MD_CTX *ctx, const void *data, size_t count))
int(*)(EVP_MD_CTX *to, const EVP_MD_CTX *from) EVP_MD_meth_get_copy(const EVP_MD *md)
#define EVP_PKEY_OP_VERIFY
int(*)(EVP_MD_CTX *ctx, const void *data, size_t count) EVP_MD_meth_get_update(const EVP_MD *md)
int EVP_MD_meth_get_input_blocksize(const EVP_MD *md)
#define EVP_PKEY_CTRL_SET_MAC_KEY
#define EVP_PKEY_ALG_CTRL
int(*)(EVP_MD_CTX *ctx, int cmd, int p1, void *p2) EVP_MD_meth_get_ctrl(const EVP_MD *md)
int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize)
#define OPENSSL_add_all_algorithms_noconf()
#define EVP_CTRL_AEAD_GET_TAG
int(*)(EVP_CIPHER_CTX *, int type, int arg, void *ptr) EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher)
#define EVP_PKEY_OP_TYPE_CRYPT
#define EVP_PKEY_OP_VERIFYRECOVER
#define EVP_CTRL_AEAD_SET_TAG
int(*)(EVP_CIPHER_CTX *) EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher)
void EVP_MD_meth_free(EVP_MD *md)
#define EVP_PKEY_CTRL_GET_MD
#define EVP_PKEY_OP_TYPE_SIG
#define EVP_PKEY_OP_DERIVE
#define EVP_CTRL_AEAD_SET_IV_FIXED
#define EVP_get_digestbynid(a)
#define EVP_PKEY_POLY1305
#define EVP_PKEY_OP_SIGNCTX
#define EVP_PKEY_OP_PARAMGEN
int ERR_load_EVP_strings(void)
const void int const EVP_MD ENGINE * impl
__owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx)
const void int const EVP_MD * md
size_t HMAC_size(const HMAC_CTX *e)
void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
void HMAC_CTX_free(HMAC_CTX *ctx)
int HMAC_CTX_reset(HMAC_CTX *ctx)
unsigned char * HMAC(const EVP_MD *evp_md, const void *key, int key_len, const unsigned char *d, size_t n, unsigned char *md, unsigned int *md_len)
const EVP_MD * HMAC_CTX_get_md(const HMAC_CTX *ctx)
HMAC_CTX * HMAC_CTX_new(void)
int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
void * OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data)
unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh)
unsigned long OPENSSL_LH_strhash(const char *c)
#define int_implement_lhash_doall(type, argtype, cbargtype)
void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg)
void * OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)
OPENSSL_LHASH * OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c)
void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp)
struct lhash_st OPENSSL_LHASH
void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp)
void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load)
void * OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
#define DEFINE_LHASH_OF(type)
void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func)
void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
unsigned long(* OPENSSL_LH_HASHFUNC)(const void *)
void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
void(* OPENSSL_LH_DOALL_FUNCARG)(void *, void *)
void(* OPENSSL_LH_DOALL_FUNC)(void *)
int(* OPENSSL_LH_COMPFUNC)(const void *, const void *)
struct lhash_node_st OPENSSL_LH_NODE
void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
int OPENSSL_LH_error(OPENSSL_LHASH *lh)
void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp)
void OPENSSL_LH_free(OPENSSL_LHASH *lh)
unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh)
std::unique_ptr< IBaseApi > game_api
void Crypto_API uninitializeCrypto()
void Crypto_API initializeCrypto()
std::vector< SocketBuf > SocketBufVec
void NetSSL_API initializeSSL()
void Net_API uninitializeNetwork()
void Net_API initializeNetwork()
void NetSSL_API uninitializeSSL()
void swap(Timestamp &s1, Timestamp &s2)
void swap(SharedPtr< C, RC, RP > &p1, SharedPtr< C, RC, RP > &p2)
void swap(DateTime &d1, DateTime &d2)
void swap(Timespan &s1, Timespan &s2)
SharedPtr< T, ReferenceCounter, ReleaseArrayPolicy< T > > makeSharedArray(std::size_t size)
SharedPtr< T > makeShared(Args &&... args)
void format_arg(BasicFormatter< char, ArgFormatter > &f, const char *&format_str, const std::tm &tm)
#define OBJ_id_tc26_sign_constants
#define OBJ_wap_wsg_idm_ecid
#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik
#define OBJ_id_tc26_cipher
#define OBJ_setAttr_IssCap_Sig
#define OBJ_ecdsa_with_Specified
#define OBJ_id_tc26_constants
#define OBJ_id_tc26_digest
#define OBJ_X9_62_id_fieldType
#define NID_pkcs7_encrypted
#define NID_pkcs7_signedAndEnveloped
#define OBJ_dsa_with_sha2
#define OBJ_holdInstruction
#define OBJ_X9_62_primeCurve
#define NID_X9_62_id_ecPublicKey
#define OBJ_pilotObjectClass
#define OBJ_ext_key_usage
#define OBJ_id_tc26_agreement
#define NID_pkcs7_enveloped
#define OBJ_nistAlgorithms
#define OBJ_netscape_data_type
#define NID_dhKeyAgreement
#define OBJ_identified_organization
#define OBJ_X9_62_id_characteristic_two_basis
#define OBJ_pkcs12_Version1
#define OBJ_X9_62_id_ecSigType
#define OBJ_international_organizations
#define NID_dhpublicnumber
#define OBJ_X9_62_id_publicKeyType
#define OBJ_setAttr_IssCap_T2
#define OBJ_id_tc26_wrap_gostr3412_2015_magma
#define OBJ_setAttr_TokenType
#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik
#define OBJ_id_tc26_gost_28147_constants
#define OBJ_id_tc26_cipher_gostr3412_2015_magma
#define OBJ_id_tc26_signwithdigest
#define OBJ_X9_62_ellipticCurve
#define OBJ_secg_ellipticCurve
#define NID_dsaWithSHA1_2
#define OBJ_setAttr_IssCap_CVM
#define OBJ_pkcs12_BagIds
#define OBJ_pilotAttributeType
#define NID_rsaEncryption
#define OBJ_id_GostR3410_94
#define OBJ_id_tc26_gost_3410_2012_256_constants
#define OBJ_certificate_policies
#define OBJ_pkcs12_pbeids
#define OBJ_X500algorithms
#define OBJ_X9_62_characteristic_two_field
#define OBJ_netscape_cert_extension
#define OBJ_id_tc26_gost_3410_2012_512_constants
#define OBJ_id_tc26_cipher_constants
#define OBJ_pilotAttributeSyntax
#define OBJ_id_tc26_algorithms
#define OBJ_X9_62_c_TwoCurve
#define OBJ_nist_hashalgs
#define OBJ_joint_iso_itu_t
#define OBJ_setAttr_IssCap
#define OBJ_mime_mhs_headings
#define OBJ_selected_attribute_types
#define OBJ_NAME_TYPE_CIPHER_METH
int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid)
int OBJ_NAME_new_index(unsigned long(*hash_func)(const char *), int(*cmp_func)(const char *, const char *), void(*free_func)(const char *, int, const char *))
int OBJ_create_objects(BIO *in)
int OBJ_create(const char *oid, const char *sn, const char *ln)
#define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm)
const char * OBJ_NAME_get(const char *name, int type)
const char * OBJ_nid2ln(int n)
void OBJ_sigid_free(void)
int OBJ_obj2nid(const ASN1_OBJECT *o)
int OBJ_add_object(const ASN1_OBJECT *obj)
size_t OBJ_length(const ASN1_OBJECT *obj)
const void * OBJ_bsearch_ex_(const void *key, const void *base, int num, int size, int(*cmp)(const void *, const void *), int flags)
void OBJ_NAME_do_all_sorted(int type, void(*fn)(const OBJ_NAME *, void *arg), void *arg)
const unsigned char * OBJ_get0_data(const ASN1_OBJECT *obj)
int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b)
ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name)
void OBJ_NAME_cleanup(int type)
int OBJ_txt2nid(const char *s)
int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid)
const void * OBJ_bsearch_(const void *key, const void *base, int num, int size, int(*cmp)(const void *, const void *))
void OBJ_NAME_do_all(int type, void(*fn)(const OBJ_NAME *, void *arg), void *arg)
ASN1_OBJECT * OBJ_nid2obj(int n)
int OBJ_add_sigid(int signid, int dig_id, int pkey_id)
#define OBJ_NAME_TYPE_MD_METH
int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name)
int OBJ_NAME_remove(const char *name, int type)
int OBJ_NAME_add(const char *name, int type, const char *data)
int OBJ_sn2nid(const char *s)
ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o)
const char * OBJ_nid2sn(int n)
int OBJ_ln2nid(const char *s)
int ERR_load_OBJ_strings(void)
BUF_MEM * BUF_MEM_new_ex(unsigned long flags)
void BUF_MEM_free(BUF_MEM *a)
BUF_MEM * BUF_MEM_new(void)
size_t BUF_MEM_grow(BUF_MEM *str, size_t len)
size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz)
int CRYPTO_secure_malloc_done(void)
int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
void OPENSSL_thread_stop(void)
void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
void CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx, long argl, void *argp)
size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz)
int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
void * CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx)
int CRYPTO_mem_ctrl(int mode)
void * CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, const char *file, int line)
void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, unsigned long flags)
int CRYPTO_set_mem_functions(void *(*m)(size_t, const char *, int), void *(*r)(void *, size_t, const char *, int), void(*f)(void *, const char *, int))
#define OPENSSL_INIT_ENGINE_PADLOCK
int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec)
#define OPENSSL_INIT_ENGINE_RDRAND
#define CRYPTO_EX_INDEX_DH
void OPENSSL_cleanse(void *ptr, size_t len)
int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
unsigned long OpenSSL_version_num(void)
int OPENSSL_isservice(void)
#define CRYPTO_EX_INDEX_X509_STORE_CTX
int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void(*cleanup)(void *))
void CRYPTO_free(void *ptr, const char *file, int line)
int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, const char *config_filename)
size_t OPENSSL_strnlen(const char *str, size_t maxlen)
int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
unsigned char * OPENSSL_hexstr2buf(const char *str, long *len)
int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
#define CRYPTO_EX_INDEX_SSL_CTX
#define OPENSSL_INIT_LOAD_CRYPTO_STRINGS
int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
void CRYPTO_get_mem_functions(void *(**m)(size_t, const char *, int), void *(**r)(void *, size_t, const char *, int), void(**f)(void *, const char *, int))
int OPENSSL_atexit(void(*handler)(void))
void * CRYPTO_malloc(size_t num, const char *file, int line)
int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
int CRYPTO_secure_allocated(const void *ptr)
#define OPENSSL_strndup(str, n)
int CRYPTO_secure_malloc_init(size_t sz, int minsize)
int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void(*init)(void))
char * CRYPTO_strdup(const char *str, const char *file, int line)
char * CRYPTO_strndup(const char *str, size_t s, const char *file, int line)
size_t CRYPTO_secure_actual_size(void *ptr)
void * CRYPTO_secure_malloc(size_t num, const char *file, int line)
#define CRYPTO_ONCE_STATIC_INIT
int CRYPTO_free_ex_index(int class_index, int idx)
#define CRYPTO_EX_INDEX_SSL_SESSION
#define OPENSSL_INIT_LOAD_CONFIG
void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line)
void * CRYPTO_memdup(const void *str, size_t siz, const char *file, int line)
void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx, long argl, void *argp)
size_t CRYPTO_secure_used(void)
int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, void *from_d, int idx, long argl, void *argp)
int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
#define OPENSSL_INIT_ADD_ALL_DIGESTS
void * CRYPTO_secure_zalloc(size_t num, const char *file, int line)
int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings)
CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
char * OPENSSL_buf2hexstr(const unsigned char *buffer, long len)
size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz)
#define CRYPTO_EX_INDEX_X509_STORE
#define OPENSSL_INIT_ENGINE_CAPI
#define CRYPTO_EX_INDEX_X509
int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from)
__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
#define OPENSSL_strdup(str)
void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
void OPENSSL_cleanup(void)
#define CRYPTO_EX_INDEX_SSL
void * CRYPTO_realloc(void *addr, size_t num, const char *file, int line)
OPENSSL_INIT_SETTINGS * OPENSSL_INIT_new(void)
void * CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
int CRYPTO_set_mem_debug(int flag)
int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, const char *config_appname)
int OPENSSL_hexchar2int(unsigned char c)
#define OPENSSL_memdup(str, s)
#define OPENSSL_INIT_ADD_ALL_CIPHERS
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
CRYPTO_RWLOCK * CRYPTO_THREAD_lock_new(void)
int OPENSSL_issetugid(void)
#define OPENSSL_INIT_ENGINE_DYNAMIC
void CRYPTO_secure_free(void *ptr, const char *file, int line)
void * CRYPTO_zalloc(size_t num, const char *file, int line)
#define CRYPTO_EX_INDEX_BIO
int CRYPTO_secure_malloc_initialized(void)
ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line)
#define CRYPTO_EX_INDEX_EC_KEY
#define CRYPTO_EX_INDEX_DSA
int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from, const struct tm *to)
const char * OpenSSL_version(int type)
#define OPENSSL_INIT_ENGINE_CRYPTODEV
struct tm * OPENSSL_gmtime(const time_t *timer, struct tm *result)
void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line)
#define CRYPTO_EX_INDEX_RSA
#define OPENSSL_EXPORT_VAR_AS_FUNCTION
#define OPENSSL_API_COMPAT
#define DEPRECATEDIN_1_1_0(f)
#define DECLARE_DEPRECATED(f)
#define DEPRECATEDIN_0_9_8(f)
#define OPENSSL_NO_HEARTBEATS
#define OPENSSL_NO_EC_NISTP_64_GCC_128
#define OPENSSL_NO_UNIT_TEST
#define OPENSSL_NO_CRYPTO_MDEBUG
#define OPENSSL_NO_SSL3_METHOD
#define OPENSSL_NO_SSL_TRACE
#define DEPRECATEDIN_1_2_0(f)
#define OPENSSL_VERSION_NUMBER
struct x509_lookup_method_st X509_LOOKUP_METHOD
struct asn1_string_st ASN1_PRINTABLESTRING
struct asn1_string_st ASN1_IA5STRING
struct evp_md_ctx_st EVP_MD_CTX
struct ocsp_response_st OCSP_RESPONSE
struct asn1_string_st ASN1_UNIVERSALSTRING
struct ssl_ctx_st SSL_CTX
struct asn1_string_st ASN1_T61STRING
struct AUTHORITY_KEYID_st AUTHORITY_KEYID
struct ctlog_store_st CTLOG_STORE
struct evp_pkey_st EVP_PKEY
struct bn_blinding_st BN_BLINDING
struct v3_ext_ctx X509V3_CTX
struct x509_store_st X509_STORE
struct X509_POLICY_TREE_st X509_POLICY_TREE
struct DIST_POINT_st DIST_POINT
struct asn1_string_st ASN1_ENUMERATED
struct X509_POLICY_NODE_st X509_POLICY_NODE
struct evp_cipher_st EVP_CIPHER
struct rsa_meth_st RSA_METHOD
struct X509_name_st X509_NAME
struct dh_method DH_METHOD
struct sct_ctx_st SCT_CTX
struct bn_recp_ctx_st BN_RECP_CTX
struct dsa_method DSA_METHOD
struct asn1_sctx_st ASN1_SCTX
struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS
struct evp_Encode_Ctx_st EVP_ENCODE_CTX
struct asn1_string_st ASN1_GENERALSTRING
struct ossl_store_info_st OSSL_STORE_INFO
struct rsa_pss_params_st RSA_PSS_PARAMS
struct evp_pkey_method_st EVP_PKEY_METHOD
struct x509_revoked_st X509_REVOKED
struct crypto_ex_data_st CRYPTO_EX_DATA
struct asn1_pctx_st ASN1_PCTX
struct ocsp_responder_id_st OCSP_RESPID
struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX
struct X509_pubkey_st X509_PUBKEY
struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL
struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT
struct comp_ctx_st COMP_CTX
struct ossl_init_settings_st OPENSSL_INIT_SETTINGS
struct comp_method_st COMP_METHOD
struct hmac_ctx_st HMAC_CTX
struct X509_algor_st X509_ALGOR
struct evp_pkey_ctx_st EVP_PKEY_CTX
struct evp_cipher_ctx_st EVP_CIPHER_CTX
struct buf_mem_st BUF_MEM
struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO
struct x509_crl_method_st X509_CRL_METHOD
struct asn1_string_st ASN1_BMPSTRING
struct asn1_string_st ASN1_GENERALIZEDTIME
struct ossl_store_search_st OSSL_STORE_SEARCH
struct X509_crl_st X509_CRL
struct X509_POLICY_CACHE_st X509_POLICY_CACHE
struct ssl_dane_st SSL_DANE
struct asn1_string_st ASN1_STRING
struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD
struct asn1_string_st ASN1_UTF8STRING
struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM
struct x509_object_st X509_OBJECT
struct asn1_string_st ASN1_TIME
struct rand_drbg_st RAND_DRBG
struct bn_gencb_st BN_GENCB
struct ui_method_st UI_METHOD
struct asn1_object_st ASN1_OBJECT
struct x509_store_ctx_st X509_STORE_CTX
unsigned long ossl_uintmax_t
struct ASN1_ITEM_st ASN1_ITEM
struct rand_meth_st RAND_METHOD
struct bn_mont_ctx_st BN_MONT_CTX
struct x509_sig_info_st X509_SIG_INFO
struct asn1_string_st ASN1_INTEGER
struct asn1_string_st ASN1_BIT_STRING
struct ocsp_req_ctx_st OCSP_REQ_CTX
struct asn1_string_st ASN1_UTCTIME
struct asn1_string_st ASN1_OCTET_STRING
struct ec_key_method_st EC_KEY_METHOD
struct asn1_string_st ASN1_VISIBLESTRING
struct x509_lookup_st X509_LOOKUP
EVP_PKEY * d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u)
EVP_PKEY * b2i_PrivateKey(const unsigned char **in, long length)
int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
EVP_PKEY * b2i_PublicKey_bio(BIO *in)
int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x)
#define DECLARE_PEM_read(name, type)
void PEM_proc_type(char *buf, int type)
#define IMPLEMENT_PEM_read(name, type, str, asn1)
int PEM_read_bio_ex(BIO *bp, char **name, char **header, unsigned char **data, long *len, unsigned int flags)
int PEM_def_callback(char *buf, int num, int rwflag, void *userdata)
#define IMPLEMENT_PEM_write_const(name, type, str, asn1)
int pem_password_cb(char *buf, int size, int rwflag, void *userdata)
int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
int PEM_read(FILE *fp, char **name, char **header, unsigned char **data, long *len)
#define DECLARE_PEM_write_cb_fp(name, type)
EVP_PKEY * b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u)
int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cd, void *u)
#define DECLARE_PEM_write_const(name, type)
EVP_PKEY * PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x)
int PEM_write_bio(BIO *bp, const char *name, const char *hdr, const unsigned char *data, long len)
#define IMPLEMENT_PEM_write_cb(name, type, str, asn1)
void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, pem_password_cb *cb, void *u)
int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1)
int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *callback, void *u)
int PEM_write(FILE *fp, const char *name, const char *hdr, const unsigned char *data, long len)
int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, char *, int, pem_password_cb *, void *)
int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cd, void *u)
#define DECLARE_PEM_write_bio(name, type)
int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)