aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/rust-openssl.patch13
-rw-r--r--.github/workflows/regress.yml33
-rw-r--r--.gitignore4
-rw-r--r--ChangeLog144
-rw-r--r--crypto/CMakeLists.txt4
-rw-r--r--crypto/Makefile.am6
-rw-r--r--man/links34
-rw-r--r--patches/aeadtest.c.patch6
-rw-r--r--patches/bio.h.patch13
-rw-r--r--patches/bn_isqrt.c.patch18
-rw-r--r--patches/rfc5280.c.patch34
-rw-r--r--patches/tlsexttest.c.patch16
-rw-r--r--ssl/CMakeLists.txt2
-rw-r--r--ssl/Makefile.am2
-rwxr-xr-xtap-driver.sh2
-rw-r--r--tests/CMakeLists.txt89
-rw-r--r--tests/Makefile.am86
-rwxr-xr-xtests/aeadtest.sh8
-rw-r--r--tests/quictest.bat14
-rwxr-xr-xtests/quictest.sh13
-rwxr-xr-xupdate.sh2
21 files changed, 408 insertions, 135 deletions
diff --git a/.github/rust-openssl.patch b/.github/rust-openssl.patch
new file mode 100644
index 0000000..5821c72
--- /dev/null
+++ b/.github/rust-openssl.patch
@@ -0,0 +1,13 @@
1diff --git a/openssl-sys/build/main.rs b/openssl-sys/build/main.rs
2index 2ca53c97..56a60161 100644
3--- a/openssl-sys/build/main.rs
4+++ b/openssl-sys/build/main.rs
5@@ -281,7 +281,7 @@ See rust-openssl documentation for more information:
6 (3, 4, _) => ('3', '4', 'x'),
7 (3, 5, _) => ('3', '5', 'x'),
8 (3, 6, 0) => ('3', '6', '0'),
9- _ => version_error(),
10+ _ => ('3', '6', 'x'),
11 };
12
13 println!("cargo:libressl=true");
diff --git a/.github/workflows/regress.yml b/.github/workflows/regress.yml
new file mode 100644
index 0000000..88ce310
--- /dev/null
+++ b/.github/workflows/regress.yml
@@ -0,0 +1,33 @@
1name: regress testing
2
3on:
4 schedule:
5 - cron: "0 0 * * *"
6
7jobs:
8 rust-openssl:
9 runs-on: ubuntu-latest
10 steps:
11 - uses: actions/checkout@v3
12 - name: Install apt dependencies
13 run: |
14 sudo apt-get update
15 sudo apt-get install -y cargo
16 - name: Build LibreSSL
17 run: |
18 ./autogen.sh
19 ./configure
20 make dist
21 tar zxvf libressl-*.tar.gz
22 rm libressl-*.tar.gz
23 cd libressl-*
24 ./configure --prefix="${HOME}/opt"
25 make all install
26 - name: run rust-openssl tests
27 run: |
28 git clone https://github.com/sfackler/rust-openssl.git
29 cd rust-openssl
30 export OPENSSL_DIR=${HOME}/opt
31 export LD_LIBRARY_PATH=${HOME}/opt/lib
32 patch -p1 < ../.github/rust-openssl.patch
33 cargo test
diff --git a/.gitignore b/.gitignore
index b85cf10..e00baab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -63,11 +63,14 @@ tests/asn1complex*
63tests/asn1evp* 63tests/asn1evp*
64tests/asn1object* 64tests/asn1object*
65tests/asn1string_copy* 65tests/asn1string_copy*
66tests/asn1_string_to_utf8*
66tests/asn1time* 67tests/asn1time*
67tests/asn1x509* 68tests/asn1x509*
68tests/bnaddsub* 69tests/bnaddsub*
70tests/bn_isqrt*
69tests/bn_mod_exp2_mont* 71tests/bn_mod_exp2_mont*
70tests/bn_mod_sqrt* 72tests/bn_mod_sqrt*
73tests/bn_primes*
71tests/bn_rand_interval* 74tests/bn_rand_interval*
72tests/bn_to_string* 75tests/bn_to_string*
73tests/cipher* 76tests/cipher*
@@ -84,6 +87,7 @@ tests/rfc3779*
84tests/rfc5280time* 87tests/rfc5280time*
85tests/ssl_get_shared_ciphers* 88tests/ssl_get_shared_ciphers*
86tests/ssl_methods* 89tests/ssl_methods*
90tests/ssl_set_alpn_protos*
87tests/ssl_versions* 91tests/ssl_versions*
88tests/string_table* 92tests/string_table*
89tests/timingsafe* 93tests/timingsafe*
diff --git a/ChangeLog b/ChangeLog
index e4dc7ad..d5c4617 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -28,6 +28,150 @@ history is also available from Git.
28 28
29LibreSSL Portable Release Notes: 29LibreSSL Portable Release Notes:
30 30
313.6.0 - Development release
32
33 * Internal improvements
34 - Avoid expensive RFC 3779 checks during cert verification.
35 - The templated ASN.1 decoder has been cleaned up, refactored,
36 modernized with parts rewritten using CBB and CBS.
37 - The ASN.1 time parser has been rewritten.
38 - Rewrite and fix ASN1_STRING_to_UTF8().
39 - Use asn1_abs_set_unused_bits() rather than inlining it.
40 - Simplify ec_asn1_group2curve().
41 - First pass at a clean up of ASN1_item_sign_ctx()
42 - ssl_txt.c was cleaned up.
43 - Internal function arguments and struct member have been changed
44 to size_t.
45 - Lots of missing error checks of EVP API were added.
46 - Clean up and clarify BN_kronecker().
47 - Simplify ASN1_INTEGER_cmp()
48 - Rewrite ASN1_INTEGER_{get,set}() using CBS and CBB and reuse
49 the ASN1_INTEGER functions for ASN1_ENUMERATED.
50 - Use ASN1_INTEGER to parse and build {Z,}LONG_it
51 - Refactored and cleaned up group (elliptic curve) handling in
52 t1_lib.c.
53 - Simplify certificate list handling code in the legacy server.
54 - Make CBB_finish() fail if *out_data is not NULL.
55 - Remove tls_buffer_set_data() and remove/revise callers.
56 - Rewrite SSL{_CTX,}_set_alpn_protos() using CBS.
57 - Simplify tlsext_supported_groups_server_parse().
58 - Remove redundant length checks in tlsext parse functions.
59 - Simplify tls13_server_encrypted_extensions_recv().
60 - Add read and write support to tls_buffer.
61 - Convert TLS transcript from BUF_MEM to tls_buffer.
62 - Clear key on exit in PKCS12_gen_mac().
63 - Minor fixes in PKCS12_parse().
64 - Provide and use a primitive clear function for BIGNUM_it.
65 - Use ASN1_INTEGER to encode/decode BIGNUM_it.
66 - Add stack frames to AES-NI x86_64 assembly.
67 - Use named initialisers for BIGNUMs.
68 - Tidy up some of BN_nist_mod_*.
69 - Expand BLOCK_CIPHER_* and related macros.
70 - Avoid shadowing the cbs function parameter in
71 tlsext_alpn_server_parse()
72 - Deduplicate peer certificate chain processing code.
73 - Make it possible to signal an error from an i2c_* function.
74 - Rewrite i2c_ASN1_INTEGER() using CBB/CBS.
75 - Remove UINT32_MAX limitation on ChaCha() and CRYPTO_chacha_20().
76 - Remove bogus length checks from EVP_aead_chacha20_poly1305().
77 - Reworked DSA_size() and ECDSA_size().
78 - Stop using CBIGNUM_it internal to libcrypto.
79 - Provide c2i_ASN1_ENUMERATED_cbs() and call it from
80 asn1_c2i_primitive().
81 - Ensure ASN.1 types are appropriately encoded.
82 - Avoid recycling ASN1_STRINGs when decoding ASN.1.
83 - Tidy up asn1_c2i_primitive() slightly.
84 - Mechanically expand IMPLEMENT_BLOCK_CIPHER, IMPLEMENT_CFBR,
85 BLOCK_CIPHER and the looney M_do_cipher macros.
86 - Use correct length for EVP CFB mode ciphers.
87 - Provide a version of ssl_msg_callback() that takes a CBS.
88 - Use CBS to parse TLS alerts in the legacy stack.
89 - Increment the input and output position for EVP AES CFB1.
90 - Ensure there is no trailing data for a CCS received by the
91 TLSv1.3 stack.
92 - Use CBS when procesing a CCS message in the legacy stack.
93 - Be stricter with middlebox compatibility mode in the TLSv1.3
94 server.
95 * Compatibility changes
96 - The ASN.1 time parser has been refactored and rewritten using CBS.
97 It has been made stricter in that it now enforces the rules from
98 RFC 5280.
99 - ASN1_AFLG_BROKEN was removed.
100 - Error check tls_session_secret_cb() like OpenSSL.
101 - Added ASN1_INTEGER_{get,set}_{u,}int64()
102 - Move leaf certificate checks to the last thing after chain
103 validation.
104 - Added -s option to openssl(1) ciphers that only shows the ciphers
105 supported by the specified protocol.
106 - Use TLS_client_method() instead of TLSv1_client_method() in
107 the openssl(1) ciphers command.
108 - Validate the protocols in SSL{_CTX,}_set_alpn_protos().
109 - Made TS and PKCS12 opaque.
110 - Per RFC 7292, safeContentsBag is a SEQUENCE OF, not a SET OF.
111 - Align PKCS12_key_gen_uni() with OpenSSL
112 - Various PKCS12 and TS accessors were added. In particular, the
113 TS_RESP_CTX_set_time_cb() function was added back.
114 - Allow a NULL header in PEM_write{,_bio}()
115 - Allow empty attribute sets in CSRs.
116 - Adjust signatures of BIO_ctrl functions.
117 - Provide additional defines for EVP AEAD.
118 - Provide OPENSSL_cleanup().
119 - Make BIO_info_cb() identical to bio_info_cb().
120 * Bug fixes
121 - Avoid use of uninitialized in BN_mod_exp_recp().
122 - Fix X509_get_extension_flags() by ensuring that EXFLAG_INVALID is
123 set on X509_get_purpose() failure.
124 - Fix HMAC() with NULL key.
125 - Add ERR_load_{COMP,CT,KDF}_strings() to ERR_load_crypto_strings().
126 - Avoid strict aliasing violations in BN_nist_mod_*().
127 - Do not return X509_V_ERR_UNSPECIFIED from X509_check_ca().
128 No return value of X509_check_ca() indicates failure. Application
129 code should therefore issue a checked call to X509_check_purpose()
130 before calling X509_check_ca().
131 - Rewrite and fix X509v3_asid_subset() to avoid segfaults on some
132 valid input.
133 - Call the ASN1_OP_D2I_PRE callback after ASN1_item_ex_new().
134 - Fix d2i_ASN1_OBJECT to advance the *der_in pointer correctly.
135 - Avoid use of uninitialized in ASN1_STRING_to_UTF8().
136 - Do not pass uninitialized pointer to ASN1_STRING_to_UTF8().
137 - Do not refuse valid IPv6 addresses in nc(1)'s HTTP CONNECT proxy.
138 - Do not reject primes in trial divisions.
139 - Error out on negative shifts in BN_{r,l}shift() instead of
140 accessing arrays out of bounds.
141 - Fix URI name constraints, allow for URI's with no host part.
142 - Fix the legacy verifier callback behaviour for untrusted certs.
143 - Correct serfver-side handling of TLSv1.3 key updates.
144 - Plug leak in PKCS12_setup_mac().
145 - Plug leak in X509V3_add1_i2d().
146 - Only print X.509 versions we know about.
147 - Avoid signed integer overflow due to unary negation
148 - Initialize readbytes in BIO_gets().
149 - Plug memory leak in CMS_add_simple_smimecap().
150 - Plug memory leak in X509_REQ_print_ex().
151 - Check HMAC() return value to avoid a later use of uninitialized.
152 - Avoid potential NULL dereference in ssl_set_pkey().
153 - Check return values in ssl_print_tmp_key().
154 - Switch loop bounds from size_t to int in check_hosts().
155 - Avoid division by zero if no connection was made in s_time.c.
156 - Check sk_SSL_CIPHER_push() return value
157 - Avoid out-of-bounds read in ssl_cipher_process_rulestr().
158 - Use LONG_MAX as the limit for ciphers with long based APIs.
159 * New features
160 - EVP API for HKDF ported from OpenSSL and subsequently cleaned up.
161 - The security level API (SSL_{,CTX}_{get,set}_security_level()) is
162 now available. Callbacks and ex_data are not supported. Sane
163 software will not be using this.
164 - Experimental support for the BoringSSL QUIC API.
165 - Add initial support for TS ESSCertIDv2 verification.
166 - LibreSSL now uses the Baillie-PSW primality test instead of
167 Miller-Rabin .
168
1693.5.3 - Reliability fix
170
171 * Fix d2i_ASN1_OBJECT(). A confusion of two CBS resulted in advancing
172 the passed *der_in pointer incorrectly. Thanks to Aram Sargsyan for
173 reporting the issue and testing the fix.
174
313.5.2 - Stable release 1753.5.2 - Stable release
32 176
33 * Bug fixes 177 * Bug fixes
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 2d23332..2c0268c 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -333,6 +333,7 @@ set(
333 bn/bn_add.c 333 bn/bn_add.c
334 bn/bn_asm.c 334 bn/bn_asm.c
335 bn/bn_blind.c 335 bn/bn_blind.c
336 bn/bn_bpsw.c
336 bn/bn_const.c 337 bn/bn_const.c
337 bn/bn_ctx.c 338 bn/bn_ctx.c
338 bn/bn_depr.c 339 bn/bn_depr.c
@@ -342,6 +343,7 @@ set(
342 bn/bn_exp2.c 343 bn/bn_exp2.c
343 bn/bn_gcd.c 344 bn/bn_gcd.c
344 bn/bn_gf2m.c 345 bn/bn_gf2m.c
346 bn/bn_isqrt.c
345 bn/bn_kron.c 347 bn/bn_kron.c
346 bn/bn_lib.c 348 bn/bn_lib.c
347 bn/bn_mod.c 349 bn/bn_mod.c
@@ -656,6 +658,7 @@ set(
656 pkcs12/p12_npas.c 658 pkcs12/p12_npas.c
657 pkcs12/p12_p8d.c 659 pkcs12/p12_p8d.c
658 pkcs12/p12_p8e.c 660 pkcs12/p12_p8e.c
661 pkcs12/p12_sbag.c
659 pkcs12/p12_utl.c 662 pkcs12/p12_utl.c
660 pkcs12/pk12err.c 663 pkcs12/pk12err.c
661 pkcs7/bio_pk7.c 664 pkcs7/bio_pk7.c
@@ -996,6 +999,7 @@ target_include_directories(crypto_obj
996 hmac 999 hmac
997 modes 1000 modes
998 ocsp 1001 ocsp
1002 pkcs12
999 rsa 1003 rsa
1000 x509 1004 x509
1001 ../include/compat 1005 ../include/compat
diff --git a/crypto/Makefile.am b/crypto/Makefile.am
index b78f491..01833d2 100644
--- a/crypto/Makefile.am
+++ b/crypto/Makefile.am
@@ -15,6 +15,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/crypto/evp
15AM_CPPFLAGS += -I$(top_srcdir)/crypto/hmac 15AM_CPPFLAGS += -I$(top_srcdir)/crypto/hmac
16AM_CPPFLAGS += -I$(top_srcdir)/crypto/modes 16AM_CPPFLAGS += -I$(top_srcdir)/crypto/modes
17AM_CPPFLAGS += -I$(top_srcdir)/crypto/ocsp 17AM_CPPFLAGS += -I$(top_srcdir)/crypto/ocsp
18AM_CPPFLAGS += -I$(top_srcdir)/crypto/pkcs12
18AM_CPPFLAGS += -I$(top_srcdir)/crypto/rsa 19AM_CPPFLAGS += -I$(top_srcdir)/crypto/rsa
19AM_CPPFLAGS += -I$(top_srcdir)/crypto/x509 20AM_CPPFLAGS += -I$(top_srcdir)/crypto/x509
20AM_CPPFLAGS += -I$(top_srcdir)/crypto 21AM_CPPFLAGS += -I$(top_srcdir)/crypto
@@ -412,6 +413,7 @@ noinst_HEADERS += bio/bio_local.h
412libcrypto_la_SOURCES += bn/bn_add.c 413libcrypto_la_SOURCES += bn/bn_add.c
413libcrypto_la_SOURCES += bn/bn_asm.c 414libcrypto_la_SOURCES += bn/bn_asm.c
414libcrypto_la_SOURCES += bn/bn_blind.c 415libcrypto_la_SOURCES += bn/bn_blind.c
416libcrypto_la_SOURCES += bn/bn_bpsw.c
415libcrypto_la_SOURCES += bn/bn_const.c 417libcrypto_la_SOURCES += bn/bn_const.c
416libcrypto_la_SOURCES += bn/bn_ctx.c 418libcrypto_la_SOURCES += bn/bn_ctx.c
417libcrypto_la_SOURCES += bn/bn_depr.c 419libcrypto_la_SOURCES += bn/bn_depr.c
@@ -421,6 +423,7 @@ libcrypto_la_SOURCES += bn/bn_exp.c
421libcrypto_la_SOURCES += bn/bn_exp2.c 423libcrypto_la_SOURCES += bn/bn_exp2.c
422libcrypto_la_SOURCES += bn/bn_gcd.c 424libcrypto_la_SOURCES += bn/bn_gcd.c
423libcrypto_la_SOURCES += bn/bn_gf2m.c 425libcrypto_la_SOURCES += bn/bn_gf2m.c
426libcrypto_la_SOURCES += bn/bn_isqrt.c
424libcrypto_la_SOURCES += bn/bn_kron.c 427libcrypto_la_SOURCES += bn/bn_kron.c
425libcrypto_la_SOURCES += bn/bn_lib.c 428libcrypto_la_SOURCES += bn/bn_lib.c
426libcrypto_la_SOURCES += bn/bn_mod.c 429libcrypto_la_SOURCES += bn/bn_mod.c
@@ -837,8 +840,10 @@ libcrypto_la_SOURCES += pkcs12/p12_mutl.c
837libcrypto_la_SOURCES += pkcs12/p12_npas.c 840libcrypto_la_SOURCES += pkcs12/p12_npas.c
838libcrypto_la_SOURCES += pkcs12/p12_p8d.c 841libcrypto_la_SOURCES += pkcs12/p12_p8d.c
839libcrypto_la_SOURCES += pkcs12/p12_p8e.c 842libcrypto_la_SOURCES += pkcs12/p12_p8e.c
843libcrypto_la_SOURCES += pkcs12/p12_sbag.c
840libcrypto_la_SOURCES += pkcs12/p12_utl.c 844libcrypto_la_SOURCES += pkcs12/p12_utl.c
841libcrypto_la_SOURCES += pkcs12/pk12err.c 845libcrypto_la_SOURCES += pkcs12/pk12err.c
846noinst_HEADERS += pkcs12/pkcs12_local.h
842 847
843# pkcs7 848# pkcs7
844libcrypto_la_SOURCES += pkcs7/bio_pk7.c 849libcrypto_la_SOURCES += pkcs7/bio_pk7.c
@@ -927,6 +932,7 @@ libcrypto_la_SOURCES += ts/ts_rsp_sign.c
927libcrypto_la_SOURCES += ts/ts_rsp_utils.c 932libcrypto_la_SOURCES += ts/ts_rsp_utils.c
928libcrypto_la_SOURCES += ts/ts_rsp_verify.c 933libcrypto_la_SOURCES += ts/ts_rsp_verify.c
929libcrypto_la_SOURCES += ts/ts_verify_ctx.c 934libcrypto_la_SOURCES += ts/ts_verify_ctx.c
935noinst_HEADERS += ts/ts_local.h
930 936
931# txt_db 937# txt_db
932libcrypto_la_SOURCES += txt_db/txt_db.c 938libcrypto_la_SOURCES += txt_db/txt_db.c
diff --git a/man/links b/man/links
index b2d1783..16e159d 100644
--- a/man/links
+++ b/man/links
@@ -12,11 +12,17 @@ ASN1_BIT_STRING_set.3,ASN1_BIT_STRING_check.3
12ASN1_BIT_STRING_set.3,ASN1_BIT_STRING_get_bit.3 12ASN1_BIT_STRING_set.3,ASN1_BIT_STRING_get_bit.3
13ASN1_BIT_STRING_set.3,ASN1_BIT_STRING_set_bit.3 13ASN1_BIT_STRING_set.3,ASN1_BIT_STRING_set_bit.3
14ASN1_INTEGER_get.3,ASN1_ENUMERATED_get.3 14ASN1_INTEGER_get.3,ASN1_ENUMERATED_get.3
15ASN1_INTEGER_get.3,ASN1_ENUMERATED_get_int64.3
15ASN1_INTEGER_get.3,ASN1_ENUMERATED_set.3 16ASN1_INTEGER_get.3,ASN1_ENUMERATED_set.3
17ASN1_INTEGER_get.3,ASN1_ENUMERATED_set_int64.3
16ASN1_INTEGER_get.3,ASN1_ENUMERATED_to_BN.3 18ASN1_INTEGER_get.3,ASN1_ENUMERATED_to_BN.3
17ASN1_INTEGER_get.3,ASN1_INTEGER_cmp.3 19ASN1_INTEGER_get.3,ASN1_INTEGER_cmp.3
18ASN1_INTEGER_get.3,ASN1_INTEGER_dup.3 20ASN1_INTEGER_get.3,ASN1_INTEGER_dup.3
21ASN1_INTEGER_get.3,ASN1_INTEGER_get_int64.3
22ASN1_INTEGER_get.3,ASN1_INTEGER_get_uint64.3
19ASN1_INTEGER_get.3,ASN1_INTEGER_set.3 23ASN1_INTEGER_get.3,ASN1_INTEGER_set.3
24ASN1_INTEGER_get.3,ASN1_INTEGER_set_int64.3
25ASN1_INTEGER_get.3,ASN1_INTEGER_set_uint64.3
20ASN1_INTEGER_get.3,ASN1_INTEGER_to_BN.3 26ASN1_INTEGER_get.3,ASN1_INTEGER_to_BN.3
21ASN1_INTEGER_get.3,BN_to_ASN1_ENUMERATED.3 27ASN1_INTEGER_get.3,BN_to_ASN1_ENUMERATED.3
22ASN1_INTEGER_get.3,BN_to_ASN1_INTEGER.3 28ASN1_INTEGER_get.3,BN_to_ASN1_INTEGER.3
@@ -146,6 +152,7 @@ BIO_ctrl.3,BIO_eof.3
146BIO_ctrl.3,BIO_flush.3 152BIO_ctrl.3,BIO_flush.3
147BIO_ctrl.3,BIO_get_close.3 153BIO_ctrl.3,BIO_get_close.3
148BIO_ctrl.3,BIO_get_info_callback.3 154BIO_ctrl.3,BIO_get_info_callback.3
155BIO_ctrl.3,BIO_info_cb.3
149BIO_ctrl.3,BIO_int_ctrl.3 156BIO_ctrl.3,BIO_int_ctrl.3
150BIO_ctrl.3,BIO_pending.3 157BIO_ctrl.3,BIO_pending.3
151BIO_ctrl.3,BIO_ptr_ctrl.3 158BIO_ctrl.3,BIO_ptr_ctrl.3
@@ -155,7 +162,6 @@ BIO_ctrl.3,BIO_set_close.3
155BIO_ctrl.3,BIO_set_info_callback.3 162BIO_ctrl.3,BIO_set_info_callback.3
156BIO_ctrl.3,BIO_tell.3 163BIO_ctrl.3,BIO_tell.3
157BIO_ctrl.3,BIO_wpending.3 164BIO_ctrl.3,BIO_wpending.3
158BIO_ctrl.3,bio_info_cb.3
159BIO_dump.3,BIO_dump_fp.3 165BIO_dump.3,BIO_dump_fp.3
160BIO_dump.3,BIO_dump_indent.3 166BIO_dump.3,BIO_dump_indent.3
161BIO_dump.3,BIO_dump_indent_fp.3 167BIO_dump.3,BIO_dump_indent_fp.3
@@ -530,6 +536,7 @@ DES_set_key.3,DES_string_to_key.3
530DES_set_key.3,DES_xcbc_encrypt.3 536DES_set_key.3,DES_xcbc_encrypt.3
531DH_generate_key.3,DH_compute_key.3 537DH_generate_key.3,DH_compute_key.3
532DH_generate_parameters.3,DH_check.3 538DH_generate_parameters.3,DH_check.3
539DH_generate_parameters.3,DH_check_pub_key.3
533DH_generate_parameters.3,DH_generate_parameters_ex.3 540DH_generate_parameters.3,DH_generate_parameters_ex.3
534DH_get0_pqg.3,DH_clear_flags.3 541DH_get0_pqg.3,DH_clear_flags.3
535DH_get0_pqg.3,DH_get0_engine.3 542DH_get0_pqg.3,DH_get0_engine.3
@@ -571,6 +578,8 @@ DSA_get_ex_new_index.3,DSA_get_ex_data.3
571DSA_get_ex_new_index.3,DSA_set_ex_data.3 578DSA_get_ex_new_index.3,DSA_set_ex_data.3
572DSA_meth_new.3,DSA_meth_dup.3 579DSA_meth_new.3,DSA_meth_dup.3
573DSA_meth_new.3,DSA_meth_free.3 580DSA_meth_new.3,DSA_meth_free.3
581DSA_meth_new.3,DSA_meth_get0_name.3
582DSA_meth_new.3,DSA_meth_set1_name.3
574DSA_meth_new.3,DSA_meth_set_finish.3 583DSA_meth_new.3,DSA_meth_set_finish.3
575DSA_meth_new.3,DSA_meth_set_sign.3 584DSA_meth_new.3,DSA_meth_set_sign.3
576DSA_new.3,DSA_free.3 585DSA_new.3,DSA_free.3
@@ -581,6 +590,7 @@ DSA_set_method.3,DSA_new_method.3
581DSA_set_method.3,DSA_set_default_method.3 590DSA_set_method.3,DSA_set_default_method.3
582DSA_sign.3,DSA_sign_setup.3 591DSA_sign.3,DSA_sign_setup.3
583DSA_sign.3,DSA_verify.3 592DSA_sign.3,DSA_verify.3
593DSA_size.3,DSA_bits.3
584ECDH_compute_key.3,ECDH_size.3 594ECDH_compute_key.3,ECDH_size.3
585ECDSA_SIG_new.3,ECDSA_OpenSSL.3 595ECDSA_SIG_new.3,ECDSA_OpenSSL.3
586ECDSA_SIG_new.3,ECDSA_SIG_free.3 596ECDSA_SIG_new.3,ECDSA_SIG_free.3
@@ -1034,11 +1044,17 @@ EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_add0.3
1034EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_add_alias.3 1044EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_add_alias.3
1035EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_copy.3 1045EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_copy.3
1036EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_free.3 1046EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_free.3
1047EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_check.3
1037EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_ctrl.3 1048EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_ctrl.3
1038EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_free.3 1049EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_free.3
1039EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_param.3 1050EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_param.3
1051EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_param_check.3
1040EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_private.3 1052EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_private.3
1041EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_public.3 1053EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_public.3
1054EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_public_check.3
1055EVP_PKEY_asn1_new.3,EVP_PKEY_asn1_set_security_bits.3
1056EVP_PKEY_check.3,EVP_PKEY_param_check.3
1057EVP_PKEY_check.3,EVP_PKEY_public_check.3
1042EVP_PKEY_cmp.3,EVP_PKEY_cmp_parameters.3 1058EVP_PKEY_cmp.3,EVP_PKEY_cmp_parameters.3
1043EVP_PKEY_cmp.3,EVP_PKEY_copy_parameters.3 1059EVP_PKEY_cmp.3,EVP_PKEY_copy_parameters.3
1044EVP_PKEY_cmp.3,EVP_PKEY_missing_parameters.3 1060EVP_PKEY_cmp.3,EVP_PKEY_missing_parameters.3
@@ -1059,6 +1075,7 @@ EVP_PKEY_meth_new.3,EVP_PKEY_meth_add0.3
1059EVP_PKEY_meth_new.3,EVP_PKEY_meth_copy.3 1075EVP_PKEY_meth_new.3,EVP_PKEY_meth_copy.3
1060EVP_PKEY_meth_new.3,EVP_PKEY_meth_find.3 1076EVP_PKEY_meth_new.3,EVP_PKEY_meth_find.3
1061EVP_PKEY_meth_new.3,EVP_PKEY_meth_free.3 1077EVP_PKEY_meth_new.3,EVP_PKEY_meth_free.3
1078EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_check.3
1062EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_cleanup.3 1079EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_cleanup.3
1063EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_copy.3 1080EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_copy.3
1064EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_ctrl.3 1081EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_ctrl.3
@@ -1067,7 +1084,9 @@ EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_derive.3
1067EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_encrypt.3 1084EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_encrypt.3
1068EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_init.3 1085EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_init.3
1069EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_keygen.3 1086EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_keygen.3
1087EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_param_check.3
1070EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_paramgen.3 1088EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_paramgen.3
1089EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_public_check.3
1071EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_sign.3 1090EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_sign.3
1072EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_signctx.3 1091EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_signctx.3
1073EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_verify.3 1092EVP_PKEY_meth_new.3,EVP_PKEY_meth_set_verify.3
@@ -1103,12 +1122,12 @@ EVP_PKEY_set1_RSA.3,EVP_PKEY_set1_EC_KEY.3
1103EVP_PKEY_set1_RSA.3,EVP_PKEY_set_type.3 1122EVP_PKEY_set1_RSA.3,EVP_PKEY_set_type.3
1104EVP_PKEY_set1_RSA.3,EVP_PKEY_type.3 1123EVP_PKEY_set1_RSA.3,EVP_PKEY_type.3
1105EVP_PKEY_sign.3,EVP_PKEY_sign_init.3 1124EVP_PKEY_sign.3,EVP_PKEY_sign_init.3
1125EVP_PKEY_size.3,EVP_PKEY_bits.3
1126EVP_PKEY_size.3,EVP_PKEY_security_bits.3
1106EVP_PKEY_verify.3,EVP_PKEY_verify_init.3 1127EVP_PKEY_verify.3,EVP_PKEY_verify_init.3
1107EVP_PKEY_verify_recover.3,EVP_PKEY_verify_recover_init.3 1128EVP_PKEY_verify_recover.3,EVP_PKEY_verify_recover_init.3
1108EVP_SealInit.3,EVP_SealFinal.3 1129EVP_SealInit.3,EVP_SealFinal.3
1109EVP_SealInit.3,EVP_SealUpdate.3 1130EVP_SealInit.3,EVP_SealUpdate.3
1110EVP_SignInit.3,EVP_PKEY_bits.3
1111EVP_SignInit.3,EVP_PKEY_size.3
1112EVP_SignInit.3,EVP_SignFinal.3 1131EVP_SignInit.3,EVP_SignFinal.3
1113EVP_SignInit.3,EVP_SignInit_ex.3 1132EVP_SignInit.3,EVP_SignInit_ex.3
1114EVP_SignInit.3,EVP_SignUpdate.3 1133EVP_SignInit.3,EVP_SignUpdate.3
@@ -1611,6 +1630,9 @@ RSA_print.3,DSAparams_print_fp.3
1611RSA_print.3,RSA_print_fp.3 1630RSA_print.3,RSA_print_fp.3
1612RSA_private_encrypt.3,RSA_public_decrypt.3 1631RSA_private_encrypt.3,RSA_public_decrypt.3
1613RSA_public_encrypt.3,RSA_private_decrypt.3 1632RSA_public_encrypt.3,RSA_private_decrypt.3
1633RSA_security_bits.3,BN_security_bits.3
1634RSA_security_bits.3,DH_security_bits.3
1635RSA_security_bits.3,DSA_security_bits.3
1614RSA_set_method.3,RSA_PKCS1_SSLeay.3 1636RSA_set_method.3,RSA_PKCS1_SSLeay.3
1615RSA_set_method.3,RSA_flags.3 1637RSA_set_method.3,RSA_flags.3
1616RSA_set_method.3,RSA_get_default_method.3 1638RSA_set_method.3,RSA_get_default_method.3
@@ -1785,6 +1807,9 @@ SSL_CTX_set_read_ahead.3,SSL_CTX_get_default_read_ahead.3
1785SSL_CTX_set_read_ahead.3,SSL_CTX_get_read_ahead.3 1807SSL_CTX_set_read_ahead.3,SSL_CTX_get_read_ahead.3
1786SSL_CTX_set_read_ahead.3,SSL_get_read_ahead.3 1808SSL_CTX_set_read_ahead.3,SSL_get_read_ahead.3
1787SSL_CTX_set_read_ahead.3,SSL_set_read_ahead.3 1809SSL_CTX_set_read_ahead.3,SSL_set_read_ahead.3
1810SSL_CTX_set_security_level.3,SSL_CTX_get_security_level.3
1811SSL_CTX_set_security_level.3,SSL_get_security_level.3
1812SSL_CTX_set_security_level.3,SSL_set_security_level.3
1788SSL_CTX_set_session_cache_mode.3,SSL_CTX_get_session_cache_mode.3 1813SSL_CTX_set_session_cache_mode.3,SSL_CTX_get_session_cache_mode.3
1789SSL_CTX_set_session_id_context.3,SSL_set_session_id_context.3 1814SSL_CTX_set_session_id_context.3,SSL_set_session_id_context.3
1790SSL_CTX_set_ssl_version.3,SSL_CTX_get_ssl_method.3 1815SSL_CTX_set_ssl_version.3,SSL_CTX_get_ssl_method.3
@@ -2243,12 +2268,14 @@ X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get0_name.3
2243X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get0_peername.3 2268X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get0_peername.3
2244X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get_depth.3 2269X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get_depth.3
2245X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get_flags.3 2270X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get_flags.3
2271X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_get_time.3
2246X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_email.3 2272X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_email.3
2247X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_host.3 2273X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_host.3
2248X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_ip.3 2274X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_ip.3
2249X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_ip_asc.3 2275X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_ip_asc.3
2250X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_name.3 2276X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_name.3
2251X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_policies.3 2277X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set1_policies.3
2278X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set_auth_level.3
2252X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set_depth.3 2279X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set_depth.3
2253X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set_hostflags.3 2280X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set_hostflags.3
2254X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set_purpose.3 2281X509_VERIFY_PARAM_set_flags.3,X509_VERIFY_PARAM_set_purpose.3
@@ -2445,7 +2472,6 @@ d2i_ASN1_OCTET_STRING.3,d2i_ASN1_UTF8STRING.3
2445d2i_ASN1_OCTET_STRING.3,d2i_ASN1_VISIBLESTRING.3 2472d2i_ASN1_OCTET_STRING.3,d2i_ASN1_VISIBLESTRING.3
2446d2i_ASN1_OCTET_STRING.3,d2i_DIRECTORYSTRING.3 2473d2i_ASN1_OCTET_STRING.3,d2i_DIRECTORYSTRING.3
2447d2i_ASN1_OCTET_STRING.3,d2i_DISPLAYTEXT.3 2474d2i_ASN1_OCTET_STRING.3,d2i_DISPLAYTEXT.3
2448d2i_ASN1_OCTET_STRING.3,i2c_ASN1_INTEGER.3
2449d2i_ASN1_OCTET_STRING.3,i2d_ASN1_BIT_STRING.3 2475d2i_ASN1_OCTET_STRING.3,i2d_ASN1_BIT_STRING.3
2450d2i_ASN1_OCTET_STRING.3,i2d_ASN1_BMPSTRING.3 2476d2i_ASN1_OCTET_STRING.3,i2d_ASN1_BMPSTRING.3
2451d2i_ASN1_OCTET_STRING.3,i2d_ASN1_ENUMERATED.3 2477d2i_ASN1_OCTET_STRING.3,i2d_ASN1_ENUMERATED.3
diff --git a/patches/aeadtest.c.patch b/patches/aeadtest.c.patch
index 4f7319d..b3fe052 100644
--- a/patches/aeadtest.c.patch
+++ b/patches/aeadtest.c.patch
@@ -1,6 +1,6 @@
1--- tests/aeadtest.c.orig Sat Jan 26 12:39:05 2019 1--- tests/aeadtest.c.orig Mon Sep 5 22:30:33 2022
2+++ tests/aeadtest.c Fri Sep 4 04:04:26 2020 2+++ tests/aeadtest.c Mon Sep 5 23:51:27 2022
3@@ -79,6 +79,12 @@ 3@@ -48,6 +48,12 @@
4 4
5 #define BUF_MAX 1024 5 #define BUF_MAX 1024
6 6
diff --git a/patches/bio.h.patch b/patches/bio.h.patch
index 29bba0c..072bc3b 100644
--- a/patches/bio.h.patch
+++ b/patches/bio.h.patch
@@ -1,6 +1,6 @@
1--- include/openssl/bio.h.orig Fri Feb 18 16:30:39 2022 1--- include/openssl/bio.h.orig Mon Sep 5 22:30:32 2022
2+++ include/openssl/bio.h Mon Feb 21 05:39:35 2022 2+++ include/openssl/bio.h Tue Sep 6 01:38:22 2022
3@@ -666,8 +666,24 @@ 3@@ -666,8 +666,24 @@ void BIO_copy_next_retry(BIO *b);
4 4
5 /*long BIO_ghbn_ctrl(int cmd,int iarg,char *parg);*/ 5 /*long BIO_ghbn_ctrl(int cmd,int iarg,char *parg);*/
6 6
@@ -25,12 +25,11 @@
25 __attribute__((__format__(__printf__, 2, 3), __nonnull__(2))); 25 __attribute__((__format__(__printf__, 2, 3), __nonnull__(2)));
26 int 26 int
27 BIO_vprintf(BIO *bio, const char *format, va_list args) 27 BIO_vprintf(BIO *bio, const char *format, va_list args)
28@@ -680,6 +696,8 @@ 28@@ -680,6 +696,7 @@ int
29 BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) 29 BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
30 __attribute__((__deprecated__, __format__(__printf__, 3, 0), 30 __attribute__((__deprecated__, __format__(__printf__, 3, 0),
31 __nonnull__(3))); 31 __nonnull__(3)));
32+#endif 32+#endif
33+
34 33
35 /* BEGIN ERROR CODES */ 34 void ERR_load_BIO_strings(void);
36 /* The following lines are auto generated by the script mkerr.pl. Any changes 35
diff --git a/patches/bn_isqrt.c.patch b/patches/bn_isqrt.c.patch
new file mode 100644
index 0000000..bf205a3
--- /dev/null
+++ b/patches/bn_isqrt.c.patch
@@ -0,0 +1,18 @@
1--- tests/bn_isqrt.c.orig Mon Aug 15 10:40:29 2022
2+++ tests/bn_isqrt.c Mon Aug 15 10:41:46 2022
3@@ -304,6 +304,7 @@ main(int argc, char *argv[])
4 int ch;
5 int failed = 0, print = 0;
6
7+#ifndef _MSC_VER
8 while ((ch = getopt(argc, argv, "C")) != -1) {
9 switch (ch) {
10 case 'C':
11@@ -314,6 +315,7 @@ main(int argc, char *argv[])
12 break;
13 }
14 }
15+#endif
16
17 if (print)
18 return check_tables(1);
diff --git a/patches/rfc5280.c.patch b/patches/rfc5280.c.patch
index 9262183..9807f00 100644
--- a/patches/rfc5280.c.patch
+++ b/patches/rfc5280.c.patch
@@ -46,37 +46,3 @@
46 { 46 {
47 .str = "700101000000Z", 47 .str = "700101000000Z",
48 .data = "700101000000Z", 48 .data = "700101000000Z",
49@@ -273,14 +279,14 @@
50
51 if ((i = X509_cmp_time(gt, &att->time)) != -1) {
52 fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n",
53- test_no, i, att->time);
54+ test_no, i, (long long)att->time);
55 goto done;
56 }
57
58 att->time--;
59 if ((i = X509_cmp_time(gt, &att->time)) != 1) {
60 fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n",
61- test_no, i, att->time);
62+ test_no, i, (long long)att->time);
63 goto done;
64 }
65 att->time++;
66@@ -325,14 +331,14 @@
67
68 if ((i = X509_cmp_time(ut, &att->time)) != -1) {
69 fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n",
70- test_no, i, att->time);
71+ test_no, i, (long long)att->time);
72 goto done;
73 }
74
75 att->time--;
76 if ((i = X509_cmp_time(ut, &att->time)) != 1) {
77 fprintf(stderr, "FAIL: test %i - X509_cmp_time failed - returned %d compared to %lld\n",
78- test_no, i, att->time);
79+ test_no, i, (long long)att->time);
80 goto done;
81 }
82 att->time++;
diff --git a/patches/tlsexttest.c.patch b/patches/tlsexttest.c.patch
index b1b8652..bc81da5 100644
--- a/patches/tlsexttest.c.patch
+++ b/patches/tlsexttest.c.patch
@@ -1,6 +1,6 @@
1--- tests/tlsexttest.c.orig Fri Feb 18 16:30:40 2022 1--- tests/tlsexttest.c.orig Mon Sep 5 22:30:36 2022
2+++ tests/tlsexttest.c Mon Feb 21 05:39:35 2022 2+++ tests/tlsexttest.c Mon Sep 5 22:32:52 2022
3@@ -1658,7 +1658,9 @@ 3@@ -1773,7 +1773,9 @@ static unsigned char tlsext_sni_client[] = {
4 }; 4 };
5 5
6 static unsigned char tlsext_sni_server[] = { 6 static unsigned char tlsext_sni_server[] = {
@@ -10,7 +10,7 @@
10 10
11 static int 11 static int
12 test_tlsext_sni_client(void) 12 test_tlsext_sni_client(void)
13@@ -1843,9 +1845,9 @@ 13@@ -1971,9 +1973,9 @@ test_tlsext_sni_server(void)
14 if (!CBB_finish(&cbb, &data, &dlen)) 14 if (!CBB_finish(&cbb, &data, &dlen))
15 errx(1, "failed to finish CBB"); 15 errx(1, "failed to finish CBB");
16 16
@@ -22,7 +22,7 @@
22 goto err; 22 goto err;
23 } 23 }
24 24
25@@ -1854,14 +1856,14 @@ 25@@ -1982,14 +1984,14 @@ test_tlsext_sni_server(void)
26 fprintf(stderr, "received:\n"); 26 fprintf(stderr, "received:\n");
27 hexdump(data, dlen); 27 hexdump(data, dlen);
28 fprintf(stderr, "test data:\n"); 28 fprintf(stderr, "test data:\n");
@@ -36,10 +36,10 @@
36 36
37- CBS_init(&cbs, tlsext_sni_server, sizeof(tlsext_sni_server)); 37- CBS_init(&cbs, tlsext_sni_server, sizeof(tlsext_sni_server));
38+ CBS_init(&cbs, tlsext_sni_server, sizeof_tlsext_sni_server); 38+ CBS_init(&cbs, tlsext_sni_server, sizeof_tlsext_sni_server);
39 if (!tlsext_sni_client_parse(ssl, SSL_TLSEXT_MSG_SH, &cbs, &alert)) { 39 if (!client_funcs->parse(ssl, SSL_TLSEXT_MSG_SH, &cbs, &alert)) {
40 FAIL("failed to parse server SNI\n"); 40 FAIL("failed to parse server SNI\n");
41 goto err; 41 goto err;
42@@ -2747,7 +2749,10 @@ 42@@ -3196,7 +3198,10 @@ unsigned char tlsext_clienthello_default[] = {
43 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 43 0x04, 0x03, 0x02, 0x01, 0x02, 0x03,
44 }; 44 };
45 45
@@ -51,7 +51,7 @@
51 51
52 static int 52 static int
53 test_tlsext_clienthello_build(void) 53 test_tlsext_clienthello_build(void)
54@@ -2826,18 +2831,18 @@ 54@@ -3282,18 +3287,18 @@ test_tlsext_clienthello_build(void)
55 goto err; 55 goto err;
56 } 56 }
57 57
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt
index 07636ad..8e974a8 100644
--- a/ssl/CMakeLists.txt
+++ b/ssl/CMakeLists.txt
@@ -37,6 +37,7 @@ set(
37 tls_buffer.c 37 tls_buffer.c
38 tls_content.c 38 tls_content.c
39 tls_key_share.c 39 tls_key_share.c
40 tls_lib.c
40 tls12_key_schedule.c 41 tls12_key_schedule.c
41 tls12_lib.c 42 tls12_lib.c
42 tls12_record_layer.c 43 tls12_record_layer.c
@@ -47,6 +48,7 @@ set(
47 tls13_key_schedule.c 48 tls13_key_schedule.c
48 tls13_legacy.c 49 tls13_legacy.c
49 tls13_lib.c 50 tls13_lib.c
51 tls13_quic.c
50 tls13_record.c 52 tls13_record.c
51 tls13_record_layer.c 53 tls13_record_layer.c
52 tls13_server.c 54 tls13_server.c
diff --git a/ssl/Makefile.am b/ssl/Makefile.am
index 9cf3839..d5c0466 100644
--- a/ssl/Makefile.am
+++ b/ssl/Makefile.am
@@ -76,6 +76,7 @@ libssl_la_SOURCES += t1_lib.c
76libssl_la_SOURCES += tls_buffer.c 76libssl_la_SOURCES += tls_buffer.c
77libssl_la_SOURCES += tls_content.c 77libssl_la_SOURCES += tls_content.c
78libssl_la_SOURCES += tls_key_share.c 78libssl_la_SOURCES += tls_key_share.c
79libssl_la_SOURCES += tls_lib.c
79libssl_la_SOURCES += tls12_key_schedule.c 80libssl_la_SOURCES += tls12_key_schedule.c
80libssl_la_SOURCES += tls12_lib.c 81libssl_la_SOURCES += tls12_lib.c
81libssl_la_SOURCES += tls12_record_layer.c 82libssl_la_SOURCES += tls12_record_layer.c
@@ -86,6 +87,7 @@ libssl_la_SOURCES += tls13_handshake_msg.c
86libssl_la_SOURCES += tls13_key_schedule.c 87libssl_la_SOURCES += tls13_key_schedule.c
87libssl_la_SOURCES += tls13_legacy.c 88libssl_la_SOURCES += tls13_legacy.c
88libssl_la_SOURCES += tls13_lib.c 89libssl_la_SOURCES += tls13_lib.c
90libssl_la_SOURCES += tls13_quic.c
89libssl_la_SOURCES += tls13_record.c 91libssl_la_SOURCES += tls13_record.c
90libssl_la_SOURCES += tls13_record_layer.c 92libssl_la_SOURCES += tls13_record_layer.c
91libssl_la_SOURCES += tls13_server.c 93libssl_la_SOURCES += tls13_server.c
diff --git a/tap-driver.sh b/tap-driver.sh
index 0ca4903..fea066f 100755
--- a/tap-driver.sh
+++ b/tap-driver.sh
@@ -1,5 +1,5 @@
1#! /bin/sh 1#! /bin/sh
2# Copyright (C) 2011-2020 Free Software Foundation, Inc. 2# Copyright (C) 2011-2021 Free Software Foundation, Inc.
3# 3#
4# This program is free software; you can redistribute it and/or modify 4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by 5# it under the terms of the GNU General Public License as published by
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index e6cb2bc..9b10b33 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -4,6 +4,7 @@ include_directories(
4 . 4 .
5 ../crypto/asn1 5 ../crypto/asn1
6 ../crypto/bio 6 ../crypto/bio
7 ../crypto/bn
7 ../crypto/evp 8 ../crypto/evp
8 ../crypto/modes 9 ../crypto/modes
9 ../crypto/x509 10 ../crypto/x509
@@ -21,7 +22,12 @@ file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR} TEST_SOURCE_DIR)
21# aeadtest 22# aeadtest
22add_executable(aeadtest aeadtest.c) 23add_executable(aeadtest aeadtest.c)
23target_link_libraries(aeadtest ${OPENSSL_TEST_LIBS}) 24target_link_libraries(aeadtest ${OPENSSL_TEST_LIBS})
24add_test(aeadtest aeadtest ${CMAKE_CURRENT_SOURCE_DIR}/aeadtests.txt) 25if(NOT WIN32)
26 add_test(NAME aeadtest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/aeadtest.sh)
27 set_tests_properties(aeadtest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
28else()
29 add_test(aeadtest aeadtest aead ${CMAKE_CURRENT_SOURCE_DIR}/aeadtests.txt)
30endif()
25 31
26# aes_wrap 32# aes_wrap
27add_executable(aes_wrap aes_wrap.c) 33add_executable(aes_wrap aes_wrap.c)
@@ -104,6 +110,11 @@ add_executable(bnaddsub bnaddsub.c)
104target_link_libraries(bnaddsub ${OPENSSL_TEST_LIBS}) 110target_link_libraries(bnaddsub ${OPENSSL_TEST_LIBS})
105add_test(bnaddsub bnaddsub) 111add_test(bnaddsub bnaddsub)
106 112
113# bn_isqrt
114add_executable(bn_isqrt bn_isqrt.c)
115target_link_libraries(bn_isqrt ${OPENSSL_TEST_LIBS})
116add_test(bn_isqrt bn_isqrt)
117
107# bn_mod_exp2_mont 118# bn_mod_exp2_mont
108add_executable(bn_mod_exp2_mont bn_mod_exp2_mont.c) 119add_executable(bn_mod_exp2_mont bn_mod_exp2_mont.c)
109target_link_libraries(bn_mod_exp2_mont ${OPENSSL_TEST_LIBS}) 120target_link_libraries(bn_mod_exp2_mont ${OPENSSL_TEST_LIBS})
@@ -114,6 +125,11 @@ add_executable(bn_mod_sqrt bn_mod_sqrt.c)
114target_link_libraries(bn_mod_sqrt ${OPENSSL_TEST_LIBS}) 125target_link_libraries(bn_mod_sqrt ${OPENSSL_TEST_LIBS})
115add_test(bn_mod_sqrt bn_mod_sqrt) 126add_test(bn_mod_sqrt bn_mod_sqrt)
116 127
128# bn_primes
129add_executable(bn_primes bn_primes.c)
130target_link_libraries(bn_primes ${OPENSSL_TEST_LIBS})
131add_test(bn_primes bn_primes)
132
117# bn_rand_interval 133# bn_rand_interval
118add_executable(bn_rand_interval bn_rand_interval.c) 134add_executable(bn_rand_interval bn_rand_interval.c)
119target_link_libraries(bn_rand_interval ${OPENSSL_TEST_LIBS}) 135target_link_libraries(bn_rand_interval ${OPENSSL_TEST_LIBS})
@@ -326,15 +342,10 @@ add_test(keypairtest keypairtest
326 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem 342 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem
327 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem) 343 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem)
328 344
329# md4test 345# md_test
330add_executable(md4test md4test.c) 346add_executable(md_test md_test.c)
331target_link_libraries(md4test ${OPENSSL_TEST_LIBS}) 347target_link_libraries(md_test ${OPENSSL_TEST_LIBS})
332add_test(md4test md4test) 348add_test(md_test md_test)
333
334# md5test
335add_executable(md5test md5test.c)
336target_link_libraries(md5test ${OPENSSL_TEST_LIBS})
337add_test(md5test md5test)
338 349
339# mont 350# mont
340add_executable(mont mont.c) 351add_executable(mont mont.c)
@@ -397,20 +408,31 @@ else()
397endif() 408endif()
398set_tests_properties(pq_test PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}") 409set_tests_properties(pq_test PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
399 410
411# quictest
412set(QUICTEST_SRC quictest.c)
413add_executable(quictest ${QUICTEST_SRC})
414target_link_libraries(quictest ${OPENSSL_TEST_LIBS})
415if(NOT MSVC)
416 add_test(NAME quictest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/quictest.sh)
417else()
418 add_test(NAME quictest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/quictest.bat $<TARGET_FILE:quictest>)
419endif()
420set_tests_properties(quictest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
421
400# randtest 422# randtest
401add_executable(randtest randtest.c) 423add_executable(randtest randtest.c)
402target_link_libraries(randtest ${OPENSSL_TEST_LIBS}) 424target_link_libraries(randtest ${OPENSSL_TEST_LIBS})
403add_test(randtest randtest) 425add_test(randtest randtest)
404 426
405# rc2test 427# rc2_test
406add_executable(rc2test rc2test.c) 428add_executable(rc2_test rc2_test.c)
407target_link_libraries(rc2test ${OPENSSL_TEST_LIBS}) 429target_link_libraries(rc2_test ${OPENSSL_TEST_LIBS})
408add_test(rc2test rc2test) 430add_test(rc2_test rc2_test)
409 431
410# rc4test 432# rc4_test
411add_executable(rc4test rc4test.c) 433add_executable(rc4_test rc4_test.c)
412target_link_libraries(rc4test ${OPENSSL_TEST_LIBS}) 434target_link_libraries(rc4_test ${OPENSSL_TEST_LIBS})
413add_test(rc4test rc4test) 435add_test(rc4_test rc4_test)
414 436
415# recordtest 437# recordtest
416add_executable(recordtest recordtest.c) 438add_executable(recordtest recordtest.c)
@@ -437,10 +459,10 @@ else()
437 add_test(rfc5280time rfc5280time) 459 add_test(rfc5280time rfc5280time)
438endif() 460endif()
439 461
440# rmdtest 462# rmd_test
441add_executable(rmdtest rmdtest.c) 463add_executable(rmd_test rmd_test.c)
442target_link_libraries(rmdtest ${OPENSSL_TEST_LIBS}) 464target_link_libraries(rmd_test ${OPENSSL_TEST_LIBS})
443add_test(rmdtest rmdtest) 465add_test(rmd_test rmd_test)
444 466
445# rsa_test 467# rsa_test
446add_executable(rsa_test rsa_test.c) 468add_executable(rsa_test rsa_test.c)
@@ -457,20 +479,10 @@ else()
457endif() 479endif()
458set_tests_properties(servertest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}") 480set_tests_properties(servertest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
459 481
460# sha1test 482# sha_test
461add_executable(sha1test sha1test.c) 483add_executable(sha_test sha_test.c)
462target_link_libraries(sha1test ${OPENSSL_TEST_LIBS}) 484target_link_libraries(sha_test ${OPENSSL_TEST_LIBS})
463add_test(sha1test sha1test) 485add_test(sha_test sha_test)
464
465# sha256test
466add_executable(sha256test sha256test.c)
467target_link_libraries(sha256test ${OPENSSL_TEST_LIBS})
468add_test(sha256test sha256test)
469
470# sha512test
471add_executable(sha512test sha512test.c)
472target_link_libraries(sha512test ${OPENSSL_TEST_LIBS})
473add_test(sha512test sha512test)
474 486
475# sm3test 487# sm3test
476add_executable(sm3test sm3test.c) 488add_executable(sm3test sm3test.c)
@@ -494,6 +506,11 @@ add_executable(ssl_methods ssl_methods.c)
494target_link_libraries(ssl_methods ${OPENSSL_TEST_LIBS}) 506target_link_libraries(ssl_methods ${OPENSSL_TEST_LIBS})
495add_test(ssl_methods ssl_methods) 507add_test(ssl_methods ssl_methods)
496 508
509# ssl_set_alpn_protos
510add_executable(ssl_set_alpn_protos ssl_set_alpn_protos.c)
511target_link_libraries(ssl_set_alpn_protos ${OPENSSL_TEST_LIBS})
512add_test(ssl_set_alpn_protos ssl_set_alpn_protos)
513
497# ssl_versions 514# ssl_versions
498add_executable(ssl_versions ssl_versions.c) 515add_executable(ssl_versions ssl_versions.c)
499target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS}) 516target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS})
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5f768e2..24e6f2e 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -34,6 +34,11 @@ check_PROGRAMS += aeadtest
34aeadtest_SOURCES = aeadtest.c 34aeadtest_SOURCES = aeadtest.c
35EXTRA_DIST += aeadtest.sh 35EXTRA_DIST += aeadtest.sh
36EXTRA_DIST += aeadtests.txt 36EXTRA_DIST += aeadtests.txt
37EXTRA_DIST += aes_128_gcm_tests.txt
38EXTRA_DIST += aes_192_gcm_tests.txt
39EXTRA_DIST += aes_256_gcm_tests.txt
40EXTRA_DIST += chacha20_poly1305_tests.txt
41EXTRA_DIST += xchacha20_poly1305_tests.txt
37 42
38# aes_wrap 43# aes_wrap
39TESTS += aes_wrap 44TESTS += aes_wrap
@@ -117,16 +122,16 @@ check_PROGRAMS += biotest
117biotest_SOURCES = biotest.c 122biotest_SOURCES = biotest.c
118endif 123endif
119 124
120# bn_primes
121TESTS += bn_primes
122check_PROGRAMS += bn_primes
123bn_primes_SOURCES = bn_primes.c
124
125# bnaddsub 125# bnaddsub
126TESTS += bnaddsub 126TESTS += bnaddsub
127check_PROGRAMS += bnaddsub 127check_PROGRAMS += bnaddsub
128bnaddsub_SOURCES = bnaddsub.c 128bnaddsub_SOURCES = bnaddsub.c
129 129
130# bn_isqrt
131TESTS += bn_isqrt
132check_PROGRAMS += bn_isqrt
133bn_isqrt_SOURCES = bn_isqrt.c
134
130# bn_mod_exp2_mont 135# bn_mod_exp2_mont
131TESTS += bn_mod_exp2_mont 136TESTS += bn_mod_exp2_mont
132check_PROGRAMS += bn_mod_exp2_mont 137check_PROGRAMS += bn_mod_exp2_mont
@@ -137,6 +142,11 @@ TESTS += bn_mod_sqrt
137check_PROGRAMS += bn_mod_sqrt 142check_PROGRAMS += bn_mod_sqrt
138bn_mod_sqrt_SOURCES = bn_mod_sqrt.c 143bn_mod_sqrt_SOURCES = bn_mod_sqrt.c
139 144
145# bn_primes
146TESTS += bn_primes
147check_PROGRAMS += bn_primes
148bn_primes_SOURCES = bn_primes.c
149
140# bn_rand_interval 150# bn_rand_interval
141TESTS += bn_rand_interval 151TESTS += bn_rand_interval
142check_PROGRAMS += bn_rand_interval 152check_PROGRAMS += bn_rand_interval
@@ -350,15 +360,10 @@ check_PROGRAMS += keypairtest
350keypairtest_SOURCES = keypairtest.c 360keypairtest_SOURCES = keypairtest.c
351EXTRA_DIST += keypairtest.sh 361EXTRA_DIST += keypairtest.sh
352 362
353# md4test 363# md_test
354TESTS += md4test 364TESTS += md_test
355check_PROGRAMS += md4test 365check_PROGRAMS += md_test
356md4test_SOURCES = md4test.c 366md_test_SOURCES = md_test.c
357
358# md5test
359TESTS += md5test
360check_PROGRAMS += md5test
361md5test_SOURCES = md5test.c
362 367
363# mont 368# mont
364TESTS += mont 369TESTS += mont
@@ -415,20 +420,26 @@ pq_test_SOURCES = pq_test.c
415EXTRA_DIST += pq_test.sh pq_test.bat 420EXTRA_DIST += pq_test.sh pq_test.bat
416EXTRA_DIST += pq_expected.txt 421EXTRA_DIST += pq_expected.txt
417 422
423# quictest
424TESTS += quictest.sh
425check_PROGRAMS += quictest
426quictest_SOURCES = quictest.c
427EXTRA_DIST += quictest.sh quictest.bat
428
418# randtest 429# randtest
419TESTS += randtest 430TESTS += randtest
420check_PROGRAMS += randtest 431check_PROGRAMS += randtest
421randtest_SOURCES = randtest.c 432randtest_SOURCES = randtest.c
422 433
423# rc2test 434# rc2_test
424TESTS += rc2test 435TESTS += rc2_test
425check_PROGRAMS += rc2test 436check_PROGRAMS += rc2_test
426rc2test_SOURCES = rc2test.c 437rc2_test_SOURCES = rc2_test.c
427 438
428# rc4test 439# rc4_test
429TESTS += rc4test 440TESTS += rc4_test
430check_PROGRAMS += rc4test 441check_PROGRAMS += rc4_test
431rc4test_SOURCES = rc4test.c 442rc4_test_SOURCES = rc4_test.c
432 443
433# recordtest 444# recordtest
434TESTS += recordtest 445TESTS += recordtest
@@ -456,10 +467,10 @@ TESTS += rfc5280time
456endif 467endif
457EXTRA_DIST += rfc5280time_small.test 468EXTRA_DIST += rfc5280time_small.test
458 469
459# rmdtest 470# rmd_test
460TESTS += rmdtest 471TESTS += rmd_test
461check_PROGRAMS += rmdtest 472check_PROGRAMS += rmd_test
462rmdtest_SOURCES = rmdtest.c 473rmd_test_SOURCES = rmd_test.c
463 474
464# rsa_test 475# rsa_test
465TESTS += rsa_test 476TESTS += rsa_test
@@ -472,20 +483,10 @@ check_PROGRAMS += servertest
472servertest_SOURCES = servertest.c 483servertest_SOURCES = servertest.c
473EXTRA_DIST += servertest.sh servertest.bat 484EXTRA_DIST += servertest.sh servertest.bat
474 485
475# sha1test 486# sha_test
476TESTS += sha1test 487TESTS += sha_test
477check_PROGRAMS += sha1test 488check_PROGRAMS += sha_test
478sha1test_SOURCES = sha1test.c 489sha_test_SOURCES = sha_test.c
479
480# sha256test
481TESTS += sha256test
482check_PROGRAMS += sha256test
483sha256test_SOURCES = sha256test.c
484
485# sha512test
486TESTS += sha512test
487check_PROGRAMS += sha512test
488sha512test_SOURCES = sha512test.c
489 490
490# sm3test 491# sm3test
491TESTS += sm3test 492TESTS += sm3test
@@ -508,6 +509,11 @@ TESTS += ssl_methods
508check_PROGRAMS += ssl_methods 509check_PROGRAMS += ssl_methods
509ssl_methods_SOURCES = ssl_methods.c 510ssl_methods_SOURCES = ssl_methods.c
510 511
512# ssl_set_alpn_protos
513TESTS += ssl_set_alpn_protos
514check_PROGRAMS += ssl_set_alpn_protos
515ssl_set_alpn_protos_SOURCES = ssl_set_alpn_protos.c
516
511# ssl_versions 517# ssl_versions
512TESTS += ssl_versions 518TESTS += ssl_versions
513check_PROGRAMS += ssl_versions 519check_PROGRAMS += ssl_versions
diff --git a/tests/aeadtest.sh b/tests/aeadtest.sh
index 132b1fd..9f59595 100755
--- a/tests/aeadtest.sh
+++ b/tests/aeadtest.sh
@@ -4,4 +4,10 @@ TEST=./aeadtest
4if [ -e ./aeadtest.exe ]; then 4if [ -e ./aeadtest.exe ]; then
5 TEST=./aeadtest.exe 5 TEST=./aeadtest.exe
6fi 6fi
7$TEST $srcdir/aeadtests.txt 7$TEST aead $srcdir/aeadtests.txt
8$TEST aes-128-gcm $srcdir/aes_128_gcm_tests.txt
9$TEST aes-192-gcm $srcdir/aes_192_gcm_tests.txt
10$TEST aes-256-gcm $srcdir/aes_256_gcm_tests.txt
11$TEST chacha20-poly1305 $srcdir/chacha20_poly1305_tests.txt
12$TEST xchacha20-poly1305 $srcdir/xchacha20_poly1305_tests.txt
13
diff --git a/tests/quictest.bat b/tests/quictest.bat
new file mode 100644
index 0000000..cfbf2cd
--- /dev/null
+++ b/tests/quictest.bat
@@ -0,0 +1,14 @@
1@echo off
2setlocal enabledelayedexpansion
3REM quictest.bat
4
5set quictest_bin=%1
6set quictest_bin=%quictest_bin:/=\%
7if not exist %quictest_bin% exit /b 1
8
9%quictest_bin% %srcdir%\server.pem %srcdir%\server.pem %srcdir%\ca.pem
10if !errorlevel! neq 0 (
11 exit /b 1
12)
13
14endlocal
diff --git a/tests/quictest.sh b/tests/quictest.sh
new file mode 100755
index 0000000..cc1982f
--- /dev/null
+++ b/tests/quictest.sh
@@ -0,0 +1,13 @@
1#!/bin/sh
2set -e
3
4quictest_bin=./quictest
5if [ -e ./quictest.exe ]; then
6 quictest_bin=./quictest.exe
7fi
8
9if [ -z $srcdir ]; then
10 srcdir=.
11fi
12
13$quictest_bin $srcdir/server.pem $srcdir/server.pem $srcdir/ca.pem
diff --git a/update.sh b/update.sh
index 2f325ca..3aea129 100755
--- a/update.sh
+++ b/update.sh
@@ -288,7 +288,7 @@ for i in `find $libcrypto_regress -name '*.c'`; do
288 $CP "$i" tests 288 $CP "$i" tests
289done 289done
290$CP $libcrypto_regress/evp/evptests.txt tests 290$CP $libcrypto_regress/evp/evptests.txt tests
291$CP $libcrypto_regress/aead/aeadtests.txt tests 291$CP $libcrypto_regress/aead/*.txt tests
292 292
293# generate libcrypto freenull.c 293# generate libcrypto freenull.c
294awk -f $libcrypto_regress/free/freenull.awk \ 294awk -f $libcrypto_regress/free/freenull.awk \