diff options
| author | tb <> | 2021-02-20 14:14:16 +0000 |
|---|---|---|
| committer | tb <> | 2021-02-20 14:14:16 +0000 |
| commit | 71a74e2825163f66183fabda55e360049ddb0c59 (patch) | |
| tree | 4711b2f00b14a9f314d4174890c0e42da068c594 /src/lib/libssl/ssl_clnt.c | |
| parent | 84ff83dc51954d11a1087ab0c40817d06ac77b85 (diff) | |
| download | openbsd-71a74e2825163f66183fabda55e360049ddb0c59.tar.gz openbsd-71a74e2825163f66183fabda55e360049ddb0c59.tar.bz2 openbsd-71a74e2825163f66183fabda55e360049ddb0c59.zip | |
Rename f_err into fatal_err.
discussed with jsing
Diffstat (limited to 'src/lib/libssl/ssl_clnt.c')
| -rw-r--r-- | src/lib/libssl/ssl_clnt.c | 120 |
1 files changed, 60 insertions, 60 deletions
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c index 29d488c12c..8ef3648f6c 100644 --- a/src/lib/libssl/ssl_clnt.c +++ b/src/lib/libssl/ssl_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_clnt.c,v 1.81 2021/02/20 14:03:50 tb Exp $ */ | 1 | /* $OpenBSD: ssl_clnt.c,v 1.82 2021/02/20 14:14:16 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -826,14 +826,14 @@ ssl3_get_dtls_hello_verify(SSL *s) | |||
| 826 | SSLerror(s, SSL_R_WRONG_SSL_VERSION); | 826 | SSLerror(s, SSL_R_WRONG_SSL_VERSION); |
| 827 | s->version = (s->version & 0xff00) | (ssl_version & 0xff); | 827 | s->version = (s->version & 0xff00) | (ssl_version & 0xff); |
| 828 | al = SSL_AD_PROTOCOL_VERSION; | 828 | al = SSL_AD_PROTOCOL_VERSION; |
| 829 | goto f_err; | 829 | goto fatal_err; |
| 830 | } | 830 | } |
| 831 | 831 | ||
| 832 | if (!CBS_write_bytes(&cookie, D1I(s)->cookie, | 832 | if (!CBS_write_bytes(&cookie, D1I(s)->cookie, |
| 833 | sizeof(D1I(s)->cookie), &cookie_len)) { | 833 | sizeof(D1I(s)->cookie), &cookie_len)) { |
| 834 | D1I(s)->cookie_len = 0; | 834 | D1I(s)->cookie_len = 0; |
| 835 | al = SSL_AD_ILLEGAL_PARAMETER; | 835 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 836 | goto f_err; | 836 | goto fatal_err; |
| 837 | } | 837 | } |
| 838 | D1I(s)->cookie_len = cookie_len; | 838 | D1I(s)->cookie_len = cookie_len; |
| 839 | D1I(s)->send_cookie = 1; | 839 | D1I(s)->send_cookie = 1; |
| @@ -842,7 +842,7 @@ ssl3_get_dtls_hello_verify(SSL *s) | |||
| 842 | 842 | ||
| 843 | decode_err: | 843 | decode_err: |
| 844 | al = SSL_AD_DECODE_ERROR; | 844 | al = SSL_AD_DECODE_ERROR; |
| 845 | f_err: | 845 | fatal_err: |
| 846 | ssl3_send_alert(s, SSL3_AL_FATAL, al); | 846 | ssl3_send_alert(s, SSL3_AL_FATAL, al); |
| 847 | return -1; | 847 | return -1; |
| 848 | } | 848 | } |
| @@ -882,7 +882,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 882 | /* Already sent a cookie. */ | 882 | /* Already sent a cookie. */ |
| 883 | al = SSL_AD_UNEXPECTED_MESSAGE; | 883 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 884 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); | 884 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); |
| 885 | goto f_err; | 885 | goto fatal_err; |
| 886 | } | 886 | } |
| 887 | } | 887 | } |
| 888 | } | 888 | } |
| @@ -890,7 +890,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 890 | if (S3I(s)->tmp.message_type != SSL3_MT_SERVER_HELLO) { | 890 | if (S3I(s)->tmp.message_type != SSL3_MT_SERVER_HELLO) { |
| 891 | al = SSL_AD_UNEXPECTED_MESSAGE; | 891 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 892 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); | 892 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); |
| 893 | goto f_err; | 893 | goto fatal_err; |
| 894 | } | 894 | } |
| 895 | 895 | ||
| 896 | if (!CBS_get_u16(&cbs, &server_version)) | 896 | if (!CBS_get_u16(&cbs, &server_version)) |
| @@ -905,7 +905,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 905 | SSLerror(s, SSL_R_WRONG_SSL_VERSION); | 905 | SSLerror(s, SSL_R_WRONG_SSL_VERSION); |
| 906 | s->version = (s->version & 0xff00) | (server_version & 0xff); | 906 | s->version = (s->version & 0xff00) | (server_version & 0xff); |
| 907 | al = SSL_AD_PROTOCOL_VERSION; | 907 | al = SSL_AD_PROTOCOL_VERSION; |
| 908 | goto f_err; | 908 | goto fatal_err; |
| 909 | } | 909 | } |
| 910 | s->version = server_version; | 910 | s->version = server_version; |
| 911 | 911 | ||
| @@ -938,13 +938,13 @@ ssl3_get_server_hello(SSL *s) | |||
| 938 | sizeof(tls13_downgrade_12))) { | 938 | sizeof(tls13_downgrade_12))) { |
| 939 | al = SSL_AD_ILLEGAL_PARAMETER; | 939 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 940 | SSLerror(s, SSL_R_INAPPROPRIATE_FALLBACK); | 940 | SSLerror(s, SSL_R_INAPPROPRIATE_FALLBACK); |
| 941 | goto f_err; | 941 | goto fatal_err; |
| 942 | } | 942 | } |
| 943 | if (CBS_mem_equal(&server_random, tls13_downgrade_11, | 943 | if (CBS_mem_equal(&server_random, tls13_downgrade_11, |
| 944 | sizeof(tls13_downgrade_11))) { | 944 | sizeof(tls13_downgrade_11))) { |
| 945 | al = SSL_AD_ILLEGAL_PARAMETER; | 945 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 946 | SSLerror(s, SSL_R_INAPPROPRIATE_FALLBACK); | 946 | SSLerror(s, SSL_R_INAPPROPRIATE_FALLBACK); |
| 947 | goto f_err; | 947 | goto fatal_err; |
| 948 | } | 948 | } |
| 949 | } | 949 | } |
| 950 | 950 | ||
| @@ -955,7 +955,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 955 | if (CBS_len(&session_id) > SSL3_SESSION_ID_SIZE) { | 955 | if (CBS_len(&session_id) > SSL3_SESSION_ID_SIZE) { |
| 956 | al = SSL_AD_ILLEGAL_PARAMETER; | 956 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 957 | SSLerror(s, SSL_R_SSL3_SESSION_ID_TOO_LONG); | 957 | SSLerror(s, SSL_R_SSL3_SESSION_ID_TOO_LONG); |
| 958 | goto f_err; | 958 | goto fatal_err; |
| 959 | } | 959 | } |
| 960 | 960 | ||
| 961 | /* Cipher suite. */ | 961 | /* Cipher suite. */ |
| @@ -987,7 +987,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 987 | /* actually a client application bug */ | 987 | /* actually a client application bug */ |
| 988 | al = SSL_AD_ILLEGAL_PARAMETER; | 988 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 989 | SSLerror(s, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT); | 989 | SSLerror(s, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT); |
| 990 | goto f_err; | 990 | goto fatal_err; |
| 991 | } | 991 | } |
| 992 | s->s3->flags |= SSL3_FLAGS_CCS_OK; | 992 | s->s3->flags |= SSL3_FLAGS_CCS_OK; |
| 993 | s->internal->hit = 1; | 993 | s->internal->hit = 1; |
| @@ -1000,7 +1000,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 1000 | if (s->session->session_id_length > 0) { | 1000 | if (s->session->session_id_length > 0) { |
| 1001 | if (!ssl_get_new_session(s, 0)) { | 1001 | if (!ssl_get_new_session(s, 0)) { |
| 1002 | al = SSL_AD_INTERNAL_ERROR; | 1002 | al = SSL_AD_INTERNAL_ERROR; |
| 1003 | goto f_err; | 1003 | goto fatal_err; |
| 1004 | } | 1004 | } |
| 1005 | } | 1005 | } |
| 1006 | 1006 | ||
| @@ -1019,7 +1019,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 1019 | if ((cipher = ssl3_get_cipher_by_value(cipher_suite)) == NULL) { | 1019 | if ((cipher = ssl3_get_cipher_by_value(cipher_suite)) == NULL) { |
| 1020 | al = SSL_AD_ILLEGAL_PARAMETER; | 1020 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 1021 | SSLerror(s, SSL_R_UNKNOWN_CIPHER_RETURNED); | 1021 | SSLerror(s, SSL_R_UNKNOWN_CIPHER_RETURNED); |
| 1022 | goto f_err; | 1022 | goto fatal_err; |
| 1023 | } | 1023 | } |
| 1024 | 1024 | ||
| 1025 | /* TLS v1.2 only ciphersuites require v1.2 or later. */ | 1025 | /* TLS v1.2 only ciphersuites require v1.2 or later. */ |
| @@ -1027,14 +1027,14 @@ ssl3_get_server_hello(SSL *s) | |||
| 1027 | (TLS1_get_version(s) < TLS1_2_VERSION)) { | 1027 | (TLS1_get_version(s) < TLS1_2_VERSION)) { |
| 1028 | al = SSL_AD_ILLEGAL_PARAMETER; | 1028 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 1029 | SSLerror(s, SSL_R_WRONG_CIPHER_RETURNED); | 1029 | SSLerror(s, SSL_R_WRONG_CIPHER_RETURNED); |
| 1030 | goto f_err; | 1030 | goto fatal_err; |
| 1031 | } | 1031 | } |
| 1032 | 1032 | ||
| 1033 | if (!ssl_cipher_in_list(SSL_get_ciphers(s), cipher)) { | 1033 | if (!ssl_cipher_in_list(SSL_get_ciphers(s), cipher)) { |
| 1034 | /* we did not say we would use this cipher */ | 1034 | /* we did not say we would use this cipher */ |
| 1035 | al = SSL_AD_ILLEGAL_PARAMETER; | 1035 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 1036 | SSLerror(s, SSL_R_WRONG_CIPHER_RETURNED); | 1036 | SSLerror(s, SSL_R_WRONG_CIPHER_RETURNED); |
| 1037 | goto f_err; | 1037 | goto fatal_err; |
| 1038 | } | 1038 | } |
| 1039 | 1039 | ||
| 1040 | /* | 1040 | /* |
| @@ -1047,7 +1047,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 1047 | if (s->internal->hit && (s->session->cipher_id != cipher->id)) { | 1047 | if (s->internal->hit && (s->session->cipher_id != cipher->id)) { |
| 1048 | al = SSL_AD_ILLEGAL_PARAMETER; | 1048 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 1049 | SSLerror(s, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED); | 1049 | SSLerror(s, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED); |
| 1050 | goto f_err; | 1050 | goto fatal_err; |
| 1051 | } | 1051 | } |
| 1052 | S3I(s)->hs.new_cipher = cipher; | 1052 | S3I(s)->hs.new_cipher = cipher; |
| 1053 | 1053 | ||
| @@ -1068,12 +1068,12 @@ ssl3_get_server_hello(SSL *s) | |||
| 1068 | if (compression_method != 0) { | 1068 | if (compression_method != 0) { |
| 1069 | al = SSL_AD_ILLEGAL_PARAMETER; | 1069 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 1070 | SSLerror(s, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM); | 1070 | SSLerror(s, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM); |
| 1071 | goto f_err; | 1071 | goto fatal_err; |
| 1072 | } | 1072 | } |
| 1073 | 1073 | ||
| 1074 | if (!tlsext_client_parse(s, SSL_TLSEXT_MSG_SH, &cbs, &al)) { | 1074 | if (!tlsext_client_parse(s, SSL_TLSEXT_MSG_SH, &cbs, &al)) { |
| 1075 | SSLerror(s, SSL_R_PARSE_TLSEXT); | 1075 | SSLerror(s, SSL_R_PARSE_TLSEXT); |
| 1076 | goto f_err; | 1076 | goto fatal_err; |
| 1077 | } | 1077 | } |
| 1078 | 1078 | ||
| 1079 | /* | 1079 | /* |
| @@ -1088,7 +1088,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 1088 | !(s->internal->options & SSL_OP_LEGACY_SERVER_CONNECT)) { | 1088 | !(s->internal->options & SSL_OP_LEGACY_SERVER_CONNECT)) { |
| 1089 | al = SSL_AD_HANDSHAKE_FAILURE; | 1089 | al = SSL_AD_HANDSHAKE_FAILURE; |
| 1090 | SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); | 1090 | SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); |
| 1091 | goto f_err; | 1091 | goto fatal_err; |
| 1092 | } | 1092 | } |
| 1093 | 1093 | ||
| 1094 | if (ssl_check_serverhello_tlsext(s) <= 0) { | 1094 | if (ssl_check_serverhello_tlsext(s) <= 0) { |
| @@ -1102,7 +1102,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 1102 | /* wrong packet length */ | 1102 | /* wrong packet length */ |
| 1103 | al = SSL_AD_DECODE_ERROR; | 1103 | al = SSL_AD_DECODE_ERROR; |
| 1104 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); | 1104 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); |
| 1105 | f_err: | 1105 | fatal_err: |
| 1106 | ssl3_send_alert(s, SSL3_AL_FATAL, al); | 1106 | ssl3_send_alert(s, SSL3_AL_FATAL, al); |
| 1107 | err: | 1107 | err: |
| 1108 | return (-1); | 1108 | return (-1); |
| @@ -1133,7 +1133,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1133 | if (S3I(s)->tmp.message_type != SSL3_MT_CERTIFICATE) { | 1133 | if (S3I(s)->tmp.message_type != SSL3_MT_CERTIFICATE) { |
| 1134 | al = SSL_AD_UNEXPECTED_MESSAGE; | 1134 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 1135 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); | 1135 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); |
| 1136 | goto f_err; | 1136 | goto fatal_err; |
| 1137 | } | 1137 | } |
| 1138 | 1138 | ||
| 1139 | 1139 | ||
| @@ -1153,7 +1153,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1153 | CBS_len(&cbs) != 0) { | 1153 | CBS_len(&cbs) != 0) { |
| 1154 | al = SSL_AD_DECODE_ERROR; | 1154 | al = SSL_AD_DECODE_ERROR; |
| 1155 | SSLerror(s, SSL_R_LENGTH_MISMATCH); | 1155 | SSLerror(s, SSL_R_LENGTH_MISMATCH); |
| 1156 | goto f_err; | 1156 | goto fatal_err; |
| 1157 | } | 1157 | } |
| 1158 | 1158 | ||
| 1159 | while (CBS_len(&cert_list) > 0) { | 1159 | while (CBS_len(&cert_list) > 0) { |
| @@ -1164,7 +1164,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1164 | if (!CBS_get_u24_length_prefixed(&cert_list, &cert)) { | 1164 | if (!CBS_get_u24_length_prefixed(&cert_list, &cert)) { |
| 1165 | al = SSL_AD_DECODE_ERROR; | 1165 | al = SSL_AD_DECODE_ERROR; |
| 1166 | SSLerror(s, SSL_R_CERT_LENGTH_MISMATCH); | 1166 | SSLerror(s, SSL_R_CERT_LENGTH_MISMATCH); |
| 1167 | goto f_err; | 1167 | goto fatal_err; |
| 1168 | } | 1168 | } |
| 1169 | 1169 | ||
| 1170 | q = CBS_data(&cert); | 1170 | q = CBS_data(&cert); |
| @@ -1172,12 +1172,12 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1172 | if (x == NULL) { | 1172 | if (x == NULL) { |
| 1173 | al = SSL_AD_BAD_CERTIFICATE; | 1173 | al = SSL_AD_BAD_CERTIFICATE; |
| 1174 | SSLerror(s, ERR_R_ASN1_LIB); | 1174 | SSLerror(s, ERR_R_ASN1_LIB); |
| 1175 | goto f_err; | 1175 | goto fatal_err; |
| 1176 | } | 1176 | } |
| 1177 | if (q != CBS_data(&cert) + CBS_len(&cert)) { | 1177 | if (q != CBS_data(&cert) + CBS_len(&cert)) { |
| 1178 | al = SSL_AD_DECODE_ERROR; | 1178 | al = SSL_AD_DECODE_ERROR; |
| 1179 | SSLerror(s, SSL_R_CERT_LENGTH_MISMATCH); | 1179 | SSLerror(s, SSL_R_CERT_LENGTH_MISMATCH); |
| 1180 | goto f_err; | 1180 | goto fatal_err; |
| 1181 | } | 1181 | } |
| 1182 | if (!sk_X509_push(sk, x)) { | 1182 | if (!sk_X509_push(sk, x)) { |
| 1183 | SSLerror(s, ERR_R_MALLOC_FAILURE); | 1183 | SSLerror(s, ERR_R_MALLOC_FAILURE); |
| @@ -1190,7 +1190,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1190 | if ((s->verify_mode != SSL_VERIFY_NONE) && (i <= 0)) { | 1190 | if ((s->verify_mode != SSL_VERIFY_NONE) && (i <= 0)) { |
| 1191 | al = ssl_verify_alarm_type(s->verify_result); | 1191 | al = ssl_verify_alarm_type(s->verify_result); |
| 1192 | SSLerror(s, SSL_R_CERTIFICATE_VERIFY_FAILED); | 1192 | SSLerror(s, SSL_R_CERTIFICATE_VERIFY_FAILED); |
| 1193 | goto f_err; | 1193 | goto fatal_err; |
| 1194 | 1194 | ||
| 1195 | } | 1195 | } |
| 1196 | ERR_clear_error(); /* but we keep s->verify_result */ | 1196 | ERR_clear_error(); /* but we keep s->verify_result */ |
| @@ -1216,7 +1216,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1216 | x = NULL; | 1216 | x = NULL; |
| 1217 | al = SSL3_AL_FATAL; | 1217 | al = SSL3_AL_FATAL; |
| 1218 | SSLerror(s, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS); | 1218 | SSLerror(s, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS); |
| 1219 | goto f_err; | 1219 | goto fatal_err; |
| 1220 | } | 1220 | } |
| 1221 | 1221 | ||
| 1222 | i = ssl_cert_type(x, pkey); | 1222 | i = ssl_cert_type(x, pkey); |
| @@ -1224,7 +1224,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1224 | x = NULL; | 1224 | x = NULL; |
| 1225 | al = SSL3_AL_FATAL; | 1225 | al = SSL3_AL_FATAL; |
| 1226 | SSLerror(s, SSL_R_UNKNOWN_CERTIFICATE_TYPE); | 1226 | SSLerror(s, SSL_R_UNKNOWN_CERTIFICATE_TYPE); |
| 1227 | goto f_err; | 1227 | goto fatal_err; |
| 1228 | } | 1228 | } |
| 1229 | 1229 | ||
| 1230 | sc->peer_cert_type = i; | 1230 | sc->peer_cert_type = i; |
| @@ -1250,7 +1250,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1250 | /* wrong packet length */ | 1250 | /* wrong packet length */ |
| 1251 | al = SSL_AD_DECODE_ERROR; | 1251 | al = SSL_AD_DECODE_ERROR; |
| 1252 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); | 1252 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); |
| 1253 | f_err: | 1253 | fatal_err: |
| 1254 | ssl3_send_alert(s, SSL3_AL_FATAL, al); | 1254 | ssl3_send_alert(s, SSL3_AL_FATAL, al); |
| 1255 | } | 1255 | } |
| 1256 | err: | 1256 | err: |
| @@ -1408,7 +1408,7 @@ ssl3_get_server_kex_ecdhe(SSL *s, EVP_PKEY **pkey, CBS *cbs) | |||
| 1408 | !CBS_get_u16(cbs, &curve_id)) { | 1408 | !CBS_get_u16(cbs, &curve_id)) { |
| 1409 | al = SSL_AD_DECODE_ERROR; | 1409 | al = SSL_AD_DECODE_ERROR; |
| 1410 | SSLerror(s, SSL_R_LENGTH_TOO_SHORT); | 1410 | SSLerror(s, SSL_R_LENGTH_TOO_SHORT); |
| 1411 | goto f_err; | 1411 | goto fatal_err; |
| 1412 | } | 1412 | } |
| 1413 | 1413 | ||
| 1414 | /* | 1414 | /* |
| @@ -1418,13 +1418,13 @@ ssl3_get_server_kex_ecdhe(SSL *s, EVP_PKEY **pkey, CBS *cbs) | |||
| 1418 | if (tls1_check_curve(s, curve_id) != 1) { | 1418 | if (tls1_check_curve(s, curve_id) != 1) { |
| 1419 | al = SSL_AD_DECODE_ERROR; | 1419 | al = SSL_AD_DECODE_ERROR; |
| 1420 | SSLerror(s, SSL_R_WRONG_CURVE); | 1420 | SSLerror(s, SSL_R_WRONG_CURVE); |
| 1421 | goto f_err; | 1421 | goto fatal_err; |
| 1422 | } | 1422 | } |
| 1423 | 1423 | ||
| 1424 | if ((nid = tls1_ec_curve_id2nid(curve_id)) == 0) { | 1424 | if ((nid = tls1_ec_curve_id2nid(curve_id)) == 0) { |
| 1425 | al = SSL_AD_INTERNAL_ERROR; | 1425 | al = SSL_AD_INTERNAL_ERROR; |
| 1426 | SSLerror(s, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS); | 1426 | SSLerror(s, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS); |
| 1427 | goto f_err; | 1427 | goto fatal_err; |
| 1428 | } | 1428 | } |
| 1429 | 1429 | ||
| 1430 | if (!CBS_get_u8_length_prefixed(cbs, &public)) | 1430 | if (!CBS_get_u8_length_prefixed(cbs, &public)) |
| @@ -1457,7 +1457,7 @@ ssl3_get_server_kex_ecdhe(SSL *s, EVP_PKEY **pkey, CBS *cbs) | |||
| 1457 | al = SSL_AD_DECODE_ERROR; | 1457 | al = SSL_AD_DECODE_ERROR; |
| 1458 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); | 1458 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); |
| 1459 | 1459 | ||
| 1460 | f_err: | 1460 | fatal_err: |
| 1461 | ssl3_send_alert(s, SSL3_AL_FATAL, al); | 1461 | ssl3_send_alert(s, SSL3_AL_FATAL, al); |
| 1462 | 1462 | ||
| 1463 | err: | 1463 | err: |
| @@ -1503,7 +1503,7 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1503 | if (alg_k & (SSL_kDHE|SSL_kECDHE)) { | 1503 | if (alg_k & (SSL_kDHE|SSL_kECDHE)) { |
| 1504 | SSLerror(s, SSL_R_UNEXPECTED_MESSAGE); | 1504 | SSLerror(s, SSL_R_UNEXPECTED_MESSAGE); |
| 1505 | al = SSL_AD_UNEXPECTED_MESSAGE; | 1505 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 1506 | goto f_err; | 1506 | goto fatal_err; |
| 1507 | } | 1507 | } |
| 1508 | 1508 | ||
| 1509 | S3I(s)->tmp.reuse_message = 1; | 1509 | S3I(s)->tmp.reuse_message = 1; |
| @@ -1538,7 +1538,7 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1538 | } else if (alg_k != 0) { | 1538 | } else if (alg_k != 0) { |
| 1539 | al = SSL_AD_UNEXPECTED_MESSAGE; | 1539 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 1540 | SSLerror(s, SSL_R_UNEXPECTED_MESSAGE); | 1540 | SSLerror(s, SSL_R_UNEXPECTED_MESSAGE); |
| 1541 | goto f_err; | 1541 | goto fatal_err; |
| 1542 | } | 1542 | } |
| 1543 | 1543 | ||
| 1544 | param_len -= CBS_len(&cbs); | 1544 | param_len -= CBS_len(&cbs); |
| @@ -1557,17 +1557,17 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1557 | tls12_sigalgs_len)) == NULL) { | 1557 | tls12_sigalgs_len)) == NULL) { |
| 1558 | SSLerror(s, SSL_R_UNKNOWN_DIGEST); | 1558 | SSLerror(s, SSL_R_UNKNOWN_DIGEST); |
| 1559 | al = SSL_AD_DECODE_ERROR; | 1559 | al = SSL_AD_DECODE_ERROR; |
| 1560 | goto f_err; | 1560 | goto fatal_err; |
| 1561 | } | 1561 | } |
| 1562 | if ((md = sigalg->md()) == NULL) { | 1562 | if ((md = sigalg->md()) == NULL) { |
| 1563 | SSLerror(s, SSL_R_UNKNOWN_DIGEST); | 1563 | SSLerror(s, SSL_R_UNKNOWN_DIGEST); |
| 1564 | al = SSL_AD_DECODE_ERROR; | 1564 | al = SSL_AD_DECODE_ERROR; |
| 1565 | goto f_err; | 1565 | goto fatal_err; |
| 1566 | } | 1566 | } |
| 1567 | if (!ssl_sigalg_pkey_ok(sigalg, pkey, 0)) { | 1567 | if (!ssl_sigalg_pkey_ok(sigalg, pkey, 0)) { |
| 1568 | SSLerror(s, SSL_R_WRONG_SIGNATURE_TYPE); | 1568 | SSLerror(s, SSL_R_WRONG_SIGNATURE_TYPE); |
| 1569 | al = SSL_AD_DECODE_ERROR; | 1569 | al = SSL_AD_DECODE_ERROR; |
| 1570 | goto f_err; | 1570 | goto fatal_err; |
| 1571 | } | 1571 | } |
| 1572 | } else if (pkey->type == EVP_PKEY_RSA) { | 1572 | } else if (pkey->type == EVP_PKEY_RSA) { |
| 1573 | sigalg = ssl_sigalg_lookup(SIGALG_RSA_PKCS1_MD5_SHA1); | 1573 | sigalg = ssl_sigalg_lookup(SIGALG_RSA_PKCS1_MD5_SHA1); |
| @@ -1576,7 +1576,7 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1576 | } else { | 1576 | } else { |
| 1577 | SSLerror(s, SSL_R_UNKNOWN_PKEY_TYPE); | 1577 | SSLerror(s, SSL_R_UNKNOWN_PKEY_TYPE); |
| 1578 | al = SSL_AD_DECODE_ERROR; | 1578 | al = SSL_AD_DECODE_ERROR; |
| 1579 | goto f_err; | 1579 | goto fatal_err; |
| 1580 | } | 1580 | } |
| 1581 | md = sigalg->md(); | 1581 | md = sigalg->md(); |
| 1582 | 1582 | ||
| @@ -1585,7 +1585,7 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1585 | if (CBS_len(&signature) > EVP_PKEY_size(pkey)) { | 1585 | if (CBS_len(&signature) > EVP_PKEY_size(pkey)) { |
| 1586 | al = SSL_AD_DECODE_ERROR; | 1586 | al = SSL_AD_DECODE_ERROR; |
| 1587 | SSLerror(s, SSL_R_WRONG_SIGNATURE_LENGTH); | 1587 | SSLerror(s, SSL_R_WRONG_SIGNATURE_LENGTH); |
| 1588 | goto f_err; | 1588 | goto fatal_err; |
| 1589 | } | 1589 | } |
| 1590 | 1590 | ||
| 1591 | if (!EVP_DigestVerifyInit(&md_ctx, &pctx, md, NULL, pkey)) | 1591 | if (!EVP_DigestVerifyInit(&md_ctx, &pctx, md, NULL, pkey)) |
| @@ -1607,7 +1607,7 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1607 | CBS_len(&signature)) <= 0) { | 1607 | CBS_len(&signature)) <= 0) { |
| 1608 | al = SSL_AD_DECRYPT_ERROR; | 1608 | al = SSL_AD_DECRYPT_ERROR; |
| 1609 | SSLerror(s, SSL_R_BAD_SIGNATURE); | 1609 | SSLerror(s, SSL_R_BAD_SIGNATURE); |
| 1610 | goto f_err; | 1610 | goto fatal_err; |
| 1611 | } | 1611 | } |
| 1612 | } else { | 1612 | } else { |
| 1613 | /* aNULL does not need public keys. */ | 1613 | /* aNULL does not need public keys. */ |
| @@ -1620,7 +1620,7 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1620 | if (CBS_len(&cbs) != 0) { | 1620 | if (CBS_len(&cbs) != 0) { |
| 1621 | al = SSL_AD_DECODE_ERROR; | 1621 | al = SSL_AD_DECODE_ERROR; |
| 1622 | SSLerror(s, SSL_R_EXTRA_DATA_IN_MESSAGE); | 1622 | SSLerror(s, SSL_R_EXTRA_DATA_IN_MESSAGE); |
| 1623 | goto f_err; | 1623 | goto fatal_err; |
| 1624 | } | 1624 | } |
| 1625 | 1625 | ||
| 1626 | EVP_PKEY_free(pkey); | 1626 | EVP_PKEY_free(pkey); |
| @@ -1632,7 +1632,7 @@ ssl3_get_server_key_exchange(SSL *s) | |||
| 1632 | al = SSL_AD_DECODE_ERROR; | 1632 | al = SSL_AD_DECODE_ERROR; |
| 1633 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); | 1633 | SSLerror(s, SSL_R_BAD_PACKET_LENGTH); |
| 1634 | 1634 | ||
| 1635 | f_err: | 1635 | fatal_err: |
| 1636 | ssl3_send_alert(s, SSL3_AL_FATAL, al); | 1636 | ssl3_send_alert(s, SSL3_AL_FATAL, al); |
| 1637 | 1637 | ||
| 1638 | err: | 1638 | err: |
| @@ -1818,13 +1818,13 @@ ssl3_get_new_session_ticket(SSL *s) | |||
| 1818 | if (S3I(s)->tmp.message_type != SSL3_MT_NEWSESSION_TICKET) { | 1818 | if (S3I(s)->tmp.message_type != SSL3_MT_NEWSESSION_TICKET) { |
| 1819 | al = SSL_AD_UNEXPECTED_MESSAGE; | 1819 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 1820 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); | 1820 | SSLerror(s, SSL_R_BAD_MESSAGE_TYPE); |
| 1821 | goto f_err; | 1821 | goto fatal_err; |
| 1822 | } | 1822 | } |
| 1823 | 1823 | ||
| 1824 | if (n < 0) { | 1824 | if (n < 0) { |
| 1825 | al = SSL_AD_DECODE_ERROR; | 1825 | al = SSL_AD_DECODE_ERROR; |
| 1826 | SSLerror(s, SSL_R_LENGTH_MISMATCH); | 1826 | SSLerror(s, SSL_R_LENGTH_MISMATCH); |
| 1827 | goto f_err; | 1827 | goto fatal_err; |
| 1828 | } | 1828 | } |
| 1829 | 1829 | ||
| 1830 | CBS_init(&cbs, s->internal->init_msg, n); | 1830 | CBS_init(&cbs, s->internal->init_msg, n); |
| @@ -1836,7 +1836,7 @@ ssl3_get_new_session_ticket(SSL *s) | |||
| 1836 | CBS_len(&cbs) != 0) { | 1836 | CBS_len(&cbs) != 0) { |
| 1837 | al = SSL_AD_DECODE_ERROR; | 1837 | al = SSL_AD_DECODE_ERROR; |
| 1838 | SSLerror(s, SSL_R_LENGTH_MISMATCH); | 1838 | SSLerror(s, SSL_R_LENGTH_MISMATCH); |
| 1839 | goto f_err; | 1839 | goto fatal_err; |
| 1840 | } | 1840 | } |
| 1841 | s->session->tlsext_tick_lifetime_hint = (long)lifetime_hint; | 1841 | s->session->tlsext_tick_lifetime_hint = (long)lifetime_hint; |
| 1842 | 1842 | ||
| @@ -1867,7 +1867,7 @@ ssl3_get_new_session_ticket(SSL *s) | |||
| 1867 | EVP_sha256(), NULL); | 1867 | EVP_sha256(), NULL); |
| 1868 | ret = 1; | 1868 | ret = 1; |
| 1869 | return (ret); | 1869 | return (ret); |
| 1870 | f_err: | 1870 | fatal_err: |
| 1871 | ssl3_send_alert(s, SSL3_AL_FATAL, al); | 1871 | ssl3_send_alert(s, SSL3_AL_FATAL, al); |
| 1872 | err: | 1872 | err: |
| 1873 | return (-1); | 1873 | return (-1); |
| @@ -1891,7 +1891,7 @@ ssl3_get_cert_status(SSL *s) | |||
| 1891 | /* need at least status type + length */ | 1891 | /* need at least status type + length */ |
| 1892 | al = SSL_AD_DECODE_ERROR; | 1892 | al = SSL_AD_DECODE_ERROR; |
| 1893 | SSLerror(s, SSL_R_LENGTH_MISMATCH); | 1893 | SSLerror(s, SSL_R_LENGTH_MISMATCH); |
| 1894 | goto f_err; | 1894 | goto fatal_err; |
| 1895 | } | 1895 | } |
| 1896 | 1896 | ||
| 1897 | CBS_init(&cert_status, s->internal->init_msg, n); | 1897 | CBS_init(&cert_status, s->internal->init_msg, n); |
| @@ -1900,27 +1900,27 @@ ssl3_get_cert_status(SSL *s) | |||
| 1900 | /* need at least status type + length */ | 1900 | /* need at least status type + length */ |
| 1901 | al = SSL_AD_DECODE_ERROR; | 1901 | al = SSL_AD_DECODE_ERROR; |
| 1902 | SSLerror(s, SSL_R_LENGTH_MISMATCH); | 1902 | SSLerror(s, SSL_R_LENGTH_MISMATCH); |
| 1903 | goto f_err; | 1903 | goto fatal_err; |
| 1904 | } | 1904 | } |
| 1905 | 1905 | ||
| 1906 | if (status_type != TLSEXT_STATUSTYPE_ocsp) { | 1906 | if (status_type != TLSEXT_STATUSTYPE_ocsp) { |
| 1907 | al = SSL_AD_DECODE_ERROR; | 1907 | al = SSL_AD_DECODE_ERROR; |
| 1908 | SSLerror(s, SSL_R_UNSUPPORTED_STATUS_TYPE); | 1908 | SSLerror(s, SSL_R_UNSUPPORTED_STATUS_TYPE); |
| 1909 | goto f_err; | 1909 | goto fatal_err; |
| 1910 | } | 1910 | } |
| 1911 | 1911 | ||
| 1912 | if (!CBS_get_u24_length_prefixed(&cert_status, &response) || | 1912 | if (!CBS_get_u24_length_prefixed(&cert_status, &response) || |
| 1913 | CBS_len(&cert_status) != 0) { | 1913 | CBS_len(&cert_status) != 0) { |
| 1914 | al = SSL_AD_DECODE_ERROR; | 1914 | al = SSL_AD_DECODE_ERROR; |
| 1915 | SSLerror(s, SSL_R_LENGTH_MISMATCH); | 1915 | SSLerror(s, SSL_R_LENGTH_MISMATCH); |
| 1916 | goto f_err; | 1916 | goto fatal_err; |
| 1917 | } | 1917 | } |
| 1918 | 1918 | ||
| 1919 | if (!CBS_stow(&response, &s->internal->tlsext_ocsp_resp, | 1919 | if (!CBS_stow(&response, &s->internal->tlsext_ocsp_resp, |
| 1920 | &s->internal->tlsext_ocsp_resp_len)) { | 1920 | &s->internal->tlsext_ocsp_resp_len)) { |
| 1921 | al = SSL_AD_INTERNAL_ERROR; | 1921 | al = SSL_AD_INTERNAL_ERROR; |
| 1922 | SSLerror(s, ERR_R_MALLOC_FAILURE); | 1922 | SSLerror(s, ERR_R_MALLOC_FAILURE); |
| 1923 | goto f_err; | 1923 | goto fatal_err; |
| 1924 | } | 1924 | } |
| 1925 | 1925 | ||
| 1926 | if (s->ctx->internal->tlsext_status_cb) { | 1926 | if (s->ctx->internal->tlsext_status_cb) { |
| @@ -1930,16 +1930,16 @@ ssl3_get_cert_status(SSL *s) | |||
| 1930 | if (ret == 0) { | 1930 | if (ret == 0) { |
| 1931 | al = SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE; | 1931 | al = SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE; |
| 1932 | SSLerror(s, SSL_R_INVALID_STATUS_RESPONSE); | 1932 | SSLerror(s, SSL_R_INVALID_STATUS_RESPONSE); |
| 1933 | goto f_err; | 1933 | goto fatal_err; |
| 1934 | } | 1934 | } |
| 1935 | if (ret < 0) { | 1935 | if (ret < 0) { |
| 1936 | al = SSL_AD_INTERNAL_ERROR; | 1936 | al = SSL_AD_INTERNAL_ERROR; |
| 1937 | SSLerror(s, ERR_R_MALLOC_FAILURE); | 1937 | SSLerror(s, ERR_R_MALLOC_FAILURE); |
| 1938 | goto f_err; | 1938 | goto fatal_err; |
| 1939 | } | 1939 | } |
| 1940 | } | 1940 | } |
| 1941 | return (1); | 1941 | return (1); |
| 1942 | f_err: | 1942 | fatal_err: |
| 1943 | ssl3_send_alert(s, SSL3_AL_FATAL, al); | 1943 | ssl3_send_alert(s, SSL3_AL_FATAL, al); |
| 1944 | return (-1); | 1944 | return (-1); |
| 1945 | } | 1945 | } |
| @@ -2742,7 +2742,7 @@ ssl3_check_cert_and_algorithm(SSL *s) | |||
| 2742 | sc->peer_pkeys[idx].x509, s) == 0) { | 2742 | sc->peer_pkeys[idx].x509, s) == 0) { |
| 2743 | /* check failed */ | 2743 | /* check failed */ |
| 2744 | SSLerror(s, SSL_R_BAD_ECC_CERT); | 2744 | SSLerror(s, SSL_R_BAD_ECC_CERT); |
| 2745 | goto f_err; | 2745 | goto fatal_err; |
| 2746 | } else { | 2746 | } else { |
| 2747 | return (1); | 2747 | return (1); |
| 2748 | } | 2748 | } |
| @@ -2754,20 +2754,20 @@ ssl3_check_cert_and_algorithm(SSL *s) | |||
| 2754 | /* Check that we have a certificate if we require one. */ | 2754 | /* Check that we have a certificate if we require one. */ |
| 2755 | if ((alg_a & SSL_aRSA) && !has_bits(i, EVP_PK_RSA|EVP_PKT_SIGN)) { | 2755 | if ((alg_a & SSL_aRSA) && !has_bits(i, EVP_PK_RSA|EVP_PKT_SIGN)) { |
| 2756 | SSLerror(s, SSL_R_MISSING_RSA_SIGNING_CERT); | 2756 | SSLerror(s, SSL_R_MISSING_RSA_SIGNING_CERT); |
| 2757 | goto f_err; | 2757 | goto fatal_err; |
| 2758 | } | 2758 | } |
| 2759 | if ((alg_k & SSL_kRSA) && !has_bits(i, EVP_PK_RSA|EVP_PKT_ENC)) { | 2759 | if ((alg_k & SSL_kRSA) && !has_bits(i, EVP_PK_RSA|EVP_PKT_ENC)) { |
| 2760 | SSLerror(s, SSL_R_MISSING_RSA_ENCRYPTING_CERT); | 2760 | SSLerror(s, SSL_R_MISSING_RSA_ENCRYPTING_CERT); |
| 2761 | goto f_err; | 2761 | goto fatal_err; |
| 2762 | } | 2762 | } |
| 2763 | if ((alg_k & SSL_kDHE) && | 2763 | if ((alg_k & SSL_kDHE) && |
| 2764 | !(has_bits(i, EVP_PK_DH|EVP_PKT_EXCH) || (dh != NULL))) { | 2764 | !(has_bits(i, EVP_PK_DH|EVP_PKT_EXCH) || (dh != NULL))) { |
| 2765 | SSLerror(s, SSL_R_MISSING_DH_KEY); | 2765 | SSLerror(s, SSL_R_MISSING_DH_KEY); |
| 2766 | goto f_err; | 2766 | goto fatal_err; |
| 2767 | } | 2767 | } |
| 2768 | 2768 | ||
| 2769 | return (1); | 2769 | return (1); |
| 2770 | f_err: | 2770 | fatal_err: |
| 2771 | ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); | 2771 | ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); |
| 2772 | err: | 2772 | err: |
| 2773 | return (0); | 2773 | return (0); |
