Skip to content

24 files changed

+888
-28
lines changed
 

‎deps/openssl/openssl/Configure

+2
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ my @disablables = (
378378
"poly1305",
379379
"posix-io",
380380
"psk",
381+
"quic",
381382
"rc2",
382383
"rc4",
383384
"rc5",
@@ -494,6 +495,7 @@ my @disable_cascades = (
494495
sub { !$disabled{"unit-test"} } => [ "heartbeats" ],
495496

496497
sub { !$disabled{"msan"} } => [ "asm" ],
498+
"tls1_3" => [ "quic" ],
497499
);
498500

499501
# Avoid protocol support holes. Also disable all versions below N, if version

‎deps/openssl/openssl/crypto/err/openssl.txt

+20
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,9 @@ SSL_F_PARSE_CA_NAMES:541:parse_ca_names
11861186
SSL_F_PITEM_NEW:624:pitem_new
11871187
SSL_F_PQUEUE_NEW:625:pqueue_new
11881188
SSL_F_PROCESS_KEY_SHARE_EXT:439:*
1189+
SSL_F_QUIC_CHANGE_CIPHER_STATE:651:
1190+
SSL_F_QUIC_GET_MESSAGE:640:quic_get_message
1191+
SSL_F_QUIC_SET_ENCRYPTION_SECRETS:641:quic_set_encryption_secrets
11891192
SSL_F_READ_STATE_MACHINE:352:read_state_machine
11901193
SSL_F_SET_CLIENT_CIPHERSUITE:540:set_client_ciphersuite
11911194
SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET:595:srp_generate_client_master_secret
@@ -1196,7 +1199,9 @@ SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM:130:ssl3_check_cert_and_algorithm
11961199
SSL_F_SSL3_CTRL:213:ssl3_ctrl
11971200
SSL_F_SSL3_CTX_CTRL:133:ssl3_ctx_ctrl
11981201
SSL_F_SSL3_DIGEST_CACHED_RECORDS:293:ssl3_digest_cached_records
1202+
SSL_F_SSL3_DISPATCH_ALERT:642:ssl3_dispatch_alert
11991203
SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC:292:ssl3_do_change_cipher_spec
1204+
SSL_F_SSL3_DO_WRITE:643:ssl3_do_write
12001205
SSL_F_SSL3_ENC:608:ssl3_enc
12011206
SSL_F_SSL3_FINAL_FINISH_MAC:285:ssl3_final_finish_mac
12021207
SSL_F_SSL3_FINISH_MAC:587:ssl3_finish_mac
@@ -1304,6 +1309,9 @@ SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT:311:*
13041309
SSL_F_SSL_PEEK:270:SSL_peek
13051310
SSL_F_SSL_PEEK_EX:432:SSL_peek_ex
13061311
SSL_F_SSL_PEEK_INTERNAL:522:ssl_peek_internal
1312+
SSL_F_SSL_PROCESS_QUIC_POST_HANDSHAKE:644:SSL_process_quic_post_handshake
1313+
SSL_F_SSL_PROVIDE_QUIC_DATA:645:SSL_provide_quic_data
1314+
SSL_F_SSL_SET_QUIC_EARLY_DATA_ENABLED:646:SSL_set_quic_early_data_enabled
13071315
SSL_F_SSL_READ:223:SSL_read
13081316
SSL_F_SSL_READ_EARLY_DATA:529:SSL_read_early_data
13091317
SSL_F_SSL_READ_EX:434:SSL_read_ex
@@ -1353,6 +1361,7 @@ SSL_F_SSL_WRITE_EARLY_DATA:526:SSL_write_early_data
13531361
SSL_F_SSL_WRITE_EARLY_FINISH:527:*
13541362
SSL_F_SSL_WRITE_EX:433:SSL_write_ex
13551363
SSL_F_SSL_WRITE_INTERNAL:524:ssl_write_internal
1364+
SSL_F_STATEM_FLUSH:646:statem_flush
13561365
SSL_F_STATE_MACHINE:353:state_machine
13571366
SSL_F_TLS12_CHECK_PEER_SIGALG:333:tls12_check_peer_sigalg
13581367
SSL_F_TLS12_COPY_SIGALGS:533:tls12_copy_sigalgs
@@ -1416,6 +1425,8 @@ SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH:619:\
14161425
tls_construct_ctos_post_handshake_auth
14171426
SSL_F_TLS_CONSTRUCT_CTOS_PSK:501:tls_construct_ctos_psk
14181427
SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES:509:tls_construct_ctos_psk_kex_modes
1428+
SSL_F_TLS_CONSTRUCT_CTOS_QUIC_TRANSPORT_PARAMS:647:\
1429+
tls_construct_ctos_quic_transport_params
14191430
SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE:473:tls_construct_ctos_renegotiate
14201431
SSL_F_TLS_CONSTRUCT_CTOS_SCT:474:tls_construct_ctos_sct
14211432
SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME:475:tls_construct_ctos_server_name
@@ -1457,6 +1468,8 @@ SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE:456:tls_construct_stoc_key_share
14571468
SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN:548:tls_construct_stoc_maxfragmentlen
14581469
SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG:457:tls_construct_stoc_next_proto_neg
14591470
SSL_F_TLS_CONSTRUCT_STOC_PSK:504:tls_construct_stoc_psk
1471+
SSL_F_TLS_CONSTRUCT_STOC_QUIC_TRANSPORT_PARAMS:648:\
1472+
tls_construct_stoc_quic_transport_params
14601473
SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE:458:tls_construct_stoc_renegotiate
14611474
SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME:459:tls_construct_stoc_server_name
14621475
SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET:460:tls_construct_stoc_session_ticket
@@ -1485,6 +1498,8 @@ SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN:571:tls_parse_ctos_maxfragmentlen
14851498
SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH:620:tls_parse_ctos_post_handshake_auth
14861499
SSL_F_TLS_PARSE_CTOS_PSK:505:tls_parse_ctos_psk
14871500
SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES:572:tls_parse_ctos_psk_kex_modes
1501+
SSL_F_TLS_PARSE_CTOS_QUIC_TRANSPORT_PARAMS:649:\
1502+
tls_parse_ctos_quic_transport_params
14881503
SSL_F_TLS_PARSE_CTOS_RENEGOTIATE:464:tls_parse_ctos_renegotiate
14891504
SSL_F_TLS_PARSE_CTOS_SERVER_NAME:573:tls_parse_ctos_server_name
14901505
SSL_F_TLS_PARSE_CTOS_SESSION_TICKET:574:tls_parse_ctos_session_ticket
@@ -1503,6 +1518,8 @@ SSL_F_TLS_PARSE_STOC_KEY_SHARE:445:tls_parse_stoc_key_share
15031518
SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN:581:tls_parse_stoc_maxfragmentlen
15041519
SSL_F_TLS_PARSE_STOC_NPN:582:tls_parse_stoc_npn
15051520
SSL_F_TLS_PARSE_STOC_PSK:502:tls_parse_stoc_psk
1521+
SSL_F_TLS_PARSE_STOC_QUIC_TRANSPORT_PARAMS:650:\
1522+
tls_parse_stoc_quic_transport_params
15061523
SSL_F_TLS_PARSE_STOC_RENEGOTIATE:448:tls_parse_stoc_renegotiate
15071524
SSL_F_TLS_PARSE_STOC_SCT:564:tls_parse_stoc_sct
15081525
SSL_F_TLS_PARSE_STOC_SERVER_NAME:583:tls_parse_stoc_server_name
@@ -2596,6 +2613,7 @@ SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE:158:\
25962613
SSL_R_BAD_CHANGE_CIPHER_SPEC:103:bad change cipher spec
25972614
SSL_R_BAD_CIPHER:186:bad cipher
25982615
SSL_R_BAD_DATA:390:bad data
2616+
SSL_R_BAD_DATA_LENGTH:294:bad data length
25992617
SSL_R_BAD_DATA_RETURNED_BY_CALLBACK:106:bad data returned by callback
26002618
SSL_R_BAD_DECOMPRESSION:107:bad decompression
26012619
SSL_R_BAD_DH_VALUE:102:bad dh value
@@ -2702,6 +2720,7 @@ SSL_R_INCONSISTENT_EARLY_DATA_ALPN:222:inconsistent early data alpn
27022720
SSL_R_INCONSISTENT_EARLY_DATA_SNI:231:inconsistent early data sni
27032721
SSL_R_INCONSISTENT_EXTMS:104:inconsistent extms
27042722
SSL_R_INSUFFICIENT_SECURITY:241:insufficient security
2723+
SSL_R_INTERNAL_ERROR:295:internal error
27052724
SSL_R_INVALID_ALERT:205:invalid alert
27062725
SSL_R_INVALID_CCS_MESSAGE:260:invalid ccs message
27072726
SSL_R_INVALID_CERTIFICATE_OR_ALG:238:invalid certificate or alg
@@ -2877,6 +2896,7 @@ SSL_R_VERSION_TOO_LOW:396:version too low
28772896
SSL_R_WRONG_CERTIFICATE_TYPE:383:wrong certificate type
28782897
SSL_R_WRONG_CIPHER_RETURNED:261:wrong cipher returned
28792898
SSL_R_WRONG_CURVE:378:wrong curve
2899+
SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED:296:wrong encryption level received
28802900
SSL_R_WRONG_SIGNATURE_LENGTH:264:wrong signature length
28812901
SSL_R_WRONG_SIGNATURE_SIZE:265:wrong signature size
28822902
SSL_R_WRONG_SIGNATURE_TYPE:370:wrong signature type

‎deps/openssl/openssl/include/openssl/evp.h

+4
Original file line numberDiff line numberDiff line change
@@ -1324,6 +1324,10 @@ void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth,
13241324
*/
13251325
# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4
13261326

1327+
/* Used by Chromium/QUIC */
1328+
# define X25519_PRIVATE_KEY_LEN 32
1329+
# define X25519_PUBLIC_VALUE_LEN 32
1330+
13271331
const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type);
13281332
EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags);
13291333
void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,

