Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/ssl_locl.h |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | - | |||||||||||||
7 | - | |||||||||||||
8 | - | |||||||||||||
9 | typedef enum { | - | ||||||||||||
10 | SSL_PHA_NONE = 0, | - | ||||||||||||
11 | SSL_PHA_EXT_SENT, | - | ||||||||||||
12 | SSL_PHA_EXT_RECEIVED, | - | ||||||||||||
13 | SSL_PHA_REQUEST_PENDING, | - | ||||||||||||
14 | SSL_PHA_REQUESTED | - | ||||||||||||
15 | } SSL_PHA_STATE; | - | ||||||||||||
16 | - | |||||||||||||
17 | - | |||||||||||||
18 | - | |||||||||||||
19 | - | |||||||||||||
20 | struct ssl_cipher_st { | - | ||||||||||||
21 | uint32_t valid; | - | ||||||||||||
22 | const char *name; | - | ||||||||||||
23 | const char *stdname; | - | ||||||||||||
24 | uint32_t id; | - | ||||||||||||
25 | - | |||||||||||||
26 | - | |||||||||||||
27 | - | |||||||||||||
28 | - | |||||||||||||
29 | uint32_t algorithm_mkey; | - | ||||||||||||
30 | uint32_t algorithm_auth; | - | ||||||||||||
31 | uint32_t algorithm_enc; | - | ||||||||||||
32 | uint32_t algorithm_mac; | - | ||||||||||||
33 | int min_tls; | - | ||||||||||||
34 | int max_tls; | - | ||||||||||||
35 | int min_dtls; | - | ||||||||||||
36 | int max_dtls; | - | ||||||||||||
37 | uint32_t algo_strength; | - | ||||||||||||
38 | uint32_t algorithm2; | - | ||||||||||||
39 | int32_t strength_bits; | - | ||||||||||||
40 | uint32_t alg_bits; | - | ||||||||||||
41 | }; | - | ||||||||||||
42 | - | |||||||||||||
43 | - | |||||||||||||
44 | struct ssl_method_st { | - | ||||||||||||
45 | int version; | - | ||||||||||||
46 | unsigned flags; | - | ||||||||||||
47 | unsigned long mask; | - | ||||||||||||
48 | int (*ssl_new) (SSL *s); | - | ||||||||||||
49 | int (*ssl_clear) (SSL *s); | - | ||||||||||||
50 | void (*ssl_free) (SSL *s); | - | ||||||||||||
51 | int (*ssl_accept) (SSL *s); | - | ||||||||||||
52 | int (*ssl_connect) (SSL *s); | - | ||||||||||||
53 | int (*ssl_read) (SSL *s, void *buf, size_t len, size_t *readbytes); | - | ||||||||||||
54 | int (*ssl_peek) (SSL *s, void *buf, size_t len, size_t *readbytes); | - | ||||||||||||
55 | int (*ssl_write) (SSL *s, const void *buf, size_t len, size_t *written); | - | ||||||||||||
56 | int (*ssl_shutdown) (SSL *s); | - | ||||||||||||
57 | int (*ssl_renegotiate) (SSL *s); | - | ||||||||||||
58 | int (*ssl_renegotiate_check) (SSL *s, int); | - | ||||||||||||
59 | int (*ssl_read_bytes) (SSL *s, int type, int *recvd_type, | - | ||||||||||||
60 | unsigned char *buf, size_t len, int peek, | - | ||||||||||||
61 | size_t *readbytes); | - | ||||||||||||
62 | int (*ssl_write_bytes) (SSL *s, int type, const void *buf_, size_t len, | - | ||||||||||||
63 | size_t *written); | - | ||||||||||||
64 | int (*ssl_dispatch_alert) (SSL *s); | - | ||||||||||||
65 | long (*ssl_ctrl) (SSL *s, int cmd, long larg, void *parg); | - | ||||||||||||
66 | long (*ssl_ctx_ctrl) (SSL_CTX *ctx, int cmd, long larg, void *parg); | - | ||||||||||||
67 | const SSL_CIPHER *(*get_cipher_by_char) (const unsigned char *ptr); | - | ||||||||||||
68 | int (*put_cipher_by_char) (const SSL_CIPHER *cipher, WPACKET *pkt, | - | ||||||||||||
69 | size_t *len); | - | ||||||||||||
70 | size_t (*ssl_pending) (const SSL *s); | - | ||||||||||||
71 | int (*num_ciphers) (void); | - | ||||||||||||
72 | const SSL_CIPHER *(*get_cipher) (unsigned ncipher); | - | ||||||||||||
73 | long (*get_timeout) (void); | - | ||||||||||||
74 | const struct ssl3_enc_method *ssl3_enc; | - | ||||||||||||
75 | int (*ssl_version) (void); | - | ||||||||||||
76 | long (*ssl_callback_ctrl) (SSL *s, int cb_id, void (*fp) (void)); | - | ||||||||||||
77 | long (*ssl_ctx_callback_ctrl) (SSL_CTX *s, int cb_id, void (*fp) (void)); | - | ||||||||||||
78 | }; | - | ||||||||||||
79 | struct ssl_session_st { | - | ||||||||||||
80 | int ssl_version; | - | ||||||||||||
81 | - | |||||||||||||
82 | size_t master_key_length; | - | ||||||||||||
83 | - | |||||||||||||
84 | - | |||||||||||||
85 | unsigned char early_secret[64]; | - | ||||||||||||
86 | - | |||||||||||||
87 | - | |||||||||||||
88 | - | |||||||||||||
89 | - | |||||||||||||
90 | unsigned char master_key[256]; | - | ||||||||||||
91 | - | |||||||||||||
92 | size_t session_id_length; | - | ||||||||||||
93 | unsigned char session_id[32]; | - | ||||||||||||
94 | - | |||||||||||||
95 | - | |||||||||||||
96 | - | |||||||||||||
97 | - | |||||||||||||
98 | - | |||||||||||||
99 | size_t sid_ctx_length; | - | ||||||||||||
100 | unsigned char sid_ctx[32]; | - | ||||||||||||
101 | - | |||||||||||||
102 | char *psk_identity_hint; | - | ||||||||||||
103 | char *psk_identity; | - | ||||||||||||
104 | - | |||||||||||||
105 | - | |||||||||||||
106 | - | |||||||||||||
107 | - | |||||||||||||
108 | - | |||||||||||||
109 | - | |||||||||||||
110 | int not_resumable; | - | ||||||||||||
111 | - | |||||||||||||
112 | X509 *peer; | - | ||||||||||||
113 | int peer_type; | - | ||||||||||||
114 | - | |||||||||||||
115 | struct stack_st_X509 *peer_chain; | - | ||||||||||||
116 | - | |||||||||||||
117 | - | |||||||||||||
118 | - | |||||||||||||
119 | - | |||||||||||||
120 | long verify_result; | - | ||||||||||||
121 | CRYPTO_REF_COUNT references; | - | ||||||||||||
122 | long timeout; | - | ||||||||||||
123 | long time; | - | ||||||||||||
124 | unsigned int compress_meth; | - | ||||||||||||
125 | const SSL_CIPHER *cipher; | - | ||||||||||||
126 | unsigned long cipher_id; | - | ||||||||||||
127 | - | |||||||||||||
128 | struct stack_st_SSL_CIPHER *ciphers; | - | ||||||||||||
129 | CRYPTO_EX_DATA ex_data; | - | ||||||||||||
130 | - | |||||||||||||
131 | - | |||||||||||||
132 | - | |||||||||||||
133 | - | |||||||||||||
134 | struct ssl_session_st *prev, *next; | - | ||||||||||||
135 | - | |||||||||||||
136 | struct { | - | ||||||||||||
137 | char *hostname; | - | ||||||||||||
138 | - | |||||||||||||
139 | size_t ecpointformats_len; | - | ||||||||||||
140 | unsigned char *ecpointformats; | - | ||||||||||||
141 | - | |||||||||||||
142 | size_t supportedgroups_len; | - | ||||||||||||
143 | uint16_t *supportedgroups; | - | ||||||||||||
144 | - | |||||||||||||
145 | unsigned char *tick; | - | ||||||||||||
146 | size_t ticklen; | - | ||||||||||||
147 | - | |||||||||||||
148 | unsigned long tick_lifetime_hint; | - | ||||||||||||
149 | uint32_t tick_age_add; | - | ||||||||||||
150 | int tick_identity; | - | ||||||||||||
151 | - | |||||||||||||
152 | uint32_t max_early_data; | - | ||||||||||||
153 | - | |||||||||||||
154 | unsigned char *alpn_selected; | - | ||||||||||||
155 | size_t alpn_selected_len; | - | ||||||||||||
156 | - | |||||||||||||
157 | - | |||||||||||||
158 | - | |||||||||||||
159 | - | |||||||||||||
160 | - | |||||||||||||
161 | - | |||||||||||||
162 | uint8_t max_fragment_len_mode; | - | ||||||||||||
163 | } ext; | - | ||||||||||||
164 | - | |||||||||||||
165 | char *srp_username; | - | ||||||||||||
166 | - | |||||||||||||
167 | unsigned char *ticket_appdata; | - | ||||||||||||
168 | size_t ticket_appdata_len; | - | ||||||||||||
169 | uint32_t flags; | - | ||||||||||||
170 | CRYPTO_RWLOCK *lock; | - | ||||||||||||
171 | }; | - | ||||||||||||
172 | - | |||||||||||||
173 | - | |||||||||||||
174 | - | |||||||||||||
175 | - | |||||||||||||
176 | - | |||||||||||||
177 | - | |||||||||||||
178 | typedef struct srp_ctx_st { | - | ||||||||||||
179 | - | |||||||||||||
180 | void *SRP_cb_arg; | - | ||||||||||||
181 | - | |||||||||||||
182 | int (*TLS_ext_srp_username_callback) (SSL *, int *, void *); | - | ||||||||||||
183 | - | |||||||||||||
184 | int (*SRP_verify_param_callback) (SSL *, void *); | - | ||||||||||||
185 | - | |||||||||||||
186 | char *(*SRP_give_srp_client_pwd_callback) (SSL *, void *); | - | ||||||||||||
187 | char *login; | - | ||||||||||||
188 | BIGNUM *N, *g, *s, *B, *A; | - | ||||||||||||
189 | BIGNUM *a, *b, *v; | - | ||||||||||||
190 | char *info; | - | ||||||||||||
191 | int strength; | - | ||||||||||||
192 | unsigned long srp_Mask; | - | ||||||||||||
193 | } SRP_CTX; | - | ||||||||||||
194 | - | |||||||||||||
195 | - | |||||||||||||
196 | - | |||||||||||||
197 | typedef enum { | - | ||||||||||||
198 | SSL_EARLY_DATA_NONE = 0, | - | ||||||||||||
199 | SSL_EARLY_DATA_CONNECT_RETRY, | - | ||||||||||||
200 | SSL_EARLY_DATA_CONNECTING, | - | ||||||||||||
201 | SSL_EARLY_DATA_WRITE_RETRY, | - | ||||||||||||
202 | SSL_EARLY_DATA_WRITING, | - | ||||||||||||
203 | SSL_EARLY_DATA_WRITE_FLUSH, | - | ||||||||||||
204 | SSL_EARLY_DATA_UNAUTH_WRITING, | - | ||||||||||||
205 | SSL_EARLY_DATA_FINISHED_WRITING, | - | ||||||||||||
206 | SSL_EARLY_DATA_ACCEPT_RETRY, | - | ||||||||||||
207 | SSL_EARLY_DATA_ACCEPTING, | - | ||||||||||||
208 | SSL_EARLY_DATA_READ_RETRY, | - | ||||||||||||
209 | SSL_EARLY_DATA_READING, | - | ||||||||||||
210 | SSL_EARLY_DATA_FINISHED_READING | - | ||||||||||||
211 | } SSL_EARLY_DATA_STATE; | - | ||||||||||||
212 | struct ssl_comp_st { | - | ||||||||||||
213 | int id; | - | ||||||||||||
214 | const char *name; | - | ||||||||||||
215 | COMP_METHOD *method; | - | ||||||||||||
216 | }; | - | ||||||||||||
217 | - | |||||||||||||
218 | typedef struct raw_extension_st { | - | ||||||||||||
219 | - | |||||||||||||
220 | PACKET data; | - | ||||||||||||
221 | - | |||||||||||||
222 | int present; | - | ||||||||||||
223 | - | |||||||||||||
224 | int parsed; | - | ||||||||||||
225 | - | |||||||||||||
226 | unsigned int type; | - | ||||||||||||
227 | - | |||||||||||||
228 | size_t received_order; | - | ||||||||||||
229 | } RAW_EXTENSION; | - | ||||||||||||
230 | - | |||||||||||||
231 | typedef struct { | - | ||||||||||||
232 | unsigned int isv2; | - | ||||||||||||
233 | unsigned int legacy_version; | - | ||||||||||||
234 | unsigned char random[32]; | - | ||||||||||||
235 | size_t session_id_len; | - | ||||||||||||
236 | unsigned char session_id[32]; | - | ||||||||||||
237 | size_t dtls_cookie_len; | - | ||||||||||||
238 | unsigned char dtls_cookie[256]; | - | ||||||||||||
239 | PACKET ciphersuites; | - | ||||||||||||
240 | size_t compressions_len; | - | ||||||||||||
241 | unsigned char compressions[255]; | - | ||||||||||||
242 | PACKET extensions; | - | ||||||||||||
243 | size_t pre_proc_exts_len; | - | ||||||||||||
244 | RAW_EXTENSION *pre_proc_exts; | - | ||||||||||||
245 | } CLIENTHELLO_MSG; | - | ||||||||||||
246 | - | |||||||||||||
247 | - | |||||||||||||
248 | - | |||||||||||||
249 | - | |||||||||||||
250 | - | |||||||||||||
251 | typedef enum tlsext_index_en { | - | ||||||||||||
252 | TLSEXT_IDX_renegotiate, | - | ||||||||||||
253 | TLSEXT_IDX_server_name, | - | ||||||||||||
254 | TLSEXT_IDX_max_fragment_length, | - | ||||||||||||
255 | TLSEXT_IDX_srp, | - | ||||||||||||
256 | TLSEXT_IDX_ec_point_formats, | - | ||||||||||||
257 | TLSEXT_IDX_supported_groups, | - | ||||||||||||
258 | TLSEXT_IDX_session_ticket, | - | ||||||||||||
259 | TLSEXT_IDX_status_request, | - | ||||||||||||
260 | TLSEXT_IDX_next_proto_neg, | - | ||||||||||||
261 | TLSEXT_IDX_application_layer_protocol_negotiation, | - | ||||||||||||
262 | TLSEXT_IDX_use_srtp, | - | ||||||||||||
263 | TLSEXT_IDX_encrypt_then_mac, | - | ||||||||||||
264 | TLSEXT_IDX_signed_certificate_timestamp, | - | ||||||||||||
265 | TLSEXT_IDX_extended_master_secret, | - | ||||||||||||
266 | TLSEXT_IDX_signature_algorithms_cert, | - | ||||||||||||
267 | TLSEXT_IDX_post_handshake_auth, | - | ||||||||||||
268 | TLSEXT_IDX_signature_algorithms, | - | ||||||||||||
269 | TLSEXT_IDX_supported_versions, | - | ||||||||||||
270 | TLSEXT_IDX_psk_kex_modes, | - | ||||||||||||
271 | TLSEXT_IDX_key_share, | - | ||||||||||||
272 | TLSEXT_IDX_cookie, | - | ||||||||||||
273 | TLSEXT_IDX_cryptopro_bug, | - | ||||||||||||
274 | TLSEXT_IDX_early_data, | - | ||||||||||||
275 | TLSEXT_IDX_certificate_authorities, | - | ||||||||||||
276 | TLSEXT_IDX_padding, | - | ||||||||||||
277 | TLSEXT_IDX_psk, | - | ||||||||||||
278 | - | |||||||||||||
279 | TLSEXT_IDX_num_builtins | - | ||||||||||||
280 | } TLSEXT_INDEX; | - | ||||||||||||
281 | - | |||||||||||||
282 | struct lhash_st_SSL_SESSION { union lh_SSL_SESSION_dummy { void* d1; unsigned long d2; int d3; } dummy; }; static inline struct lhash_st_SSL_SESSION * lh_SSL_SESSION_new(unsigned long (*hfn)(const SSL_SESSION *), int (*cfn)(const SSL_SESSION *, const SSL_SESSION *)) { return executed 8017 times by 2 tests: (struct lhash_st_SSL_SESSION *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn);return (struct lhash_st_SSL_SESSION *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); Executed by:
executed 8017 times by 2 tests: } static inline void lh_SSL_SESSION_free(struct lhash_st_SSL_SESSION *lh) { OPENSSL_LH_free((OPENSSL_LHASH *)lh); }return (struct lhash_st_SSL_SESSION *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); Executed by:
executed 8017 times by 2 tests: static inline SSL_SESSION *lh_SSL_SESSION_insert(struct lhash_st_SSL_SESSION *lh, SSL_SESSION *d) { returnend of block Executed by:
executed 348 times by 1 test: (SSL_SESSION *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d);return (SSL_SESSION *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); Executed by:
executed 348 times by 1 test: } static inline SSL_SESSION *lh_SSL_SESSION_delete(struct lhash_st_SSL_SESSION *lh, const SSL_SESSION *d) { returnreturn (SSL_SESSION *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); Executed by:
executed 341 times by 1 test: (SSL_SESSION *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d);return (SSL_SESSION *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); Executed by:
executed 341 times by 1 test: } static inline SSL_SESSION *lh_SSL_SESSION_retrieve(struct lhash_st_SSL_SESSION *lh, const SSL_SESSION *d) { returnreturn (SSL_SESSION *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); Executed by:
executed 5719 times by 1 test: (SSL_SESSION *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d);return (SSL_SESSION *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); Executed by:
executed 5719 times by 1 test: } static inline int lh_SSL_SESSION_error(struct lhash_st_SSL_SESSION *lh) { returnreturn (SSL_SESSION *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); Executed by:
never executed: OPENSSL_LH_error((OPENSSL_LHASH *)lh);return OPENSSL_LH_error((OPENSSL_LHASH *)lh); never executed: } static inline unsigned long lh_SSL_SESSION_num_items(struct lhash_st_SSL_SESSION *lh) { returnreturn OPENSSL_LH_error((OPENSSL_LHASH *)lh); executed 517 times by 1 test: OPENSSL_LH_num_items((OPENSSL_LHASH *)lh);return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); Executed by:
executed 517 times by 1 test: } static inline void lh_SSL_SESSION_node_stats_bio(const struct lhash_st_SSL_SESSION *lh, BIO *out) { OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); }return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); Executed by:
never executed: static inline void lh_SSL_SESSION_node_usage_stats_bio(const struct lhash_st_SSL_SESSION *lh, BIO *out) { OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); }end of block never executed: static inline void lh_SSL_SESSION_stats_bio(const struct lhash_st_SSL_SESSION *lh, BIO *out) { OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); }end of block never executed: static inline unsigned long lh_SSL_SESSION_get_down_load(struct lhash_st_SSL_SESSION *lh) { returnend of block executed 8017 times by 2 tests: OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh);return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); Executed by:
executed 8017 times by 2 tests: } static inline void lh_SSL_SESSION_set_down_load(struct lhash_st_SSL_SESSION *lh, unsigned long dl) { OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); }return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); Executed by:
executed 16034 times by 2 tests: static inline void lh_SSL_SESSION_doall(struct lhash_st_SSL_SESSION *lh, void (*doall)(SSL_SESSION *)) { OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); }end of block Executed by:
never executed: struct lhash_st_SSL_SESSION;end of block | 0-16034 | ||||||||||||
283 | - | |||||||||||||
284 | struct lhash_st_X509_NAME { union lh_X509_NAME_dummy { void* d1; unsigned long d2; int d3; } dummy; }; static inline struct lhash_st_X509_NAME * lh_X509_NAME_new(unsigned long (*hfn)(const X509_NAME *), int (*cfn)(const X509_NAME *, const X509_NAME *)) { return executed 10 times by 1 test: (struct lhash_st_X509_NAME *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn);return (struct lhash_st_X509_NAME *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); Executed by:
executed 10 times by 1 test: } static inline void lh_X509_NAME_free(struct lhash_st_X509_NAME *lh) { OPENSSL_LH_free((OPENSSL_LHASH *)lh); }return (struct lhash_st_X509_NAME *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); Executed by:
executed 10 times by 1 test: static inline X509_NAME *lh_X509_NAME_insert(struct lhash_st_X509_NAME *lh, X509_NAME *d) { returnend of block Executed by:
executed 10 times by 1 test: (X509_NAME *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d);return (X509_NAME *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); Executed by:
executed 10 times by 1 test: } static inline X509_NAME *lh_X509_NAME_delete(struct lhash_st_X509_NAME *lh, const X509_NAME *d) { returnreturn (X509_NAME *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); Executed by:
never executed: (X509_NAME *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d);return (X509_NAME *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); never executed: } static inline X509_NAME *lh_X509_NAME_retrieve(struct lhash_st_X509_NAME *lh, const X509_NAME *d) { returnreturn (X509_NAME *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); executed 10 times by 1 test: (X509_NAME *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d);return (X509_NAME *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); Executed by:
executed 10 times by 1 test: } static inline int lh_X509_NAME_error(struct lhash_st_X509_NAME *lh) { returnreturn (X509_NAME *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); Executed by:
never executed: OPENSSL_LH_error((OPENSSL_LHASH *)lh);return OPENSSL_LH_error((OPENSSL_LHASH *)lh); never executed: } static inline unsigned long lh_X509_NAME_num_items(struct lhash_st_X509_NAME *lh) { returnreturn OPENSSL_LH_error((OPENSSL_LHASH *)lh); never executed: OPENSSL_LH_num_items((OPENSSL_LHASH *)lh);return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); never executed: } static inline void lh_X509_NAME_node_stats_bio(const struct lhash_st_X509_NAME *lh, BIO *out) { OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); }return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); never executed: static inline void lh_X509_NAME_node_usage_stats_bio(const struct lhash_st_X509_NAME *lh, BIO *out) { OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); }end of block never executed: static inline void lh_X509_NAME_stats_bio(const struct lhash_st_X509_NAME *lh, BIO *out) { OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); }end of block never executed: static inline unsigned long lh_X509_NAME_get_down_load(struct lhash_st_X509_NAME *lh) { returnend of block never executed: OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh);return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); never executed: } static inline void lh_X509_NAME_set_down_load(struct lhash_st_X509_NAME *lh, unsigned long dl) { OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); }return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); never executed: static inline void lh_X509_NAME_doall(struct lhash_st_X509_NAME *lh, void (*doall)(X509_NAME *)) { OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); }end of block never executed: struct lhash_st_X509_NAME;end of block | 0-10 | ||||||||||||
285 | - | |||||||||||||
286 | - | |||||||||||||
287 | - | |||||||||||||
288 | - | |||||||||||||
289 | typedef struct ssl_ctx_ext_secure_st { | - | ||||||||||||
290 | unsigned char tick_hmac_key[32]; | - | ||||||||||||
291 | unsigned char tick_aes_key[32]; | - | ||||||||||||
292 | } SSL_CTX_EXT_SECURE; | - | ||||||||||||
293 | - | |||||||||||||
294 | struct ssl_ctx_st { | - | ||||||||||||
295 | const SSL_METHOD *method; | - | ||||||||||||
296 | struct stack_st_SSL_CIPHER *cipher_list; | - | ||||||||||||
297 | - | |||||||||||||
298 | struct stack_st_SSL_CIPHER *cipher_list_by_id; | - | ||||||||||||
299 | - | |||||||||||||
300 | struct stack_st_SSL_CIPHER *tls13_ciphersuites; | - | ||||||||||||
301 | struct x509_store_st *cert_store; | - | ||||||||||||
302 | struct lhash_st_SSL_SESSION *sessions; | - | ||||||||||||
303 | - | |||||||||||||
304 | - | |||||||||||||
305 | - | |||||||||||||
306 | - | |||||||||||||
307 | size_t session_cache_size; | - | ||||||||||||
308 | struct ssl_session_st *session_cache_head; | - | ||||||||||||
309 | struct ssl_session_st *session_cache_tail; | - | ||||||||||||
310 | - | |||||||||||||
311 | - | |||||||||||||
312 | - | |||||||||||||
313 | - | |||||||||||||
314 | - | |||||||||||||
315 | uint32_t session_cache_mode; | - | ||||||||||||
316 | - | |||||||||||||
317 | - | |||||||||||||
318 | - | |||||||||||||
319 | - | |||||||||||||
320 | - | |||||||||||||
321 | long session_timeout; | - | ||||||||||||
322 | int (*new_session_cb) (struct ssl_st *ssl, SSL_SESSION *sess); | - | ||||||||||||
323 | void (*remove_session_cb) (struct ssl_ctx_st *ctx, SSL_SESSION *sess); | - | ||||||||||||
324 | SSL_SESSION *(*get_session_cb) (struct ssl_st *ssl, | - | ||||||||||||
325 | const unsigned char *data, int len, | - | ||||||||||||
326 | int *copy); | - | ||||||||||||
327 | struct { | - | ||||||||||||
328 | _Atomic int sess_connect; | - | ||||||||||||
329 | _Atomic int sess_connect_renegotiate; | - | ||||||||||||
330 | _Atomic int sess_connect_good; | - | ||||||||||||
331 | _Atomic int sess_accept; | - | ||||||||||||
332 | _Atomic int sess_accept_renegotiate; | - | ||||||||||||
333 | _Atomic int sess_accept_good; | - | ||||||||||||
334 | _Atomic int sess_miss; | - | ||||||||||||
335 | _Atomic int sess_timeout; | - | ||||||||||||
336 | _Atomic int sess_cache_full; | - | ||||||||||||
337 | _Atomic int sess_hit; | - | ||||||||||||
338 | _Atomic int sess_cb_hit; | - | ||||||||||||
339 | - | |||||||||||||
340 | - | |||||||||||||
341 | - | |||||||||||||
342 | - | |||||||||||||
343 | - | |||||||||||||
344 | - | |||||||||||||
345 | } stats; | - | ||||||||||||
346 | - | |||||||||||||
347 | CRYPTO_REF_COUNT references; | - | ||||||||||||
348 | - | |||||||||||||
349 | - | |||||||||||||
350 | int (*app_verify_callback) (X509_STORE_CTX *, void *); | - | ||||||||||||
351 | void *app_verify_arg; | - | ||||||||||||
352 | - | |||||||||||||
353 | - | |||||||||||||
354 | - | |||||||||||||
355 | - | |||||||||||||
356 | - | |||||||||||||
357 | - | |||||||||||||
358 | pem_password_cb *default_passwd_callback; | - | ||||||||||||
359 | - | |||||||||||||
360 | - | |||||||||||||
361 | void *default_passwd_callback_userdata; | - | ||||||||||||
362 | - | |||||||||||||
363 | - | |||||||||||||
364 | int (*client_cert_cb) (SSL *ssl, X509 **x509, EVP_PKEY **pkey); | - | ||||||||||||
365 | - | |||||||||||||
366 | - | |||||||||||||
367 | int (*app_gen_cookie_cb) (SSL *ssl, unsigned char *cookie, | - | ||||||||||||
368 | unsigned int *cookie_len); | - | ||||||||||||
369 | - | |||||||||||||
370 | - | |||||||||||||
371 | int (*app_verify_cookie_cb) (SSL *ssl, const unsigned char *cookie, | - | ||||||||||||
372 | unsigned int cookie_len); | - | ||||||||||||
373 | - | |||||||||||||
374 | - | |||||||||||||
375 | int (*gen_stateless_cookie_cb) (SSL *ssl, unsigned char *cookie, | - | ||||||||||||
376 | size_t *cookie_len); | - | ||||||||||||
377 | - | |||||||||||||
378 | - | |||||||||||||
379 | int (*verify_stateless_cookie_cb) (SSL *ssl, const unsigned char *cookie, | - | ||||||||||||
380 | size_t cookie_len); | - | ||||||||||||
381 | - | |||||||||||||
382 | CRYPTO_EX_DATA ex_data; | - | ||||||||||||
383 | - | |||||||||||||
384 | const EVP_MD *md5; | - | ||||||||||||
385 | const EVP_MD *sha1; | - | ||||||||||||
386 | - | |||||||||||||
387 | struct stack_st_X509 *extra_certs; | - | ||||||||||||
388 | struct stack_st_SSL_COMP *comp_methods; | - | ||||||||||||
389 | - | |||||||||||||
390 | - | |||||||||||||
391 | - | |||||||||||||
392 | - | |||||||||||||
393 | void (*info_callback) (const SSL *ssl, int type, int val); | - | ||||||||||||
394 | - | |||||||||||||
395 | - | |||||||||||||
396 | - | |||||||||||||
397 | - | |||||||||||||
398 | - | |||||||||||||
399 | - | |||||||||||||
400 | struct stack_st_X509_NAME *ca_names; | - | ||||||||||||
401 | - | |||||||||||||
402 | - | |||||||||||||
403 | - | |||||||||||||
404 | - | |||||||||||||
405 | - | |||||||||||||
406 | - | |||||||||||||
407 | uint32_t options; | - | ||||||||||||
408 | uint32_t mode; | - | ||||||||||||
409 | int min_proto_version; | - | ||||||||||||
410 | int max_proto_version; | - | ||||||||||||
411 | size_t max_cert_list; | - | ||||||||||||
412 | - | |||||||||||||
413 | struct cert_st *cert; | - | ||||||||||||
414 | int read_ahead; | - | ||||||||||||
415 | - | |||||||||||||
416 | - | |||||||||||||
417 | void (*msg_callback) (int write_p, int version, int content_type, | - | ||||||||||||
418 | const void *buf, size_t len, SSL *ssl, void *arg); | - | ||||||||||||
419 | void *msg_callback_arg; | - | ||||||||||||
420 | - | |||||||||||||
421 | uint32_t verify_mode; | - | ||||||||||||
422 | size_t sid_ctx_length; | - | ||||||||||||
423 | unsigned char sid_ctx[32]; | - | ||||||||||||
424 | - | |||||||||||||
425 | int (*default_verify_callback) (int ok, X509_STORE_CTX *ctx); | - | ||||||||||||
426 | - | |||||||||||||
427 | - | |||||||||||||
428 | GEN_SESSION_CB generate_session_id; | - | ||||||||||||
429 | - | |||||||||||||
430 | X509_VERIFY_PARAM *param; | - | ||||||||||||
431 | - | |||||||||||||
432 | int quiet_shutdown; | - | ||||||||||||
433 | - | |||||||||||||
434 | - | |||||||||||||
435 | CTLOG_STORE *ctlog_store; | - | ||||||||||||
436 | - | |||||||||||||
437 | - | |||||||||||||
438 | - | |||||||||||||
439 | - | |||||||||||||
440 | ssl_ct_validation_cb ct_validation_callback; | - | ||||||||||||
441 | void *ct_validation_callback_arg; | - | ||||||||||||
442 | - | |||||||||||||
443 | - | |||||||||||||
444 | - | |||||||||||||
445 | - | |||||||||||||
446 | - | |||||||||||||
447 | - | |||||||||||||
448 | size_t split_send_fragment; | - | ||||||||||||
449 | - | |||||||||||||
450 | - | |||||||||||||
451 | - | |||||||||||||
452 | - | |||||||||||||
453 | size_t max_send_fragment; | - | ||||||||||||
454 | - | |||||||||||||
455 | - | |||||||||||||
456 | size_t max_pipelines; | - | ||||||||||||
457 | - | |||||||||||||
458 | - | |||||||||||||
459 | size_t default_read_buf_len; | - | ||||||||||||
460 | - | |||||||||||||
461 | - | |||||||||||||
462 | - | |||||||||||||
463 | - | |||||||||||||
464 | - | |||||||||||||
465 | ENGINE *client_cert_engine; | - | ||||||||||||
466 | - | |||||||||||||
467 | - | |||||||||||||
468 | - | |||||||||||||
469 | SSL_client_hello_cb_fn client_hello_cb; | - | ||||||||||||
470 | void *client_hello_cb_arg; | - | ||||||||||||
471 | - | |||||||||||||
472 | - | |||||||||||||
473 | struct { | - | ||||||||||||
474 | - | |||||||||||||
475 | int (*servername_cb) (SSL *, int *, void *); | - | ||||||||||||
476 | void *servername_arg; | - | ||||||||||||
477 | - | |||||||||||||
478 | unsigned char tick_key_name[16]; | - | ||||||||||||
479 | SSL_CTX_EXT_SECURE *secure; | - | ||||||||||||
480 | - | |||||||||||||
481 | int (*ticket_key_cb) (SSL *ssl, | - | ||||||||||||
482 | unsigned char *name, unsigned char *iv, | - | ||||||||||||
483 | EVP_CIPHER_CTX *ectx, HMAC_CTX *hctx, int enc); | - | ||||||||||||
484 | - | |||||||||||||
485 | - | |||||||||||||
486 | - | |||||||||||||
487 | int (*status_cb) (SSL *ssl, void *arg); | - | ||||||||||||
488 | void *status_arg; | - | ||||||||||||
489 | - | |||||||||||||
490 | int status_type; | - | ||||||||||||
491 | - | |||||||||||||
492 | uint8_t max_fragment_len_mode; | - | ||||||||||||
493 | - | |||||||||||||
494 | - | |||||||||||||
495 | - | |||||||||||||
496 | size_t ecpointformats_len; | - | ||||||||||||
497 | unsigned char *ecpointformats; | - | ||||||||||||
498 | size_t supportedgroups_len; | - | ||||||||||||
499 | uint16_t *supportedgroups; | - | ||||||||||||
500 | int (*alpn_select_cb) (SSL *s, | - | ||||||||||||
501 | const unsigned char **out, | - | ||||||||||||
502 | unsigned char *outlen, | - | ||||||||||||
503 | const unsigned char *in, | - | ||||||||||||
504 | unsigned int inlen, void *arg); | - | ||||||||||||
505 | void *alpn_select_cb_arg; | - | ||||||||||||
506 | - | |||||||||||||
507 | - | |||||||||||||
508 | - | |||||||||||||
509 | - | |||||||||||||
510 | - | |||||||||||||
511 | unsigned char *alpn; | - | ||||||||||||
512 | size_t alpn_len; | - | ||||||||||||
513 | SSL_CTX_npn_advertised_cb_func npn_advertised_cb; | - | ||||||||||||
514 | void *npn_advertised_cb_arg; | - | ||||||||||||
515 | - | |||||||||||||
516 | - | |||||||||||||
517 | - | |||||||||||||
518 | - | |||||||||||||
519 | SSL_CTX_npn_select_cb_func npn_select_cb; | - | ||||||||||||
520 | void *npn_select_cb_arg; | - | ||||||||||||
521 | - | |||||||||||||
522 | - | |||||||||||||
523 | unsigned char cookie_hmac_key[32]; | - | ||||||||||||
524 | } ext; | - | ||||||||||||
525 | - | |||||||||||||
526 | - | |||||||||||||
527 | SSL_psk_client_cb_func psk_client_callback; | - | ||||||||||||
528 | SSL_psk_server_cb_func psk_server_callback; | - | ||||||||||||
529 | - | |||||||||||||
530 | SSL_psk_find_session_cb_func psk_find_session_cb; | - | ||||||||||||
531 | SSL_psk_use_session_cb_func psk_use_session_cb; | - | ||||||||||||
532 | - | |||||||||||||
533 | - | |||||||||||||
534 | SRP_CTX srp_ctx; | - | ||||||||||||
535 | - | |||||||||||||
536 | - | |||||||||||||
537 | - | |||||||||||||
538 | struct dane_ctx_st dane; | - | ||||||||||||
539 | - | |||||||||||||
540 | - | |||||||||||||
541 | - | |||||||||||||
542 | struct stack_st_SRTP_PROTECTION_PROFILE *srtp_profiles; | - | ||||||||||||
543 | - | |||||||||||||
544 | - | |||||||||||||
545 | - | |||||||||||||
546 | - | |||||||||||||
547 | - | |||||||||||||
548 | int (*not_resumable_session_cb) (SSL *ssl, int is_forward_secure); | - | ||||||||||||
549 | - | |||||||||||||
550 | CRYPTO_RWLOCK *lock; | - | ||||||||||||
551 | - | |||||||||||||
552 | - | |||||||||||||
553 | - | |||||||||||||
554 | - | |||||||||||||
555 | - | |||||||||||||
556 | SSL_CTX_keylog_cb_func keylog_callback; | - | ||||||||||||
557 | - | |||||||||||||
558 | - | |||||||||||||
559 | - | |||||||||||||
560 | - | |||||||||||||
561 | - | |||||||||||||
562 | uint32_t max_early_data; | - | ||||||||||||
563 | - | |||||||||||||
564 | - | |||||||||||||
565 | - | |||||||||||||
566 | - | |||||||||||||
567 | - | |||||||||||||
568 | uint32_t recv_max_early_data; | - | ||||||||||||
569 | - | |||||||||||||
570 | - | |||||||||||||
571 | size_t (*record_padding_cb)(SSL *s, int type, size_t len, void *arg); | - | ||||||||||||
572 | void *record_padding_arg; | - | ||||||||||||
573 | size_t block_padding; | - | ||||||||||||
574 | - | |||||||||||||
575 | - | |||||||||||||
576 | SSL_CTX_generate_session_ticket_fn generate_ticket_cb; | - | ||||||||||||
577 | SSL_CTX_decrypt_session_ticket_fn decrypt_ticket_cb; | - | ||||||||||||
578 | void *ticket_cb_data; | - | ||||||||||||
579 | - | |||||||||||||
580 | - | |||||||||||||
581 | size_t num_tickets; | - | ||||||||||||
582 | - | |||||||||||||
583 | - | |||||||||||||
584 | SSL_allow_early_data_cb_fn allow_early_data_cb; | - | ||||||||||||
585 | void *allow_early_data_cb_data; | - | ||||||||||||
586 | - | |||||||||||||
587 | - | |||||||||||||
588 | int pha_enabled; | - | ||||||||||||
589 | }; | - | ||||||||||||
590 | - | |||||||||||||
591 | struct ssl_st { | - | ||||||||||||
592 | - | |||||||||||||
593 | - | |||||||||||||
594 | - | |||||||||||||
595 | - | |||||||||||||
596 | int version; | - | ||||||||||||
597 | - | |||||||||||||
598 | const SSL_METHOD *method; | - | ||||||||||||
599 | - | |||||||||||||
600 | - | |||||||||||||
601 | - | |||||||||||||
602 | - | |||||||||||||
603 | - | |||||||||||||
604 | BIO *rbio; | - | ||||||||||||
605 | - | |||||||||||||
606 | BIO *wbio; | - | ||||||||||||
607 | - | |||||||||||||
608 | BIO *bbio; | - | ||||||||||||
609 | - | |||||||||||||
610 | - | |||||||||||||
611 | - | |||||||||||||
612 | - | |||||||||||||
613 | - | |||||||||||||
614 | int rwstate; | - | ||||||||||||
615 | int (*handshake_func) (SSL *); | - | ||||||||||||
616 | int server; | - | ||||||||||||
617 | - | |||||||||||||
618 | - | |||||||||||||
619 | - | |||||||||||||
620 | - | |||||||||||||
621 | - | |||||||||||||
622 | - | |||||||||||||
623 | int new_session; | - | ||||||||||||
624 | - | |||||||||||||
625 | int quiet_shutdown; | - | ||||||||||||
626 | - | |||||||||||||
627 | int shutdown; | - | ||||||||||||
628 | - | |||||||||||||
629 | OSSL_STATEM statem; | - | ||||||||||||
630 | SSL_EARLY_DATA_STATE early_data_state; | - | ||||||||||||
631 | BUF_MEM *init_buf; | - | ||||||||||||
632 | void *init_msg; | - | ||||||||||||
633 | - | |||||||||||||
634 | size_t init_num; | - | ||||||||||||
635 | size_t init_off; | - | ||||||||||||
636 | struct ssl3_state_st *s3; | - | ||||||||||||
637 | struct dtls1_state_st *d1; | - | ||||||||||||
638 | - | |||||||||||||
639 | void (*msg_callback) (int write_p, int version, int content_type, | - | ||||||||||||
640 | const void *buf, size_t len, SSL *ssl, void *arg); | - | ||||||||||||
641 | void *msg_callback_arg; | - | ||||||||||||
642 | int hit; | - | ||||||||||||
643 | X509_VERIFY_PARAM *param; | - | ||||||||||||
644 | - | |||||||||||||
645 | SSL_DANE dane; | - | ||||||||||||
646 | - | |||||||||||||
647 | struct stack_st_SSL_CIPHER *cipher_list; | - | ||||||||||||
648 | struct stack_st_SSL_CIPHER *cipher_list_by_id; | - | ||||||||||||
649 | - | |||||||||||||
650 | struct stack_st_SSL_CIPHER *tls13_ciphersuites; | - | ||||||||||||
651 | - | |||||||||||||
652 | - | |||||||||||||
653 | - | |||||||||||||
654 | - | |||||||||||||
655 | uint32_t mac_flags; | - | ||||||||||||
656 | - | |||||||||||||
657 | - | |||||||||||||
658 | - | |||||||||||||
659 | unsigned char early_secret[64]; | - | ||||||||||||
660 | unsigned char handshake_secret[64]; | - | ||||||||||||
661 | unsigned char master_secret[64]; | - | ||||||||||||
662 | unsigned char resumption_master_secret[64]; | - | ||||||||||||
663 | unsigned char client_finished_secret[64]; | - | ||||||||||||
664 | unsigned char server_finished_secret[64]; | - | ||||||||||||
665 | unsigned char server_finished_hash[64]; | - | ||||||||||||
666 | unsigned char handshake_traffic_hash[64]; | - | ||||||||||||
667 | unsigned char client_app_traffic_secret[64]; | - | ||||||||||||
668 | unsigned char server_app_traffic_secret[64]; | - | ||||||||||||
669 | unsigned char exporter_master_secret[64]; | - | ||||||||||||
670 | unsigned char early_exporter_master_secret[64]; | - | ||||||||||||
671 | EVP_CIPHER_CTX *enc_read_ctx; | - | ||||||||||||
672 | unsigned char read_iv[16]; | - | ||||||||||||
673 | EVP_MD_CTX *read_hash; | - | ||||||||||||
674 | COMP_CTX *compress; | - | ||||||||||||
675 | COMP_CTX *expand; | - | ||||||||||||
676 | EVP_CIPHER_CTX *enc_write_ctx; | - | ||||||||||||
677 | unsigned char write_iv[16]; | - | ||||||||||||
678 | EVP_MD_CTX *write_hash; | - | ||||||||||||
679 | - | |||||||||||||
680 | unsigned int key_update_count; | - | ||||||||||||
681 | - | |||||||||||||
682 | - | |||||||||||||
683 | - | |||||||||||||
684 | struct cert_st *cert; | - | ||||||||||||
685 | - | |||||||||||||
686 | - | |||||||||||||
687 | - | |||||||||||||
688 | - | |||||||||||||
689 | - | |||||||||||||
690 | unsigned char cert_verify_hash[64]; | - | ||||||||||||
691 | size_t cert_verify_hash_len; | - | ||||||||||||
692 | - | |||||||||||||
693 | - | |||||||||||||
694 | enum {SSL_HRR_NONE = 0, SSL_HRR_PENDING, SSL_HRR_COMPLETE} | - | ||||||||||||
695 | hello_retry_request; | - | ||||||||||||
696 | - | |||||||||||||
697 | - | |||||||||||||
698 | - | |||||||||||||
699 | - | |||||||||||||
700 | - | |||||||||||||
701 | size_t sid_ctx_length; | - | ||||||||||||
702 | unsigned char sid_ctx[32]; | - | ||||||||||||
703 | - | |||||||||||||
704 | SSL_SESSION *session; | - | ||||||||||||
705 | - | |||||||||||||
706 | SSL_SESSION *psksession; | - | ||||||||||||
707 | unsigned char *psksession_id; | - | ||||||||||||
708 | size_t psksession_id_len; | - | ||||||||||||
709 | - | |||||||||||||
710 | GEN_SESSION_CB generate_session_id; | - | ||||||||||||
711 | - | |||||||||||||
712 | - | |||||||||||||
713 | - | |||||||||||||
714 | - | |||||||||||||
715 | unsigned char tmp_session_id[32]; | - | ||||||||||||
716 | size_t tmp_session_id_len; | - | ||||||||||||
717 | - | |||||||||||||
718 | - | |||||||||||||
719 | - | |||||||||||||
720 | - | |||||||||||||
721 | - | |||||||||||||
722 | uint32_t verify_mode; | - | ||||||||||||
723 | - | |||||||||||||
724 | int (*verify_callback) (int ok, X509_STORE_CTX *ctx); | - | ||||||||||||
725 | - | |||||||||||||
726 | void (*info_callback) (const SSL *ssl, int type, int val); | - | ||||||||||||
727 | - | |||||||||||||
728 | int error; | - | ||||||||||||
729 | - | |||||||||||||
730 | int error_code; | - | ||||||||||||
731 | - | |||||||||||||
732 | SSL_psk_client_cb_func psk_client_callback; | - | ||||||||||||
733 | SSL_psk_server_cb_func psk_server_callback; | - | ||||||||||||
734 | - | |||||||||||||
735 | SSL_psk_find_session_cb_func psk_find_session_cb; | - | ||||||||||||
736 | SSL_psk_use_session_cb_func psk_use_session_cb; | - | ||||||||||||
737 | - | |||||||||||||
738 | SSL_CTX *ctx; | - | ||||||||||||
739 | - | |||||||||||||
740 | struct stack_st_X509 *verified_chain; | - | ||||||||||||
741 | long verify_result; | - | ||||||||||||
742 | - | |||||||||||||
743 | CRYPTO_EX_DATA ex_data; | - | ||||||||||||
744 | - | |||||||||||||
745 | struct stack_st_X509_NAME *ca_names; | - | ||||||||||||
746 | CRYPTO_REF_COUNT references; | - | ||||||||||||
747 | - | |||||||||||||
748 | uint32_t options; | - | ||||||||||||
749 | - | |||||||||||||
750 | uint32_t mode; | - | ||||||||||||
751 | int min_proto_version; | - | ||||||||||||
752 | int max_proto_version; | - | ||||||||||||
753 | size_t max_cert_list; | - | ||||||||||||
754 | int first_packet; | - | ||||||||||||
755 | - | |||||||||||||
756 | - | |||||||||||||
757 | - | |||||||||||||
758 | - | |||||||||||||
759 | int client_version; | - | ||||||||||||
760 | - | |||||||||||||
761 | - | |||||||||||||
762 | - | |||||||||||||
763 | - | |||||||||||||
764 | size_t split_send_fragment; | - | ||||||||||||
765 | - | |||||||||||||
766 | - | |||||||||||||
767 | - | |||||||||||||
768 | - | |||||||||||||
769 | size_t max_send_fragment; | - | ||||||||||||
770 | - | |||||||||||||
771 | size_t max_pipelines; | - | ||||||||||||
772 | - | |||||||||||||
773 | struct { | - | ||||||||||||
774 | - | |||||||||||||
775 | uint8_t extflags[TLSEXT_IDX_num_builtins]; | - | ||||||||||||
776 | - | |||||||||||||
777 | void (*debug_cb)(SSL *s, int client_server, int type, | - | ||||||||||||
778 | const unsigned char *data, int len, void *arg); | - | ||||||||||||
779 | void *debug_arg; | - | ||||||||||||
780 | char *hostname; | - | ||||||||||||
781 | - | |||||||||||||
782 | - | |||||||||||||
783 | int status_type; | - | ||||||||||||
784 | - | |||||||||||||
785 | unsigned char *scts; | - | ||||||||||||
786 | - | |||||||||||||
787 | uint16_t scts_len; | - | ||||||||||||
788 | - | |||||||||||||
789 | int status_expected; | - | ||||||||||||
790 | - | |||||||||||||
791 | struct { | - | ||||||||||||
792 | - | |||||||||||||
793 | struct stack_st_OCSP_RESPID *ids; | - | ||||||||||||
794 | X509_EXTENSIONS *exts; | - | ||||||||||||
795 | - | |||||||||||||
796 | unsigned char *resp; | - | ||||||||||||
797 | size_t resp_len; | - | ||||||||||||
798 | } ocsp; | - | ||||||||||||
799 | - | |||||||||||||
800 | - | |||||||||||||
801 | int ticket_expected; | - | ||||||||||||
802 | - | |||||||||||||
803 | size_t ecpointformats_len; | - | ||||||||||||
804 | - | |||||||||||||
805 | unsigned char *ecpointformats; | - | ||||||||||||
806 | - | |||||||||||||
807 | size_t supportedgroups_len; | - | ||||||||||||
808 | - | |||||||||||||
809 | uint16_t *supportedgroups; | - | ||||||||||||
810 | - | |||||||||||||
811 | TLS_SESSION_TICKET_EXT *session_ticket; | - | ||||||||||||
812 | - | |||||||||||||
813 | tls_session_ticket_ext_cb_fn session_ticket_cb; | - | ||||||||||||
814 | void *session_ticket_cb_arg; | - | ||||||||||||
815 | - | |||||||||||||
816 | tls_session_secret_cb_fn session_secret_cb; | - | ||||||||||||
817 | void *session_secret_cb_arg; | - | ||||||||||||
818 | - | |||||||||||||
819 | - | |||||||||||||
820 | - | |||||||||||||
821 | - | |||||||||||||
822 | unsigned char *alpn; | - | ||||||||||||
823 | size_t alpn_len; | - | ||||||||||||
824 | - | |||||||||||||
825 | - | |||||||||||||
826 | - | |||||||||||||
827 | - | |||||||||||||
828 | - | |||||||||||||
829 | - | |||||||||||||
830 | - | |||||||||||||
831 | unsigned char *npn; | - | ||||||||||||
832 | size_t npn_len; | - | ||||||||||||
833 | - | |||||||||||||
834 | - | |||||||||||||
835 | int psk_kex_mode; | - | ||||||||||||
836 | - | |||||||||||||
837 | - | |||||||||||||
838 | int use_etm; | - | ||||||||||||
839 | - | |||||||||||||
840 | - | |||||||||||||
841 | int early_data; | - | ||||||||||||
842 | - | |||||||||||||
843 | int early_data_ok; | - | ||||||||||||
844 | - | |||||||||||||
845 | - | |||||||||||||
846 | unsigned char *tls13_cookie; | - | ||||||||||||
847 | size_t tls13_cookie_len; | - | ||||||||||||
848 | - | |||||||||||||
849 | int cookieok; | - | ||||||||||||
850 | uint8_t max_fragment_len_mode; | - | ||||||||||||
851 | } ext; | - | ||||||||||||
852 | - | |||||||||||||
853 | - | |||||||||||||
854 | - | |||||||||||||
855 | - | |||||||||||||
856 | - | |||||||||||||
857 | CLIENTHELLO_MSG *clienthello; | - | ||||||||||||
858 | - | |||||||||||||
859 | - | |||||||||||||
860 | - | |||||||||||||
861 | - | |||||||||||||
862 | - | |||||||||||||
863 | - | |||||||||||||
864 | - | |||||||||||||
865 | int servername_done; | - | ||||||||||||
866 | - | |||||||||||||
867 | - | |||||||||||||
868 | - | |||||||||||||
869 | - | |||||||||||||
870 | - | |||||||||||||
871 | ssl_ct_validation_cb ct_validation_callback; | - | ||||||||||||
872 | - | |||||||||||||
873 | void *ct_validation_callback_arg; | - | ||||||||||||
874 | - | |||||||||||||
875 | - | |||||||||||||
876 | - | |||||||||||||
877 | - | |||||||||||||
878 | struct stack_st_SCT *scts; | - | ||||||||||||
879 | - | |||||||||||||
880 | int scts_parsed; | - | ||||||||||||
881 | - | |||||||||||||
882 | SSL_CTX *session_ctx; | - | ||||||||||||
883 | - | |||||||||||||
884 | - | |||||||||||||
885 | struct stack_st_SRTP_PROTECTION_PROFILE *srtp_profiles; | - | ||||||||||||
886 | - | |||||||||||||
887 | SRTP_PROTECTION_PROFILE *srtp_profile; | - | ||||||||||||
888 | - | |||||||||||||
889 | - | |||||||||||||
890 | - | |||||||||||||
891 | - | |||||||||||||
892 | - | |||||||||||||
893 | - | |||||||||||||
894 | int renegotiate; | - | ||||||||||||
895 | - | |||||||||||||
896 | int key_update; | - | ||||||||||||
897 | - | |||||||||||||
898 | SSL_PHA_STATE post_handshake_auth; | - | ||||||||||||
899 | int pha_enabled; | - | ||||||||||||
900 | uint8_t* pha_context; | - | ||||||||||||
901 | size_t pha_context_len; | - | ||||||||||||
902 | int certreqs_sent; | - | ||||||||||||
903 | EVP_MD_CTX *pha_dgst; | - | ||||||||||||
904 | - | |||||||||||||
905 | - | |||||||||||||
906 | - | |||||||||||||
907 | SRP_CTX srp_ctx; | - | ||||||||||||
908 | - | |||||||||||||
909 | - | |||||||||||||
910 | - | |||||||||||||
911 | - | |||||||||||||
912 | - | |||||||||||||
913 | int (*not_resumable_session_cb) (SSL *ssl, int is_forward_secure); | - | ||||||||||||
914 | RECORD_LAYER rlayer; | - | ||||||||||||
915 | - | |||||||||||||
916 | pem_password_cb *default_passwd_callback; | - | ||||||||||||
917 | - | |||||||||||||
918 | void *default_passwd_callback_userdata; | - | ||||||||||||
919 | - | |||||||||||||
920 | ASYNC_JOB *job; | - | ||||||||||||
921 | ASYNC_WAIT_CTX *waitctx; | - | ||||||||||||
922 | size_t asyncrw; | - | ||||||||||||
923 | - | |||||||||||||
924 | - | |||||||||||||
925 | - | |||||||||||||
926 | - | |||||||||||||
927 | - | |||||||||||||
928 | uint32_t max_early_data; | - | ||||||||||||
929 | - | |||||||||||||
930 | - | |||||||||||||
931 | - | |||||||||||||
932 | - | |||||||||||||
933 | uint32_t recv_max_early_data; | - | ||||||||||||
934 | - | |||||||||||||
935 | - | |||||||||||||
936 | - | |||||||||||||
937 | - | |||||||||||||
938 | - | |||||||||||||
939 | - | |||||||||||||
940 | uint32_t early_data_count; | - | ||||||||||||
941 | - | |||||||||||||
942 | - | |||||||||||||
943 | size_t (*record_padding_cb)(SSL *s, int type, size_t len, void *arg); | - | ||||||||||||
944 | void *record_padding_arg; | - | ||||||||||||
945 | size_t block_padding; | - | ||||||||||||
946 | - | |||||||||||||
947 | CRYPTO_RWLOCK *lock; | - | ||||||||||||
948 | RAND_DRBG *drbg; | - | ||||||||||||
949 | - | |||||||||||||
950 | - | |||||||||||||
951 | size_t num_tickets; | - | ||||||||||||
952 | - | |||||||||||||
953 | size_t sent_tickets; | - | ||||||||||||
954 | - | |||||||||||||
955 | uint64_t next_ticket_nonce; | - | ||||||||||||
956 | - | |||||||||||||
957 | - | |||||||||||||
958 | SSL_allow_early_data_cb_fn allow_early_data_cb; | - | ||||||||||||
959 | void *allow_early_data_cb_data; | - | ||||||||||||
960 | }; | - | ||||||||||||
961 | - | |||||||||||||
962 | - | |||||||||||||
963 | - | |||||||||||||
964 | - | |||||||||||||
965 | - | |||||||||||||
966 | typedef struct sigalg_lookup_st { | - | ||||||||||||
967 | - | |||||||||||||
968 | const char *name; | - | ||||||||||||
969 | - | |||||||||||||
970 | uint16_t sigalg; | - | ||||||||||||
971 | - | |||||||||||||
972 | int hash; | - | ||||||||||||
973 | - | |||||||||||||
974 | int hash_idx; | - | ||||||||||||
975 | - | |||||||||||||
976 | int sig; | - | ||||||||||||
977 | - | |||||||||||||
978 | int sig_idx; | - | ||||||||||||
979 | - | |||||||||||||
980 | int sigandhash; | - | ||||||||||||
981 | - | |||||||||||||
982 | int curve; | - | ||||||||||||
983 | } SIGALG_LOOKUP; | - | ||||||||||||
984 | - | |||||||||||||
985 | typedef struct tls_group_info_st { | - | ||||||||||||
986 | int nid; | - | ||||||||||||
987 | int secbits; | - | ||||||||||||
988 | uint16_t flags; | - | ||||||||||||
989 | } TLS_GROUP_INFO; | - | ||||||||||||
990 | - | |||||||||||||
991 | - | |||||||||||||
992 | - | |||||||||||||
993 | - | |||||||||||||
994 | - | |||||||||||||
995 | - | |||||||||||||
996 | - | |||||||||||||
997 | typedef struct cert_pkey_st CERT_PKEY; | - | ||||||||||||
998 | - | |||||||||||||
999 | - | |||||||||||||
1000 | - | |||||||||||||
1001 | - | |||||||||||||
1002 | - | |||||||||||||
1003 | typedef struct { | - | ||||||||||||
1004 | int nid; | - | ||||||||||||
1005 | uint32_t amask; | - | ||||||||||||
1006 | } SSL_CERT_LOOKUP; | - | ||||||||||||
1007 | - | |||||||||||||
1008 | typedef struct ssl3_state_st { | - | ||||||||||||
1009 | long flags; | - | ||||||||||||
1010 | size_t read_mac_secret_size; | - | ||||||||||||
1011 | unsigned char read_mac_secret[64]; | - | ||||||||||||
1012 | size_t write_mac_secret_size; | - | ||||||||||||
1013 | unsigned char write_mac_secret[64]; | - | ||||||||||||
1014 | unsigned char server_random[32]; | - | ||||||||||||
1015 | unsigned char client_random[32]; | - | ||||||||||||
1016 | - | |||||||||||||
1017 | int need_empty_fragments; | - | ||||||||||||
1018 | int empty_fragment_done; | - | ||||||||||||
1019 | - | |||||||||||||
1020 | BIO *handshake_buffer; | - | ||||||||||||
1021 | - | |||||||||||||
1022 | - | |||||||||||||
1023 | - | |||||||||||||
1024 | - | |||||||||||||
1025 | EVP_MD_CTX *handshake_dgst; | - | ||||||||||||
1026 | - | |||||||||||||
1027 | - | |||||||||||||
1028 | - | |||||||||||||
1029 | - | |||||||||||||
1030 | - | |||||||||||||
1031 | int change_cipher_spec; | - | ||||||||||||
1032 | int warn_alert; | - | ||||||||||||
1033 | int fatal_alert; | - | ||||||||||||
1034 | - | |||||||||||||
1035 | - | |||||||||||||
1036 | - | |||||||||||||
1037 | - | |||||||||||||
1038 | int alert_dispatch; | - | ||||||||||||
1039 | unsigned char send_alert[2]; | - | ||||||||||||
1040 | - | |||||||||||||
1041 | - | |||||||||||||
1042 | - | |||||||||||||
1043 | - | |||||||||||||
1044 | int renegotiate; | - | ||||||||||||
1045 | int total_renegotiations; | - | ||||||||||||
1046 | int num_renegotiations; | - | ||||||||||||
1047 | int in_read_app_data; | - | ||||||||||||
1048 | struct { | - | ||||||||||||
1049 | - | |||||||||||||
1050 | unsigned char finish_md[64 * 2]; | - | ||||||||||||
1051 | size_t finish_md_len; | - | ||||||||||||
1052 | unsigned char peer_finish_md[64 * 2]; | - | ||||||||||||
1053 | size_t peer_finish_md_len; | - | ||||||||||||
1054 | size_t message_size; | - | ||||||||||||
1055 | int message_type; | - | ||||||||||||
1056 | - | |||||||||||||
1057 | const SSL_CIPHER *new_cipher; | - | ||||||||||||
1058 | - | |||||||||||||
1059 | EVP_PKEY *pkey; | - | ||||||||||||
1060 | - | |||||||||||||
1061 | - | |||||||||||||
1062 | int cert_req; | - | ||||||||||||
1063 | - | |||||||||||||
1064 | uint8_t *ctype; | - | ||||||||||||
1065 | size_t ctype_len; | - | ||||||||||||
1066 | - | |||||||||||||
1067 | struct stack_st_X509_NAME *peer_ca_names; | - | ||||||||||||
1068 | size_t key_block_length; | - | ||||||||||||
1069 | unsigned char *key_block; | - | ||||||||||||
1070 | const EVP_CIPHER *new_sym_enc; | - | ||||||||||||
1071 | const EVP_MD *new_hash; | - | ||||||||||||
1072 | int new_mac_pkey_type; | - | ||||||||||||
1073 | size_t new_mac_secret_size; | - | ||||||||||||
1074 | - | |||||||||||||
1075 | const SSL_COMP *new_compression; | - | ||||||||||||
1076 | - | |||||||||||||
1077 | - | |||||||||||||
1078 | - | |||||||||||||
1079 | int cert_request; | - | ||||||||||||
1080 | - | |||||||||||||
1081 | unsigned char *ciphers_raw; | - | ||||||||||||
1082 | size_t ciphers_rawlen; | - | ||||||||||||
1083 | - | |||||||||||||
1084 | unsigned char *pms; | - | ||||||||||||
1085 | size_t pmslen; | - | ||||||||||||
1086 | - | |||||||||||||
1087 | - | |||||||||||||
1088 | unsigned char *psk; | - | ||||||||||||
1089 | size_t psklen; | - | ||||||||||||
1090 | - | |||||||||||||
1091 | - | |||||||||||||
1092 | const SIGALG_LOOKUP *sigalg; | - | ||||||||||||
1093 | - | |||||||||||||
1094 | CERT_PKEY *cert; | - | ||||||||||||
1095 | - | |||||||||||||
1096 | - | |||||||||||||
1097 | - | |||||||||||||
1098 | - | |||||||||||||
1099 | - | |||||||||||||
1100 | - | |||||||||||||
1101 | uint16_t *peer_sigalgs; | - | ||||||||||||
1102 | uint16_t *peer_cert_sigalgs; | - | ||||||||||||
1103 | - | |||||||||||||
1104 | size_t peer_sigalgslen; | - | ||||||||||||
1105 | size_t peer_cert_sigalgslen; | - | ||||||||||||
1106 | - | |||||||||||||
1107 | const SIGALG_LOOKUP *peer_sigalg; | - | ||||||||||||
1108 | - | |||||||||||||
1109 | - | |||||||||||||
1110 | - | |||||||||||||
1111 | - | |||||||||||||
1112 | - | |||||||||||||
1113 | uint32_t valid_flags[9]; | - | ||||||||||||
1114 | - | |||||||||||||
1115 | - | |||||||||||||
1116 | - | |||||||||||||
1117 | - | |||||||||||||
1118 | - | |||||||||||||
1119 | uint32_t mask_k; | - | ||||||||||||
1120 | uint32_t mask_a; | - | ||||||||||||
1121 | - | |||||||||||||
1122 | - | |||||||||||||
1123 | - | |||||||||||||
1124 | - | |||||||||||||
1125 | - | |||||||||||||
1126 | int min_ver; | - | ||||||||||||
1127 | int max_ver; | - | ||||||||||||
1128 | } tmp; | - | ||||||||||||
1129 | - | |||||||||||||
1130 | - | |||||||||||||
1131 | unsigned char previous_client_finished[64]; | - | ||||||||||||
1132 | size_t previous_client_finished_len; | - | ||||||||||||
1133 | unsigned char previous_server_finished[64]; | - | ||||||||||||
1134 | size_t previous_server_finished_len; | - | ||||||||||||
1135 | int send_connection_binding; | - | ||||||||||||
1136 | - | |||||||||||||
1137 | - | |||||||||||||
1138 | - | |||||||||||||
1139 | - | |||||||||||||
1140 | - | |||||||||||||
1141 | int npn_seen; | - | ||||||||||||
1142 | unsigned char *alpn_selected; | - | ||||||||||||
1143 | size_t alpn_selected_len; | - | ||||||||||||
1144 | - | |||||||||||||
1145 | unsigned char *alpn_proposed; | - | ||||||||||||
1146 | size_t alpn_proposed_len; | - | ||||||||||||
1147 | - | |||||||||||||
1148 | int alpn_sent; | - | ||||||||||||
1149 | - | |||||||||||||
1150 | - | |||||||||||||
1151 | - | |||||||||||||
1152 | - | |||||||||||||
1153 | - | |||||||||||||
1154 | - | |||||||||||||
1155 | - | |||||||||||||
1156 | char is_probably_safari; | - | ||||||||||||
1157 | - | |||||||||||||
1158 | - | |||||||||||||
1159 | - | |||||||||||||
1160 | - | |||||||||||||
1161 | - | |||||||||||||
1162 | uint16_t group_id; | - | ||||||||||||
1163 | EVP_PKEY *peer_tmp; | - | ||||||||||||
1164 | - | |||||||||||||
1165 | - | |||||||||||||
1166 | } SSL3_STATE; | - | ||||||||||||
1167 | struct dtls1_retransmit_state { | - | ||||||||||||
1168 | EVP_CIPHER_CTX *enc_write_ctx; | - | ||||||||||||
1169 | EVP_MD_CTX *write_hash; | - | ||||||||||||
1170 | COMP_CTX *compress; | - | ||||||||||||
1171 | SSL_SESSION *session; | - | ||||||||||||
1172 | unsigned short epoch; | - | ||||||||||||
1173 | }; | - | ||||||||||||
1174 | - | |||||||||||||
1175 | struct hm_header_st { | - | ||||||||||||
1176 | unsigned char type; | - | ||||||||||||
1177 | size_t msg_len; | - | ||||||||||||
1178 | unsigned short seq; | - | ||||||||||||
1179 | size_t frag_off; | - | ||||||||||||
1180 | size_t frag_len; | - | ||||||||||||
1181 | unsigned int is_ccs; | - | ||||||||||||
1182 | struct dtls1_retransmit_state saved_retransmit_state; | - | ||||||||||||
1183 | }; | - | ||||||||||||
1184 | - | |||||||||||||
1185 | struct dtls1_timeout_st { | - | ||||||||||||
1186 | - | |||||||||||||
1187 | unsigned int read_timeouts; | - | ||||||||||||
1188 | - | |||||||||||||
1189 | unsigned int write_timeouts; | - | ||||||||||||
1190 | - | |||||||||||||
1191 | unsigned int num_alerts; | - | ||||||||||||
1192 | }; | - | ||||||||||||
1193 | - | |||||||||||||
1194 | typedef struct hm_fragment_st { | - | ||||||||||||
1195 | struct hm_header_st msg_header; | - | ||||||||||||
1196 | unsigned char *fragment; | - | ||||||||||||
1197 | unsigned char *reassembly; | - | ||||||||||||
1198 | } hm_fragment; | - | ||||||||||||
1199 | - | |||||||||||||
1200 | typedef struct pqueue_st pqueue; | - | ||||||||||||
1201 | typedef struct pitem_st pitem; | - | ||||||||||||
1202 | - | |||||||||||||
1203 | struct pitem_st { | - | ||||||||||||
1204 | unsigned char priority[8]; | - | ||||||||||||
1205 | void *data; | - | ||||||||||||
1206 | pitem *next; | - | ||||||||||||
1207 | }; | - | ||||||||||||
1208 | - | |||||||||||||
1209 | typedef struct pitem_st *piterator; | - | ||||||||||||
1210 | - | |||||||||||||
1211 | pitem *pitem_new(unsigned char *prio64be, void *data); | - | ||||||||||||
1212 | void pitem_free(pitem *item); | - | ||||||||||||
1213 | pqueue *pqueue_new(void); | - | ||||||||||||
1214 | void pqueue_free(pqueue *pq); | - | ||||||||||||
1215 | pitem *pqueue_insert(pqueue *pq, pitem *item); | - | ||||||||||||
1216 | pitem *pqueue_peek(pqueue *pq); | - | ||||||||||||
1217 | pitem *pqueue_pop(pqueue *pq); | - | ||||||||||||
1218 | pitem *pqueue_find(pqueue *pq, unsigned char *prio64be); | - | ||||||||||||
1219 | pitem *pqueue_iterator(pqueue *pq); | - | ||||||||||||
1220 | pitem *pqueue_next(piterator *iter); | - | ||||||||||||
1221 | size_t pqueue_size(pqueue *pq); | - | ||||||||||||
1222 | - | |||||||||||||
1223 | typedef struct dtls1_state_st { | - | ||||||||||||
1224 | unsigned char cookie[256]; | - | ||||||||||||
1225 | size_t cookie_len; | - | ||||||||||||
1226 | unsigned int cookie_verified; | - | ||||||||||||
1227 | - | |||||||||||||
1228 | unsigned short handshake_write_seq; | - | ||||||||||||
1229 | unsigned short next_handshake_write_seq; | - | ||||||||||||
1230 | unsigned short handshake_read_seq; | - | ||||||||||||
1231 | - | |||||||||||||
1232 | pqueue *buffered_messages; | - | ||||||||||||
1233 | - | |||||||||||||
1234 | pqueue *sent_messages; | - | ||||||||||||
1235 | size_t link_mtu; | - | ||||||||||||
1236 | size_t mtu; | - | ||||||||||||
1237 | struct hm_header_st w_msg_hdr; | - | ||||||||||||
1238 | struct hm_header_st r_msg_hdr; | - | ||||||||||||
1239 | struct dtls1_timeout_st timeout; | - | ||||||||||||
1240 | - | |||||||||||||
1241 | - | |||||||||||||
1242 | - | |||||||||||||
1243 | struct timeval next_timeout; | - | ||||||||||||
1244 | - | |||||||||||||
1245 | unsigned int timeout_duration_us; | - | ||||||||||||
1246 | - | |||||||||||||
1247 | unsigned int retransmitting; | - | ||||||||||||
1248 | - | |||||||||||||
1249 | - | |||||||||||||
1250 | - | |||||||||||||
1251 | - | |||||||||||||
1252 | DTLS_timer_cb timer_cb; | - | ||||||||||||
1253 | - | |||||||||||||
1254 | } DTLS1_STATE; | - | ||||||||||||
1255 | struct cert_pkey_st { | - | ||||||||||||
1256 | X509 *x509; | - | ||||||||||||
1257 | EVP_PKEY *privatekey; | - | ||||||||||||
1258 | - | |||||||||||||
1259 | struct stack_st_X509 *chain; | - | ||||||||||||
1260 | - | |||||||||||||
1261 | - | |||||||||||||
1262 | - | |||||||||||||
1263 | - | |||||||||||||
1264 | - | |||||||||||||
1265 | - | |||||||||||||
1266 | - | |||||||||||||
1267 | unsigned char *serverinfo; | - | ||||||||||||
1268 | size_t serverinfo_length; | - | ||||||||||||
1269 | }; | - | ||||||||||||
1270 | - | |||||||||||||
1271 | - | |||||||||||||
1272 | - | |||||||||||||
1273 | - | |||||||||||||
1274 | - | |||||||||||||
1275 | - | |||||||||||||
1276 | typedef enum { | - | ||||||||||||
1277 | ENDPOINT_CLIENT = 0, | - | ||||||||||||
1278 | ENDPOINT_SERVER, | - | ||||||||||||
1279 | ENDPOINT_BOTH | - | ||||||||||||
1280 | } ENDPOINT; | - | ||||||||||||
1281 | - | |||||||||||||
1282 | - | |||||||||||||
1283 | typedef struct { | - | ||||||||||||
1284 | unsigned short ext_type; | - | ||||||||||||
1285 | ENDPOINT role; | - | ||||||||||||
1286 | - | |||||||||||||
1287 | unsigned int context; | - | ||||||||||||
1288 | - | |||||||||||||
1289 | - | |||||||||||||
1290 | - | |||||||||||||
1291 | - | |||||||||||||
1292 | uint32_t ext_flags; | - | ||||||||||||
1293 | SSL_custom_ext_add_cb_ex add_cb; | - | ||||||||||||
1294 | SSL_custom_ext_free_cb_ex free_cb; | - | ||||||||||||
1295 | void *add_arg; | - | ||||||||||||
1296 | SSL_custom_ext_parse_cb_ex parse_cb; | - | ||||||||||||
1297 | void *parse_arg; | - | ||||||||||||
1298 | } custom_ext_method; | - | ||||||||||||
1299 | typedef struct { | - | ||||||||||||
1300 | custom_ext_method *meths; | - | ||||||||||||
1301 | size_t meths_count; | - | ||||||||||||
1302 | } custom_ext_methods; | - | ||||||||||||
1303 | - | |||||||||||||
1304 | typedef struct cert_st { | - | ||||||||||||
1305 | - | |||||||||||||
1306 | - | |||||||||||||
1307 | - | |||||||||||||
1308 | - | |||||||||||||
1309 | - | |||||||||||||
1310 | - | |||||||||||||
1311 | CERT_PKEY *key; | - | ||||||||||||
1312 | - | |||||||||||||
1313 | EVP_PKEY *dh_tmp; | - | ||||||||||||
1314 | DH *(*dh_tmp_cb) (SSL *ssl, int is_export, int keysize); | - | ||||||||||||
1315 | int dh_tmp_auto; | - | ||||||||||||
1316 | - | |||||||||||||
1317 | - | |||||||||||||
1318 | uint32_t cert_flags; | - | ||||||||||||
1319 | CERT_PKEY pkeys[9]; | - | ||||||||||||
1320 | - | |||||||||||||
1321 | uint8_t *ctype; | - | ||||||||||||
1322 | size_t ctype_len; | - | ||||||||||||
1323 | - | |||||||||||||
1324 | - | |||||||||||||
1325 | - | |||||||||||||
1326 | - | |||||||||||||
1327 | - | |||||||||||||
1328 | uint16_t *conf_sigalgs; | - | ||||||||||||
1329 | - | |||||||||||||
1330 | size_t conf_sigalgslen; | - | ||||||||||||
1331 | - | |||||||||||||
1332 | - | |||||||||||||
1333 | - | |||||||||||||
1334 | - | |||||||||||||
1335 | - | |||||||||||||
1336 | - | |||||||||||||
1337 | - | |||||||||||||
1338 | uint16_t *client_sigalgs; | - | ||||||||||||
1339 | - | |||||||||||||
1340 | size_t client_sigalgslen; | - | ||||||||||||
1341 | - | |||||||||||||
1342 | - | |||||||||||||
1343 | - | |||||||||||||
1344 | - | |||||||||||||
1345 | const SIGALG_LOOKUP **shared_sigalgs; | - | ||||||||||||
1346 | size_t shared_sigalgslen; | - | ||||||||||||
1347 | - | |||||||||||||
1348 | - | |||||||||||||
1349 | - | |||||||||||||
1350 | - | |||||||||||||
1351 | - | |||||||||||||
1352 | - | |||||||||||||
1353 | - | |||||||||||||
1354 | int (*cert_cb) (SSL *ssl, void *arg); | - | ||||||||||||
1355 | void *cert_cb_arg; | - | ||||||||||||
1356 | - | |||||||||||||
1357 | - | |||||||||||||
1358 | - | |||||||||||||
1359 | - | |||||||||||||
1360 | X509_STORE *chain_store; | - | ||||||||||||
1361 | X509_STORE *verify_store; | - | ||||||||||||
1362 | - | |||||||||||||
1363 | custom_ext_methods custext; | - | ||||||||||||
1364 | - | |||||||||||||
1365 | int (*sec_cb) (const SSL *s, const SSL_CTX *ctx, int op, int bits, int nid, | - | ||||||||||||
1366 | void *other, void *ex); | - | ||||||||||||
1367 | - | |||||||||||||
1368 | int sec_level; | - | ||||||||||||
1369 | void *sec_ex; | - | ||||||||||||
1370 | - | |||||||||||||
1371 | - | |||||||||||||
1372 | char *psk_identity_hint; | - | ||||||||||||
1373 | - | |||||||||||||
1374 | CRYPTO_REF_COUNT references; | - | ||||||||||||
1375 | CRYPTO_RWLOCK *lock; | - | ||||||||||||
1376 | } CERT; | - | ||||||||||||
1377 | - | |||||||||||||
1378 | - | |||||||||||||
1379 | - | |||||||||||||
1380 | - | |||||||||||||
1381 | - | |||||||||||||
1382 | - | |||||||||||||
1383 | - | |||||||||||||
1384 | typedef struct ssl3_enc_method { | - | ||||||||||||
1385 | int (*enc) (SSL *, SSL3_RECORD *, size_t, int); | - | ||||||||||||
1386 | int (*mac) (SSL *, SSL3_RECORD *, unsigned char *, int); | - | ||||||||||||
1387 | int (*setup_key_block) (SSL *); | - | ||||||||||||
1388 | int (*generate_master_secret) (SSL *, unsigned char *, unsigned char *, | - | ||||||||||||
1389 | size_t, size_t *); | - | ||||||||||||
1390 | int (*change_cipher_state) (SSL *, int); | - | ||||||||||||
1391 | size_t (*final_finish_mac) (SSL *, const char *, size_t, unsigned char *); | - | ||||||||||||
1392 | const char *client_finished_label; | - | ||||||||||||
1393 | size_t client_finished_label_len; | - | ||||||||||||
1394 | const char *server_finished_label; | - | ||||||||||||
1395 | size_t server_finished_label_len; | - | ||||||||||||
1396 | int (*alert_value) (int); | - | ||||||||||||
1397 | int (*export_keying_material) (SSL *, unsigned char *, size_t, | - | ||||||||||||
1398 | const char *, size_t, | - | ||||||||||||
1399 | const unsigned char *, size_t, | - | ||||||||||||
1400 | int use_context); | - | ||||||||||||
1401 | - | |||||||||||||
1402 | uint32_t enc_flags; | - | ||||||||||||
1403 | - | |||||||||||||
1404 | int (*set_handshake_header) (SSL *s, WPACKET *pkt, int type); | - | ||||||||||||
1405 | - | |||||||||||||
1406 | int (*close_construct_packet) (SSL *s, WPACKET *pkt, int htype); | - | ||||||||||||
1407 | - | |||||||||||||
1408 | int (*do_write) (SSL *s); | - | ||||||||||||
1409 | } SSL3_ENC_METHOD; | - | ||||||||||||
1410 | typedef struct ssl3_comp_st { | - | ||||||||||||
1411 | int comp_id; | - | ||||||||||||
1412 | - | |||||||||||||
1413 | char *name; | - | ||||||||||||
1414 | COMP_METHOD *method; | - | ||||||||||||
1415 | } SSL3_COMP; | - | ||||||||||||
1416 | - | |||||||||||||
1417 | - | |||||||||||||
1418 | typedef enum downgrade_en { | - | ||||||||||||
1419 | DOWNGRADE_NONE, | - | ||||||||||||
1420 | DOWNGRADE_TO_1_2, | - | ||||||||||||
1421 | DOWNGRADE_TO_1_1 | - | ||||||||||||
1422 | } DOWNGRADE; | - | ||||||||||||
1423 | extern const unsigned char tls11downgrade[8]; | - | ||||||||||||
1424 | extern const unsigned char tls12downgrade[8]; | - | ||||||||||||
1425 | - | |||||||||||||
1426 | extern SSL3_ENC_METHOD ssl3_undef_enc_method; | - | ||||||||||||
1427 | - | |||||||||||||
1428 | const SSL_METHOD *ssl_bad_method(int ver); | - | ||||||||||||
1429 | const SSL_METHOD *sslv3_method(void); | - | ||||||||||||
1430 | const SSL_METHOD *sslv3_server_method(void); | - | ||||||||||||
1431 | const SSL_METHOD *sslv3_client_method(void); | - | ||||||||||||
1432 | const SSL_METHOD *tlsv1_method(void); | - | ||||||||||||
1433 | const SSL_METHOD *tlsv1_server_method(void); | - | ||||||||||||
1434 | const SSL_METHOD *tlsv1_client_method(void); | - | ||||||||||||
1435 | const SSL_METHOD *tlsv1_1_method(void); | - | ||||||||||||
1436 | const SSL_METHOD *tlsv1_1_server_method(void); | - | ||||||||||||
1437 | const SSL_METHOD *tlsv1_1_client_method(void); | - | ||||||||||||
1438 | const SSL_METHOD *tlsv1_2_method(void); | - | ||||||||||||
1439 | const SSL_METHOD *tlsv1_2_server_method(void); | - | ||||||||||||
1440 | const SSL_METHOD *tlsv1_2_client_method(void); | - | ||||||||||||
1441 | const SSL_METHOD *tlsv1_3_method(void); | - | ||||||||||||
1442 | const SSL_METHOD *tlsv1_3_server_method(void); | - | ||||||||||||
1443 | const SSL_METHOD *tlsv1_3_client_method(void); | - | ||||||||||||
1444 | const SSL_METHOD *dtlsv1_method(void); | - | ||||||||||||
1445 | const SSL_METHOD *dtlsv1_server_method(void); | - | ||||||||||||
1446 | const SSL_METHOD *dtlsv1_client_method(void); | - | ||||||||||||
1447 | const SSL_METHOD *dtls_bad_ver_client_method(void); | - | ||||||||||||
1448 | const SSL_METHOD *dtlsv1_2_method(void); | - | ||||||||||||
1449 | const SSL_METHOD *dtlsv1_2_server_method(void); | - | ||||||||||||
1450 | const SSL_METHOD *dtlsv1_2_client_method(void); | - | ||||||||||||
1451 | - | |||||||||||||
1452 | extern const SSL3_ENC_METHOD TLSv1_enc_data; | - | ||||||||||||
1453 | extern const SSL3_ENC_METHOD TLSv1_1_enc_data; | - | ||||||||||||
1454 | extern const SSL3_ENC_METHOD TLSv1_2_enc_data; | - | ||||||||||||
1455 | extern const SSL3_ENC_METHOD TLSv1_3_enc_data; | - | ||||||||||||
1456 | extern const SSL3_ENC_METHOD SSLv3_enc_data; | - | ||||||||||||
1457 | extern const SSL3_ENC_METHOD DTLSv1_enc_data; | - | ||||||||||||
1458 | extern const SSL3_ENC_METHOD DTLSv1_2_enc_data; | - | ||||||||||||
1459 | struct openssl_ssl_test_functions { | - | ||||||||||||
1460 | int (*p_ssl_init_wbio_buffer) (SSL *s); | - | ||||||||||||
1461 | int (*p_ssl3_setup_buffers) (SSL *s); | - | ||||||||||||
1462 | }; | - | ||||||||||||
1463 | - | |||||||||||||
1464 | const char *ssl_protocol_to_string(int version); | - | ||||||||||||
1465 | - | |||||||||||||
1466 | - | |||||||||||||
1467 | static inline int ssl_has_cert(const SSL *s, int idx) | - | ||||||||||||
1468 | { | - | ||||||||||||
1469 | if (idx < 0
| 0-15565 | ||||||||||||
1470 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
1471 | return executed 15565 times by 1 test: s->cert->pkeys[idx].x509 != return s->cert->pkeys[idx].x509 != ((void *)0) && s->cert->pkeys[idx].privatekey != ((void *)0) ; Executed by:
executed 15565 times by 1 test: return s->cert->pkeys[idx].x509 != ((void *)0) && s->cert->pkeys[idx].privatekey != ((void *)0) ; Executed by:
| 4127-15565 | ||||||||||||
1472 | ((void *)0)
executed 15565 times by 1 test: return s->cert->pkeys[idx].x509 != ((void *)0) && s->cert->pkeys[idx].privatekey != ((void *)0) ; Executed by:
| 4127-15565 | ||||||||||||
1473 | executed 15565 times by 1 test: return s->cert->pkeys[idx].x509 != ((void *)0) && s->cert->pkeys[idx].privatekey != ((void *)0) ; Executed by:
| 15565 | ||||||||||||
1474 | && s->cert->pkeys[idx].privatekey !=
executed 15565 times by 1 test: return s->cert->pkeys[idx].x509 != ((void *)0) && s->cert->pkeys[idx].privatekey != ((void *)0) ; Executed by:
| 0-15565 | ||||||||||||
1475 | ((void *)0)
executed 15565 times by 1 test: return s->cert->pkeys[idx].x509 != ((void *)0) && s->cert->pkeys[idx].privatekey != ((void *)0) ; Executed by:
| 0-15565 | ||||||||||||
1476 | ; executed 15565 times by 1 test: return s->cert->pkeys[idx].x509 != ((void *)0) && s->cert->pkeys[idx].privatekey != ((void *)0) ; Executed by:
| 15565 | ||||||||||||
1477 | } | - | ||||||||||||
1478 | - | |||||||||||||
1479 | static inline void tls1_get_peer_groups(SSL *s, const uint16_t **pgroups, | - | ||||||||||||
1480 | size_t *pgroupslen) | - | ||||||||||||
1481 | { | - | ||||||||||||
1482 | *pgroups = s->session->ext.supportedgroups; | - | ||||||||||||
1483 | *pgroupslen = s->session->ext.supportedgroups_len; | - | ||||||||||||
1484 | } executed 8869 times by 1 test: end of block Executed by:
| 8869 | ||||||||||||
1485 | - | |||||||||||||
1486 | - | |||||||||||||
1487 | - | |||||||||||||
1488 | int ssl_read_internal(SSL *s, void *buf, size_t num, size_t *readbytes); | - | ||||||||||||
1489 | int ssl_write_internal(SSL *s, const void *buf, size_t num, size_t *written); | - | ||||||||||||
1490 | void ssl_clear_cipher_ctx(SSL *s); | - | ||||||||||||
1491 | int ssl_clear_bad_session(SSL *s); | - | ||||||||||||
1492 | CERT *ssl_cert_new(void); | - | ||||||||||||
1493 | CERT *ssl_cert_dup(CERT *cert); | - | ||||||||||||
1494 | void ssl_cert_clear_certs(CERT *c); | - | ||||||||||||
1495 | void ssl_cert_free(CERT *c); | - | ||||||||||||
1496 | int ssl_generate_session_id(SSL *s, SSL_SESSION *ss); | - | ||||||||||||
1497 | int ssl_get_new_session(SSL *s, int session); | - | ||||||||||||
1498 | SSL_SESSION *lookup_sess_in_cache(SSL *s, const unsigned char *sess_id, | - | ||||||||||||
1499 | size_t sess_id_len); | - | ||||||||||||
1500 | int ssl_get_prev_session(SSL *s, CLIENTHELLO_MSG *hello); | - | ||||||||||||
1501 | SSL_SESSION *ssl_session_dup(SSL_SESSION *src, int ticket); | - | ||||||||||||
1502 | int ssl_cipher_id_cmp(const SSL_CIPHER *a, const SSL_CIPHER *b); | - | ||||||||||||
1503 | SSL_CIPHER * OBJ_bsearch_ssl_cipher_id(SSL_CIPHER *key, SSL_CIPHER const *base, int num); | - | ||||||||||||
1504 | int ssl_cipher_ptr_id_cmp(const SSL_CIPHER *const *ap, | - | ||||||||||||
1505 | const SSL_CIPHER *const *bp); | - | ||||||||||||
1506 | struct stack_st_SSL_CIPHER *ssl_create_cipher_list(const SSL_METHOD *ssl_method, | - | ||||||||||||
1507 | struct stack_st_SSL_CIPHER *tls13_ciphersuites, | - | ||||||||||||
1508 | struct stack_st_SSL_CIPHER **cipher_list, | - | ||||||||||||
1509 | struct stack_st_SSL_CIPHER **cipher_list_by_id, | - | ||||||||||||
1510 | const char *rule_str, | - | ||||||||||||
1511 | CERT *c); | - | ||||||||||||
1512 | int ssl_cache_cipherlist(SSL *s, PACKET *cipher_suites, int sslv2format); | - | ||||||||||||
1513 | int bytes_to_cipher_list(SSL *s, PACKET *cipher_suites, | - | ||||||||||||
1514 | struct stack_st_SSL_CIPHER **skp, | - | ||||||||||||
1515 | struct stack_st_SSL_CIPHER **scsvs, int sslv2format, | - | ||||||||||||
1516 | int fatal); | - | ||||||||||||
1517 | void ssl_update_cache(SSL *s, int mode); | - | ||||||||||||
1518 | int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc, | - | ||||||||||||
1519 | const EVP_MD **md, int *mac_pkey_type, | - | ||||||||||||
1520 | size_t *mac_secret_size, SSL_COMP **comp, | - | ||||||||||||
1521 | int use_etm); | - | ||||||||||||
1522 | int ssl_cipher_get_overhead(const SSL_CIPHER *c, size_t *mac_overhead, | - | ||||||||||||
1523 | size_t *int_overhead, size_t *blocksize, | - | ||||||||||||
1524 | size_t *ext_overhead); | - | ||||||||||||
1525 | int ssl_cert_is_disabled(size_t idx); | - | ||||||||||||
1526 | const SSL_CIPHER *ssl_get_cipher_by_char(SSL *ssl, | - | ||||||||||||
1527 | const unsigned char *ptr, | - | ||||||||||||
1528 | int all); | - | ||||||||||||
1529 | int ssl_cert_set0_chain(SSL *s, SSL_CTX *ctx, struct stack_st_X509 *chain); | - | ||||||||||||
1530 | int ssl_cert_set1_chain(SSL *s, SSL_CTX *ctx, struct stack_st_X509 *chain); | - | ||||||||||||
1531 | int ssl_cert_add0_chain_cert(SSL *s, SSL_CTX *ctx, X509 *x); | - | ||||||||||||
1532 | int ssl_cert_add1_chain_cert(SSL *s, SSL_CTX *ctx, X509 *x); | - | ||||||||||||
1533 | int ssl_cert_select_current(CERT *c, X509 *x); | - | ||||||||||||
1534 | int ssl_cert_set_current(CERT *c, long arg); | - | ||||||||||||
1535 | void ssl_cert_set_cert_cb(CERT *c, int (*cb) (SSL *ssl, void *arg), void *arg); | - | ||||||||||||
1536 | - | |||||||||||||
1537 | int ssl_verify_cert_chain(SSL *s, struct stack_st_X509 *sk); | - | ||||||||||||
1538 | int ssl_build_cert_chain(SSL *s, SSL_CTX *ctx, int flags); | - | ||||||||||||
1539 | int ssl_cert_set_cert_store(CERT *c, X509_STORE *store, int chain, | - | ||||||||||||
1540 | int ref); | - | ||||||||||||
1541 | - | |||||||||||||
1542 | int ssl_security(const SSL *s, int op, int bits, int nid, void *other); | - | ||||||||||||
1543 | int ssl_ctx_security(const SSL_CTX *ctx, int op, int bits, int nid, | - | ||||||||||||
1544 | void *other); | - | ||||||||||||
1545 | - | |||||||||||||
1546 | int ssl_cert_lookup_by_nid(int nid, size_t *pidx); | - | ||||||||||||
1547 | const SSL_CERT_LOOKUP *ssl_cert_lookup_by_pkey(const EVP_PKEY *pk, | - | ||||||||||||
1548 | size_t *pidx); | - | ||||||||||||
1549 | const SSL_CERT_LOOKUP *ssl_cert_lookup_by_idx(size_t idx); | - | ||||||||||||
1550 | - | |||||||||||||
1551 | int ssl_undefined_function(SSL *s); | - | ||||||||||||
1552 | int ssl_undefined_void_function(void); | - | ||||||||||||
1553 | int ssl_undefined_const_function(const SSL *s); | - | ||||||||||||
1554 | int ssl_get_server_cert_serverinfo(SSL *s, | - | ||||||||||||
1555 | const unsigned char **serverinfo, | - | ||||||||||||
1556 | size_t *serverinfo_length); | - | ||||||||||||
1557 | void ssl_set_masks(SSL *s); | - | ||||||||||||
1558 | struct stack_st_SSL_CIPHER *ssl_get_ciphers_by_id(SSL *s); | - | ||||||||||||
1559 | int ssl_x509err2alert(int type); | - | ||||||||||||
1560 | void ssl_sort_cipher_list(void); | - | ||||||||||||
1561 | int ssl_load_ciphers(void); | - | ||||||||||||
1562 | int ssl_fill_hello_random(SSL *s, int server, unsigned char *field, | - | ||||||||||||
1563 | size_t len, DOWNGRADE dgrd); | - | ||||||||||||
1564 | int ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen, | - | ||||||||||||
1565 | int free_pms); | - | ||||||||||||
1566 | EVP_PKEY *ssl_generate_pkey(EVP_PKEY *pm); | - | ||||||||||||
1567 | int ssl_derive(SSL *s, EVP_PKEY *privkey, EVP_PKEY *pubkey, | - | ||||||||||||
1568 | int genmaster); | - | ||||||||||||
1569 | EVP_PKEY *ssl_dh_to_pkey(DH *dh); | - | ||||||||||||
1570 | unsigned int ssl_get_max_send_fragment(const SSL *ssl); | - | ||||||||||||
1571 | unsigned int ssl_get_split_send_fragment(const SSL *ssl); | - | ||||||||||||
1572 | - | |||||||||||||
1573 | const SSL_CIPHER *ssl3_get_cipher_by_id(uint32_t id); | - | ||||||||||||
1574 | const SSL_CIPHER *ssl3_get_cipher_by_std_name(const char *stdname); | - | ||||||||||||
1575 | const SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p); | - | ||||||||||||
1576 | int ssl3_put_cipher_by_char(const SSL_CIPHER *c, WPACKET *pkt, | - | ||||||||||||
1577 | size_t *len); | - | ||||||||||||
1578 | int ssl3_init_finished_mac(SSL *s); | - | ||||||||||||
1579 | int ssl3_setup_key_block(SSL *s); | - | ||||||||||||
1580 | int ssl3_change_cipher_state(SSL *s, int which); | - | ||||||||||||
1581 | void ssl3_cleanup_key_block(SSL *s); | - | ||||||||||||
1582 | int ssl3_do_write(SSL *s, int type); | - | ||||||||||||
1583 | int ssl3_send_alert(SSL *s, int level, int desc); | - | ||||||||||||
1584 | int ssl3_generate_master_secret(SSL *s, unsigned char *out, | - | ||||||||||||
1585 | unsigned char *p, size_t len, | - | ||||||||||||
1586 | size_t *secret_size); | - | ||||||||||||
1587 | int ssl3_get_req_cert_type(SSL *s, WPACKET *pkt); | - | ||||||||||||
1588 | int ssl3_num_ciphers(void); | - | ||||||||||||
1589 | const SSL_CIPHER *ssl3_get_cipher(unsigned int u); | - | ||||||||||||
1590 | int ssl3_renegotiate(SSL *ssl); | - | ||||||||||||
1591 | int ssl3_renegotiate_check(SSL *ssl, int initok); | - | ||||||||||||
1592 | int ssl3_dispatch_alert(SSL *s); | - | ||||||||||||
1593 | size_t ssl3_final_finish_mac(SSL *s, const char *sender, size_t slen, | - | ||||||||||||
1594 | unsigned char *p); | - | ||||||||||||
1595 | int ssl3_finish_mac(SSL *s, const unsigned char *buf, size_t len); | - | ||||||||||||
1596 | void ssl3_free_digest_list(SSL *s); | - | ||||||||||||
1597 | unsigned long ssl3_output_cert_chain(SSL *s, WPACKET *pkt, | - | ||||||||||||
1598 | CERT_PKEY *cpk); | - | ||||||||||||
1599 | const SSL_CIPHER *ssl3_choose_cipher(SSL *ssl, | - | ||||||||||||
1600 | struct stack_st_SSL_CIPHER *clnt, | - | ||||||||||||
1601 | struct stack_st_SSL_CIPHER *srvr); | - | ||||||||||||
1602 | int ssl3_digest_cached_records(SSL *s, int keep); | - | ||||||||||||
1603 | int ssl3_new(SSL *s); | - | ||||||||||||
1604 | void ssl3_free(SSL *s); | - | ||||||||||||
1605 | int ssl3_read(SSL *s, void *buf, size_t len, size_t *readbytes); | - | ||||||||||||
1606 | int ssl3_peek(SSL *s, void *buf, size_t len, size_t *readbytes); | - | ||||||||||||
1607 | int ssl3_write(SSL *s, const void *buf, size_t len, size_t *written); | - | ||||||||||||
1608 | int ssl3_shutdown(SSL *s); | - | ||||||||||||
1609 | int ssl3_clear(SSL *s); | - | ||||||||||||
1610 | long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg); | - | ||||||||||||
1611 | long ssl3_ctx_ctrl(SSL_CTX *s, int cmd, long larg, void *parg); | - | ||||||||||||
1612 | long ssl3_callback_ctrl(SSL *s, int cmd, void (*fp) (void)); | - | ||||||||||||
1613 | long ssl3_ctx_callback_ctrl(SSL_CTX *s, int cmd, void (*fp) (void)); | - | ||||||||||||
1614 | - | |||||||||||||
1615 | int ssl3_do_change_cipher_spec(SSL *ssl); | - | ||||||||||||
1616 | long ssl3_default_timeout(void); | - | ||||||||||||
1617 | - | |||||||||||||
1618 | int ssl3_set_handshake_header(SSL *s, WPACKET *pkt, int htype); | - | ||||||||||||
1619 | int tls_close_construct_packet(SSL *s, WPACKET *pkt, int htype); | - | ||||||||||||
1620 | int tls_setup_handshake(SSL *s); | - | ||||||||||||
1621 | int dtls1_set_handshake_header(SSL *s, WPACKET *pkt, int htype); | - | ||||||||||||
1622 | int dtls1_close_construct_packet(SSL *s, WPACKET *pkt, int htype); | - | ||||||||||||
1623 | int ssl3_handshake_write(SSL *s); | - | ||||||||||||
1624 | - | |||||||||||||
1625 | int ssl_allow_compression(SSL *s); | - | ||||||||||||
1626 | - | |||||||||||||
1627 | int ssl_version_supported(const SSL *s, int version, | - | ||||||||||||
1628 | const SSL_METHOD **meth); | - | ||||||||||||
1629 | - | |||||||||||||
1630 | int ssl_set_client_hello_version(SSL *s); | - | ||||||||||||
1631 | int ssl_check_version_downgrade(SSL *s); | - | ||||||||||||
1632 | int ssl_set_version_bound(int method_version, int version, int *bound); | - | ||||||||||||
1633 | int ssl_choose_server_version(SSL *s, CLIENTHELLO_MSG *hello, | - | ||||||||||||
1634 | DOWNGRADE *dgrd); | - | ||||||||||||
1635 | int ssl_choose_client_version(SSL *s, int version, | - | ||||||||||||
1636 | RAW_EXTENSION *extensions); | - | ||||||||||||
1637 | int ssl_get_min_max_version(const SSL *s, int *min_version, | - | ||||||||||||
1638 | int *max_version, int *real_max); | - | ||||||||||||
1639 | - | |||||||||||||
1640 | long tls1_default_timeout(void); | - | ||||||||||||
1641 | int dtls1_do_write(SSL *s, int type); | - | ||||||||||||
1642 | void dtls1_set_message_header(SSL *s, | - | ||||||||||||
1643 | unsigned char mt, | - | ||||||||||||
1644 | size_t len, | - | ||||||||||||
1645 | size_t frag_off, size_t frag_len); | - | ||||||||||||
1646 | - | |||||||||||||
1647 | int dtls1_write_app_data_bytes(SSL *s, int type, const void *buf_, size_t len, | - | ||||||||||||
1648 | size_t *written); | - | ||||||||||||
1649 | - | |||||||||||||
1650 | int dtls1_read_failed(SSL *s, int code); | - | ||||||||||||
1651 | int dtls1_buffer_message(SSL *s, int ccs); | - | ||||||||||||
1652 | int dtls1_retransmit_message(SSL *s, unsigned short seq, int *found); | - | ||||||||||||
1653 | int dtls1_get_queue_priority(unsigned short seq, int is_ccs); | - | ||||||||||||
1654 | int dtls1_retransmit_buffered_messages(SSL *s); | - | ||||||||||||
1655 | void dtls1_clear_received_buffer(SSL *s); | - | ||||||||||||
1656 | void dtls1_clear_sent_buffer(SSL *s); | - | ||||||||||||
1657 | void dtls1_get_message_header(unsigned char *data, | - | ||||||||||||
1658 | struct hm_header_st *msg_hdr); | - | ||||||||||||
1659 | long dtls1_default_timeout(void); | - | ||||||||||||
1660 | struct timeval *dtls1_get_timeout(SSL *s, struct timeval *timeleft); | - | ||||||||||||
1661 | int dtls1_check_timeout_num(SSL *s); | - | ||||||||||||
1662 | int dtls1_handle_timeout(SSL *s); | - | ||||||||||||
1663 | void dtls1_start_timer(SSL *s); | - | ||||||||||||
1664 | void dtls1_stop_timer(SSL *s); | - | ||||||||||||
1665 | int dtls1_is_timer_expired(SSL *s); | - | ||||||||||||
1666 | void dtls1_double_timeout(SSL *s); | - | ||||||||||||
1667 | int dtls_raw_hello_verify_request(WPACKET *pkt, unsigned char *cookie, | - | ||||||||||||
1668 | size_t cookie_len); | - | ||||||||||||
1669 | size_t dtls1_min_mtu(SSL *s); | - | ||||||||||||
1670 | void dtls1_hm_fragment_free(hm_fragment *frag); | - | ||||||||||||
1671 | int dtls1_query_mtu(SSL *s); | - | ||||||||||||
1672 | - | |||||||||||||
1673 | int tls1_new(SSL *s); | - | ||||||||||||
1674 | void tls1_free(SSL *s); | - | ||||||||||||
1675 | int tls1_clear(SSL *s); | - | ||||||||||||
1676 | - | |||||||||||||
1677 | int dtls1_new(SSL *s); | - | ||||||||||||
1678 | void dtls1_free(SSL *s); | - | ||||||||||||
1679 | int dtls1_clear(SSL *s); | - | ||||||||||||
1680 | long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg); | - | ||||||||||||
1681 | int dtls1_shutdown(SSL *s); | - | ||||||||||||
1682 | - | |||||||||||||
1683 | int dtls1_dispatch_alert(SSL *s); | - | ||||||||||||
1684 | - | |||||||||||||
1685 | int ssl_init_wbio_buffer(SSL *s); | - | ||||||||||||
1686 | int ssl_free_wbio_buffer(SSL *s); | - | ||||||||||||
1687 | - | |||||||||||||
1688 | int tls1_change_cipher_state(SSL *s, int which); | - | ||||||||||||
1689 | int tls1_setup_key_block(SSL *s); | - | ||||||||||||
1690 | size_t tls1_final_finish_mac(SSL *s, const char *str, size_t slen, | - | ||||||||||||
1691 | unsigned char *p); | - | ||||||||||||
1692 | int tls1_generate_master_secret(SSL *s, unsigned char *out, | - | ||||||||||||
1693 | unsigned char *p, size_t len, | - | ||||||||||||
1694 | size_t *secret_size); | - | ||||||||||||
1695 | int tls13_setup_key_block(SSL *s); | - | ||||||||||||
1696 | size_t tls13_final_finish_mac(SSL *s, const char *str, size_t slen, | - | ||||||||||||
1697 | unsigned char *p); | - | ||||||||||||
1698 | int tls13_change_cipher_state(SSL *s, int which); | - | ||||||||||||
1699 | int tls13_update_key(SSL *s, int send); | - | ||||||||||||
1700 | int tls13_hkdf_expand(SSL *s, const EVP_MD *md, | - | ||||||||||||
1701 | const unsigned char *secret, | - | ||||||||||||
1702 | const unsigned char *label, size_t labellen, | - | ||||||||||||
1703 | const unsigned char *data, size_t datalen, | - | ||||||||||||
1704 | unsigned char *out, size_t outlen); | - | ||||||||||||
1705 | int tls13_derive_key(SSL *s, const EVP_MD *md, | - | ||||||||||||
1706 | const unsigned char *secret, unsigned char *key, | - | ||||||||||||
1707 | size_t keylen); | - | ||||||||||||
1708 | int tls13_derive_iv(SSL *s, const EVP_MD *md, | - | ||||||||||||
1709 | const unsigned char *secret, unsigned char *iv, | - | ||||||||||||
1710 | size_t ivlen); | - | ||||||||||||
1711 | int tls13_derive_finishedkey(SSL *s, const EVP_MD *md, | - | ||||||||||||
1712 | const unsigned char *secret, | - | ||||||||||||
1713 | unsigned char *fin, size_t finlen); | - | ||||||||||||
1714 | int tls13_generate_secret(SSL *s, const EVP_MD *md, | - | ||||||||||||
1715 | const unsigned char *prevsecret, | - | ||||||||||||
1716 | const unsigned char *insecret, | - | ||||||||||||
1717 | size_t insecretlen, | - | ||||||||||||
1718 | unsigned char *outsecret); | - | ||||||||||||
1719 | int tls13_generate_handshake_secret(SSL *s, | - | ||||||||||||
1720 | const unsigned char *insecret, | - | ||||||||||||
1721 | size_t insecretlen); | - | ||||||||||||
1722 | int tls13_generate_master_secret(SSL *s, unsigned char *out, | - | ||||||||||||
1723 | unsigned char *prev, size_t prevlen, | - | ||||||||||||
1724 | size_t *secret_size); | - | ||||||||||||
1725 | int tls1_export_keying_material(SSL *s, unsigned char *out, size_t olen, | - | ||||||||||||
1726 | const char *label, size_t llen, | - | ||||||||||||
1727 | const unsigned char *p, size_t plen, | - | ||||||||||||
1728 | int use_context); | - | ||||||||||||
1729 | int tls13_export_keying_material(SSL *s, unsigned char *out, size_t olen, | - | ||||||||||||
1730 | const char *label, size_t llen, | - | ||||||||||||
1731 | const unsigned char *context, | - | ||||||||||||
1732 | size_t contextlen, int use_context); | - | ||||||||||||
1733 | int tls13_export_keying_material_early(SSL *s, unsigned char *out, | - | ||||||||||||
1734 | size_t olen, const char *label, | - | ||||||||||||
1735 | size_t llen, | - | ||||||||||||
1736 | const unsigned char *context, | - | ||||||||||||
1737 | size_t contextlen); | - | ||||||||||||
1738 | int tls1_alert_code(int code); | - | ||||||||||||
1739 | int tls13_alert_code(int code); | - | ||||||||||||
1740 | int ssl3_alert_code(int code); | - | ||||||||||||
1741 | - | |||||||||||||
1742 | - | |||||||||||||
1743 | int ssl_check_srvr_ecc_cert_and_alg(X509 *x, SSL *s); | - | ||||||||||||
1744 | - | |||||||||||||
1745 | - | |||||||||||||
1746 | SSL_COMP *ssl3_comp_find(struct stack_st_SSL_COMP *sk, int n); | - | ||||||||||||
1747 | - | |||||||||||||
1748 | - | |||||||||||||
1749 | - | |||||||||||||
1750 | const TLS_GROUP_INFO *tls1_group_id_lookup(uint16_t curve_id); | - | ||||||||||||
1751 | int tls1_check_group_id(SSL *s, uint16_t group_id, int check_own_curves); | - | ||||||||||||
1752 | uint16_t tls1_shared_group(SSL *s, int nmatch); | - | ||||||||||||
1753 | int tls1_set_groups(uint16_t **pext, size_t *pextlen, | - | ||||||||||||
1754 | int *curves, size_t ncurves); | - | ||||||||||||
1755 | int tls1_set_groups_list(uint16_t **pext, size_t *pextlen, | - | ||||||||||||
1756 | const char *str); | - | ||||||||||||
1757 | void tls1_get_formatlist(SSL *s, const unsigned char **pformats, | - | ||||||||||||
1758 | size_t *num_formats); | - | ||||||||||||
1759 | int tls1_check_ec_tmp_key(SSL *s, unsigned long id); | - | ||||||||||||
1760 | EVP_PKEY *ssl_generate_pkey_group(SSL *s, uint16_t id); | - | ||||||||||||
1761 | EVP_PKEY *ssl_generate_param_group(uint16_t id); | - | ||||||||||||
1762 | - | |||||||||||||
1763 | - | |||||||||||||
1764 | int tls_curve_allowed(SSL *s, uint16_t curve, int op); | - | ||||||||||||
1765 | void tls1_get_supported_groups(SSL *s, const uint16_t **pgroups, | - | ||||||||||||
1766 | size_t *pgroupslen); | - | ||||||||||||
1767 | - | |||||||||||||
1768 | int tls1_set_server_sigalgs(SSL *s); | - | ||||||||||||
1769 | - | |||||||||||||
1770 | SSL_TICKET_STATUS tls_get_ticket_from_client(SSL *s, CLIENTHELLO_MSG *hello, | - | ||||||||||||
1771 | SSL_SESSION **ret); | - | ||||||||||||
1772 | SSL_TICKET_STATUS tls_decrypt_ticket(SSL *s, const unsigned char *etick, | - | ||||||||||||
1773 | size_t eticklen, | - | ||||||||||||
1774 | const unsigned char *sess_id, | - | ||||||||||||
1775 | size_t sesslen, SSL_SESSION **psess); | - | ||||||||||||
1776 | - | |||||||||||||
1777 | int tls_use_ticket(SSL *s); | - | ||||||||||||
1778 | - | |||||||||||||
1779 | void ssl_set_sig_mask(uint32_t *pmask_a, SSL *s, int op); | - | ||||||||||||
1780 | - | |||||||||||||
1781 | int tls1_set_sigalgs_list(CERT *c, const char *str, int client); | - | ||||||||||||
1782 | int tls1_set_raw_sigalgs(CERT *c, const uint16_t *psigs, size_t salglen, | - | ||||||||||||
1783 | int client); | - | ||||||||||||
1784 | int tls1_set_sigalgs(CERT *c, const int *salg, size_t salglen, | - | ||||||||||||
1785 | int client); | - | ||||||||||||
1786 | int tls1_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, struct stack_st_X509 *chain, | - | ||||||||||||
1787 | int idx); | - | ||||||||||||
1788 | void tls1_set_cert_validity(SSL *s); | - | ||||||||||||
1789 | - | |||||||||||||
1790 | - | |||||||||||||
1791 | int ssl_validate_ct(SSL *s); | - | ||||||||||||
1792 | - | |||||||||||||
1793 | - | |||||||||||||
1794 | - | |||||||||||||
1795 | DH *ssl_get_auto_dh(SSL *s); | - | ||||||||||||
1796 | - | |||||||||||||
1797 | - | |||||||||||||
1798 | int ssl_security_cert(SSL *s, SSL_CTX *ctx, X509 *x, int vfy, int is_ee); | - | ||||||||||||
1799 | int ssl_security_cert_chain(SSL *s, struct stack_st_X509 *sk, X509 *ex, | - | ||||||||||||
1800 | int vfy); | - | ||||||||||||
1801 | - | |||||||||||||
1802 | int tls_choose_sigalg(SSL *s, int fatalerrs); | - | ||||||||||||
1803 | - | |||||||||||||
1804 | EVP_MD_CTX *ssl_replace_hash(EVP_MD_CTX **hash, const EVP_MD *md); | - | ||||||||||||
1805 | void ssl_clear_hash_ctx(EVP_MD_CTX **hash); | - | ||||||||||||
1806 | long ssl_get_algorithm2(SSL *s); | - | ||||||||||||
1807 | int tls12_copy_sigalgs(SSL *s, WPACKET *pkt, | - | ||||||||||||
1808 | const uint16_t *psig, size_t psiglen); | - | ||||||||||||
1809 | int tls1_save_u16(PACKET *pkt, uint16_t **pdest, size_t *pdestlen); | - | ||||||||||||
1810 | int tls1_save_sigalgs(SSL *s, PACKET *pkt, int cert); | - | ||||||||||||
1811 | int tls1_process_sigalgs(SSL *s); | - | ||||||||||||
1812 | int tls1_set_peer_legacy_sigalg(SSL *s, const EVP_PKEY *pkey); | - | ||||||||||||
1813 | int tls1_lookup_md(const SIGALG_LOOKUP *lu, const EVP_MD **pmd); | - | ||||||||||||
1814 | size_t tls12_get_psigalgs(SSL *s, int sent, const uint16_t **psigs); | - | ||||||||||||
1815 | int tls12_check_peer_sigalg(SSL *s, uint16_t, EVP_PKEY *pkey); | - | ||||||||||||
1816 | int ssl_set_client_disabled(SSL *s); | - | ||||||||||||
1817 | int ssl_cipher_disabled(SSL *s, const SSL_CIPHER *c, int op, int echde); | - | ||||||||||||
1818 | - | |||||||||||||
1819 | int ssl_handshake_hash(SSL *s, unsigned char *out, size_t outlen, | - | ||||||||||||
1820 | size_t *hashlen); | - | ||||||||||||
1821 | const EVP_MD *ssl_md(int idx); | - | ||||||||||||
1822 | const EVP_MD *ssl_handshake_md(SSL *s); | - | ||||||||||||
1823 | const EVP_MD *ssl_prf_md(SSL *s); | - | ||||||||||||
1824 | - | |||||||||||||
1825 | - | |||||||||||||
1826 | - | |||||||||||||
1827 | - | |||||||||||||
1828 | - | |||||||||||||
1829 | - | |||||||||||||
1830 | - | |||||||||||||
1831 | int ssl_log_rsa_client_key_exchange(SSL *ssl, | - | ||||||||||||
1832 | const uint8_t *encrypted_premaster, | - | ||||||||||||
1833 | size_t encrypted_premaster_len, | - | ||||||||||||
1834 | const uint8_t *premaster, | - | ||||||||||||
1835 | size_t premaster_len); | - | ||||||||||||
1836 | - | |||||||||||||
1837 | - | |||||||||||||
1838 | - | |||||||||||||
1839 | - | |||||||||||||
1840 | - | |||||||||||||
1841 | - | |||||||||||||
1842 | int ssl_log_secret(SSL *ssl, const char *label, | - | ||||||||||||
1843 | const uint8_t *secret, size_t secret_len); | - | ||||||||||||
1844 | char ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx); | - | ||||||||||||
1845 | int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, | - | ||||||||||||
1846 | unsigned char *md_out, | - | ||||||||||||
1847 | size_t *md_out_size, | - | ||||||||||||
1848 | const unsigned char header[13], | - | ||||||||||||
1849 | const unsigned char *data, | - | ||||||||||||
1850 | size_t data_plus_mac_size, | - | ||||||||||||
1851 | size_t data_plus_mac_plus_padding_size, | - | ||||||||||||
1852 | const unsigned char *mac_secret, | - | ||||||||||||
1853 | size_t mac_secret_length, char is_sslv3); | - | ||||||||||||
1854 | - | |||||||||||||
1855 | int srp_generate_server_master_secret(SSL *s); | - | ||||||||||||
1856 | int srp_generate_client_master_secret(SSL *s); | - | ||||||||||||
1857 | int srp_verify_server_param(SSL *s); | - | ||||||||||||
1858 | - | |||||||||||||
1859 | - | |||||||||||||
1860 | - | |||||||||||||
1861 | int send_certificate_request(SSL *s); | - | ||||||||||||
1862 | - | |||||||||||||
1863 | - | |||||||||||||
1864 | - | |||||||||||||
1865 | custom_ext_method *custom_ext_find(const custom_ext_methods *exts, | - | ||||||||||||
1866 | ENDPOINT role, unsigned int ext_type, | - | ||||||||||||
1867 | size_t *idx); | - | ||||||||||||
1868 | - | |||||||||||||
1869 | void custom_ext_init(custom_ext_methods *meths); | - | ||||||||||||
1870 | - | |||||||||||||
1871 | int custom_ext_parse(SSL *s, unsigned int context, unsigned int ext_type, | - | ||||||||||||
1872 | const unsigned char *ext_data, size_t ext_size, | - | ||||||||||||
1873 | X509 *x, size_t chainidx); | - | ||||||||||||
1874 | int custom_ext_add(SSL *s, int context, WPACKET *pkt, X509 *x, | - | ||||||||||||
1875 | size_t chainidx, int maxversion); | - | ||||||||||||
1876 | - | |||||||||||||
1877 | int custom_exts_copy(custom_ext_methods *dst, | - | ||||||||||||
1878 | const custom_ext_methods *src); | - | ||||||||||||
1879 | int custom_exts_copy_flags(custom_ext_methods *dst, | - | ||||||||||||
1880 | const custom_ext_methods *src); | - | ||||||||||||
1881 | void custom_exts_free(custom_ext_methods *exts); | - | ||||||||||||
1882 | - | |||||||||||||
1883 | void ssl_comp_free_compression_methods_int(void); | - | ||||||||||||
1884 | - | |||||||||||||
1885 | - | |||||||||||||
1886 | void ssl_ctx_system_config(SSL_CTX *ctx); | - | ||||||||||||
Switch to Source code | Preprocessed file |