Skip to content

Commit 2c549e5

Browse files
tmshortjasnell
authored andcommitted
deps: add support for BoringSSL QUIC APIs
Acquired from: https://github.com/akamai/openssl/tree/OpenSSL_1_1_1f-quic Squashed: * akamai/openssl@2ef7c58 * akamai/openssl@3f8eda3 * akamai/openssl@b37f665 * akamai/openssl@6b23589 * akamai/openssl@3a793e0 PR-URL: #32379 Reviewed-By: Anna Henningsen <anna@addaleax.net>
1 parent a808cb7 commit 2c549e5

34 files changed

+1383
-35
lines changed

deps/openssl/openssl/CHANGES

+3
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@
115115

116116
Changes between 1.1.1c and 1.1.1d [10 Sep 2019]
117117

118+
*) Implement BoringSSL's QUIC API
119+
[Todd Short]
120+
118121
*) Fixed a fork protection issue. OpenSSL 1.1.1 introduced a rewritten random
119122
number generator (RNG). This was intended to include protection in the
120123
event of a fork() system call in order to ensure that the parent and child

deps/openssl/openssl/Configure

+3
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,7 @@ my @disablables = (
391391
"poly1305",
392392
"posix-io",
393393
"psk",
394+
"quic",
394395
"rc2",
395396
"rc4",
396397
"rc5",
@@ -507,6 +508,8 @@ my @disable_cascades = (
507508
sub { !$disabled{"unit-test"} } => [ "heartbeats" ],
508509

509510
sub { !$disabled{"msan"} } => [ "asm" ],
511+
512+
"tls1_3" => [ "quic" ],
510513
);
511514

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

deps/openssl/openssl/INSTALL

+3
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,9 @@
456456
no-psk
457457
Don't build support for Pre-Shared Key based ciphersuites.
458458

459+
no-quic
460+
Don't build with support for QUIC.
461+
459462
no-rdrand
460463
Don't use hardware RDRAND capabilities.
461464

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

+19-1
Original file line numberDiff line numberDiff line change
@@ -1180,7 +1180,7 @@ SSL_F_OSSL_STATEM_SERVER_CONSTRUCT_MESSAGE:431:*
11801180
SSL_F_OSSL_STATEM_SERVER_POST_PROCESS_MESSAGE:601:\
11811181
ossl_statem_server_post_process_message
11821182
SSL_F_OSSL_STATEM_SERVER_POST_WORK:602:ossl_statem_server_post_work
1183-
SSL_F_OSSL_STATEM_SERVER_PRE_WORK:640:
1183+
SSL_F_OSSL_STATEM_SERVER_PRE_WORK:640:ossl_statem_server_pre_work
11841184
SSL_F_OSSL_STATEM_SERVER_PROCESS_MESSAGE:603:ossl_statem_server_process_message
11851185
SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION:418:ossl_statem_server_read_transition
11861186
SSL_F_OSSL_STATEM_SERVER_WRITE_TRANSITION:604:\
@@ -1189,6 +1189,9 @@ SSL_F_PARSE_CA_NAMES:541:parse_ca_names
11891189
SSL_F_PITEM_NEW:624:pitem_new
11901190
SSL_F_PQUEUE_NEW:625:pqueue_new
11911191
SSL_F_PROCESS_KEY_SHARE_EXT:439:*
1192+
SSL_F_QUIC_CHANGE_CIPHER_STATE:639:quic_change_cipher_state
1193+
SSL_F_QUIC_GET_MESSAGE:641:quic_get_message
1194+
SSL_F_QUIC_SET_ENCRYPTION_SECRETS:642:quic_set_encryption_secrets
11921195
SSL_F_READ_STATE_MACHINE:352:read_state_machine
11931196
SSL_F_SET_CLIENT_CIPHERSUITE:540:set_client_ciphersuite
11941197
SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET:595:srp_generate_client_master_secret
@@ -1199,7 +1202,9 @@ SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM:130:ssl3_check_cert_and_algorithm
11991202
SSL_F_SSL3_CTRL:213:ssl3_ctrl
12001203
SSL_F_SSL3_CTX_CTRL:133:ssl3_ctx_ctrl
12011204
SSL_F_SSL3_DIGEST_CACHED_RECORDS:293:ssl3_digest_cached_records
1205+
SSL_F_SSL3_DISPATCH_ALERT:643:ssl3_dispatch_alert
12021206
SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC:292:ssl3_do_change_cipher_spec
1207+
SSL_F_SSL3_DO_WRITE:644:ssl3_do_write
12031208
SSL_F_SSL3_ENC:608:ssl3_enc
12041209
SSL_F_SSL3_FINAL_FINISH_MAC:285:ssl3_final_finish_mac
12051210
SSL_F_SSL3_FINISH_MAC:587:ssl3_finish_mac
@@ -1307,6 +1312,8 @@ SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT:311:*
13071312
SSL_F_SSL_PEEK:270:SSL_peek
13081313
SSL_F_SSL_PEEK_EX:432:SSL_peek_ex
13091314
SSL_F_SSL_PEEK_INTERNAL:522:ssl_peek_internal
1315+
SSL_F_SSL_PROCESS_QUIC_POST_HANDSHAKE:645:SSL_process_quic_post_handshake
1316+
SSL_F_SSL_PROVIDE_QUIC_DATA:646:SSL_provide_quic_data
13101317
SSL_F_SSL_READ:223:SSL_read
13111318
SSL_F_SSL_READ_EARLY_DATA:529:SSL_read_early_data
13121319
SSL_F_SSL_READ_EX:434:SSL_read_ex
@@ -1356,6 +1363,7 @@ SSL_F_SSL_WRITE_EARLY_DATA:526:SSL_write_early_data
13561363
SSL_F_SSL_WRITE_EARLY_FINISH:527:*
13571364
SSL_F_SSL_WRITE_EX:433:SSL_write_ex
13581365
SSL_F_SSL_WRITE_INTERNAL:524:ssl_write_internal
1366+
SSL_F_STATEM_FLUSH:647:statem_flush
13591367
SSL_F_STATE_MACHINE:353:state_machine
13601368
SSL_F_TLS12_CHECK_PEER_SIGALG:333:tls12_check_peer_sigalg
13611369
SSL_F_TLS12_COPY_SIGALGS:533:tls12_copy_sigalgs
@@ -1419,6 +1427,8 @@ SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH:619:\
14191427
tls_construct_ctos_post_handshake_auth
14201428
SSL_F_TLS_CONSTRUCT_CTOS_PSK:501:tls_construct_ctos_psk
14211429
SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES:509:tls_construct_ctos_psk_kex_modes
1430+
SSL_F_TLS_CONSTRUCT_CTOS_QUIC_TRANSPORT_PARAMS:648:\
1431+
tls_construct_ctos_quic_transport_params
14221432
SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE:473:tls_construct_ctos_renegotiate
14231433
SSL_F_TLS_CONSTRUCT_CTOS_SCT:474:tls_construct_ctos_sct
14241434
SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME:475:tls_construct_ctos_server_name
@@ -1460,6 +1470,8 @@ SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE:456:tls_construct_stoc_key_share
14601470
SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN:548:tls_construct_stoc_maxfragmentlen
14611471
SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG:457:tls_construct_stoc_next_proto_neg
14621472
SSL_F_TLS_CONSTRUCT_STOC_PSK:504:tls_construct_stoc_psk
1473+
SSL_F_TLS_CONSTRUCT_STOC_QUIC_TRANSPORT_PARAMS:649:\
1474+
tls_construct_stoc_quic_transport_params
14631475
SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE:458:tls_construct_stoc_renegotiate
14641476
SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME:459:tls_construct_stoc_server_name
14651477
SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET:460:tls_construct_stoc_session_ticket
@@ -1488,6 +1500,8 @@ SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN:571:tls_parse_ctos_maxfragmentlen
14881500
SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH:620:tls_parse_ctos_post_handshake_auth
14891501
SSL_F_TLS_PARSE_CTOS_PSK:505:tls_parse_ctos_psk
14901502
SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES:572:tls_parse_ctos_psk_kex_modes
1503+
SSL_F_TLS_PARSE_CTOS_QUIC_TRANSPORT_PARAMS:650:\
1504+
tls_parse_ctos_quic_transport_params
14911505
SSL_F_TLS_PARSE_CTOS_RENEGOTIATE:464:tls_parse_ctos_renegotiate
14921506
SSL_F_TLS_PARSE_CTOS_SERVER_NAME:573:tls_parse_ctos_server_name
14931507
SSL_F_TLS_PARSE_CTOS_SESSION_TICKET:574:tls_parse_ctos_session_ticket
@@ -1506,6 +1520,8 @@ SSL_F_TLS_PARSE_STOC_KEY_SHARE:445:tls_parse_stoc_key_share
15061520
SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN:581:tls_parse_stoc_maxfragmentlen
15071521
SSL_F_TLS_PARSE_STOC_NPN:582:tls_parse_stoc_npn
15081522
SSL_F_TLS_PARSE_STOC_PSK:502:tls_parse_stoc_psk
1523+
SSL_F_TLS_PARSE_STOC_QUIC_TRANSPORT_PARAMS:651:\
1524+
tls_parse_stoc_quic_transport_params
15091525
SSL_F_TLS_PARSE_STOC_RENEGOTIATE:448:tls_parse_stoc_renegotiate
15101526
SSL_F_TLS_PARSE_STOC_SCT:564:tls_parse_stoc_sct
15111527
SSL_F_TLS_PARSE_STOC_SERVER_NAME:583:tls_parse_stoc_server_name
@@ -2706,6 +2722,7 @@ SSL_R_INCONSISTENT_EARLY_DATA_ALPN:222:inconsistent early data alpn
27062722
SSL_R_INCONSISTENT_EARLY_DATA_SNI:231:inconsistent early data sni
27072723
SSL_R_INCONSISTENT_EXTMS:104:inconsistent extms
27082724
SSL_R_INSUFFICIENT_SECURITY:241:insufficient security
2725+
SSL_R_INTERNAL_ERROR:295:internal error
27092726
SSL_R_INVALID_ALERT:205:invalid alert
27102727
SSL_R_INVALID_CCS_MESSAGE:260:invalid ccs message
27112728
SSL_R_INVALID_CERTIFICATE_OR_ALG:238:invalid certificate or alg
@@ -2881,6 +2898,7 @@ SSL_R_VERSION_TOO_LOW:396:version too low
28812898
SSL_R_WRONG_CERTIFICATE_TYPE:383:wrong certificate type
28822899
SSL_R_WRONG_CIPHER_RETURNED:261:wrong cipher returned
28832900
SSL_R_WRONG_CURVE:378:wrong curve
2901+
SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED:296:wrong encryption level received
28842902
SSL_R_WRONG_SIGNATURE_LENGTH:264:wrong signature length
28852903
SSL_R_WRONG_SIGNATURE_SIZE:265:wrong signature size
28862904
SSL_R_WRONG_SIGNATURE_TYPE:370:wrong signature type

deps/openssl/openssl/crypto/kdf/hkdf.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include "internal/cryptlib.h"
1616
#include "crypto/evp.h"
1717

18-
#define HKDF_MAXBUF 1024
18+
#define HKDF_MAXBUF 2048
1919

2020
static unsigned char *HKDF(const EVP_MD *evp_md,
2121
const unsigned char *salt, size_t salt_len,

deps/openssl/openssl/doc/man3/SSL_CIPHER_get_name.pod

+13
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ SSL_CIPHER_get_digest_nid,
1313
SSL_CIPHER_get_handshake_digest,
1414
SSL_CIPHER_get_kx_nid,
1515
SSL_CIPHER_get_auth_nid,
16+
SSL_CIPHER_get_prf_nid,
1617
SSL_CIPHER_is_aead,
1718
SSL_CIPHER_find,
1819
SSL_CIPHER_get_id,
@@ -34,6 +35,7 @@ SSL_CIPHER_get_protocol_id
3435
const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c);
3536
int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
3637
int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
38+
int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c);
3739
int SSL_CIPHER_is_aead(const SSL_CIPHER *c);
3840
const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr);
3941
uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c);
@@ -91,6 +93,15 @@ TLS 1.3 cipher suites) B<NID_auth_any> is returned. Examples (not comprehensive)
9193
NID_auth_ecdsa
9294
NID_auth_psk
9395

96+
SSL_CIPHER_get_prf_nid() retuns the pseudo-random function NID for B<c>. If B<c> is
97+
a pre-TLS-1.2 cipher, it returns B<NID_md5_sha1> but note these ciphers use
98+
SHA-256 in TLS 1.2. Other return values may be treated uniformly in all
99+
applicable versions. Examples (not comprehensive):
100+
101+
NID_md5_sha1
102+
NID_sha256
103+
NID_sha384
104+
94105
SSL_CIPHER_is_aead() returns 1 if the cipher B<c> is AEAD (e.g. GCM or
95106
ChaCha20/Poly1305), and 0 if it is not AEAD.
96107

@@ -201,6 +212,8 @@ required to enable this function.
201212

202213
The OPENSSL_cipher_name() function was added in OpenSSL 1.1.1.
203214

215+
The SSL_CIPHER_get_prf_nid() function was added in OpenSSL 3.0.0.
216+
204217
=head1 COPYRIGHT
205218

206219
Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.

0 commit comments

Comments
 (0)