‎deps/openssl/openssl/include/openssl/ossl_typ.h

+2
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,8 @@ typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX;
175175
typedef struct ossl_store_info_st OSSL_STORE_INFO;
176176
typedef struct ossl_store_search_st OSSL_STORE_SEARCH;
177177

178+
typedef struct ssl_quic_method_st SSL_QUIC_METHOD;
179+
178180
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \
179181
defined(INTMAX_MAX) && defined(UINTMAX_MAX)
180182
typedef intmax_t ossl_intmax_t;

‎deps/openssl/openssl/include/openssl/ssl.h

+45
Original file line numberDiff line numberDiff line change
@@ -2432,6 +2432,51 @@ void SSL_set_allow_early_data_cb(SSL *s,
24322432
SSL_allow_early_data_cb_fn cb,
24332433
void *arg);
24342434

2435+
/*
2436+
* QUIC integration - The QUIC interface matches BoringSSL
2437+
*
2438+
* ssl_encryption_level_t represents a specific QUIC encryption level used to
2439+
* transmit handshake messages. BoringSSL has this as an 'enum'.
2440+
*/
2441+
typedef enum ssl_encryption_level_t {
2442+
ssl_encryption_initial = 0,
2443+
ssl_encryption_early_data,
2444+
ssl_encryption_handshake,
2445+
ssl_encryption_application
2446+
} OSSL_ENCRYPTION_LEVEL;
2447+
2448+
struct ssl_quic_method_st {
2449+
int (*set_encryption_secrets)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
2450+
2451+
const uint8_t *read_secret,
2452+
const uint8_t *write_secret, size_t secret_len);
2453+
int (*add_handshake_data)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
2454+
const uint8_t *data, size_t len);
2455+
int (*flush_flight)(SSL *ssl);
2456+
int (*send_alert)(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert);
2457+
};
2458+
2459+
__owur int SSL_CTX_set_quic_method(SSL_CTX *ctx, const SSL_QUIC_METHOD *quic_method);
2460+
__owur int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method);
2461+
__owur int SSL_set_quic_transport_params(SSL *ssl,
2462+
const uint8_t *params,
2463+
size_t params_len);
2464+
void SSL_get_peer_quic_transport_params(const SSL *ssl,
2465+
const uint8_t **out_params,
2466+
size_t *out_params_len);
2467+
__owur size_t SSL_quic_max_handshake_flight_len(const SSL *ssl, OSSL_ENCRYPTION_LEVEL level);
2468+
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_read_level(const SSL *ssl);
2469+
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_write_level(const SSL *ssl);
2470+
__owur int SSL_provide_quic_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
2471+
const uint8_t *data, size_t len);
2472+
__owur int SSL_process_quic_post_handshake(SSL *ssl);
2473+
2474+
__owur int SSL_is_quic(SSL *ssl);
2475+
2476+
__owur void SSL_set_quic_early_data_enabled(SSL *ssl, int enabled);
2477+
2478+
int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c);
2479+
24352480
# ifdef __cplusplus
24362481
}
24372482
# endif

