summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_srvr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_srvr.c')
-rw-r--r--src/lib/libssl/ssl_srvr.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c
index 06ad42c8ff..0408dab660 100644
--- a/src/lib/libssl/ssl_srvr.c
+++ b/src/lib/libssl/ssl_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_srvr.c,v 1.92 2021/02/20 08:22:55 jsing Exp $ */ 1/* $OpenBSD: ssl_srvr.c,v 1.93 2021/02/20 14:03:50 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 *
@@ -741,7 +741,7 @@ ssl3_accept(SSL *s)
741 } 741 }
742 skip = 0; 742 skip = 0;
743 } 743 }
744end: 744 end:
745 /* BIO_flush(s->wbio); */ 745 /* BIO_flush(s->wbio); */
746 s->internal->in_handshake--; 746 s->internal->in_handshake--;
747 if (cb != NULL) 747 if (cb != NULL)
@@ -819,11 +819,11 @@ ssl3_get_client_hello(SSL *s)
819 819
820 /* Parse client hello up until the extensions (if any). */ 820 /* Parse client hello up until the extensions (if any). */
821 if (!CBS_get_u16(&cbs, &client_version)) 821 if (!CBS_get_u16(&cbs, &client_version))
822 goto truncated; 822 goto decode_err;
823 if (!CBS_get_bytes(&cbs, &client_random, SSL3_RANDOM_SIZE)) 823 if (!CBS_get_bytes(&cbs, &client_random, SSL3_RANDOM_SIZE))
824 goto truncated; 824 goto decode_err;
825 if (!CBS_get_u8_length_prefixed(&cbs, &session_id)) 825 if (!CBS_get_u8_length_prefixed(&cbs, &session_id))
826 goto truncated; 826 goto decode_err;
827 if (CBS_len(&session_id) > SSL3_SESSION_ID_SIZE) { 827 if (CBS_len(&session_id) > SSL3_SESSION_ID_SIZE) {
828 al = SSL_AD_ILLEGAL_PARAMETER; 828 al = SSL_AD_ILLEGAL_PARAMETER;
829 SSLerror(s, SSL_R_SSL3_SESSION_ID_TOO_LONG); 829 SSLerror(s, SSL_R_SSL3_SESSION_ID_TOO_LONG);
@@ -831,12 +831,12 @@ ssl3_get_client_hello(SSL *s)
831 } 831 }
832 if (SSL_is_dtls(s)) { 832 if (SSL_is_dtls(s)) {
833 if (!CBS_get_u8_length_prefixed(&cbs, &cookie)) 833 if (!CBS_get_u8_length_prefixed(&cbs, &cookie))
834 goto truncated; 834 goto decode_err;
835 } 835 }
836 if (!CBS_get_u16_length_prefixed(&cbs, &cipher_suites)) 836 if (!CBS_get_u16_length_prefixed(&cbs, &cipher_suites))
837 goto truncated; 837 goto decode_err;
838 if (!CBS_get_u8_length_prefixed(&cbs, &compression_methods)) 838 if (!CBS_get_u8_length_prefixed(&cbs, &compression_methods))
839 goto truncated; 839 goto decode_err;
840 840
841 /* 841 /*
842 * Use version from inside client hello, not from record header. 842 * Use version from inside client hello, not from record header.
@@ -1003,7 +1003,7 @@ ssl3_get_client_hello(SSL *s)
1003 comp_null = 0; 1003 comp_null = 0;
1004 while (CBS_len(&compression_methods) > 0) { 1004 while (CBS_len(&compression_methods) > 0) {
1005 if (!CBS_get_u8(&compression_methods, &comp_method)) 1005 if (!CBS_get_u8(&compression_methods, &comp_method))
1006 goto truncated; 1006 goto decode_err;
1007 if (comp_method == 0) 1007 if (comp_method == 0)
1008 comp_null = 1; 1008 comp_null = 1;
1009 } 1009 }
@@ -1144,13 +1144,13 @@ ssl3_get_client_hello(SSL *s)
1144 ret = cookie_valid ? 2 : 1; 1144 ret = cookie_valid ? 2 : 1;
1145 1145
1146 if (0) { 1146 if (0) {
1147truncated: 1147 decode_err:
1148 al = SSL_AD_DECODE_ERROR; 1148 al = SSL_AD_DECODE_ERROR;
1149 SSLerror(s, SSL_R_BAD_PACKET_LENGTH); 1149 SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
1150f_err: 1150 f_err:
1151 ssl3_send_alert(s, SSL3_AL_FATAL, al); 1151 ssl3_send_alert(s, SSL3_AL_FATAL, al);
1152 } 1152 }
1153err: 1153 err:
1154 sk_SSL_CIPHER_free(ciphers); 1154 sk_SSL_CIPHER_free(ciphers);
1155 1155
1156 return (ret); 1156 return (ret);
@@ -1738,7 +1738,7 @@ ssl3_get_client_kex_rsa(SSL *s, CBS *cbs)
1738 p = pms; 1738 p = pms;
1739 1739
1740 if (!CBS_get_u16_length_prefixed(cbs, &enc_pms)) 1740 if (!CBS_get_u16_length_prefixed(cbs, &enc_pms))
1741 goto truncated; 1741 goto decode_err;
1742 if (CBS_len(cbs) != 0 || CBS_len(&enc_pms) != RSA_size(rsa)) { 1742 if (CBS_len(cbs) != 0 || CBS_len(&enc_pms) != RSA_size(rsa)) {
1743 SSLerror(s, SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG); 1743 SSLerror(s, SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG);
1744 goto err; 1744 goto err;
@@ -1792,7 +1792,7 @@ ssl3_get_client_kex_rsa(SSL *s, CBS *cbs)
1792 1792
1793 return (1); 1793 return (1);
1794 1794
1795 truncated: 1795 decode_err:
1796 al = SSL_AD_DECODE_ERROR; 1796 al = SSL_AD_DECODE_ERROR;
1797 SSLerror(s, SSL_R_BAD_PACKET_LENGTH); 1797 SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
1798 f_err: 1798 f_err:
@@ -1814,9 +1814,9 @@ ssl3_get_client_kex_dhe(SSL *s, CBS *cbs)
1814 DH *dh; 1814 DH *dh;
1815 1815
1816 if (!CBS_get_u16_length_prefixed(cbs, &dh_Yc)) 1816 if (!CBS_get_u16_length_prefixed(cbs, &dh_Yc))
1817 goto truncated; 1817 goto decode_err;
1818 if (CBS_len(cbs) != 0) 1818 if (CBS_len(cbs) != 0)
1819 goto truncated; 1819 goto decode_err;
1820 1820
1821 if (S3I(s)->tmp.dh == NULL) { 1821 if (S3I(s)->tmp.dh == NULL) {
1822 al = SSL_AD_HANDSHAKE_FAILURE; 1822 al = SSL_AD_HANDSHAKE_FAILURE;
@@ -1865,7 +1865,7 @@ ssl3_get_client_kex_dhe(SSL *s, CBS *cbs)
1865 1865
1866 return (1); 1866 return (1);
1867 1867
1868 truncated: 1868 decode_err:
1869 al = SSL_AD_DECODE_ERROR; 1869 al = SSL_AD_DECODE_ERROR;
1870 SSLerror(s, SSL_R_BAD_PACKET_LENGTH); 1870 SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
1871 f_err: 1871 f_err:
@@ -2011,9 +2011,9 @@ ssl3_get_client_kex_gost(SSL *s, CBS *cbs)
2011 2011
2012 /* Decrypt session key */ 2012 /* Decrypt session key */
2013 if (!CBS_get_asn1(cbs, &gostblob, CBS_ASN1_SEQUENCE)) 2013 if (!CBS_get_asn1(cbs, &gostblob, CBS_ASN1_SEQUENCE))
2014 goto truncated; 2014 goto decode_err;
2015 if (CBS_len(cbs) != 0) 2015 if (CBS_len(cbs) != 0)
2016 goto truncated; 2016 goto decode_err;
2017 if (EVP_PKEY_decrypt(pkey_ctx, premaster_secret, &outlen, 2017 if (EVP_PKEY_decrypt(pkey_ctx, premaster_secret, &outlen,
2018 CBS_data(&gostblob), CBS_len(&gostblob)) <= 0) { 2018 CBS_data(&gostblob), CBS_len(&gostblob)) <= 0) {
2019 SSLerror(s, SSL_R_DECRYPTION_FAILED); 2019 SSLerror(s, SSL_R_DECRYPTION_FAILED);
@@ -2039,7 +2039,7 @@ ssl3_get_client_kex_gost(SSL *s, CBS *cbs)
2039 else 2039 else
2040 goto err; 2040 goto err;
2041 2041
2042 truncated: 2042 decode_err:
2043 al = SSL_AD_DECODE_ERROR; 2043 al = SSL_AD_DECODE_ERROR;
2044 SSLerror(s, SSL_R_BAD_PACKET_LENGTH); 2044 SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
2045 ssl3_send_alert(s, SSL3_AL_FATAL, al); 2045 ssl3_send_alert(s, SSL3_AL_FATAL, al);
@@ -2183,7 +2183,7 @@ ssl3_get_cert_verify(SSL *s)
2183 uint16_t sigalg_value; 2183 uint16_t sigalg_value;
2184 2184
2185 if (!CBS_get_u16(&cbs, &sigalg_value)) 2185 if (!CBS_get_u16(&cbs, &sigalg_value))
2186 goto truncated; 2186 goto decode_err;
2187 if ((sigalg = ssl_sigalg(sigalg_value, tls12_sigalgs, 2187 if ((sigalg = ssl_sigalg(sigalg_value, tls12_sigalgs,
2188 tls12_sigalgs_len)) == NULL || 2188 tls12_sigalgs_len)) == NULL ||
2189 (md = sigalg->md()) == NULL) { 2189 (md = sigalg->md()) == NULL) {
@@ -2324,7 +2324,7 @@ ssl3_get_cert_verify(SSL *s)
2324 2324
2325 ret = 1; 2325 ret = 1;
2326 if (0) { 2326 if (0) {
2327 truncated: 2327 decode_err:
2328 al = SSL_AD_DECODE_ERROR; 2328 al = SSL_AD_DECODE_ERROR;
2329 SSLerror(s, SSL_R_BAD_PACKET_LENGTH); 2329 SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
2330 f_err: 2330 f_err:
@@ -2381,7 +2381,7 @@ ssl3_get_client_certificate(SSL *s)
2381 } 2381 }
2382 2382
2383 if (n < 0) 2383 if (n < 0)
2384 goto truncated; 2384 goto decode_err;
2385 2385
2386 CBS_init(&cbs, s->internal->init_msg, n); 2386 CBS_init(&cbs, s->internal->init_msg, n);
2387 2387
@@ -2392,7 +2392,7 @@ ssl3_get_client_certificate(SSL *s)
2392 2392
2393 if (!CBS_get_u24_length_prefixed(&cbs, &client_certs) || 2393 if (!CBS_get_u24_length_prefixed(&cbs, &client_certs) ||
2394 CBS_len(&cbs) != 0) 2394 CBS_len(&cbs) != 0)
2395 goto truncated; 2395 goto decode_err;
2396 2396
2397 while (CBS_len(&client_certs) > 0) { 2397 while (CBS_len(&client_certs) > 0) {
2398 CBS cert; 2398 CBS cert;
@@ -2470,13 +2470,13 @@ ssl3_get_client_certificate(SSL *s)
2470 2470
2471 ret = 1; 2471 ret = 1;
2472 if (0) { 2472 if (0) {
2473truncated: 2473 decode_err:
2474 al = SSL_AD_DECODE_ERROR; 2474 al = SSL_AD_DECODE_ERROR;
2475 SSLerror(s, SSL_R_BAD_PACKET_LENGTH); 2475 SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
2476f_err: 2476 f_err:
2477 ssl3_send_alert(s, SSL3_AL_FATAL, al); 2477 ssl3_send_alert(s, SSL3_AL_FATAL, al);
2478 } 2478 }
2479err: 2479 err:
2480 X509_free(x); 2480 X509_free(x);
2481 sk_X509_pop_free(sk, X509_free); 2481 sk_X509_pop_free(sk, X509_free);
2482 2482