Home | History | Annotate | Download | only in ssl

Lines Matching refs:ssl

15 #include <openssl/ssl.h>
52 SSL *const ssl = hs->ssl;
53 if (ssl->s3->tmp.message_type != SSL3_MT_HELLO_RETRY_REQUEST) {
60 CBS_init(&cbs, ssl->init_msg, ssl->init_num);
66 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
67 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
82 ssl3_send_alert(ssl, SSL3_AL_FATAL, alert);
91 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
92 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
104 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
105 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
112 tls1_get_grouplist(ssl, &groups, &groups_len);
122 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
123 OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_CURVE);
130 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
131 OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_CURVE);
153 SSL *const ssl = hs->ssl;
154 if (!ssl->method->set_write_state(ssl, NULL) ||
164 SSL *const ssl = hs->ssl;
165 if (!ssl_check_message_type(ssl, SSL3_MT_SERVER_HELLO)) {
173 CBS_init(&cbs, ssl->init_msg, ssl->init_num);
176 (ssl->version == TLS1_3_EXPERIMENT_VERSION &&
179 (ssl->version == TLS1_3_EXPERIMENT_VERSION &&
183 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
184 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
189 ssl->version == TLS1_3_EXPERIMENT_VERSION ? TLS1_2_VERSION : ssl->version;
191 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
192 OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_VERSION_NUMBER);
196 assert(ssl->s3->have_version);
197 OPENSSL_memcpy(ssl->s3->server_random, CBS_data(&server_random),
202 OPENSSL_PUT_ERROR(SSL, SSL_R_UNKNOWN_CIPHER_RETURNED);
203 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
208 if (SSL_CIPHER_get_min_version(cipher) > ssl3_protocol_version(ssl) ||
209 SSL_CIPHER_get_max_version(cipher) < ssl3_protocol_version(ssl)) {
210 OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_CIPHER_RETURNED);
211 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
229 ssl3_send_alert(ssl, SSL3_AL_FATAL, alert);
235 if (have_supported_versions && ssl->version != TLS1_3_EXPERIMENT_VERSION) {
236 OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_EXTENSION);
237 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNSUPPORTED_EXTENSION);
243 if (ssl->session == NULL) {
244 OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_EXTENSION);
245 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNSUPPORTED_EXTENSION);
251 ssl3_send_alert(ssl, SSL3_AL_FATAL, alert);
255 if (ssl->session->ssl_version != ssl->version) {
256 OPENSSL_PUT_ERROR(SSL, SSL_R_OLD_SESSION_VERSION_NOT_RETURNED);
257 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
261 if (ssl->session->cipher->algorithm_prf != cipher->algorithm_prf) {
262 OPENSSL_PUT_ERROR(SSL, SSL_R_OLD_SESSION_PRF_HASH_MISMATCH);
263 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
267 if (!ssl_session_is_context_valid(ssl, ssl->session)) {
269 OPENSSL_PUT_ERROR(SSL,
271 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
275 ssl->s3->session_reused = 1;
277 hs->new_session = SSL_SESSION_dup(ssl->session, SSL_SESSION_DUP_AUTH_ONLY);
279 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR);
282 ssl_set_session(ssl, NULL);
285 ssl_session_renew_timeout(ssl, hs->new_session,
286 ssl->session_ctx->session_psk_dhe_timeout);
288 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR);
301 if (ssl->s3->session_reused) {
312 OPENSSL_PUT_ERROR(SSL, SSL_R_MISSING_KEY_SHARE);
313 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_MISSING_EXTENSION);
323 ssl3_send_alert(ssl, SSL3_AL_FATAL, alert);
338 return ssl->version == TLS1_3_EXPERIMENT_VERSION
344 SSL *const ssl = hs->ssl;
345 if (!tls13_set_traffic_key(ssl, evp_aead_open, hs->server_handshake_secret,
353 if ((ssl->version == TLS1_3_EXPERIMENT_VERSION &&
354 !ssl3_add_change_cipher_spec(ssl)) ||
355 !tls13_set_traffic_key(ssl, evp_aead_seal, hs->client_handshake_secret,
366 SSL *const ssl = hs->ssl;
367 if (!ssl_check_message_type(ssl, SSL3_MT_ENCRYPTED_EXTENSIONS)) {
372 CBS_init(&cbs, ssl->init_msg, ssl->init_num);
374 OPENSSL_PUT_ERROR(SSL, SSL_R_PARSE_TLSEXT);
378 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
379 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
384 if (ssl->s3->alpn_selected != NULL) {
386 ssl->s3->alpn_selected, ssl->s3->alpn_selected_len);
388 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR);
391 hs->new_session->early_alpn_len = ssl->s3->alpn_selected_len;
394 if (ssl->early_data_accepted) {
396 hs->early_session->early_alpn_len != ssl->s3->alpn_selected_len ||
397 OPENSSL_memcmp(hs->early_session->early_alpn, ssl->s3->alpn_selected,
398 ssl->s3->alpn_selected_len) != 0) {
399 OPENSSL_PUT_ERROR(SSL, SSL_R_ALPN_MISMATCH_ON_EARLY_DATA);
402 if (ssl->s3->tlsext_channel_id_valid) {
403 OPENSSL_PUT_ERROR(SSL, SSL_R_CHANNEL_ID_ON_EARLY_DATA);
413 if (hs->in_early_data && !ssl->early_data_accepted) {
425 SSL *const ssl = hs->ssl;
427 if (ssl->s3->session_reused) {
433 if (ssl->s3->tmp.message_type != SSL3_MT_CERTIFICATE_REQUEST) {
439 CBS_init(&cbs, ssl->init_msg, ssl->init_num);
446 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
447 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
453 ssl_parse_client_CA_list(ssl, &alert, &cbs);
455 ssl3_send_alert(ssl, SSL3_AL_FATAL, alert);
463 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
465 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
472 ssl->ctx->x509_method->hs_flush_cached_ca_names(hs);
483 SSL *const ssl = hs->ssl;
484 if (!ssl_check_message_type(ssl, SSL3_MT_CERTIFICATE) ||
496 SSL *const ssl = hs->ssl;
497 if (!ssl_check_message_type(ssl, SSL3_MT_CERTIFICATE_VERIFY) ||
508 SSL *const ssl = hs->ssl;
509 if (!ssl_check_message_type(ssl, SSL3_MT_FINISHED) ||
518 ssl->method->received_flight(ssl);
524 SSL *const ssl = hs->ssl;
526 if (ssl->early_data_accepted) {
528 if (!ssl->method->add_alert(ssl, SSL3_AL_WARNING,
535 if ((ssl->version == TLS1_3_EXPERIMENT_VERSION &&
536 !ssl3_add_change_cipher_spec(ssl)) ||
537 !tls13_set_traffic_key(ssl, evp_aead_seal, hs->client_handshake_secret,
548 SSL *const ssl = hs->ssl;
557 if (ssl->cert->cert_cb != NULL) {
558 int rv = ssl->cert->cert_cb(ssl, ssl->cert->cert_cb_arg);
560 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR);
561 OPENSSL_PUT_ERROR(SSL, SSL_R_CERT_CB_ERROR);
580 SSL *const ssl = hs->ssl;
582 if (!ssl_has_certificate(ssl)) {
605 SSL *const ssl = hs->ssl;
608 if (ssl->s3->tlsext_channel_id_valid) {
609 if (!ssl_do_channel_id_callback(ssl)) {
614 if (ssl->tlsext_channel_id_private == NULL) {
619 if (!ssl->method->init_message(ssl, &cbb, &body, SSL3_MT_CHANNEL_ID) ||
621 !ssl_add_message_cbb(ssl, &cbb)) {
633 if (!tls13_set_traffic_key(ssl, evp_aead_open, hs->server_traffic_secret_0,
635 !tls13_set_traffic_key(ssl, evp_aead_seal, hs->client_traffic_secret_0,
706 int tls13_process_new_session_ticket(SSL *ssl) {
708 ssl->s3->established_session, SSL_SESSION_INCLUDE_NONAUTH));
713 ssl_session_rebase_time(ssl, session.get());
717 CBS_init(&cbs, ssl->init_msg, ssl->init_num);
724 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
725 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
747 ssl3_send_alert(ssl, SSL3_AL_FATAL, alert);
751 if (have_early_data_info && ssl->cert->enable_early_data) {
754 ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
755 OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
763 if (ssl->ctx->new_session_cb != NULL &&
764 ssl->ctx->new_session_cb(ssl, session.get())) {