‎deps/openssl/openssl/include/openssl/sslerr.h

+15
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ int ERR_load_SSL_strings(void);
9595
# define SSL_F_PITEM_NEW 624
9696
# define SSL_F_PQUEUE_NEW 625
9797
# define SSL_F_PROCESS_KEY_SHARE_EXT 439
98+
# define SSL_F_QUIC_CHANGE_CIPHER_STATE 0
99+
# define SSL_F_QUIC_GET_MESSAGE 0
100+
# define SSL_F_QUIC_SET_ENCRYPTION_SECRETS 0
98101
# define SSL_F_READ_STATE_MACHINE 352
99102
# define SSL_F_SET_CLIENT_CIPHERSUITE 540
100103
# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 595
@@ -105,7 +108,9 @@ int ERR_load_SSL_strings(void);
105108
# define SSL_F_SSL3_CTRL 213
106109
# define SSL_F_SSL3_CTX_CTRL 133
107110
# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293
111+
# define SSL_F_SSL3_DISPATCH_ALERT 0
108112
# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292
113+
# define SSL_F_SSL3_DO_WRITE 0
109114
# define SSL_F_SSL3_ENC 608
110115
# define SSL_F_SSL3_FINAL_FINISH_MAC 285
111116
# define SSL_F_SSL3_FINISH_MAC 587
@@ -210,6 +215,8 @@ int ERR_load_SSL_strings(void);
210215
# define SSL_F_SSL_PEEK 270
211216
# define SSL_F_SSL_PEEK_EX 432
212217
# define SSL_F_SSL_PEEK_INTERNAL 522
218+
# define SSL_F_SSL_PROCESS_QUIC_POST_HANDSHAKE 0
219+
# define SSL_F_SSL_PROVIDE_QUIC_DATA 0
213220
# define SSL_F_SSL_READ 223
214221
# define SSL_F_SSL_READ_EARLY_DATA 529
215222
# define SSL_F_SSL_READ_EX 434
@@ -259,6 +266,7 @@ int ERR_load_SSL_strings(void);
259266
# define SSL_F_SSL_WRITE_EARLY_FINISH 527
260267
# define SSL_F_SSL_WRITE_EX 433
261268
# define SSL_F_SSL_WRITE_INTERNAL 524
269+
# define SSL_F_STATEM_FLUSH 0
262270
# define SSL_F_STATE_MACHINE 353
263271
# define SSL_F_TLS12_CHECK_PEER_SIGALG 333
264272
# define SSL_F_TLS12_COPY_SIGALGS 533
@@ -318,6 +326,7 @@ int ERR_load_SSL_strings(void);
318326
# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 619
319327
# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 501
320328
# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 509
329+
# define SSL_F_TLS_CONSTRUCT_CTOS_QUIC_TRANSPORT_PARAMS 0
321330
# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 473
322331
# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 474
323332
# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 475
@@ -357,6 +366,7 @@ int ERR_load_SSL_strings(void);
357366
# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 548
358367
# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 457
359368
# define SSL_F_TLS_CONSTRUCT_STOC_PSK 504
369+
# define SSL_F_TLS_CONSTRUCT_STOC_QUIC_TRANSPORT_PARAMS 0
360370
# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 458
361371
# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 459
362372
# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 460
@@ -382,6 +392,7 @@ int ERR_load_SSL_strings(void);
382392
# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 620
383393
# define SSL_F_TLS_PARSE_CTOS_PSK 505
384394
# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 572
395+
# define SSL_F_TLS_PARSE_CTOS_QUIC_TRANSPORT_PARAMS 0
385396
# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 464
386397
# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 573
387398
# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 574
@@ -400,6 +411,7 @@ int ERR_load_SSL_strings(void);
400411
# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 581
401412
# define SSL_F_TLS_PARSE_STOC_NPN 582
402413
# define SSL_F_TLS_PARSE_STOC_PSK 502
414+
# define SSL_F_TLS_PARSE_STOC_QUIC_TRANSPORT_PARAMS 0
403415
# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 448
404416
# define SSL_F_TLS_PARSE_STOC_SCT 564
405417
# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 583
@@ -461,6 +473,7 @@ int ERR_load_SSL_strings(void);
461473
# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103
462474
# define SSL_R_BAD_CIPHER 186
463475
# define SSL_R_BAD_DATA 390
476+
# define SSL_R_BAD_DATA_LENGTH 294
464477
# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106
465478
# define SSL_R_BAD_DECOMPRESSION 107
466479
# define SSL_R_BAD_DH_VALUE 102
@@ -564,6 +577,7 @@ int ERR_load_SSL_strings(void);
564577
# define SSL_R_INCONSISTENT_EARLY_DATA_SNI 231
565578
# define SSL_R_INCONSISTENT_EXTMS 104
566579
# define SSL_R_INSUFFICIENT_SECURITY 241
580+
# define SSL_R_INTERNAL_ERROR 295
567581
# define SSL_R_INVALID_ALERT 205
568582
# define SSL_R_INVALID_CCS_MESSAGE 260
569583
# define SSL_R_INVALID_CERTIFICATE_OR_ALG 238
@@ -761,6 +775,7 @@ int ERR_load_SSL_strings(void);
761775
# define SSL_R_WRONG_CERTIFICATE_TYPE 383
762776
# define SSL_R_WRONG_CIPHER_RETURNED 261
763777
# define SSL_R_WRONG_CURVE 378
778+
# define SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED 296
764779
# define SSL_R_WRONG_SIGNATURE_LENGTH 264
765780
# define SSL_R_WRONG_SIGNATURE_SIZE 265
766781
# define SSL_R_WRONG_SIGNATURE_TYPE 370

‎deps/openssl/openssl/include/openssl/tls1.h

+3
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@ extern "C" {
148148
/* Temporary extension type */
149149
# define TLSEXT_TYPE_renegotiate 0xff01
150150

151+
/* ExtensionType value from draft-ietf-quic-tls-13 */
152+
# define TLSEXT_TYPE_quic_transport_parameters 0xffa5
153+
151154
# ifndef OPENSSL_NO_NEXTPROTONEG
152155
/* This is not an IANA defined extension number */
153156
# define TLSEXT_TYPE_next_proto_neg 13172

‎deps/openssl/openssl/ssl/build.info

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ SOURCE[../libssl]=\
1212
ssl_asn1.c ssl_txt.c ssl_init.c ssl_conf.c ssl_mcnf.c \
1313
bio_ssl.c ssl_err.c tls_srp.c t1_trce.c ssl_utst.c \
1414
record/ssl3_buffer.c record/ssl3_record.c record/dtls1_bitmap.c \
15-
statem/statem.c record/ssl3_record_tls13.c
15+
statem/statem.c record/ssl3_record_tls13.c \
16+
ssl_quic.c statem/statem_quic.c

‎deps/openssl/openssl/ssl/s3_msg.c

+10-2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,16 @@ int ssl3_dispatch_alert(SSL *s)
7575

7676
s->s3->alert_dispatch = 0;
7777
alertlen = 2;
78-
i = do_ssl3_write(s, SSL3_RT_ALERT, &s->s3->send_alert[0], &alertlen, 1, 0,
79-
&written);
78+
if (SSL_IS_QUIC(s)) {
79+
if (!s->quic_method->send_alert(s, s->quic_write_level,
80+
s->s3->send_alert[1])) {
81+
SSLerr(SSL_F_SSL3_DISPATCH_ALERT, SSL_R_INTERNAL_ERROR);
82+
return 0;
83+
}
84+
i = 1;
85+
} else {
86+
i = do_ssl3_write(s, SSL3_RT_ALERT, &s->s3->send_alert[0], &alertlen, 1, 0, &written);
87+
}
8088
if (i <= 0) {
8189
s->s3->alert_dispatch = 1;
8290
} else {

‎deps/openssl/openssl/ssl/ssl_ciph.c

+32
Original file line numberDiff line numberDiff line change
@@ -2162,3 +2162,35 @@ int ssl_cert_is_disabled(size_t idx)
21622162
return 1;
21632163
return 0;
21642164
}
2165+
2166+
int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c)
2167+
{
2168+
switch (c->algorithm2 & (0xFF << TLS1_PRF_DGST_SHIFT)) {
2169+
default:
2170+
break;
2171+
case TLS1_PRF_SHA1_MD5: /* TLS1_PRF */
2172+
return NID_md5_sha1;
2173+
case TLS1_PRF_SHA256:
2174+
return NID_sha256;
2175+
case TLS1_PRF_SHA384:
2176+
return NID_sha384;
2177+
case TLS1_PRF_GOST94:
2178+
return NID_id_GostR3411_94_prf;
2179+
case TLS1_PRF_GOST12_256:
2180+
return NID_id_GostR3411_2012_256;
2181+
case TLS1_PRF_GOST12_512:
2182+
return NID_id_GostR3411_2012_512;
2183+
}
2184+
/* TLSv1.3 ciphers don't specify separate PRF */
2185+
switch (c->algorithm2 & SSL_HANDSHAKE_MAC_MASK) {
2186+
default:
2187+
break;
2188+
case SSL_HANDSHAKE_MAC_MD5_SHA1: /* SSL_HANDSHAKE_MAC_DEFAULT */
2189+
return NID_md5_sha1;
2190+
case SSL_HANDSHAKE_MAC_SHA256:
2191+
return NID_sha256;
2192+
case SSL_HANDSHAKE_MAC_SHA384:
2193+
return NID_sha384;
2194+
}
2195+
return NID_undef;
2196+
}

‎deps/openssl/openssl/ssl/ssl_err.c

+4
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,7 @@ static const ERR_STRING_DATA SSL_str_reasons[] = {
740740
"bad change cipher spec"},
741741
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_BAD_CIPHER), "bad cipher"},
742742
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_BAD_DATA), "bad data"},
743+
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_BAD_DATA_LENGTH), "bad data length"},
743744
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK),
744745
"bad data returned by callback"},
745746
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_BAD_DECOMPRESSION), "bad decompression"},
@@ -905,6 +906,7 @@ static const ERR_STRING_DATA SSL_str_reasons[] = {
905906
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_INCONSISTENT_EXTMS), "inconsistent extms"},
906907
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_INSUFFICIENT_SECURITY),
907908
"insufficient security"},
909+
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_INTERNAL_ERROR), "internal error"},
908910
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_INVALID_ALERT), "invalid alert"},
909911
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_INVALID_CCS_MESSAGE),
910912
"invalid ccs message"},
@@ -1248,6 +1250,8 @@ static const ERR_STRING_DATA SSL_str_reasons[] = {
12481250
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_CIPHER_RETURNED),
12491251
"wrong cipher returned"},
12501252
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_CURVE), "wrong curve"},
1253+
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED),
1254+
"wrong encryption level received"},
12511255
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_SIGNATURE_LENGTH),
12521256
"wrong signature length"},
12531257
{ERR_PACK(ERR_LIB_SSL, 0, SSL_R_WRONG_SIGNATURE_SIZE),

0 commit comments

Comments
 (0)
Please sign in to comment.