aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/rust-openssl.patch16
-rw-r--r--.github/workflows/cross_test.yml2
-rw-r--r--.github/workflows/linux_test_asan_noasm.yml24
-rw-r--r--.gitignore26
-rw-r--r--ChangeLog142
-rw-r--r--README.md9
-rw-r--r--apps/openssl/CMakeLists.txt1
-rw-r--r--apps/openssl/Makefile.am1
-rw-r--r--configure.ac15
-rw-r--r--crypto/CMakeLists.txt50
-rw-r--r--crypto/Makefile.am63
-rw-r--r--crypto/Makefile.am.elf-arm2
-rw-r--r--crypto/Makefile.am.elf-mips24
-rw-r--r--crypto/Makefile.am.elf-mips6424
-rw-r--r--crypto/Makefile.am.elf-x86_642
-rw-r--r--crypto/Makefile.am.macosx-x86_642
-rw-r--r--crypto/Makefile.am.masm-x86_642
-rw-r--r--crypto/Makefile.am.mingw64-x86_642
-rw-r--r--crypto/bn/arch/mips/bn_arch.h24
-rw-r--r--include/CMakeLists.txt2
-rw-r--r--include/Makefile.am1
-rw-r--r--include/arch/mips/opensslconf.h154
-rw-r--r--include/compat/endian.h70
-rw-r--r--include/openssl/Makefile.am.tpl3
-rw-r--r--man/links78
-rw-r--r--patches/crypto_namespace.h.patch33
-rw-r--r--patches/libcrypto.hidden.patch120
-rw-r--r--patches/libssl.hidden.patch15
-rw-r--r--patches/openssl.c.patch6
-rw-r--r--patches/opensslfeatures.h.patch16
-rw-r--r--patches/speed.c.patch39
-rw-r--r--patches/ssl_namespace.h.patch32
-rw-r--r--patches/tlsexttest.c.patch14
-rw-r--r--patches/windows_headers.patch8
-rwxr-xr-xscripts/test33
-rw-r--r--tests/CMakeLists.txt106
-rw-r--r--tests/Makefile.am127
-rwxr-xr-xupdate.sh132
38 files changed, 1136 insertions, 284 deletions
diff --git a/.github/rust-openssl.patch b/.github/rust-openssl.patch
index 9ff4ea0..ab955be 100644
--- a/.github/rust-openssl.patch
+++ b/.github/rust-openssl.patch
@@ -1,13 +1,13 @@
1diff --git a/openssl-sys/build/main.rs b/openssl-sys/build/main.rs 1diff --git a/openssl-sys/build/main.rs b/openssl-sys/build/main.rs
2index cdea3eb4..b16ebecf 100644 2index ba149c17..5274dc44 100644
3--- a/openssl-sys/build/main.rs 3--- a/openssl-sys/build/main.rs
4+++ b/openssl-sys/build/main.rs 4+++ b/openssl-sys/build/main.rs
5@@ -282,7 +282,7 @@ See rust-openssl documentation for more information: 5@@ -285,7 +285,7 @@ See rust-openssl documentation for more information:
6 (3, 5, _) => ('3', '5', 'x'), 6 (3, 7, 0) => ('3', '7', '0'),
7 (3, 6, 0) => ('3', '6', '0'), 7 (3, 7, 1) => ('3', '7', '1'),
8 (3, 6, _) => ('3', '6', 'x'), 8 (3, 7, _) => ('3', '7', 'x'),
9- (3, 7, 0) => ('3', '7', '0'), 9- _ => version_error(),
10+ (3, 7, _) => ('3', '7', 'x'), 10+ _ => ('3', '7', 'x'),
11 _ => version_error(),
12 }; 11 };
13 12
13 println!("cargo:libressl=true");
diff --git a/.github/workflows/cross_test.yml b/.github/workflows/cross_test.yml
index 649cd2f..fc742e7 100644
--- a/.github/workflows/cross_test.yml
+++ b/.github/workflows/cross_test.yml
@@ -7,7 +7,7 @@ jobs:
7 strategy: 7 strategy:
8 matrix: 8 matrix:
9 os: [ubuntu-20.04, ubuntu-22.04] 9 os: [ubuntu-20.04, ubuntu-22.04]
10 arch: [mingw32, mingw64, arm32, arm64] 10 arch: [mingw32, mingw64, arm32, arm64, mips32, mips64]
11 runs-on: ${{ matrix.os }} 11 runs-on: ${{ matrix.os }}
12 continue-on-error: false 12 continue-on-error: false
13 env: 13 env:
diff --git a/.github/workflows/linux_test_asan_noasm.yml b/.github/workflows/linux_test_asan_noasm.yml
new file mode 100644
index 0000000..92ab2fc
--- /dev/null
+++ b/.github/workflows/linux_test_asan_noasm.yml
@@ -0,0 +1,24 @@
1name: linux_ci_asan_noasm
2
3on: [push, pull_request]
4
5jobs:
6 build-native:
7 name: "${{ matrix.compiler }} - ${{ matrix.os }}"
8 runs-on: "${{ matrix.os }}"
9 strategy:
10 matrix:
11 os: ["ubuntu-latest"]
12 compiler: ["clang"]
13 env:
14 CC: "${{ matrix.compiler }}"
15 ARCH: native
16 CFLAGS: "-ggdb -fsanitize=address"
17 LDFLAGS: "-fsanitize=address"
18 CTEST_OUTPUT_ON_FAILURE: 1
19 ENABLE_ASM: OFF
20 steps:
21 - name: "Checkout repository"
22 uses: actions/checkout@main
23 - name: "Run tests"
24 run: ./scripts/test
diff --git a/.gitignore b/.gitignore
index 826d157..1e01631 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,12 +27,19 @@
27*.gcov 27*.gcov
28*.gcda 28*.gcda
29 29
30# mandoc stuff
31links
32mandoc.db
33
30# Autotools stuff 34# Autotools stuff
31.deps 35.deps
32.dirstamp 36.dirstamp
33Makefile 37Makefile
34Makefile.in 38Makefile.in
35 39
40# CMake stuff
41build
42
36# Libtool stuff 43# Libtool stuff
37.libs 44.libs
38*.lo 45*.lo
@@ -63,15 +70,19 @@ tests/asn1basic*
63tests/asn1complex* 70tests/asn1complex*
64tests/asn1evp* 71tests/asn1evp*
65tests/asn1object* 72tests/asn1object*
73tests/asn1oct*
66tests/asn1string_copy* 74tests/asn1string_copy*
67tests/asn1_string_to_utf8* 75tests/asn1_string_to_utf8*
68tests/asn1time* 76tests/asn1time*
69tests/asn1x509* 77tests/asn1x509*
78tests/bio_asn1*
70tests/bio_chain* 79tests/bio_chain*
80tests/bio_host*
71tests/bio_mem* 81tests/bio_mem*
72tests/bnaddsub* 82tests/bnaddsub*
73tests/bn_add_sub* 83tests/bn_add_sub*
74tests/bn_cmp* 84tests/bn_cmp*
85tests/bn_gcd*
75tests/bn_isqrt* 86tests/bn_isqrt*
76tests/bn_mod_exp* 87tests/bn_mod_exp*
77tests/bn_mod_exp_zero* 88tests/bn_mod_exp_zero*
@@ -83,9 +94,12 @@ tests/bn_rand_interval*
83tests/bn_shift* 94tests/bn_shift*
84tests/bn_to_string* 95tests/bn_to_string*
85tests/bn_unit* 96tests/bn_unit*
97tests/bn_word*
86tests/callback* 98tests/callback*
87tests/cipher* 99tests/cipher*
88tests/constraints* 100tests/constraints*
101tests/ctlog.conf
102tests/*.crt
89tests/ec_point_conversion* 103tests/ec_point_conversion*
90tests/evp_pkey_check* 104tests/evp_pkey_check*
91tests/evp_pkey_cleanup* 105tests/evp_pkey_cleanup*
@@ -94,11 +108,13 @@ tests/freenull*
94tests/gost2814789t* 108tests/gost2814789t*
95tests/key_schedule* 109tests/key_schedule*
96tests/mont* 110tests/mont*
111tests/policy*
97tests/rfc3779* 112tests/rfc3779*
98tests/rfc5280time* 113tests/rfc5280time*
99tests/ssl_get_shared_ciphers* 114tests/ssl_get_shared_ciphers*
100tests/ssl_methods* 115tests/ssl_methods*
101tests/ssl_set_alpn_protos* 116tests/ssl_set_alpn_protos*
117tests/ssl_verify_param*
102tests/ssl_versions* 118tests/ssl_versions*
103tests/string_table* 119tests/string_table*
104tests/timingsafe* 120tests/timingsafe*
@@ -113,6 +129,7 @@ tests/testssl
113tests/*.txt 129tests/*.txt
114tests/compat/*.c 130tests/compat/*.c
115tests/verify* 131tests/verify*
132tests/x509_asn1*
116tests/x509_info* 133tests/x509_info*
117tests/x509attribute* 134tests/x509attribute*
118tests/x509name* 135tests/x509name*
@@ -126,6 +143,15 @@ tests/util.c
126tests/valid_handshakes_terminate* 143tests/valid_handshakes_terminate*
127tests/handshake_table* 144tests/handshake_table*
128 145
146# benchmarks, tests with external dependencies
147tests/bn_general*
148tests/bn_mul_div*
149tests/expirecallback*
150tests/wycheproof-primes*
151
152# update.sh creates this for some reason
153tests/empty.c
154
129# ctags stuff 155# ctags stuff
130TAGS 156TAGS
131 157
diff --git a/ChangeLog b/ChangeLog
index 1a8bb80..fc453d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,16 +3,16 @@ Git, it can be confusing following all of the changes.
3 3
4Most of the libssl and libcrypto source code is is here in OpenBSD CVS: 4Most of the libssl and libcrypto source code is is here in OpenBSD CVS:
5 5
6 http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libssl/ 6 https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libssl/
7 7
8Some of the libcrypto and OS-compatibility files for entropy and random number 8Some of the libcrypto and OS-compatibility files for entropy and random number
9generation are here: 9generation are here:
10 10
11 http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libcrypto/ 11 https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libcrypto/
12 12
13A simplified TLS wrapper library is here: 13A simplified TLS wrapper library is here:
14 14
15 http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libtls/ 15 https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libtls/
16 16
17The LibreSSL Portable project copies these portions of the OpenBSD tree, along 17The LibreSSL Portable project copies these portions of the OpenBSD tree, along
18with relevant portions of the C library, to a Git repository. This makes it 18with relevant portions of the C library, to a Git repository. This makes it
@@ -28,6 +28,142 @@ history is also available from Git.
28 28
29LibreSSL Portable Release Notes: 29LibreSSL Portable Release Notes:
30 30
313.8.0 - Development release
32
33 * Portable changes
34 - Extended the endian.h compat header with hto* and *toh macros.
35 - Adapted more tests to the portable framework.
36 * Internal improvements
37 - Improved sieve of Eratosthenes script used for generating a table
38 of small primes.
39 - Started cleaning up and rewriting SHA internals.
40 - Replace internal use of BN_copy() with bn_copy() for consistency.
41 - Rewrote and improved BN_exp() and BN_copy().
42 - Add branch target information (BTI) support to arm64 assembly.
43 - Replaced BN_mod_sqrt() with a new implementation.
44 - Removed incomplete and dangerous BN_RECURSION code.
45 - Added endbr64 instructions to amd64 assembly.
46 - Imported RFC 5280 policy checking code from BoringSSL and used it
47 to replace the old exponential time code.
48 - Converted more of libcrypto to use CBB/CBS.
49 - Cleaned up and simplified the code dealing with builtin curves.
50 * New features
51 - Added support for truncated SHA-2 and for SHA-3.
52 - The BPSW primality test performs additional Miller-Rabin rounds
53 with random bases to reduce the likelihood of composites passing.
54 - Allow testing of ciphers and digests using badly aligned buffers
55 in openssl speed.
56 - Added a workaround for a poorly thought-out change in OpenSSL 3 that
57 broke privilege separation support in libtls.
58 * Compatibility changes
59 - Support for GF2m was removed: BIGNUM no longer supports binary extension
60 field arithmetic and all binary elliptic builtin curves were removed.
61 - Removed dangerous, "fast" NIST prime and elliptic curve implementations.
62 In particular, EC_GFp_nist_method() is no longer available.
63 - Removed most public symbols that were deprecated in OpenSSL 0.9.8.
64 - Removed the public X9.31 API (RSA_X931_PADDING is still available).
65 - Removed Cipher Text Stealing mode.
66 - Removed SXNET and NETSCAPE_CERT_SEQUENCE support including the
67 openssl(1) nseq command.
68 - Dropped proxy certificate (RFC 3820) support.
69 - The POLICY_TREE and its related structures and API were removed.
70 - The explicitText user notice uses UTF8String instead of VisibleString
71 to reduce the risk of emitting certificates with invalid DER-encoding.
72 - Initial fixes for RSA-PSS support to make the TLSv1.3 stack more
73 compliant with RFC 8446.
74 * Bug fixes
75 - Correctly handle negative input to various BIGNUM functions.
76 - Ensure ERR_load_ERR_strings() does not set errno unexpectedly.
77 - Fix error checking of i2d_ECDSA_SIG() in ossl_ecdsa_sign().
78 - Fixed detection of extended operations (XOP) on AMD hardware.
79 - Ensure Montgomery exponentiation is used for the initial RSA blinding.
80 - Policy is always checked in X509 validation. Critical policy extensions
81 are no longer silently ignored.
82 - Fixed error handling in tls_check_common_name().
83 - Add missing pointer invalidation in SSL_free().
84 - Fixed X509err() and X509V3err() and their internal versions.
85 - Ensure that OBJ_obj2txt() always returns a C string again.
86 - In X509_VERIFY_PARAM_inherit() copy hostflags independently of the
87 host list.
88 * Documentation improvements
89 - Improved documentation of BIO_ctrl(3), BIO_set_info_callback(3),
90 BIO_get_info_callback(3), BIO_method_type(3), and BIO_method_name(3).
91 - Marked BIO_CB_return(), BIO_cb_pre(), and BIO_cb_post() as intentionally
92 undocumented.
93 * Testing and Proactive Security
94 - Significantly improved test coverage of BN_mod_sqrt() and GCD.
95 - As always, new test coverage is added as bugs are fixed and subsystems
96 are cleaned up.
97
983.7.2 - Stable release
99
100 * Portable changes
101 - Moved official Github project to https://github.com/libressl/.
102 - Build support for Apple Silicon.
103 - Installed opensslconf.h is now architecture-specific.
104 - Removed internal defines from opensslconf.h.
105 - Support reproducible builds on tagged commits in main branch.
106
1073.7.1 - Development release
108
109 * Internal improvements
110 - Initial overhaul of the BIGNUM code:
111 - Added a new framework that allows architecture-dependent
112 replacement implementations for bignum primitives.
113 - Imported various s2n-bignum's constant time assembly primitives
114 and switched amd64 to them.
115 - Lots of cleanup, simplification and bug fixes.
116 - Changed Perl assembly generators to move constants into .rodata,
117 allowing code to run with execute-only permissions.
118 - Capped the number of iterations in DSA and ECDSA signing (avoiding
119 infinite loops), added additional sanity checks to DSA.
120 - ASN.1 parsing improvements.
121 - Made UI_destroy_method() NULL safe.
122 - Various improvements to nc(1).
123 - Always clear EC groups and points on free.
124 - Cleanup and improvements in EC code.
125 - Various openssl(1) improvements.
126 * Bug fixes
127 - Fixed a memory leak, a double free and various other issues in
128 BIO_new_NDEF().
129 - Fixed various crashes in the openssl(1) testing utility.
130 - Do not check policies by default in the new X.509 verifier.
131 - Added missing error checking in PKCS7.
132 - Call CRYPTO_cleanup_all_ex_data() from OPENSSL_cleanup().
133 * New features
134 - Added UI_null()
135 - Added X509_STORE_*check_issued()
136 - Added X509_CRL_get0_tbs_sigalg() and X509_get0_uids() accessors.
137 - Added EVP_CIPHER_meth_*() setter API.
138 * Documentation improvements
139 - Marked BIO_s_log(3) BIO_nread0(3), BIO_nread(3), BIO_nwrite0(3), BIO_nwrite(3),
140 BIO_dump_cb(3) and BIO_dump_indent_cb(3) as intentionally undocumented.
141 - Document BIO_number_read(3), BIO_number_written(3),
142 BIO_set_retry_read(3), BIO_set_retry_write(3),
143 BIO_set_retry_special(3), BIO_clear_retry_flags(3),
144 BIO_get_retry_flags(3), BIO_dup_chain(3), BIO_set_flags(3),
145 BIO_clear_flags(3), BIO_test_flags(3), BIO_get_flags(3).
146 BIO_callback_fn_ex(3), BIO_set_callback_ex(3), BIO_get_callback_ex(3),
147 BIO_callback_fn(3), and the BIO_FLAGS_* constants
148 - Correct the prototypes of BIO_get_conn_ip(3) and BIO_get_conn_int_port(3).
149 - Document ED25519_keypair(3), ED25519_sign(3), and ED25519_verify(3).
150 - Document EVP_PKEY_new_raw_private_key(3),
151 EVP_PKEY_new_raw_public_key(3), EVP_PKEY_get_raw_private_key(3), and
152 EVP_PKEY_get_raw_public_key(3).
153 - Document ASN1_buf_print(3).
154 - Document DH_get0_*, DSA_get0_*, ECDSA_SIG_get0_{r,s}() and RSA_get0_*.
155 - Merged documentation of UI_null() from OpenSSL 1.1
156 - Various spelling and other documentation improvements.
157 * Testing and Proactive Security
158 - As always, new test coverage is added as bugs are fixed and subsystems
159 are cleaned up.
160 - New Wycheproof tests added.
161 - OpenSSL 3.0 Interop tests added.
162 - Many old tests rewritten, cleaned up and extended.
163 * Security fixes
164 - A malicious certificate revocation list or timestamp response token
165 would allow an attacker to read arbitrary memory.
166
313.7.0 - Development release 1673.7.0 - Development release
32 168
33 * Internal improvements 169 * Internal improvements
diff --git a/README.md b/README.md
index f4015a1..0209b24 100644
--- a/README.md
+++ b/README.md
@@ -14,9 +14,12 @@ improve security, and apply best practice development processes from OpenBSD.
14 14
15## Compatibility with OpenSSL: ## 15## Compatibility with OpenSSL: ##
16 16
17LibreSSL is API compatible with OpenSSL 1.0.1, but does not yet include all 17LibreSSL provides much of the OpenSSL 1.1 API. The OpenSSL 3 API is not currently
18new APIs from OpenSSL 1.0.2 and later. LibreSSL also includes APIs not yet 18supported. Incompatibilities between the projects exist and are unavoidable since
19present in OpenSSL. The current common API subset is OpenSSL 1.0.1. 19both evolve with different goals and priorities. Important incompatibilities will
20be addressed if possible and as long as they are not too detrimental to LibreSSL's
21goals of simplicity, security and sanity. We do not add new features, ciphers and
22API without a solid reason and require that new code be clean and of high quality.
20 23
21LibreSSL is not ABI compatible with any release of OpenSSL, or necessarily 24LibreSSL is not ABI compatible with any release of OpenSSL, or necessarily
22earlier releases of LibreSSL. You will need to relink your programs to 25earlier releases of LibreSSL. You will need to relink your programs to
diff --git a/apps/openssl/CMakeLists.txt b/apps/openssl/CMakeLists.txt
index 2a84178..437c0db 100644
--- a/apps/openssl/CMakeLists.txt
+++ b/apps/openssl/CMakeLists.txt
@@ -20,7 +20,6 @@ set(
20 gendsa.c 20 gendsa.c
21 genpkey.c 21 genpkey.c
22 genrsa.c 22 genrsa.c
23 nseq.c
24 ocsp.c 23 ocsp.c
25 openssl.c 24 openssl.c
26 passwd.c 25 passwd.c
diff --git a/apps/openssl/Makefile.am b/apps/openssl/Makefile.am
index 9574e06..2567ef0 100644
--- a/apps/openssl/Makefile.am
+++ b/apps/openssl/Makefile.am
@@ -36,7 +36,6 @@ openssl_SOURCES += gendh.c
36openssl_SOURCES += gendsa.c 36openssl_SOURCES += gendsa.c
37openssl_SOURCES += genpkey.c 37openssl_SOURCES += genpkey.c
38openssl_SOURCES += genrsa.c 38openssl_SOURCES += genrsa.c
39openssl_SOURCES += nseq.c
40openssl_SOURCES += ocsp.c 39openssl_SOURCES += ocsp.c
41openssl_SOURCES += openssl.c 40openssl_SOURCES += openssl.c
42openssl_SOURCES += passwd.c 41openssl_SOURCES += passwd.c
diff --git a/configure.ac b/configure.ac
index f3d7c77..51e096b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -77,9 +77,9 @@ AS_CASE([$host_cpu],
77 [arm64], [host_cpu=aarch64], 77 [arm64], [host_cpu=aarch64],
78 [*arm*], [host_cpu=arm], 78 [*arm*], [host_cpu=arm],
79 [*amd64*], [host_cpu=x86_64 HOSTARCH=intel], 79 [*amd64*], [host_cpu=x86_64 HOSTARCH=intel],
80 [i?86], [host_cpu=i386 HOSTARCH=intel], 80 [i?86], [host_cpu=i386 HOSTARCH=intel enable_asm=no],
81 [mipsel*], [host_cpu=mips], 81 [mips64*], [host_cpu=mips64 enable_asm=no],
82 [mips64el*], [host_cpu=mips64], 82 [mips*], [host_cpu=mips enable_asm=no],
83 [powerpc*], [host_cpu=powerpc], 83 [powerpc*], [host_cpu=powerpc],
84 [ppc64*], [host_cpu=powerpc64], 84 [ppc64*], [host_cpu=powerpc64],
85 [x86_64], [HOSTARCH=intel] 85 [x86_64], [HOSTARCH=intel]
@@ -109,13 +109,16 @@ int main() {return 0;}
109 AC_MSG_RESULT(no) 109 AC_MSG_RESULT(no)
110]) 110])
111 111
112AC_ARG_ENABLE([asm], 112AC_ARG_ENABLE([asm], AS_HELP_STRING([--disable-asm], [Disable assembly]))
113 AS_HELP_STRING([--disable-asm], [Disable assembly])) 113AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"])
114AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno" -o "$host_cpu" = "i386"])
115 114
116# Conditionally enable assembly by default 115# Conditionally enable assembly by default
117AM_CONDITIONAL([HOST_ASM_ELF_ARM], 116AM_CONDITIONAL([HOST_ASM_ELF_ARM],
118 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "arm" -a "x$enable_asm" != "xno"]) 117 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "arm" -a "x$enable_asm" != "xno"])
118AM_CONDITIONAL([HOST_ASM_ELF_MIPS],
119 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "mips" -a "x$enable_asm" != "xno"])
120AM_CONDITIONAL([HOST_ASM_ELF_MIPS64],
121 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "mips64" -a "x$enable_asm" != "xno"])
119AM_CONDITIONAL([HOST_ASM_ELF_X86_64], 122AM_CONDITIONAL([HOST_ASM_ELF_X86_64],
120 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"]) 123 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"])
121AM_CONDITIONAL([HOST_ASM_MACOSX_X86_64], 124AM_CONDITIONAL([HOST_ASM_MACOSX_X86_64],
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 45d9786..49dfdf8 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -4,7 +4,6 @@ if(HOST_ASM_ELF_ARMV4)
4 set( 4 set(
5 ASM_ARMV4_ELF_SRC 5 ASM_ARMV4_ELF_SRC
6 aes/aes-elf-armv4.S 6 aes/aes-elf-armv4.S
7 bn/gf2m-elf-armv4.S
8 bn/mont-elf-armv4.S 7 bn/mont-elf-armv4.S
9 sha/sha1-elf-armv4.S 8 sha/sha1-elf-armv4.S
10 sha/sha512-elf-armv4.S 9 sha/sha512-elf-armv4.S
@@ -15,7 +14,6 @@ if(HOST_ASM_ELF_ARMV4)
15 ) 14 )
16 add_definitions(-DAES_ASM) 15 add_definitions(-DAES_ASM)
17 add_definitions(-DOPENSSL_BN_ASM_MONT) 16 add_definitions(-DOPENSSL_BN_ASM_MONT)
18 add_definitions(-DOPENSSL_BN_ASM_GF2m)
19 add_definitions(-DGHASH_ASM) 17 add_definitions(-DGHASH_ASM)
20 add_definitions(-DSHA1_ASM) 18 add_definitions(-DSHA1_ASM)
21 add_definitions(-DSHA256_ASM) 19 add_definitions(-DSHA256_ASM)
@@ -36,7 +34,6 @@ if(HOST_ASM_ELF_X86_64)
36 bn/modexp512-elf-x86_64.S 34 bn/modexp512-elf-x86_64.S
37 bn/mont-elf-x86_64.S 35 bn/mont-elf-x86_64.S
38 bn/mont5-elf-x86_64.S 36 bn/mont5-elf-x86_64.S
39 bn/gf2m-elf-x86_64.S
40 camellia/cmll-elf-x86_64.S 37 camellia/cmll-elf-x86_64.S
41 md5/md5-elf-x86_64.S 38 md5/md5-elf-x86_64.S
42 modes/ghash-elf-x86_64.S 39 modes/ghash-elf-x86_64.S
@@ -67,7 +64,6 @@ if(HOST_ASM_ELF_X86_64)
67 add_definitions(-DOPENSSL_IA32_SSE2) 64 add_definitions(-DOPENSSL_IA32_SSE2)
68 add_definitions(-DOPENSSL_BN_ASM_MONT) 65 add_definitions(-DOPENSSL_BN_ASM_MONT)
69 add_definitions(-DOPENSSL_BN_ASM_MONT5) 66 add_definitions(-DOPENSSL_BN_ASM_MONT5)
70 add_definitions(-DOPENSSL_BN_ASM_GF2m)
71 add_definitions(-DMD5_ASM) 67 add_definitions(-DMD5_ASM)
72 add_definitions(-DGHASH_ASM) 68 add_definitions(-DGHASH_ASM)
73 add_definitions(-DRSA_ASM) 69 add_definitions(-DRSA_ASM)
@@ -91,7 +87,6 @@ if(HOST_ASM_MACOSX_X86_64)
91 bn/modexp512-macosx-x86_64.S 87 bn/modexp512-macosx-x86_64.S
92 bn/mont-macosx-x86_64.S 88 bn/mont-macosx-x86_64.S
93 bn/mont5-macosx-x86_64.S 89 bn/mont5-macosx-x86_64.S
94 bn/gf2m-macosx-x86_64.S
95 camellia/cmll-macosx-x86_64.S 90 camellia/cmll-macosx-x86_64.S
96 md5/md5-macosx-x86_64.S 91 md5/md5-macosx-x86_64.S
97 modes/ghash-macosx-x86_64.S 92 modes/ghash-macosx-x86_64.S
@@ -122,7 +117,6 @@ if(HOST_ASM_MACOSX_X86_64)
122 add_definitions(-DOPENSSL_IA32_SSE2) 117 add_definitions(-DOPENSSL_IA32_SSE2)
123 add_definitions(-DOPENSSL_BN_ASM_MONT) 118 add_definitions(-DOPENSSL_BN_ASM_MONT)
124 add_definitions(-DOPENSSL_BN_ASM_MONT5) 119 add_definitions(-DOPENSSL_BN_ASM_MONT5)
125 add_definitions(-DOPENSSL_BN_ASM_GF2m)
126 add_definitions(-DMD5_ASM) 120 add_definitions(-DMD5_ASM)
127 add_definitions(-DGHASH_ASM) 121 add_definitions(-DGHASH_ASM)
128 add_definitions(-DRSA_ASM) 122 add_definitions(-DRSA_ASM)
@@ -147,7 +141,6 @@ if(HOST_ASM_MASM_X86_64)
147 #bn/modexp512-masm-x86_64.S 141 #bn/modexp512-masm-x86_64.S
148 #bn/mont-masm-x86_64.S 142 #bn/mont-masm-x86_64.S
149 #bn/mont5-masm-x86_64.S 143 #bn/mont5-masm-x86_64.S
150 #bn/gf2m-masm-x86_64.S
151 camellia/cmll-masm-x86_64.S 144 camellia/cmll-masm-x86_64.S
152 md5/md5-masm-x86_64.S 145 md5/md5-masm-x86_64.S
153 modes/ghash-masm-x86_64.S 146 modes/ghash-masm-x86_64.S
@@ -165,7 +158,6 @@ if(HOST_ASM_MASM_X86_64)
165 add_definitions(-DOPENSSL_IA32_SSE2) 158 add_definitions(-DOPENSSL_IA32_SSE2)
166 #add_definitions(-DOPENSSL_BN_ASM_MONT) 159 #add_definitions(-DOPENSSL_BN_ASM_MONT)
167 #add_definitions(-DOPENSSL_BN_ASM_MONT5) 160 #add_definitions(-DOPENSSL_BN_ASM_MONT5)
168 #add_definitions(-DOPENSSL_BN_ASM_GF2m)
169 add_definitions(-DMD5_ASM) 161 add_definitions(-DMD5_ASM)
170 add_definitions(-DGHASH_ASM) 162 add_definitions(-DGHASH_ASM)
171 add_definitions(-DRSA_ASM) 163 add_definitions(-DRSA_ASM)
@@ -189,7 +181,6 @@ if(HOST_ASM_MINGW64_X86_64)
189 #bn/modexp512-mingw64-x86_64.S 181 #bn/modexp512-mingw64-x86_64.S
190 #bn/mont-mingw64-x86_64.S 182 #bn/mont-mingw64-x86_64.S
191 #bn/mont5-mingw64-x86_64.S 183 #bn/mont5-mingw64-x86_64.S
192 #bn/gf2m-mingw64-x86_64.S
193 camellia/cmll-mingw64-x86_64.S 184 camellia/cmll-mingw64-x86_64.S
194 md5/md5-mingw64-x86_64.S 185 md5/md5-mingw64-x86_64.S
195 modes/ghash-mingw64-x86_64.S 186 modes/ghash-mingw64-x86_64.S
@@ -207,7 +198,6 @@ if(HOST_ASM_MINGW64_X86_64)
207 add_definitions(-DOPENSSL_IA32_SSE2) 198 add_definitions(-DOPENSSL_IA32_SSE2)
208 #add_definitions(-DOPENSSL_BN_ASM_MONT) 199 #add_definitions(-DOPENSSL_BN_ASM_MONT)
209 #add_definitions(-DOPENSSL_BN_ASM_MONT5) 200 #add_definitions(-DOPENSSL_BN_ASM_MONT5)
210 #add_definitions(-DOPENSSL_BN_ASM_GF2m)
211 add_definitions(-DMD5_ASM) 201 add_definitions(-DMD5_ASM)
212 add_definitions(-DGHASH_ASM) 202 add_definitions(-DGHASH_ASM)
213 add_definitions(-DRSA_ASM) 203 add_definitions(-DRSA_ASM)
@@ -299,7 +289,6 @@ set(
299 asn1/asn_moid.c 289 asn1/asn_moid.c
300 asn1/bio_asn1.c 290 asn1/bio_asn1.c
301 asn1/bio_ndef.c 291 asn1/bio_ndef.c
302 asn1/nsseq.c
303 asn1/p5_pbe.c 292 asn1/p5_pbe.c
304 asn1/p5_pbev2.c 293 asn1/p5_pbev2.c
305 asn1/p8_pkey.c 294 asn1/p8_pkey.c
@@ -360,30 +349,26 @@ set(
360 bn/bn_blind.c 349 bn/bn_blind.c
361 bn/bn_bpsw.c 350 bn/bn_bpsw.c
362 bn/bn_const.c 351 bn/bn_const.c
352 bn/bn_convert.c
363 bn/bn_ctx.c 353 bn/bn_ctx.c
364 bn/bn_div.c 354 bn/bn_div.c
365 bn/bn_err.c 355 bn/bn_err.c
366 bn/bn_exp.c 356 bn/bn_exp.c
367 bn/bn_gcd.c 357 bn/bn_gcd.c
368 bn/bn_gf2m.c
369 bn/bn_isqrt.c 358 bn/bn_isqrt.c
370 bn/bn_kron.c 359 bn/bn_kron.c
371 bn/bn_lib.c 360 bn/bn_lib.c
372 bn/bn_mod.c 361 bn/bn_mod.c
362 bn/bn_mod_sqrt.c
373 bn/bn_mont.c 363 bn/bn_mont.c
374 bn/bn_mpi.c
375 bn/bn_mul.c 364 bn/bn_mul.c
376 bn/bn_nist.c
377 bn/bn_prime.c 365 bn/bn_prime.c
378 bn/bn_print.c
379 bn/bn_rand.c 366 bn/bn_rand.c
380 bn/bn_recp.c 367 bn/bn_recp.c
381 bn/bn_shift.c 368 bn/bn_shift.c
382 bn/bn_small_primes.c 369 bn/bn_small_primes.c
383 bn/bn_sqr.c 370 bn/bn_sqr.c
384 bn/bn_sqrt.c
385 bn/bn_word.c 371 bn/bn_word.c
386 bn/bn_x931p.c
387 buffer/buf_err.c 372 buffer/buf_err.c
388 buffer/buf_str.c 373 buffer/buf_str.c
389 buffer/buffer.c 374 buffer/buffer.c
@@ -466,16 +451,13 @@ set(
466 dh/dh_ameth.c 451 dh/dh_ameth.c
467 dh/dh_asn1.c 452 dh/dh_asn1.c
468 dh/dh_check.c 453 dh/dh_check.c
469 dh/dh_depr.c
470 dh/dh_err.c 454 dh/dh_err.c
471 dh/dh_gen.c 455 dh/dh_gen.c
472 dh/dh_key.c 456 dh/dh_key.c
473 dh/dh_lib.c 457 dh/dh_lib.c
474 dh/dh_pmeth.c 458 dh/dh_pmeth.c
475 dh/dh_prn.c
476 dsa/dsa_ameth.c 459 dsa/dsa_ameth.c
477 dsa/dsa_asn1.c 460 dsa/dsa_asn1.c
478 dsa/dsa_depr.c
479 dsa/dsa_err.c 461 dsa/dsa_err.c
480 dsa/dsa_gen.c 462 dsa/dsa_gen.c
481 dsa/dsa_key.c 463 dsa/dsa_key.c
@@ -489,9 +471,6 @@ set(
489 dso/dso_lib.c 471 dso/dso_lib.c
490 dso/dso_null.c 472 dso/dso_null.c
491 dso/dso_openssl.c 473 dso/dso_openssl.c
492 ec/ec2_mult.c
493 ec/ec2_oct.c
494 ec/ec2_smpl.c
495 ec/ec_ameth.c 474 ec/ec_ameth.c
496 ec/ec_asn1.c 475 ec/ec_asn1.c
497 ec/ec_check.c 476 ec/ec_check.c
@@ -507,7 +486,6 @@ set(
507 ec/ec_print.c 486 ec/ec_print.c
508 ec/eck_prn.c 487 ec/eck_prn.c
509 ec/ecp_mont.c 488 ec/ecp_mont.c
510 ec/ecp_nist.c
511 ec/ecp_oct.c 489 ec/ecp_oct.c
512 ec/ecp_smpl.c 490 ec/ecp_smpl.c
513 ec/ecx_methods.c 491 ec/ecx_methods.c
@@ -519,8 +497,6 @@ set(
519 ecdsa/ecs_err.c 497 ecdsa/ecs_err.c
520 ecdsa/ecs_lib.c 498 ecdsa/ecs_lib.c
521 ecdsa/ecs_ossl.c 499 ecdsa/ecs_ossl.c
522 ecdsa/ecs_sign.c
523 ecdsa/ecs_vrf.c
524 engine/eng_all.c 500 engine/eng_all.c
525 engine/eng_cnf.c 501 engine/eng_cnf.c
526 engine/eng_ctrl.c 502 engine/eng_ctrl.c
@@ -552,6 +528,7 @@ set(
552 evp/bio_enc.c 528 evp/bio_enc.c
553 evp/bio_md.c 529 evp/bio_md.c
554 evp/c_all.c 530 evp/c_all.c
531 evp/cipher_method_lib.c
555 evp/digest.c 532 evp/digest.c
556 evp/e_aes.c 533 evp/e_aes.c
557 evp/e_aes_cbc_hmac_sha1.c 534 evp/e_aes_cbc_hmac_sha1.c
@@ -565,7 +542,6 @@ set(
565 evp/e_gost2814789.c 542 evp/e_gost2814789.c
566 evp/e_idea.c 543 evp/e_idea.c
567 evp/e_null.c 544 evp/e_null.c
568 evp/e_old.c
569 evp/e_rc2.c 545 evp/e_rc2.c
570 evp/e_rc4.c 546 evp/e_rc4.c
571 evp/e_rc4_hmac_md5.c 547 evp/e_rc4_hmac_md5.c
@@ -587,6 +563,7 @@ set(
587 evp/m_null.c 563 evp/m_null.c
588 evp/m_ripemd.c 564 evp/m_ripemd.c
589 evp/m_sha1.c 565 evp/m_sha1.c
566 evp/m_sha3.c
590 evp/m_sigver.c 567 evp/m_sigver.c
591 evp/m_streebog.c 568 evp/m_streebog.c
592 evp/m_sm3.c 569 evp/m_sm3.c
@@ -639,7 +616,6 @@ set(
639 modes/ccm128.c 616 modes/ccm128.c
640 modes/cfb128.c 617 modes/cfb128.c
641 modes/ctr128.c 618 modes/ctr128.c
642 modes/cts128.c
643 modes/gcm128.c 619 modes/gcm128.c
644 modes/ofb128.c 620 modes/ofb128.c
645 modes/xts128.c 621 modes/xts128.c
@@ -684,7 +660,6 @@ set(
684 pkcs12/p12_sbag.c 660 pkcs12/p12_sbag.c
685 pkcs12/p12_utl.c 661 pkcs12/p12_utl.c
686 pkcs12/pk12err.c 662 pkcs12/pk12err.c
687 pkcs7/bio_pk7.c
688 pkcs7/pk7_asn1.c 663 pkcs7/pk7_asn1.c
689 pkcs7/pk7_attr.c 664 pkcs7/pk7_attr.c
690 pkcs7/pk7_doit.c 665 pkcs7/pk7_doit.c
@@ -707,7 +682,6 @@ set(
707 rsa/rsa_asn1.c 682 rsa/rsa_asn1.c
708 rsa/rsa_chk.c 683 rsa/rsa_chk.c
709 rsa/rsa_crpt.c 684 rsa/rsa_crpt.c
710 rsa/rsa_depr.c
711 rsa/rsa_eay.c 685 rsa/rsa_eay.c
712 rsa/rsa_err.c 686 rsa/rsa_err.c
713 rsa/rsa_gen.c 687 rsa/rsa_gen.c
@@ -722,9 +696,9 @@ set(
722 rsa/rsa_saos.c 696 rsa/rsa_saos.c
723 rsa/rsa_sign.c 697 rsa/rsa_sign.c
724 rsa/rsa_x931.c 698 rsa/rsa_x931.c
725 sha/sha1_one.c 699 sha/sha1.c
726 sha/sha1dgst.c
727 sha/sha256.c 700 sha/sha256.c
701 sha/sha3.c
728 sha/sha512.c 702 sha/sha512.c
729 sm3/sm3.c 703 sm3/sm3.c
730 sm4/sm4.c 704 sm4/sm4.c
@@ -749,12 +723,6 @@ set(
749 x509/by_dir.c 723 x509/by_dir.c
750 x509/by_file.c 724 x509/by_file.c
751 x509/by_mem.c 725 x509/by_mem.c
752 x509/pcy_cache.c
753 x509/pcy_data.c
754 x509/pcy_lib.c
755 x509/pcy_map.c
756 x509/pcy_node.c
757 x509/pcy_tree.c
758 x509/x509_addr.c 726 x509/x509_addr.c
759 x509/x509_akey.c 727 x509/x509_akey.c
760 x509/x509_akeya.c 728 x509/x509_akeya.c
@@ -770,7 +738,6 @@ set(
770 x509/x509_crld.c 738 x509/x509_crld.c
771 x509/x509_d2.c 739 x509/x509_d2.c
772 x509/x509_def.c 740 x509/x509_def.c
773 x509/x509_enum.c
774 x509/x509_err.c 741 x509/x509_err.c
775 x509/x509_ext.c 742 x509/x509_ext.c
776 x509/x509_extku.c 743 x509/x509_extku.c
@@ -784,18 +751,16 @@ set(
784 x509/x509_ncons.c 751 x509/x509_ncons.c
785 x509/x509_obj.c 752 x509/x509_obj.c
786 x509/x509_ocsp.c 753 x509/x509_ocsp.c
787 x509/x509_pci.c
788 x509/x509_pcia.c
789 x509/x509_pcons.c 754 x509/x509_pcons.c
790 x509/x509_pku.c 755 x509/x509_pku.c
791 x509/x509_pmaps.c 756 x509/x509_pmaps.c
757 x509/x509_policy.c
792 x509/x509_prn.c 758 x509/x509_prn.c
793 x509/x509_purp.c 759 x509/x509_purp.c
794 x509/x509_r2x.c 760 x509/x509_r2x.c
795 x509/x509_req.c 761 x509/x509_req.c
796 x509/x509_set.c 762 x509/x509_set.c
797 x509/x509_skey.c 763 x509/x509_skey.c
798 x509/x509_sxnet.c
799 x509/x509_trs.c 764 x509/x509_trs.c
800 x509/x509_txt.c 765 x509/x509_txt.c
801 x509/x509_utl.c 766 x509/x509_utl.c
@@ -1027,6 +992,7 @@ target_include_directories(crypto_obj
1027 ocsp 992 ocsp
1028 pkcs12 993 pkcs12
1029 rsa 994 rsa
995 sha
1030 x509 996 x509
1031 ../include/compat 997 ../include/compat
1032 PUBLIC 998 PUBLIC
diff --git a/crypto/Makefile.am b/crypto/Makefile.am
index 0b5ba3f..b113850 100644
--- a/crypto/Makefile.am
+++ b/crypto/Makefile.am
@@ -17,6 +17,7 @@ AM_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/pkcs12
19AM_CPPFLAGS += -I$(top_srcdir)/crypto/rsa 19AM_CPPFLAGS += -I$(top_srcdir)/crypto/rsa
20AM_CPPFLAGS += -I$(top_srcdir)/crypto/sha
20AM_CPPFLAGS += -I$(top_srcdir)/crypto/x509 21AM_CPPFLAGS += -I$(top_srcdir)/crypto/x509
21AM_CPPFLAGS += -I$(top_srcdir)/crypto 22AM_CPPFLAGS += -I$(top_srcdir)/crypto
22 23
@@ -70,10 +71,6 @@ endif
70libcrypto_la_CPPFLAGS = -I$(top_srcdir)/crypto/hidden ${AM_CPPFLAGS} 71libcrypto_la_CPPFLAGS = -I$(top_srcdir)/crypto/hidden ${AM_CPPFLAGS}
71libcrypto_la_CPPFLAGS += -DLIBRESSL_INTERNAL 72libcrypto_la_CPPFLAGS += -DLIBRESSL_INTERNAL
72libcrypto_la_CPPFLAGS += -DOPENSSL_NO_HW_PADLOCK 73libcrypto_la_CPPFLAGS += -DOPENSSL_NO_HW_PADLOCK
73if OPENSSL_NO_ASM
74libcrypto_la_CPPFLAGS += -DOPENSSL_NO_ASM
75else
76endif
77 74
78if OPENSSLDIR_DEFINED 75if OPENSSLDIR_DEFINED
79libcrypto_la_CPPFLAGS += -DOPENSSLDIR=\"@OPENSSLDIR@\" 76libcrypto_la_CPPFLAGS += -DOPENSSLDIR=\"@OPENSSLDIR@\"
@@ -181,16 +178,21 @@ libcrypto_la_SOURCES =
181EXTRA_libcrypto_la_SOURCES = 178EXTRA_libcrypto_la_SOURCES =
182 179
183include Makefile.am.elf-arm 180include Makefile.am.elf-arm
181include Makefile.am.elf-mips
182include Makefile.am.elf-mips64
184include Makefile.am.elf-x86_64 183include Makefile.am.elf-x86_64
185include Makefile.am.macosx-x86_64 184include Makefile.am.macosx-x86_64
186include Makefile.am.masm-x86_64 185include Makefile.am.masm-x86_64
187include Makefile.am.mingw64-x86_64 186include Makefile.am.mingw64-x86_64
188 187
189if !HOST_ASM_ELF_ARM 188if !HOST_ASM_ELF_ARM
189if !HOST_ASM_ELF_MIPS
190if !HOST_ASM_ELF_MIPS64
190if !HOST_ASM_ELF_X86_64 191if !HOST_ASM_ELF_X86_64
191if !HOST_ASM_MACOSX_X86_64 192if !HOST_ASM_MACOSX_X86_64
192if !HOST_ASM_MASM_X86_64 193if !HOST_ASM_MASM_X86_64
193if !HOST_ASM_MINGW64_X86_64 194if !HOST_ASM_MINGW64_X86_64
195libcrypto_la_CPPFLAGS += -DOPENSSL_NO_ASM
194libcrypto_la_SOURCES += aes/aes_cbc.c 196libcrypto_la_SOURCES += aes/aes_cbc.c
195libcrypto_la_SOURCES += aes/aes_core.c 197libcrypto_la_SOURCES += aes/aes_core.c
196libcrypto_la_SOURCES += camellia/camellia.c 198libcrypto_la_SOURCES += camellia/camellia.c
@@ -203,6 +205,8 @@ endif
203endif 205endif
204endif 206endif
205endif 207endif
208endif
209endif
206 210
207libcrypto_la_SOURCES += cpt_err.c 211libcrypto_la_SOURCES += cpt_err.c
208libcrypto_la_SOURCES += cryptlib.c 212libcrypto_la_SOURCES += cryptlib.c
@@ -223,6 +227,7 @@ libcrypto_la_SOURCES += o_str.c
223noinst_HEADERS += arm_arch.h 227noinst_HEADERS += arm_arch.h
224noinst_HEADERS += constant_time.h 228noinst_HEADERS += constant_time.h
225noinst_HEADERS += cryptlib.h 229noinst_HEADERS += cryptlib.h
230noinst_HEADERS += crypto_internal.h
226noinst_HEADERS += md32_common.h 231noinst_HEADERS += md32_common.h
227noinst_HEADERS += x86_arch.h 232noinst_HEADERS += x86_arch.h
228 233
@@ -267,7 +272,6 @@ libcrypto_la_SOURCES += asn1/asn_mime.c
267libcrypto_la_SOURCES += asn1/asn_moid.c 272libcrypto_la_SOURCES += asn1/asn_moid.c
268libcrypto_la_SOURCES += asn1/bio_asn1.c 273libcrypto_la_SOURCES += asn1/bio_asn1.c
269libcrypto_la_SOURCES += asn1/bio_ndef.c 274libcrypto_la_SOURCES += asn1/bio_ndef.c
270libcrypto_la_SOURCES += asn1/nsseq.c
271libcrypto_la_SOURCES += asn1/p5_pbe.c 275libcrypto_la_SOURCES += asn1/p5_pbe.c
272libcrypto_la_SOURCES += asn1/p5_pbev2.c 276libcrypto_la_SOURCES += asn1/p5_pbev2.c
273libcrypto_la_SOURCES += asn1/p8_pkey.c 277libcrypto_la_SOURCES += asn1/p8_pkey.c
@@ -347,30 +351,26 @@ libcrypto_la_SOURCES += bn/bn_add.c
347libcrypto_la_SOURCES += bn/bn_blind.c 351libcrypto_la_SOURCES += bn/bn_blind.c
348libcrypto_la_SOURCES += bn/bn_bpsw.c 352libcrypto_la_SOURCES += bn/bn_bpsw.c
349libcrypto_la_SOURCES += bn/bn_const.c 353libcrypto_la_SOURCES += bn/bn_const.c
354libcrypto_la_SOURCES += bn/bn_convert.c
350libcrypto_la_SOURCES += bn/bn_ctx.c 355libcrypto_la_SOURCES += bn/bn_ctx.c
351libcrypto_la_SOURCES += bn/bn_div.c 356libcrypto_la_SOURCES += bn/bn_div.c
352libcrypto_la_SOURCES += bn/bn_err.c 357libcrypto_la_SOURCES += bn/bn_err.c
353libcrypto_la_SOURCES += bn/bn_exp.c 358libcrypto_la_SOURCES += bn/bn_exp.c
354libcrypto_la_SOURCES += bn/bn_gcd.c 359libcrypto_la_SOURCES += bn/bn_gcd.c
355libcrypto_la_SOURCES += bn/bn_gf2m.c
356libcrypto_la_SOURCES += bn/bn_isqrt.c 360libcrypto_la_SOURCES += bn/bn_isqrt.c
357libcrypto_la_SOURCES += bn/bn_kron.c 361libcrypto_la_SOURCES += bn/bn_kron.c
358libcrypto_la_SOURCES += bn/bn_lib.c 362libcrypto_la_SOURCES += bn/bn_lib.c
359libcrypto_la_SOURCES += bn/bn_mod.c 363libcrypto_la_SOURCES += bn/bn_mod.c
364libcrypto_la_SOURCES += bn/bn_mod_sqrt.c
360libcrypto_la_SOURCES += bn/bn_mont.c 365libcrypto_la_SOURCES += bn/bn_mont.c
361libcrypto_la_SOURCES += bn/bn_mpi.c
362libcrypto_la_SOURCES += bn/bn_mul.c 366libcrypto_la_SOURCES += bn/bn_mul.c
363libcrypto_la_SOURCES += bn/bn_nist.c
364libcrypto_la_SOURCES += bn/bn_prime.c 367libcrypto_la_SOURCES += bn/bn_prime.c
365libcrypto_la_SOURCES += bn/bn_print.c
366libcrypto_la_SOURCES += bn/bn_rand.c 368libcrypto_la_SOURCES += bn/bn_rand.c
367libcrypto_la_SOURCES += bn/bn_recp.c 369libcrypto_la_SOURCES += bn/bn_recp.c
368libcrypto_la_SOURCES += bn/bn_shift.c 370libcrypto_la_SOURCES += bn/bn_shift.c
369libcrypto_la_SOURCES += bn/bn_small_primes.c 371libcrypto_la_SOURCES += bn/bn_small_primes.c
370libcrypto_la_SOURCES += bn/bn_sqr.c 372libcrypto_la_SOURCES += bn/bn_sqr.c
371libcrypto_la_SOURCES += bn/bn_sqrt.c
372libcrypto_la_SOURCES += bn/bn_word.c 373libcrypto_la_SOURCES += bn/bn_word.c
373libcrypto_la_SOURCES += bn/bn_x931p.c
374noinst_HEADERS += bn/bn_internal.h 374noinst_HEADERS += bn/bn_internal.h
375noinst_HEADERS += bn/bn_local.h 375noinst_HEADERS += bn/bn_local.h
376noinst_HEADERS += bn/bn_prime.h 376noinst_HEADERS += bn/bn_prime.h
@@ -393,6 +393,11 @@ libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/bn/arch/i386/
393endif 393endif
394noinst_HEADERS += bn/arch/i386/bn_arch.h 394noinst_HEADERS += bn/arch/i386/bn_arch.h
395 395
396if HOST_MIPS
397libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/bn/arch/mips/
398endif
399noinst_HEADERS += bn/arch/mips/bn_arch.h
400
396if HOST_MIPS64 401if HOST_MIPS64
397libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/bn/arch/mips64/ 402libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/bn/arch/mips64/
398endif 403endif
@@ -545,19 +550,16 @@ noinst_HEADERS += des/spr.h
545libcrypto_la_SOURCES += dh/dh_ameth.c 550libcrypto_la_SOURCES += dh/dh_ameth.c
546libcrypto_la_SOURCES += dh/dh_asn1.c 551libcrypto_la_SOURCES += dh/dh_asn1.c
547libcrypto_la_SOURCES += dh/dh_check.c 552libcrypto_la_SOURCES += dh/dh_check.c
548libcrypto_la_SOURCES += dh/dh_depr.c
549libcrypto_la_SOURCES += dh/dh_err.c 553libcrypto_la_SOURCES += dh/dh_err.c
550libcrypto_la_SOURCES += dh/dh_gen.c 554libcrypto_la_SOURCES += dh/dh_gen.c
551libcrypto_la_SOURCES += dh/dh_key.c 555libcrypto_la_SOURCES += dh/dh_key.c
552libcrypto_la_SOURCES += dh/dh_lib.c 556libcrypto_la_SOURCES += dh/dh_lib.c
553libcrypto_la_SOURCES += dh/dh_pmeth.c 557libcrypto_la_SOURCES += dh/dh_pmeth.c
554libcrypto_la_SOURCES += dh/dh_prn.c
555noinst_HEADERS += dh/dh_local.h 558noinst_HEADERS += dh/dh_local.h
556 559
557# dsa 560# dsa
558libcrypto_la_SOURCES += dsa/dsa_ameth.c 561libcrypto_la_SOURCES += dsa/dsa_ameth.c
559libcrypto_la_SOURCES += dsa/dsa_asn1.c 562libcrypto_la_SOURCES += dsa/dsa_asn1.c
560libcrypto_la_SOURCES += dsa/dsa_depr.c
561libcrypto_la_SOURCES += dsa/dsa_err.c 563libcrypto_la_SOURCES += dsa/dsa_err.c
562libcrypto_la_SOURCES += dsa/dsa_gen.c 564libcrypto_la_SOURCES += dsa/dsa_gen.c
563libcrypto_la_SOURCES += dsa/dsa_key.c 565libcrypto_la_SOURCES += dsa/dsa_key.c
@@ -576,9 +578,6 @@ libcrypto_la_SOURCES += dso/dso_null.c
576libcrypto_la_SOURCES += dso/dso_openssl.c 578libcrypto_la_SOURCES += dso/dso_openssl.c
577 579
578# ec 580# ec
579libcrypto_la_SOURCES += ec/ec2_mult.c
580libcrypto_la_SOURCES += ec/ec2_oct.c
581libcrypto_la_SOURCES += ec/ec2_smpl.c
582libcrypto_la_SOURCES += ec/ec_ameth.c 581libcrypto_la_SOURCES += ec/ec_ameth.c
583libcrypto_la_SOURCES += ec/ec_asn1.c 582libcrypto_la_SOURCES += ec/ec_asn1.c
584libcrypto_la_SOURCES += ec/ec_check.c 583libcrypto_la_SOURCES += ec/ec_check.c
@@ -594,7 +593,6 @@ libcrypto_la_SOURCES += ec/ec_pmeth.c
594libcrypto_la_SOURCES += ec/ec_print.c 593libcrypto_la_SOURCES += ec/ec_print.c
595libcrypto_la_SOURCES += ec/eck_prn.c 594libcrypto_la_SOURCES += ec/eck_prn.c
596libcrypto_la_SOURCES += ec/ecp_mont.c 595libcrypto_la_SOURCES += ec/ecp_mont.c
597libcrypto_la_SOURCES += ec/ecp_nist.c
598libcrypto_la_SOURCES += ec/ecp_oct.c 596libcrypto_la_SOURCES += ec/ecp_oct.c
599libcrypto_la_SOURCES += ec/ecp_smpl.c 597libcrypto_la_SOURCES += ec/ecp_smpl.c
600libcrypto_la_SOURCES += ec/ecx_methods.c 598libcrypto_la_SOURCES += ec/ecx_methods.c
@@ -612,8 +610,6 @@ libcrypto_la_SOURCES += ecdsa/ecs_asn1.c
612libcrypto_la_SOURCES += ecdsa/ecs_err.c 610libcrypto_la_SOURCES += ecdsa/ecs_err.c
613libcrypto_la_SOURCES += ecdsa/ecs_lib.c 611libcrypto_la_SOURCES += ecdsa/ecs_lib.c
614libcrypto_la_SOURCES += ecdsa/ecs_ossl.c 612libcrypto_la_SOURCES += ecdsa/ecs_ossl.c
615libcrypto_la_SOURCES += ecdsa/ecs_sign.c
616libcrypto_la_SOURCES += ecdsa/ecs_vrf.c
617noinst_HEADERS += ecdsa/ecs_local.h 613noinst_HEADERS += ecdsa/ecs_local.h
618 614
619# engine 615# engine
@@ -653,6 +649,7 @@ libcrypto_la_SOURCES += evp/bio_b64.c
653libcrypto_la_SOURCES += evp/bio_enc.c 649libcrypto_la_SOURCES += evp/bio_enc.c
654libcrypto_la_SOURCES += evp/bio_md.c 650libcrypto_la_SOURCES += evp/bio_md.c
655libcrypto_la_SOURCES += evp/c_all.c 651libcrypto_la_SOURCES += evp/c_all.c
652libcrypto_la_SOURCES += evp/cipher_method_lib.c
656libcrypto_la_SOURCES += evp/digest.c 653libcrypto_la_SOURCES += evp/digest.c
657libcrypto_la_SOURCES += evp/e_aes.c 654libcrypto_la_SOURCES += evp/e_aes.c
658libcrypto_la_SOURCES += evp/e_aes_cbc_hmac_sha1.c 655libcrypto_la_SOURCES += evp/e_aes_cbc_hmac_sha1.c
@@ -666,7 +663,6 @@ libcrypto_la_SOURCES += evp/e_des3.c
666libcrypto_la_SOURCES += evp/e_gost2814789.c 663libcrypto_la_SOURCES += evp/e_gost2814789.c
667libcrypto_la_SOURCES += evp/e_idea.c 664libcrypto_la_SOURCES += evp/e_idea.c
668libcrypto_la_SOURCES += evp/e_null.c 665libcrypto_la_SOURCES += evp/e_null.c
669libcrypto_la_SOURCES += evp/e_old.c
670libcrypto_la_SOURCES += evp/e_rc2.c 666libcrypto_la_SOURCES += evp/e_rc2.c
671libcrypto_la_SOURCES += evp/e_rc4.c 667libcrypto_la_SOURCES += evp/e_rc4.c
672libcrypto_la_SOURCES += evp/e_rc4_hmac_md5.c 668libcrypto_la_SOURCES += evp/e_rc4_hmac_md5.c
@@ -688,6 +684,7 @@ libcrypto_la_SOURCES += evp/m_md5_sha1.c
688libcrypto_la_SOURCES += evp/m_null.c 684libcrypto_la_SOURCES += evp/m_null.c
689libcrypto_la_SOURCES += evp/m_ripemd.c 685libcrypto_la_SOURCES += evp/m_ripemd.c
690libcrypto_la_SOURCES += evp/m_sha1.c 686libcrypto_la_SOURCES += evp/m_sha1.c
687libcrypto_la_SOURCES += evp/m_sha3.c
691libcrypto_la_SOURCES += evp/m_sigver.c 688libcrypto_la_SOURCES += evp/m_sigver.c
692libcrypto_la_SOURCES += evp/m_streebog.c 689libcrypto_la_SOURCES += evp/m_streebog.c
693libcrypto_la_SOURCES += evp/m_sm3.c 690libcrypto_la_SOURCES += evp/m_sm3.c
@@ -776,7 +773,6 @@ libcrypto_la_SOURCES += modes/cbc128.c
776libcrypto_la_SOURCES += modes/ccm128.c 773libcrypto_la_SOURCES += modes/ccm128.c
777libcrypto_la_SOURCES += modes/cfb128.c 774libcrypto_la_SOURCES += modes/cfb128.c
778libcrypto_la_SOURCES += modes/ctr128.c 775libcrypto_la_SOURCES += modes/ctr128.c
779libcrypto_la_SOURCES += modes/cts128.c
780libcrypto_la_SOURCES += modes/gcm128.c 776libcrypto_la_SOURCES += modes/gcm128.c
781libcrypto_la_SOURCES += modes/ofb128.c 777libcrypto_la_SOURCES += modes/ofb128.c
782libcrypto_la_SOURCES += modes/xts128.c 778libcrypto_la_SOURCES += modes/xts128.c
@@ -836,7 +832,6 @@ libcrypto_la_SOURCES += pkcs12/pk12err.c
836noinst_HEADERS += pkcs12/pkcs12_local.h 832noinst_HEADERS += pkcs12/pkcs12_local.h
837 833
838# pkcs7 834# pkcs7
839libcrypto_la_SOURCES += pkcs7/bio_pk7.c
840libcrypto_la_SOURCES += pkcs7/pk7_asn1.c 835libcrypto_la_SOURCES += pkcs7/pk7_asn1.c
841libcrypto_la_SOURCES += pkcs7/pk7_attr.c 836libcrypto_la_SOURCES += pkcs7/pk7_attr.c
842libcrypto_la_SOURCES += pkcs7/pk7_doit.c 837libcrypto_la_SOURCES += pkcs7/pk7_doit.c
@@ -876,7 +871,6 @@ libcrypto_la_SOURCES += rsa/rsa_ameth.c
876libcrypto_la_SOURCES += rsa/rsa_asn1.c 871libcrypto_la_SOURCES += rsa/rsa_asn1.c
877libcrypto_la_SOURCES += rsa/rsa_chk.c 872libcrypto_la_SOURCES += rsa/rsa_chk.c
878libcrypto_la_SOURCES += rsa/rsa_crpt.c 873libcrypto_la_SOURCES += rsa/rsa_crpt.c
879libcrypto_la_SOURCES += rsa/rsa_depr.c
880libcrypto_la_SOURCES += rsa/rsa_eay.c 874libcrypto_la_SOURCES += rsa/rsa_eay.c
881libcrypto_la_SOURCES += rsa/rsa_err.c 875libcrypto_la_SOURCES += rsa/rsa_err.c
882libcrypto_la_SOURCES += rsa/rsa_gen.c 876libcrypto_la_SOURCES += rsa/rsa_gen.c
@@ -894,11 +888,12 @@ libcrypto_la_SOURCES += rsa/rsa_x931.c
894noinst_HEADERS += rsa/rsa_local.h 888noinst_HEADERS += rsa/rsa_local.h
895 889
896# sha 890# sha
897libcrypto_la_SOURCES += sha/sha1_one.c 891libcrypto_la_SOURCES += sha/sha1.c
898libcrypto_la_SOURCES += sha/sha1dgst.c
899libcrypto_la_SOURCES += sha/sha256.c 892libcrypto_la_SOURCES += sha/sha256.c
893libcrypto_la_SOURCES += sha/sha3.c
900libcrypto_la_SOURCES += sha/sha512.c 894libcrypto_la_SOURCES += sha/sha512.c
901noinst_HEADERS += sha/sha_local.h 895noinst_HEADERS += sha/sha_internal.h
896noinst_HEADERS += sha/sha3_internal.h
902 897
903# sm3 898# sm3
904libcrypto_la_SOURCES += sm3/sm3.c 899libcrypto_la_SOURCES += sm3/sm3.c
@@ -948,12 +943,6 @@ noinst_HEADERS += whrlpool/wp_local.h
948libcrypto_la_SOURCES += x509/by_dir.c 943libcrypto_la_SOURCES += x509/by_dir.c
949libcrypto_la_SOURCES += x509/by_file.c 944libcrypto_la_SOURCES += x509/by_file.c
950libcrypto_la_SOURCES += x509/by_mem.c 945libcrypto_la_SOURCES += x509/by_mem.c
951libcrypto_la_SOURCES += x509/pcy_cache.c
952libcrypto_la_SOURCES += x509/pcy_data.c
953libcrypto_la_SOURCES += x509/pcy_lib.c
954libcrypto_la_SOURCES += x509/pcy_map.c
955libcrypto_la_SOURCES += x509/pcy_node.c
956libcrypto_la_SOURCES += x509/pcy_tree.c
957libcrypto_la_SOURCES += x509/x509_addr.c 946libcrypto_la_SOURCES += x509/x509_addr.c
958libcrypto_la_SOURCES += x509/x509_akey.c 947libcrypto_la_SOURCES += x509/x509_akey.c
959libcrypto_la_SOURCES += x509/x509_akeya.c 948libcrypto_la_SOURCES += x509/x509_akeya.c
@@ -969,7 +958,6 @@ libcrypto_la_SOURCES += x509/x509_cpols.c
969libcrypto_la_SOURCES += x509/x509_crld.c 958libcrypto_la_SOURCES += x509/x509_crld.c
970libcrypto_la_SOURCES += x509/x509_d2.c 959libcrypto_la_SOURCES += x509/x509_d2.c
971libcrypto_la_SOURCES += x509/x509_def.c 960libcrypto_la_SOURCES += x509/x509_def.c
972libcrypto_la_SOURCES += x509/x509_enum.c
973libcrypto_la_SOURCES += x509/x509_err.c 961libcrypto_la_SOURCES += x509/x509_err.c
974libcrypto_la_SOURCES += x509/x509_ext.c 962libcrypto_la_SOURCES += x509/x509_ext.c
975libcrypto_la_SOURCES += x509/x509_extku.c 963libcrypto_la_SOURCES += x509/x509_extku.c
@@ -983,10 +971,9 @@ libcrypto_la_SOURCES += x509/x509_lu.c
983libcrypto_la_SOURCES += x509/x509_ncons.c 971libcrypto_la_SOURCES += x509/x509_ncons.c
984libcrypto_la_SOURCES += x509/x509_obj.c 972libcrypto_la_SOURCES += x509/x509_obj.c
985libcrypto_la_SOURCES += x509/x509_ocsp.c 973libcrypto_la_SOURCES += x509/x509_ocsp.c
986libcrypto_la_SOURCES += x509/x509_pci.c
987libcrypto_la_SOURCES += x509/x509_pcia.c
988libcrypto_la_SOURCES += x509/x509_pcons.c 974libcrypto_la_SOURCES += x509/x509_pcons.c
989libcrypto_la_SOURCES += x509/x509_pku.c 975libcrypto_la_SOURCES += x509/x509_pku.c
976libcrypto_la_SOURCES += x509/x509_policy.c
990libcrypto_la_SOURCES += x509/x509_pmaps.c 977libcrypto_la_SOURCES += x509/x509_pmaps.c
991libcrypto_la_SOURCES += x509/x509_prn.c 978libcrypto_la_SOURCES += x509/x509_prn.c
992libcrypto_la_SOURCES += x509/x509_purp.c 979libcrypto_la_SOURCES += x509/x509_purp.c
@@ -994,7 +981,6 @@ libcrypto_la_SOURCES += x509/x509_r2x.c
994libcrypto_la_SOURCES += x509/x509_req.c 981libcrypto_la_SOURCES += x509/x509_req.c
995libcrypto_la_SOURCES += x509/x509_set.c 982libcrypto_la_SOURCES += x509/x509_set.c
996libcrypto_la_SOURCES += x509/x509_skey.c 983libcrypto_la_SOURCES += x509/x509_skey.c
997libcrypto_la_SOURCES += x509/x509_sxnet.c
998libcrypto_la_SOURCES += x509/x509_trs.c 984libcrypto_la_SOURCES += x509/x509_trs.c
999libcrypto_la_SOURCES += x509/x509_txt.c 985libcrypto_la_SOURCES += x509/x509_txt.c
1000libcrypto_la_SOURCES += x509/x509_utl.c 986libcrypto_la_SOURCES += x509/x509_utl.c
@@ -1008,9 +994,6 @@ libcrypto_la_SOURCES += x509/x509rset.c
1008libcrypto_la_SOURCES += x509/x509spki.c 994libcrypto_la_SOURCES += x509/x509spki.c
1009libcrypto_la_SOURCES += x509/x509type.c 995libcrypto_la_SOURCES += x509/x509type.c
1010libcrypto_la_SOURCES += x509/x_all.c 996libcrypto_la_SOURCES += x509/x_all.c
1011noinst_HEADERS += x509/ext_dat.h
1012noinst_HEADERS += x509/pcy_int.h
1013noinst_HEADERS += x509/vpm_int.h
1014noinst_HEADERS += x509/x509_internal.h 997noinst_HEADERS += x509/x509_internal.h
1015noinst_HEADERS += x509/x509_issuer_cache.h 998noinst_HEADERS += x509/x509_issuer_cache.h
1016noinst_HEADERS += x509/x509_local.h 999noinst_HEADERS += x509/x509_local.h
diff --git a/crypto/Makefile.am.elf-arm b/crypto/Makefile.am.elf-arm
index a77c4d3..041c27c 100644
--- a/crypto/Makefile.am.elf-arm
+++ b/crypto/Makefile.am.elf-arm
@@ -1,5 +1,4 @@
1ASM_ARM_ELF = aes/aes-elf-armv4.S 1ASM_ARM_ELF = aes/aes-elf-armv4.S
2ASM_ARM_ELF += bn/gf2m-elf-armv4.S
3ASM_ARM_ELF += bn/mont-elf-armv4.S 2ASM_ARM_ELF += bn/mont-elf-armv4.S
4ASM_ARM_ELF += sha/sha1-elf-armv4.S 3ASM_ARM_ELF += sha/sha1-elf-armv4.S
5ASM_ARM_ELF += sha/sha512-elf-armv4.S 4ASM_ARM_ELF += sha/sha512-elf-armv4.S
@@ -20,7 +19,6 @@ EXTRA_DIST += $(ASM_ARM_ELF)
20if HOST_ASM_ELF_ARM 19if HOST_ASM_ELF_ARM
21libcrypto_la_CPPFLAGS += -DAES_ASM 20libcrypto_la_CPPFLAGS += -DAES_ASM
22libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT 21libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
23libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_GF2m
24libcrypto_la_CPPFLAGS += -DGHASH_ASM 22libcrypto_la_CPPFLAGS += -DGHASH_ASM
25libcrypto_la_CPPFLAGS += -DSHA1_ASM 23libcrypto_la_CPPFLAGS += -DSHA1_ASM
26libcrypto_la_CPPFLAGS += -DSHA256_ASM 24libcrypto_la_CPPFLAGS += -DSHA256_ASM
diff --git a/crypto/Makefile.am.elf-mips b/crypto/Makefile.am.elf-mips
new file mode 100644
index 0000000..9c4a70f
--- /dev/null
+++ b/crypto/Makefile.am.elf-mips
@@ -0,0 +1,24 @@
1ASM_MIPS_ELF = aes/aes-mips.S
2ASM_MIPS_ELF += bn/bn-mips.S
3ASM_MIPS_ELF += bn/mont-mips.S
4ASM_MIPS_ELF += sha/sha1-mips.S
5ASM_MIPS_ELF += sha/sha512-mips.S
6ASM_MIPS_ELF += sha/sha256-mips.S
7
8ASM_MIPS_ELF += aes/aes_cbc.c
9ASM_MIPS_ELF += camellia/camellia.c
10ASM_MIPS_ELF += camellia/cmll_cbc.c
11ASM_MIPS_ELF += rc4/rc4_enc.c
12ASM_MIPS_ELF += rc4/rc4_skey.c
13ASM_MIPS_ELF += whrlpool/wp_block.c
14
15EXTRA_DIST += $(ASM_MIPS_ELF)
16
17if HOST_ASM_ELF_MIPS
18libcrypto_la_CPPFLAGS += -DAES_ASM
19libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
20libcrypto_la_CPPFLAGS += -DSHA1_ASM
21libcrypto_la_CPPFLAGS += -DSHA256_ASM
22libcrypto_la_CPPFLAGS += -DSHA512_ASM
23libcrypto_la_SOURCES += $(ASM_MIPS_ELF)
24endif
diff --git a/crypto/Makefile.am.elf-mips64 b/crypto/Makefile.am.elf-mips64
new file mode 100644
index 0000000..c599fa8
--- /dev/null
+++ b/crypto/Makefile.am.elf-mips64
@@ -0,0 +1,24 @@
1ASM_MIPS64_ELF = aes/aes-mips.S
2ASM_MIPS64_ELF += bn/bn-mips.S
3ASM_MIPS64_ELF += bn/mont-mips.S
4ASM_MIPS64_ELF += sha/sha1-mips.S
5ASM_MIPS64_ELF += sha/sha512-mips.S
6ASM_MIPS64_ELF += sha/sha256-mips.S
7
8ASM_MIPS64_ELF += aes/aes_cbc.c
9ASM_MIPS64_ELF += camellia/camellia.c
10ASM_MIPS64_ELF += camellia/cmll_cbc.c
11ASM_MIPS64_ELF += rc4/rc4_enc.c
12ASM_MIPS64_ELF += rc4/rc4_skey.c
13ASM_MIPS64_ELF += whrlpool/wp_block.c
14
15EXTRA_DIST += $(ASM_MIPS64_ELF)
16
17if HOST_ASM_ELF_MIPS64
18libcrypto_la_CPPFLAGS += -DAES_ASM
19libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
20libcrypto_la_CPPFLAGS += -DSHA1_ASM
21libcrypto_la_CPPFLAGS += -DSHA256_ASM
22libcrypto_la_CPPFLAGS += -DSHA512_ASM
23libcrypto_la_SOURCES += $(ASM_MIPS64_ELF)
24endif
diff --git a/crypto/Makefile.am.elf-x86_64 b/crypto/Makefile.am.elf-x86_64
index 20cc0cc..88be1d5 100644
--- a/crypto/Makefile.am.elf-x86_64
+++ b/crypto/Makefile.am.elf-x86_64
@@ -7,7 +7,6 @@ ASM_X86_64_ELF += aes/aesni-sha1-elf-x86_64.S
7ASM_X86_64_ELF += bn/modexp512-elf-x86_64.S 7ASM_X86_64_ELF += bn/modexp512-elf-x86_64.S
8ASM_X86_64_ELF += bn/mont-elf-x86_64.S 8ASM_X86_64_ELF += bn/mont-elf-x86_64.S
9ASM_X86_64_ELF += bn/mont5-elf-x86_64.S 9ASM_X86_64_ELF += bn/mont5-elf-x86_64.S
10ASM_X86_64_ELF += bn/gf2m-elf-x86_64.S
11ASM_X86_64_ELF += camellia/cmll-elf-x86_64.S 10ASM_X86_64_ELF += camellia/cmll-elf-x86_64.S
12ASM_X86_64_ELF += md5/md5-elf-x86_64.S 11ASM_X86_64_ELF += md5/md5-elf-x86_64.S
13ASM_X86_64_ELF += modes/ghash-elf-x86_64.S 12ASM_X86_64_ELF += modes/ghash-elf-x86_64.S
@@ -41,7 +40,6 @@ libcrypto_la_CPPFLAGS += -DVPAES_ASM
41libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2 40libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2
42libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT 41libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
43libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5 42libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5
44libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_GF2m
45libcrypto_la_CPPFLAGS += -DMD5_ASM 43libcrypto_la_CPPFLAGS += -DMD5_ASM
46libcrypto_la_CPPFLAGS += -DGHASH_ASM 44libcrypto_la_CPPFLAGS += -DGHASH_ASM
47libcrypto_la_CPPFLAGS += -DRSA_ASM 45libcrypto_la_CPPFLAGS += -DRSA_ASM
diff --git a/crypto/Makefile.am.macosx-x86_64 b/crypto/Makefile.am.macosx-x86_64
index f3990a5..b9b89cf 100644
--- a/crypto/Makefile.am.macosx-x86_64
+++ b/crypto/Makefile.am.macosx-x86_64
@@ -7,7 +7,6 @@ ASM_X86_64_MACOSX += aes/aesni-sha1-macosx-x86_64.S
7ASM_X86_64_MACOSX += bn/modexp512-macosx-x86_64.S 7ASM_X86_64_MACOSX += bn/modexp512-macosx-x86_64.S
8ASM_X86_64_MACOSX += bn/mont-macosx-x86_64.S 8ASM_X86_64_MACOSX += bn/mont-macosx-x86_64.S
9ASM_X86_64_MACOSX += bn/mont5-macosx-x86_64.S 9ASM_X86_64_MACOSX += bn/mont5-macosx-x86_64.S
10ASM_X86_64_MACOSX += bn/gf2m-macosx-x86_64.S
11ASM_X86_64_MACOSX += camellia/cmll-macosx-x86_64.S 10ASM_X86_64_MACOSX += camellia/cmll-macosx-x86_64.S
12ASM_X86_64_MACOSX += md5/md5-macosx-x86_64.S 11ASM_X86_64_MACOSX += md5/md5-macosx-x86_64.S
13ASM_X86_64_MACOSX += modes/ghash-macosx-x86_64.S 12ASM_X86_64_MACOSX += modes/ghash-macosx-x86_64.S
@@ -41,7 +40,6 @@ libcrypto_la_CPPFLAGS += -DVPAES_ASM
41libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2 40libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2
42libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT 41libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
43libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5 42libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5
44libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_GF2m
45libcrypto_la_CPPFLAGS += -DMD5_ASM 43libcrypto_la_CPPFLAGS += -DMD5_ASM
46libcrypto_la_CPPFLAGS += -DGHASH_ASM 44libcrypto_la_CPPFLAGS += -DGHASH_ASM
47libcrypto_la_CPPFLAGS += -DRSA_ASM 45libcrypto_la_CPPFLAGS += -DRSA_ASM
diff --git a/crypto/Makefile.am.masm-x86_64 b/crypto/Makefile.am.masm-x86_64
index 27094c0..b914cb6 100644
--- a/crypto/Makefile.am.masm-x86_64
+++ b/crypto/Makefile.am.masm-x86_64
@@ -7,7 +7,6 @@ ASM_X86_64_MASM += aes/aesni-sha1-masm-x86_64.S
7ASM_X86_64_MASM += bn/modexp512-masm-x86_64.S 7ASM_X86_64_MASM += bn/modexp512-masm-x86_64.S
8ASM_X86_64_MASM += bn/mont-masm-x86_64.S 8ASM_X86_64_MASM += bn/mont-masm-x86_64.S
9ASM_X86_64_MASM += bn/mont5-masm-x86_64.S 9ASM_X86_64_MASM += bn/mont5-masm-x86_64.S
10ASM_X86_64_MASM += bn/gf2m-masm-x86_64.S
11ASM_X86_64_MASM += camellia/cmll-masm-x86_64.S 10ASM_X86_64_MASM += camellia/cmll-masm-x86_64.S
12ASM_X86_64_MASM += md5/md5-masm-x86_64.S 11ASM_X86_64_MASM += md5/md5-masm-x86_64.S
13ASM_X86_64_MASM += modes/ghash-masm-x86_64.S 12ASM_X86_64_MASM += modes/ghash-masm-x86_64.S
@@ -28,7 +27,6 @@ libcrypto_la_CPPFLAGS += -DVPAES_ASM
28libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2 27libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2
29libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT 28libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
30libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5 29libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5
31libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_GF2m
32libcrypto_la_CPPFLAGS += -DMD5_ASM 30libcrypto_la_CPPFLAGS += -DMD5_ASM
33libcrypto_la_CPPFLAGS += -DGHASH_ASM 31libcrypto_la_CPPFLAGS += -DGHASH_ASM
34libcrypto_la_CPPFLAGS += -DRSA_ASM 32libcrypto_la_CPPFLAGS += -DRSA_ASM
diff --git a/crypto/Makefile.am.mingw64-x86_64 b/crypto/Makefile.am.mingw64-x86_64
index bce854b..5a277c5 100644
--- a/crypto/Makefile.am.mingw64-x86_64
+++ b/crypto/Makefile.am.mingw64-x86_64
@@ -7,7 +7,6 @@ ASM_X86_64_MINGW64 += aes/aesni-sha1-mingw64-x86_64.S
7#ASM_X86_64_MINGW64 += bn/modexp512-mingw64-x86_64.S 7#ASM_X86_64_MINGW64 += bn/modexp512-mingw64-x86_64.S
8#ASM_X86_64_MINGW64 += bn/mont-mingw64-x86_64.S 8#ASM_X86_64_MINGW64 += bn/mont-mingw64-x86_64.S
9#ASM_X86_64_MINGW64 += bn/mont5-mingw64-x86_64.S 9#ASM_X86_64_MINGW64 += bn/mont5-mingw64-x86_64.S
10#ASM_X86_64_MINGW64 += bn/gf2m-mingw64-x86_64.S
11ASM_X86_64_MINGW64 += camellia/cmll-mingw64-x86_64.S 10ASM_X86_64_MINGW64 += camellia/cmll-mingw64-x86_64.S
12ASM_X86_64_MINGW64 += md5/md5-mingw64-x86_64.S 11ASM_X86_64_MINGW64 += md5/md5-mingw64-x86_64.S
13ASM_X86_64_MINGW64 += modes/ghash-mingw64-x86_64.S 12ASM_X86_64_MINGW64 += modes/ghash-mingw64-x86_64.S
@@ -28,7 +27,6 @@ libcrypto_la_CPPFLAGS += -DVPAES_ASM
28libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2 27libcrypto_la_CPPFLAGS += -DOPENSSL_IA32_SSE2
29#libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT 28#libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT
30#libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5 29#libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_MONT5
31#libcrypto_la_CPPFLAGS += -DOPENSSL_BN_ASM_GF2m
32libcrypto_la_CPPFLAGS += -DMD5_ASM 30libcrypto_la_CPPFLAGS += -DMD5_ASM
33libcrypto_la_CPPFLAGS += -DGHASH_ASM 31libcrypto_la_CPPFLAGS += -DGHASH_ASM
34libcrypto_la_CPPFLAGS += -DRSA_ASM 32libcrypto_la_CPPFLAGS += -DRSA_ASM
diff --git a/crypto/bn/arch/mips/bn_arch.h b/crypto/bn/arch/mips/bn_arch.h
new file mode 100644
index 0000000..4d6571f
--- /dev/null
+++ b/crypto/bn/arch/mips/bn_arch.h
@@ -0,0 +1,24 @@
1/* $OpenBSD: bn_arch.h,v 1.1 2023/01/20 10:04:34 jsing Exp $ */
2/*
3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef HEADER_BN_ARCH_H
19#define HEADER_BN_ARCH_H
20
21#ifndef OPENSSL_NO_ASM
22
23#endif
24#endif
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index a08a781..44ab86b 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -13,6 +13,8 @@ elseif(HOST_ARM)
13 file(READ arch/arm/opensslconf.h OPENSSLCONF) 13 file(READ arch/arm/opensslconf.h OPENSSLCONF)
14elseif(HOST_I386) 14elseif(HOST_I386)
15 file(READ arch/i386/opensslconf.h OPENSSLCONF) 15 file(READ arch/i386/opensslconf.h OPENSSLCONF)
16elseif(HOST_MIPS)
17 file(READ arch/mips/opensslconf.h OPENSSLCONF)
16elseif(HOST_MIPS64) 18elseif(HOST_MIPS64)
17 file(READ arch/mips64/opensslconf.h OPENSSLCONF) 19 file(READ arch/mips64/opensslconf.h OPENSSLCONF)
18elseif(HOST_POWERPC) 20elseif(HOST_POWERPC)
diff --git a/include/Makefile.am b/include/Makefile.am
index 26e82fe..077637d 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -51,6 +51,7 @@ noinst_HEADERS += arch/arm/opensslconf.h
51noinst_HEADERS += arch/hppa/opensslconf.h 51noinst_HEADERS += arch/hppa/opensslconf.h
52noinst_HEADERS += arch/i386/opensslconf.h 52noinst_HEADERS += arch/i386/opensslconf.h
53noinst_HEADERS += arch/m88k/opensslconf.h 53noinst_HEADERS += arch/m88k/opensslconf.h
54noinst_HEADERS += arch/mips/opensslconf.h
54noinst_HEADERS += arch/mips64/opensslconf.h 55noinst_HEADERS += arch/mips64/opensslconf.h
55noinst_HEADERS += arch/powerpc/opensslconf.h 56noinst_HEADERS += arch/powerpc/opensslconf.h
56noinst_HEADERS += arch/powerpc64/opensslconf.h 57noinst_HEADERS += arch/powerpc64/opensslconf.h
diff --git a/include/arch/mips/opensslconf.h b/include/arch/mips/opensslconf.h
new file mode 100644
index 0000000..f17d3d2
--- /dev/null
+++ b/include/arch/mips/opensslconf.h
@@ -0,0 +1,154 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_UNISTD
9#define OPENSSL_UNISTD <unistd.h>
10
11#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
12
13#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
14#define IDEA_INT unsigned int
15#endif
16
17#if defined(HEADER_MD2_H) && !defined(MD2_INT)
18#define MD2_INT unsigned int
19#endif
20
21#if defined(HEADER_RC2_H) && !defined(RC2_INT)
22/* I need to put in a mod for the alpha - eay */
23#define RC2_INT unsigned int
24#endif
25
26#if defined(HEADER_RC4_H)
27#if !defined(RC4_INT)
28/* using int types make the structure larger but make the code faster
29 * on most boxes I have tested - up to %20 faster. */
30/*
31 * I don't know what does "most" mean, but declaring "int" is a must on:
32 * - Intel P6 because partial register stalls are very expensive;
33 * - elder Alpha because it lacks byte load/store instructions;
34 */
35#define RC4_INT unsigned int
36#endif
37#if !defined(RC4_CHUNK)
38/*
39 * This enables code handling data aligned at natural CPU word
40 * boundary. See crypto/rc4/rc4_enc.c for further details.
41 */
42#undef RC4_CHUNK
43#endif
44#endif
45
46#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
47/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
48 * %20 speed up (longs are 8 bytes, int's are 4). */
49#ifndef DES_LONG
50#define DES_LONG unsigned int
51#endif
52#endif
53
54#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
55#define CONFIG_HEADER_BN_H
56#define BN_LLONG
57
58/* Should we define BN_DIV2W here? */
59
60/* Only one for the following should be defined */
61/* The prime number generation stuff may not work when
62 * EIGHT_BIT but I don't care since I've only used this mode
63 * for debugging the bignum libraries */
64#undef SIXTY_FOUR_BIT_LONG
65#undef SIXTY_FOUR_BIT
66#define THIRTY_TWO_BIT
67#undef SIXTEEN_BIT
68#undef EIGHT_BIT
69#endif
70
71#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
72#define CONFIG_HEADER_RC4_LOCL_H
73/* if this is defined data[i] is used instead of *data, this is a %20
74 * speedup on x86 */
75#define RC4_INDEX
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/include/compat/endian.h b/include/compat/endian.h
index cd85f5c..d9f7eb2 100644
--- a/include/compat/endian.h
+++ b/include/compat/endian.h
@@ -48,4 +48,74 @@
48#endif 48#endif
49#endif 49#endif
50 50
51#if defined(__APPLE__) && !defined(HAVE_ENDIAN_H)
52#include <libkern/OSByteOrder.h>
53#define be16toh(x) OSSwapBigToHostInt16((x))
54#define htobe16(x) OSSwapHostToBigInt16((x))
55#define be32toh(x) OSSwapBigToHostInt32((x))
56#define htobe32(x) OSSwapHostToBigInt32(x)
57#define htole64(x) OSSwapHostToLittleInt64(x)
58#define htobe64(x) OSSwapHostToBigInt64(x)
59#define le64toh(x) OSSwapLittleToHostInt64(x)
60#define be64toh(x) OSSwapBigToHostInt64(x)
61#endif /* __APPLE__ && !HAVE_ENDIAN_H */
62
63#if defined(_WIN32) && !defined(HAVE_ENDIAN_H)
64#include <winsock2.h>
65
66#define be16toh(x) ntohs((x))
67#define htobe16(x) htons((x))
68#define be32toh(x) ntohl((x))
69#define htobe32(x) ntohl((x))
70#define be64toh(x) ntohll((x))
71
72#if !defined(ntohll)
73#define ntohll(x) ((1==htonl(1)) ? (x) : ((uint64_t)ntohl((x) & 0xFFFFFFFF) << 32) | ntohl((x) >> 32))
74#endif
75#if !defined(htonll)
76#define htonll(x) ((1==ntohl(1)) ? (x) : ((uint64_t)htonl((x) & 0xFFFFFFFF) << 32) | htonl((x) >> 32))
77#endif
78
79#define htobe64(x) ntohll((x))
80#endif /* _WIN32 && !HAVE_ENDIAN_H */
81
82#ifdef __linux__
83#if !defined(betoh16)
84#define betoh16 be16toh
85#endif
86#if !defined(betoh32)
87#define betoh32 be32toh
88#endif
89#if !defined(betoh64)
90#define betoh64 be64toh
91#endif
92#endif /* __linux__ */
93
94#if defined(__FreeBSD__)
95#if !defined(HAVE_ENDIAN_H)
96#include <sys/endian.h>
97#endif
98#if !defined(betoh16)
99#define betoh16 be16toh
100#endif
101#if !defined(betoh32)
102#define betoh32 be32toh
103#endif
104#if !defined(betoh64)
105#define betoh64 be64toh
106#endif
107#endif
108
109#if defined(__NetBSD__)
110#if !defined(betoh16)
111#define betoh16 be16toh
112#endif
113#if !defined(betoh32)
114#define betoh32 be32toh
115#endif
116#if !defined(betoh64)
117#define betoh64 be64toh
118#endif
119#endif
120
51#endif 121#endif
diff --git a/include/openssl/Makefile.am.tpl b/include/openssl/Makefile.am.tpl
index 2f67d10..303d0b9 100644
--- a/include/openssl/Makefile.am.tpl
+++ b/include/openssl/Makefile.am.tpl
@@ -17,6 +17,9 @@ endif
17if HOST_I386 17if HOST_I386
18 -cp $(top_srcdir)/include/arch/i386/opensslconf.h opensslconf.h 18 -cp $(top_srcdir)/include/arch/i386/opensslconf.h opensslconf.h
19endif 19endif
20if HOST_MIPS
21 -cp $(top_srcdir)/include/arch/mips/opensslconf.h opensslconf.h
22endif
20if HOST_MIPS64 23if HOST_MIPS64
21 -cp $(top_srcdir)/include/arch/mips64/opensslconf.h opensslconf.h 24 -cp $(top_srcdir)/include/arch/mips64/opensslconf.h opensslconf.h
22endif 25endif
diff --git a/man/links b/man/links
index a88abaa..5733512 100644
--- a/man/links
+++ b/man/links
@@ -123,7 +123,6 @@ ASN1_item_d2i.3,ASN1_item_dup.3
123ASN1_item_d2i.3,ASN1_item_i2d.3 123ASN1_item_d2i.3,ASN1_item_i2d.3
124ASN1_item_d2i.3,ASN1_item_i2d_bio.3 124ASN1_item_d2i.3,ASN1_item_i2d_bio.3
125ASN1_item_d2i.3,ASN1_item_i2d_fp.3 125ASN1_item_d2i.3,ASN1_item_i2d_fp.3
126ASN1_item_d2i.3,ASN1_item_ndef_i2d.3
127ASN1_item_d2i.3,ASN1_item_print.3 126ASN1_item_d2i.3,ASN1_item_print.3
128ASN1_item_d2i.3,d2i_ASN1_TYPE.3 127ASN1_item_d2i.3,d2i_ASN1_TYPE.3
129ASN1_item_d2i.3,i2d_ASN1_TYPE.3 128ASN1_item_d2i.3,i2d_ASN1_TYPE.3
@@ -175,6 +174,7 @@ BIO_ctrl.3,BIO_set_close.3
175BIO_ctrl.3,BIO_set_info_callback.3 174BIO_ctrl.3,BIO_set_info_callback.3
176BIO_ctrl.3,BIO_tell.3 175BIO_ctrl.3,BIO_tell.3
177BIO_ctrl.3,BIO_wpending.3 176BIO_ctrl.3,BIO_wpending.3
177BIO_ctrl.3,bio_info_cb.3
178BIO_dump.3,BIO_dump_fp.3 178BIO_dump.3,BIO_dump_fp.3
179BIO_dump.3,BIO_dump_indent.3 179BIO_dump.3,BIO_dump_indent.3
180BIO_dump.3,BIO_dump_indent_fp.3 180BIO_dump.3,BIO_dump_indent_fp.3
@@ -195,6 +195,7 @@ BIO_f_cipher.3,BIO_set_cipher.3
195BIO_f_md.3,BIO_get_md.3 195BIO_f_md.3,BIO_get_md.3
196BIO_f_md.3,BIO_get_md_ctx.3 196BIO_f_md.3,BIO_get_md_ctx.3
197BIO_f_md.3,BIO_set_md.3 197BIO_f_md.3,BIO_set_md.3
198BIO_f_md.3,BIO_set_md_ctx.3
198BIO_f_ssl.3,BIO_do_handshake.3 199BIO_f_ssl.3,BIO_do_handshake.3
199BIO_f_ssl.3,BIO_get_num_renegotiates.3 200BIO_f_ssl.3,BIO_get_num_renegotiates.3
200BIO_f_ssl.3,BIO_get_ssl.3 201BIO_f_ssl.3,BIO_get_ssl.3
@@ -363,15 +364,12 @@ BN_BLINDING_new.3,BN_BLINDING_convert_ex.3
363BN_BLINDING_new.3,BN_BLINDING_create_param.3 364BN_BLINDING_new.3,BN_BLINDING_create_param.3
364BN_BLINDING_new.3,BN_BLINDING_free.3 365BN_BLINDING_new.3,BN_BLINDING_free.3
365BN_BLINDING_new.3,BN_BLINDING_get_flags.3 366BN_BLINDING_new.3,BN_BLINDING_get_flags.3
366BN_BLINDING_new.3,BN_BLINDING_get_thread_id.3
367BN_BLINDING_new.3,BN_BLINDING_invert.3 367BN_BLINDING_new.3,BN_BLINDING_invert.3
368BN_BLINDING_new.3,BN_BLINDING_invert_ex.3 368BN_BLINDING_new.3,BN_BLINDING_invert_ex.3
369BN_BLINDING_new.3,BN_BLINDING_set_flags.3 369BN_BLINDING_new.3,BN_BLINDING_set_flags.3
370BN_BLINDING_new.3,BN_BLINDING_set_thread_id.3
371BN_BLINDING_new.3,BN_BLINDING_thread_id.3 370BN_BLINDING_new.3,BN_BLINDING_thread_id.3
372BN_BLINDING_new.3,BN_BLINDING_update.3 371BN_BLINDING_new.3,BN_BLINDING_update.3
373BN_CTX_new.3,BN_CTX_free.3 372BN_CTX_new.3,BN_CTX_free.3
374BN_CTX_new.3,BN_CTX_init.3
375BN_CTX_start.3,BN_CTX_end.3 373BN_CTX_start.3,BN_CTX_end.3
376BN_CTX_start.3,BN_CTX_get.3 374BN_CTX_start.3,BN_CTX_get.3
377BN_GF2m_add.3,BN_GF2m_arr2poly.3 375BN_GF2m_add.3,BN_GF2m_arr2poly.3
@@ -447,9 +445,7 @@ BN_generate_prime.3,BN_GENCB_new.3
447BN_generate_prime.3,BN_GENCB_set.3 445BN_generate_prime.3,BN_GENCB_set.3
448BN_generate_prime.3,BN_GENCB_set_old.3 446BN_generate_prime.3,BN_GENCB_set_old.3
449BN_generate_prime.3,BN_generate_prime_ex.3 447BN_generate_prime.3,BN_generate_prime_ex.3
450BN_generate_prime.3,BN_is_prime.3
451BN_generate_prime.3,BN_is_prime_ex.3 448BN_generate_prime.3,BN_is_prime_ex.3
452BN_generate_prime.3,BN_is_prime_fasttest.3
453BN_generate_prime.3,BN_is_prime_fasttest_ex.3 449BN_generate_prime.3,BN_is_prime_fasttest_ex.3
454BN_get0_nist_prime_521.3,BN_get0_nist_prime_192.3 450BN_get0_nist_prime_521.3,BN_get0_nist_prime_192.3
455BN_get0_nist_prime_521.3,BN_get0_nist_prime_224.3 451BN_get0_nist_prime_521.3,BN_get0_nist_prime_224.3
@@ -457,7 +453,6 @@ BN_get0_nist_prime_521.3,BN_get0_nist_prime_256.3
457BN_get0_nist_prime_521.3,BN_get0_nist_prime_384.3 453BN_get0_nist_prime_521.3,BN_get0_nist_prime_384.3
458BN_mod_mul_montgomery.3,BN_MONT_CTX_copy.3 454BN_mod_mul_montgomery.3,BN_MONT_CTX_copy.3
459BN_mod_mul_montgomery.3,BN_MONT_CTX_free.3 455BN_mod_mul_montgomery.3,BN_MONT_CTX_free.3
460BN_mod_mul_montgomery.3,BN_MONT_CTX_init.3
461BN_mod_mul_montgomery.3,BN_MONT_CTX_new.3 456BN_mod_mul_montgomery.3,BN_MONT_CTX_new.3
462BN_mod_mul_montgomery.3,BN_MONT_CTX_set.3 457BN_mod_mul_montgomery.3,BN_MONT_CTX_set.3
463BN_mod_mul_montgomery.3,BN_MONT_CTX_set_locked.3 458BN_mod_mul_montgomery.3,BN_MONT_CTX_set_locked.3
@@ -472,7 +467,6 @@ BN_mod_mul_reciprocal.3,BN_reciprocal.3
472BN_new.3,BN_clear.3 467BN_new.3,BN_clear.3
473BN_new.3,BN_clear_free.3 468BN_new.3,BN_clear_free.3
474BN_new.3,BN_free.3 469BN_new.3,BN_free.3
475BN_new.3,BN_init.3
476BN_nist_mod_521.3,BN_nist_mod_192.3 470BN_nist_mod_521.3,BN_nist_mod_192.3
477BN_nist_mod_521.3,BN_nist_mod_224.3 471BN_nist_mod_521.3,BN_nist_mod_224.3
478BN_nist_mod_521.3,BN_nist_mod_256.3 472BN_nist_mod_521.3,BN_nist_mod_256.3
@@ -496,7 +490,6 @@ BN_zero.3,BN_get_word.3
496BN_zero.3,BN_one.3 490BN_zero.3,BN_one.3
497BN_zero.3,BN_set_word.3 491BN_zero.3,BN_set_word.3
498BN_zero.3,BN_value_one.3 492BN_zero.3,BN_value_one.3
499BN_zero.3,BN_zero_ex.3
500BUF_MEM_new.3,BUF_MEM_free.3 493BUF_MEM_new.3,BUF_MEM_free.3
501BUF_MEM_new.3,BUF_MEM_grow.3 494BUF_MEM_new.3,BUF_MEM_grow.3
502BUF_MEM_new.3,BUF_MEM_grow_clean.3 495BUF_MEM_new.3,BUF_MEM_grow_clean.3
@@ -611,7 +604,12 @@ DH_generate_parameters.3,DH_check_pub_key.3
611DH_generate_parameters.3,DH_generate_parameters_ex.3 604DH_generate_parameters.3,DH_generate_parameters_ex.3
612DH_get0_pqg.3,DH_clear_flags.3 605DH_get0_pqg.3,DH_clear_flags.3
613DH_get0_pqg.3,DH_get0_engine.3 606DH_get0_pqg.3,DH_get0_engine.3
607DH_get0_pqg.3,DH_get0_g.3
614DH_get0_pqg.3,DH_get0_key.3 608DH_get0_pqg.3,DH_get0_key.3
609DH_get0_pqg.3,DH_get0_p.3
610DH_get0_pqg.3,DH_get0_priv_key.3
611DH_get0_pqg.3,DH_get0_pub_key.3
612DH_get0_pqg.3,DH_get0_q.3
615DH_get0_pqg.3,DH_set0_key.3 613DH_get0_pqg.3,DH_set0_key.3
616DH_get0_pqg.3,DH_set0_pqg.3 614DH_get0_pqg.3,DH_set0_pqg.3
617DH_get0_pqg.3,DH_set_flags.3 615DH_get0_pqg.3,DH_set_flags.3
@@ -640,7 +638,12 @@ DSA_do_sign.3,DSA_do_verify.3
640DSA_generate_parameters.3,DSA_generate_parameters_ex.3 638DSA_generate_parameters.3,DSA_generate_parameters_ex.3
641DSA_get0_pqg.3,DSA_clear_flags.3 639DSA_get0_pqg.3,DSA_clear_flags.3
642DSA_get0_pqg.3,DSA_get0_engine.3 640DSA_get0_pqg.3,DSA_get0_engine.3
641DSA_get0_pqg.3,DSA_get0_g.3
643DSA_get0_pqg.3,DSA_get0_key.3 642DSA_get0_pqg.3,DSA_get0_key.3
643DSA_get0_pqg.3,DSA_get0_p.3
644DSA_get0_pqg.3,DSA_get0_priv_key.3
645DSA_get0_pqg.3,DSA_get0_pub_key.3
646DSA_get0_pqg.3,DSA_get0_q.3
644DSA_get0_pqg.3,DSA_set0_key.3 647DSA_get0_pqg.3,DSA_set0_key.3
645DSA_get0_pqg.3,DSA_set0_pqg.3 648DSA_get0_pqg.3,DSA_set0_pqg.3
646DSA_get0_pqg.3,DSA_set_flags.3 649DSA_get0_pqg.3,DSA_set_flags.3
@@ -666,6 +669,8 @@ ECDH_compute_key.3,ECDH_size.3
666ECDSA_SIG_new.3,ECDSA_OpenSSL.3 669ECDSA_SIG_new.3,ECDSA_OpenSSL.3
667ECDSA_SIG_new.3,ECDSA_SIG_free.3 670ECDSA_SIG_new.3,ECDSA_SIG_free.3
668ECDSA_SIG_new.3,ECDSA_SIG_get0.3 671ECDSA_SIG_new.3,ECDSA_SIG_get0.3
672ECDSA_SIG_new.3,ECDSA_SIG_get0_r.3
673ECDSA_SIG_new.3,ECDSA_SIG_get0_s.3
669ECDSA_SIG_new.3,ECDSA_SIG_set0.3 674ECDSA_SIG_new.3,ECDSA_SIG_set0.3
670ECDSA_SIG_new.3,ECDSA_do_sign.3 675ECDSA_SIG_new.3,ECDSA_do_sign.3
671ECDSA_SIG_new.3,ECDSA_do_sign_ex.3 676ECDSA_SIG_new.3,ECDSA_do_sign_ex.3
@@ -680,12 +685,7 @@ ECDSA_SIG_new.3,ECDSA_size.3
680ECDSA_SIG_new.3,ECDSA_verify.3 685ECDSA_SIG_new.3,ECDSA_verify.3
681ECDSA_SIG_new.3,d2i_ECDSA_SIG.3 686ECDSA_SIG_new.3,d2i_ECDSA_SIG.3
682ECDSA_SIG_new.3,i2d_ECDSA_SIG.3 687ECDSA_SIG_new.3,i2d_ECDSA_SIG.3
683EC_GFp_simple_method.3,EC_GF2m_simple_method.3
684EC_GFp_simple_method.3,EC_GFp_mont_method.3 688EC_GFp_simple_method.3,EC_GFp_mont_method.3
685EC_GFp_simple_method.3,EC_GFp_nist_method.3
686EC_GFp_simple_method.3,EC_GFp_nistp224_method.3
687EC_GFp_simple_method.3,EC_GFp_nistp256_method.3
688EC_GFp_simple_method.3,EC_GFp_nistp521_method.3
689EC_GFp_simple_method.3,EC_METHOD_get_field_type.3 689EC_GFp_simple_method.3,EC_METHOD_get_field_type.3
690EC_GROUP_copy.3,EC_GROUP_check.3 690EC_GROUP_copy.3,EC_GROUP_check.3
691EC_GROUP_copy.3,EC_GROUP_check_discriminant.3 691EC_GROUP_copy.3,EC_GROUP_check_discriminant.3
@@ -713,13 +713,10 @@ EC_GROUP_copy.3,EC_GROUP_set_seed.3
713EC_GROUP_new.3,EC_GROUP_clear_free.3 713EC_GROUP_new.3,EC_GROUP_clear_free.3
714EC_GROUP_new.3,EC_GROUP_free.3 714EC_GROUP_new.3,EC_GROUP_free.3
715EC_GROUP_new.3,EC_GROUP_get_curve.3 715EC_GROUP_new.3,EC_GROUP_get_curve.3
716EC_GROUP_new.3,EC_GROUP_get_curve_GF2m.3
717EC_GROUP_new.3,EC_GROUP_get_curve_GFp.3 716EC_GROUP_new.3,EC_GROUP_get_curve_GFp.3
718EC_GROUP_new.3,EC_GROUP_new_by_curve_name.3 717EC_GROUP_new.3,EC_GROUP_new_by_curve_name.3
719EC_GROUP_new.3,EC_GROUP_new_curve_GF2m.3
720EC_GROUP_new.3,EC_GROUP_new_curve_GFp.3 718EC_GROUP_new.3,EC_GROUP_new_curve_GFp.3
721EC_GROUP_new.3,EC_GROUP_set_curve.3 719EC_GROUP_new.3,EC_GROUP_set_curve.3
722EC_GROUP_new.3,EC_GROUP_set_curve_GF2m.3
723EC_GROUP_new.3,EC_GROUP_set_curve_GFp.3 720EC_GROUP_new.3,EC_GROUP_set_curve_GFp.3
724EC_GROUP_new.3,EC_get_builtin_curves.3 721EC_GROUP_new.3,EC_get_builtin_curves.3
725EC_KEY_METHOD_new.3,EC_KEY_METHOD_free.3 722EC_KEY_METHOD_new.3,EC_KEY_METHOD_free.3
@@ -751,8 +748,6 @@ EC_KEY_new.3,EC_KEY_get0_public_key.3
751EC_KEY_new.3,EC_KEY_get_conv_form.3 748EC_KEY_new.3,EC_KEY_get_conv_form.3
752EC_KEY_new.3,EC_KEY_get_enc_flags.3 749EC_KEY_new.3,EC_KEY_get_enc_flags.3
753EC_KEY_new.3,EC_KEY_get_flags.3 750EC_KEY_new.3,EC_KEY_get_flags.3
754EC_KEY_new.3,EC_KEY_get_key_method_data.3
755EC_KEY_new.3,EC_KEY_insert_key_method_data.3
756EC_KEY_new.3,EC_KEY_new_by_curve_name.3 751EC_KEY_new.3,EC_KEY_new_by_curve_name.3
757EC_KEY_new.3,EC_KEY_precompute_mult.3 752EC_KEY_new.3,EC_KEY_precompute_mult.3
758EC_KEY_new.3,EC_KEY_print.3 753EC_KEY_new.3,EC_KEY_print.3
@@ -784,7 +779,6 @@ EC_POINT_new.3,EC_POINT_dup.3
784EC_POINT_new.3,EC_POINT_free.3 779EC_POINT_new.3,EC_POINT_free.3
785EC_POINT_new.3,EC_POINT_get_Jprojective_coordinates_GFp.3 780EC_POINT_new.3,EC_POINT_get_Jprojective_coordinates_GFp.3
786EC_POINT_new.3,EC_POINT_get_affine_coordinates.3 781EC_POINT_new.3,EC_POINT_get_affine_coordinates.3
787EC_POINT_new.3,EC_POINT_get_affine_coordinates_GF2m.3
788EC_POINT_new.3,EC_POINT_get_affine_coordinates_GFp.3 782EC_POINT_new.3,EC_POINT_get_affine_coordinates_GFp.3
789EC_POINT_new.3,EC_POINT_hex2point.3 783EC_POINT_new.3,EC_POINT_hex2point.3
790EC_POINT_new.3,EC_POINT_method_of.3 784EC_POINT_new.3,EC_POINT_method_of.3
@@ -794,10 +788,8 @@ EC_POINT_new.3,EC_POINT_point2hex.3
794EC_POINT_new.3,EC_POINT_point2oct.3 788EC_POINT_new.3,EC_POINT_point2oct.3
795EC_POINT_new.3,EC_POINT_set_Jprojective_coordinates_GFp.3 789EC_POINT_new.3,EC_POINT_set_Jprojective_coordinates_GFp.3
796EC_POINT_new.3,EC_POINT_set_affine_coordinates.3 790EC_POINT_new.3,EC_POINT_set_affine_coordinates.3
797EC_POINT_new.3,EC_POINT_set_affine_coordinates_GF2m.3
798EC_POINT_new.3,EC_POINT_set_affine_coordinates_GFp.3 791EC_POINT_new.3,EC_POINT_set_affine_coordinates_GFp.3
799EC_POINT_new.3,EC_POINT_set_compressed_coordinates.3 792EC_POINT_new.3,EC_POINT_set_compressed_coordinates.3
800EC_POINT_new.3,EC_POINT_set_compressed_coordinates_GF2m.3
801EC_POINT_new.3,EC_POINT_set_compressed_coordinates_GFp.3 793EC_POINT_new.3,EC_POINT_set_compressed_coordinates_GFp.3
802EC_POINT_new.3,EC_POINT_set_to_infinity.3 794EC_POINT_new.3,EC_POINT_set_to_infinity.3
803ENGINE_add.3,ENGINE_by_id.3 795ENGINE_add.3,ENGINE_by_id.3
@@ -941,6 +933,17 @@ EVP_AEAD_CTX_init.3,EVP_aead_aes_128_gcm.3
941EVP_AEAD_CTX_init.3,EVP_aead_aes_256_gcm.3 933EVP_AEAD_CTX_init.3,EVP_aead_aes_256_gcm.3
942EVP_AEAD_CTX_init.3,EVP_aead_chacha20_poly1305.3 934EVP_AEAD_CTX_init.3,EVP_aead_chacha20_poly1305.3
943EVP_AEAD_CTX_init.3,EVP_aead_xchacha20_poly1305.3 935EVP_AEAD_CTX_init.3,EVP_aead_xchacha20_poly1305.3
936EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_dup.3
937EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_free.3
938EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_cleanup.3
939EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_ctrl.3
940EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_do_cipher.3
941EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_flags.3
942EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_get_asn1_params.3
943EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_impl_ctx_size.3
944EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_init.3
945EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_iv_length.3
946EVP_CIPHER_meth_new.3,EVP_CIPHER_meth_set_set_asn1_params.3
944EVP_DigestInit.3,EVP_Digest.3 947EVP_DigestInit.3,EVP_Digest.3
945EVP_DigestInit.3,EVP_DigestFinal.3 948EVP_DigestInit.3,EVP_DigestFinal.3
946EVP_DigestInit.3,EVP_DigestFinal_ex.3 949EVP_DigestInit.3,EVP_DigestFinal_ex.3
@@ -977,6 +980,8 @@ EVP_DigestInit.3,EVP_sha224.3
977EVP_DigestInit.3,EVP_sha256.3 980EVP_DigestInit.3,EVP_sha256.3
978EVP_DigestInit.3,EVP_sha384.3 981EVP_DigestInit.3,EVP_sha384.3
979EVP_DigestInit.3,EVP_sha512.3 982EVP_DigestInit.3,EVP_sha512.3
983EVP_DigestInit.3,EVP_sha512_224.3
984EVP_DigestInit.3,EVP_sha512_256.3
980EVP_DigestSignInit.3,EVP_DigestSign.3 985EVP_DigestSignInit.3,EVP_DigestSign.3
981EVP_DigestSignInit.3,EVP_DigestSignFinal.3 986EVP_DigestSignInit.3,EVP_DigestSignFinal.3
982EVP_DigestSignInit.3,EVP_DigestSignUpdate.3 987EVP_DigestSignInit.3,EVP_DigestSignUpdate.3
@@ -1471,7 +1476,6 @@ PEM_read_bio_PrivateKey.3,PEM_read_DSAparams.3
1471PEM_read_bio_PrivateKey.3,PEM_read_ECPKParameters.3 1476PEM_read_bio_PrivateKey.3,PEM_read_ECPKParameters.3
1472PEM_read_bio_PrivateKey.3,PEM_read_ECPrivateKey.3 1477PEM_read_bio_PrivateKey.3,PEM_read_ECPrivateKey.3
1473PEM_read_bio_PrivateKey.3,PEM_read_EC_PUBKEY.3 1478PEM_read_bio_PrivateKey.3,PEM_read_EC_PUBKEY.3
1474PEM_read_bio_PrivateKey.3,PEM_read_NETSCAPE_CERT_SEQUENCE.3
1475PEM_read_bio_PrivateKey.3,PEM_read_PKCS7.3 1479PEM_read_bio_PrivateKey.3,PEM_read_PKCS7.3
1476PEM_read_bio_PrivateKey.3,PEM_read_PKCS8.3 1480PEM_read_bio_PrivateKey.3,PEM_read_PKCS8.3
1477PEM_read_bio_PrivateKey.3,PEM_read_PKCS8_PRIV_KEY_INFO.3 1481PEM_read_bio_PrivateKey.3,PEM_read_PKCS8_PRIV_KEY_INFO.3
@@ -1492,7 +1496,6 @@ PEM_read_bio_PrivateKey.3,PEM_read_bio_DSAparams.3
1492PEM_read_bio_PrivateKey.3,PEM_read_bio_ECPKParameters.3 1496PEM_read_bio_PrivateKey.3,PEM_read_bio_ECPKParameters.3
1493PEM_read_bio_PrivateKey.3,PEM_read_bio_ECPrivateKey.3 1497PEM_read_bio_PrivateKey.3,PEM_read_bio_ECPrivateKey.3
1494PEM_read_bio_PrivateKey.3,PEM_read_bio_EC_PUBKEY.3 1498PEM_read_bio_PrivateKey.3,PEM_read_bio_EC_PUBKEY.3
1495PEM_read_bio_PrivateKey.3,PEM_read_bio_NETSCAPE_CERT_SEQUENCE.3
1496PEM_read_bio_PrivateKey.3,PEM_read_bio_PKCS7.3 1499PEM_read_bio_PrivateKey.3,PEM_read_bio_PKCS7.3
1497PEM_read_bio_PrivateKey.3,PEM_read_bio_PKCS8.3 1500PEM_read_bio_PrivateKey.3,PEM_read_bio_PKCS8.3
1498PEM_read_bio_PrivateKey.3,PEM_read_bio_PKCS8_PRIV_KEY_INFO.3 1501PEM_read_bio_PrivateKey.3,PEM_read_bio_PKCS8_PRIV_KEY_INFO.3
@@ -1512,7 +1515,6 @@ PEM_read_bio_PrivateKey.3,PEM_write_DSAparams.3
1512PEM_read_bio_PrivateKey.3,PEM_write_ECPKParameters.3 1515PEM_read_bio_PrivateKey.3,PEM_write_ECPKParameters.3
1513PEM_read_bio_PrivateKey.3,PEM_write_ECPrivateKey.3 1516PEM_read_bio_PrivateKey.3,PEM_write_ECPrivateKey.3
1514PEM_read_bio_PrivateKey.3,PEM_write_EC_PUBKEY.3 1517PEM_read_bio_PrivateKey.3,PEM_write_EC_PUBKEY.3
1515PEM_read_bio_PrivateKey.3,PEM_write_NETSCAPE_CERT_SEQUENCE.3
1516PEM_read_bio_PrivateKey.3,PEM_write_PKCS7.3 1518PEM_read_bio_PrivateKey.3,PEM_write_PKCS7.3
1517PEM_read_bio_PrivateKey.3,PEM_write_PKCS8.3 1519PEM_read_bio_PrivateKey.3,PEM_write_PKCS8.3
1518PEM_read_bio_PrivateKey.3,PEM_write_PKCS8PrivateKey.3 1520PEM_read_bio_PrivateKey.3,PEM_write_PKCS8PrivateKey.3
@@ -1536,7 +1538,6 @@ PEM_read_bio_PrivateKey.3,PEM_write_bio_DSAparams.3
1536PEM_read_bio_PrivateKey.3,PEM_write_bio_ECPKParameters.3 1538PEM_read_bio_PrivateKey.3,PEM_write_bio_ECPKParameters.3
1537PEM_read_bio_PrivateKey.3,PEM_write_bio_ECPrivateKey.3 1539PEM_read_bio_PrivateKey.3,PEM_write_bio_ECPrivateKey.3
1538PEM_read_bio_PrivateKey.3,PEM_write_bio_EC_PUBKEY.3 1540PEM_read_bio_PrivateKey.3,PEM_write_bio_EC_PUBKEY.3
1539PEM_read_bio_PrivateKey.3,PEM_write_bio_NETSCAPE_CERT_SEQUENCE.3
1540PEM_read_bio_PrivateKey.3,PEM_write_bio_PKCS7.3 1541PEM_read_bio_PrivateKey.3,PEM_write_bio_PKCS7.3
1541PEM_read_bio_PrivateKey.3,PEM_write_bio_PKCS8.3 1542PEM_read_bio_PrivateKey.3,PEM_write_bio_PKCS8.3
1542PEM_read_bio_PrivateKey.3,PEM_write_bio_PKCS8PrivateKey.3 1543PEM_read_bio_PrivateKey.3,PEM_write_bio_PKCS8PrivateKey.3
@@ -1629,7 +1630,15 @@ RSA_blinding_on.3,RSA_blinding_off.3
1629RSA_generate_key.3,RSA_generate_key_ex.3 1630RSA_generate_key.3,RSA_generate_key_ex.3
1630RSA_get0_key.3,RSA_clear_flags.3 1631RSA_get0_key.3,RSA_clear_flags.3
1631RSA_get0_key.3,RSA_get0_crt_params.3 1632RSA_get0_key.3,RSA_get0_crt_params.3
1633RSA_get0_key.3,RSA_get0_d.3
1634RSA_get0_key.3,RSA_get0_dmp1.3
1635RSA_get0_key.3,RSA_get0_dmq1.3
1636RSA_get0_key.3,RSA_get0_e.3
1632RSA_get0_key.3,RSA_get0_factors.3 1637RSA_get0_key.3,RSA_get0_factors.3
1638RSA_get0_key.3,RSA_get0_iqmp.3
1639RSA_get0_key.3,RSA_get0_n.3
1640RSA_get0_key.3,RSA_get0_p.3
1641RSA_get0_key.3,RSA_get0_q.3
1633RSA_get0_key.3,RSA_set0_crt_params.3 1642RSA_get0_key.3,RSA_set0_crt_params.3
1634RSA_get0_key.3,RSA_set0_factors.3 1643RSA_get0_key.3,RSA_set0_factors.3
1635RSA_get0_key.3,RSA_set0_key.3 1644RSA_get0_key.3,RSA_set0_key.3
@@ -2107,6 +2116,7 @@ X509V3_get_d2i.3,X509_REVOKED_get0_extensions.3
2107X509V3_get_d2i.3,X509_REVOKED_get_ext_d2i.3 2116X509V3_get_d2i.3,X509_REVOKED_get_ext_d2i.3
2108X509V3_get_d2i.3,X509_add1_ext_i2d.3 2117X509V3_get_d2i.3,X509_add1_ext_i2d.3
2109X509V3_get_d2i.3,X509_get0_extensions.3 2118X509V3_get_d2i.3,X509_get0_extensions.3
2119X509V3_get_d2i.3,X509_get0_uids.3
2110X509V3_get_d2i.3,X509_get_ext_d2i.3 2120X509V3_get_d2i.3,X509_get_ext_d2i.3
2111X509_ALGOR_dup.3,X509_ALGOR_cmp.3 2121X509_ALGOR_dup.3,X509_ALGOR_cmp.3
2112X509_ALGOR_dup.3,X509_ALGOR_free.3 2122X509_ALGOR_dup.3,X509_ALGOR_free.3
@@ -2264,12 +2274,10 @@ X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_chain.3
2264X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_current_crl.3 2274X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_current_crl.3
2265X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_current_issuer.3 2275X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_current_issuer.3
2266X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_parent_ctx.3 2276X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_parent_ctx.3
2267X509_STORE_CTX_get_error.3,X509_STORE_CTX_get0_policy_tree.3
2268X509_STORE_CTX_get_error.3,X509_STORE_CTX_get1_chain.3 2277X509_STORE_CTX_get_error.3,X509_STORE_CTX_get1_chain.3
2269X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_chain.3 2278X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_chain.3
2270X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_current_cert.3 2279X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_current_cert.3
2271X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_error_depth.3 2280X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_error_depth.3
2272X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_explicit_policy.3
2273X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_num_untrusted.3 2281X509_STORE_CTX_get_error.3,X509_STORE_CTX_get_num_untrusted.3
2274X509_STORE_CTX_get_error.3,X509_STORE_CTX_set0_verified_chain.3 2282X509_STORE_CTX_get_error.3,X509_STORE_CTX_set0_verified_chain.3
2275X509_STORE_CTX_get_error.3,X509_STORE_CTX_set_current_cert.3 2283X509_STORE_CTX_get_error.3,X509_STORE_CTX_set_current_cert.3
@@ -2300,9 +2308,13 @@ X509_STORE_CTX_set_flags.3,X509_STORE_CTX_set_depth.3
2300X509_STORE_CTX_set_flags.3,X509_STORE_CTX_set_purpose.3 2308X509_STORE_CTX_set_flags.3,X509_STORE_CTX_set_purpose.3
2301X509_STORE_CTX_set_flags.3,X509_STORE_CTX_set_time.3 2309X509_STORE_CTX_set_flags.3,X509_STORE_CTX_set_time.3
2302X509_STORE_CTX_set_flags.3,X509_STORE_CTX_set_trust.3 2310X509_STORE_CTX_set_flags.3,X509_STORE_CTX_set_trust.3
2311X509_STORE_CTX_set_verify.3,X509_STORE_CTX_check_issued_fn.3
2312X509_STORE_CTX_set_verify.3,X509_STORE_CTX_get_check_issued.3
2303X509_STORE_CTX_set_verify.3,X509_STORE_CTX_get_verify.3 2313X509_STORE_CTX_set_verify.3,X509_STORE_CTX_get_verify.3
2304X509_STORE_CTX_set_verify.3,X509_STORE_CTX_verify_fn.3 2314X509_STORE_CTX_set_verify.3,X509_STORE_CTX_verify_fn.3
2315X509_STORE_CTX_set_verify.3,X509_STORE_get_check_issued.3
2305X509_STORE_CTX_set_verify.3,X509_STORE_get_verify.3 2316X509_STORE_CTX_set_verify.3,X509_STORE_get_verify.3
2317X509_STORE_CTX_set_verify.3,X509_STORE_set_check_issued.3
2306X509_STORE_CTX_set_verify.3,X509_STORE_set_verify.3 2318X509_STORE_CTX_set_verify.3,X509_STORE_set_verify.3
2307X509_STORE_CTX_set_verify.3,X509_STORE_set_verify_func.3 2319X509_STORE_CTX_set_verify.3,X509_STORE_set_verify_func.3
2308X509_STORE_CTX_set_verify_cb.3,X509_STORE_CTX_get_verify_cb.3 2320X509_STORE_CTX_set_verify_cb.3,X509_STORE_CTX_get_verify_cb.3
@@ -2408,6 +2420,7 @@ X509_get0_notBefore.3,X509_set1_notBefore.3
2408X509_get0_notBefore.3,X509_set_notAfter.3 2420X509_get0_notBefore.3,X509_set_notAfter.3
2409X509_get0_notBefore.3,X509_set_notBefore.3 2421X509_get0_notBefore.3,X509_set_notBefore.3
2410X509_get0_signature.3,X509_CRL_get0_signature.3 2422X509_get0_signature.3,X509_CRL_get0_signature.3
2423X509_get0_signature.3,X509_CRL_get0_tbs_sigalg.3
2411X509_get0_signature.3,X509_CRL_get_signature_nid.3 2424X509_get0_signature.3,X509_CRL_get_signature_nid.3
2412X509_get0_signature.3,X509_REQ_get0_signature.3 2425X509_get0_signature.3,X509_REQ_get0_signature.3
2413X509_get0_signature.3,X509_REQ_get_signature_nid.3 2426X509_get0_signature.3,X509_REQ_get_signature_nid.3
@@ -2517,9 +2530,6 @@ bn_dump.3,bn_fix_top.3
2517bn_dump.3,bn_mul_add_words.3 2530bn_dump.3,bn_mul_add_words.3
2518bn_dump.3,bn_mul_comba4.3 2531bn_dump.3,bn_mul_comba4.3
2519bn_dump.3,bn_mul_comba8.3 2532bn_dump.3,bn_mul_comba8.3
2520bn_dump.3,bn_mul_high.3
2521bn_dump.3,bn_mul_low_normal.3
2522bn_dump.3,bn_mul_low_recursive.3
2523bn_dump.3,bn_mul_normal.3 2533bn_dump.3,bn_mul_normal.3
2524bn_dump.3,bn_mul_part_recursive.3 2534bn_dump.3,bn_mul_part_recursive.3
2525bn_dump.3,bn_mul_recursive.3 2535bn_dump.3,bn_mul_recursive.3
@@ -2715,7 +2725,6 @@ d2i_PKCS7.3,i2d_PKCS7_ENCRYPT.3
2715d2i_PKCS7.3,i2d_PKCS7_ENC_CONTENT.3 2725d2i_PKCS7.3,i2d_PKCS7_ENC_CONTENT.3
2716d2i_PKCS7.3,i2d_PKCS7_ENVELOPE.3 2726d2i_PKCS7.3,i2d_PKCS7_ENVELOPE.3
2717d2i_PKCS7.3,i2d_PKCS7_ISSUER_AND_SERIAL.3 2727d2i_PKCS7.3,i2d_PKCS7_ISSUER_AND_SERIAL.3
2718d2i_PKCS7.3,i2d_PKCS7_NDEF.3
2719d2i_PKCS7.3,i2d_PKCS7_RECIP_INFO.3 2728d2i_PKCS7.3,i2d_PKCS7_RECIP_INFO.3
2720d2i_PKCS7.3,i2d_PKCS7_SIGNED.3 2729d2i_PKCS7.3,i2d_PKCS7_SIGNED.3
2721d2i_PKCS7.3,i2d_PKCS7_SIGNER_INFO.3 2730d2i_PKCS7.3,i2d_PKCS7_SIGNER_INFO.3
@@ -2896,6 +2905,11 @@ lh_stats.3,lh_node_stats_bio.3
2896lh_stats.3,lh_node_usage_stats.3 2905lh_stats.3,lh_node_usage_stats.3
2897lh_stats.3,lh_node_usage_stats_bio.3 2906lh_stats.3,lh_node_usage_stats_bio.3
2898lh_stats.3,lh_stats_bio.3 2907lh_stats.3,lh_stats_bio.3
2908s2i_ASN1_INTEGER.3,i2s_ASN1_ENUMERATED.3
2909s2i_ASN1_INTEGER.3,i2s_ASN1_ENUMERATED_TABLE.3
2910s2i_ASN1_INTEGER.3,i2s_ASN1_INTEGER.3
2911s2i_ASN1_INTEGER.3,i2s_ASN1_OCTET_STRING.3
2912s2i_ASN1_INTEGER.3,s2i_ASN1_OCTET_STRING.3
2899tls_accept_socket.3,tls_accept_cbs.3 2913tls_accept_socket.3,tls_accept_cbs.3
2900tls_accept_socket.3,tls_accept_fds.3 2914tls_accept_socket.3,tls_accept_fds.3
2901tls_client.3,tls_configure.3 2915tls_client.3,tls_configure.3
diff --git a/patches/crypto_namespace.h.patch b/patches/crypto_namespace.h.patch
index 2751524..171e7f5 100644
--- a/patches/crypto_namespace.h.patch
+++ b/patches/crypto_namespace.h.patch
@@ -1,13 +1,22 @@
1--- crypto/hidden/crypto_namespace.h.orig 2023-02-28 00:41:43.212756628 -0600 1--- openbsd/src/lib/libcrypto/hidden/crypto_namespace.h 2023-03-15 11:41:37.614024500 -0600
2+++ crypto/hidden/crypto_namespace.h 2023-02-28 00:42:01.152756349 -0600 2+++ crypto/hidden/crypto_namespace.h 2023-03-15 17:12:55.297157400 -0600
3@@ -18,6 +18,10 @@ 3@@ -24,6 +24,12 @@
4 #ifndef _LIBCRYPTO_CRYPTO_NAMESPACE_H_ 4 * external calls use the latter name.
5 #define _LIBCRYPTO_CRYPTO_NAMESPACE_H_ 5 */
6 6
7+#if defined(_MSC_VER) && !defined(__clang__) && !defined(__attribute__) 7+#ifdef _MSC_VER
8+#define __attribute__(a) 8+# define LCRYPTO_UNUSED(x)
9+#endif 9+# define LCRYPTO_USED(x)
10+ 10+# define LCRYPTO_ALIAS1(pre, x)
11 /* 11+# define LCRYPTO_ALIAS(x)
12 * If marked as 'used', then internal calls use the name with prefix "_lcry_" 12+#else
13 * and we alias that to the normal name *and* the name with prefix "_libre_"; 13 #ifdef LIBRESSL_NAMESPACE
14 # define LCRYPTO_UNUSED(x) typeof(x) x __attribute__((deprecated))
15 #ifdef LIBRESSL_CRYPTO_NAMESPACE
16@@ -40,5 +46,6 @@
17 # define LCRYPTO_ALIAS1(pre,x)
18 # define LCRYPTO_ALIAS(x) asm("")
19 #endif
20+#endif /* _MSC_VER */
21
22 #endif /* _LIBCRYPTO_CRYPTO_NAMESPACE_H_ */
diff --git a/patches/libcrypto.hidden.patch b/patches/libcrypto.hidden.patch
new file mode 100644
index 0000000..a00a3dd
--- /dev/null
+++ b/patches/libcrypto.hidden.patch
@@ -0,0 +1,120 @@
1diff -u openbsd/src/lib/libcrypto/hidden/openssl/hmac.h crypto/hidden/openssl/hmac.h
2--- openbsd/src/lib/libcrypto/hidden/openssl/hmac.h 2023-03-15 11:41:37.632580800 -0600
3+++ crypto/hidden/openssl/hmac.h 2023-03-15 16:49:29.144080400 -0600
4@@ -18,7 +18,11 @@
5 #ifndef _LIBCRYPTO_HMAC_H_
6 #define _LIBCRYPTO_HMAC_H_
7
8+#ifdef _MSC_VER
9+#include <../include/openssl/hmac.h>
10+#else
11 #include_next <openssl/hmac.h>
12+#endif
13 #include "crypto_namespace.h"
14
15 LCRYPTO_USED(HMAC_CTX_new);
16diff -u openbsd/src/lib/libcrypto/hidden/openssl/pkcs12.h crypto/hidden/openssl/pkcs12.h
17--- openbsd/src/lib/libcrypto/hidden/openssl/pkcs12.h 2023-03-15 11:41:37.648024900 -0600
18+++ crypto/hidden/openssl/pkcs12.h 2023-03-15 17:15:36.015981800 -0600
19@@ -18,7 +18,11 @@
20 #ifndef _LIBCRYPTO_PKCS12_H
21 #define _LIBCRYPTO_PKCS12_H
22
23+#ifdef _MSC_VER
24+#include <../include/openssl/pkcs12.h>
25+#else
26 #include_next <openssl/pkcs12.h>
27+#endif
28 #include "crypto_namespace.h"
29
30 LCRYPTO_USED(PKCS12_SAFEBAG_get0_attr);
31diff -u openbsd/src/lib/libcrypto/hidden/openssl/pkcs7.h crypto/hidden/openssl/pkcs7.h
32--- openbsd/src/lib/libcrypto/hidden/openssl/pkcs7.h 2023-03-15 11:41:37.663599200 -0600
33+++ crypto/hidden/openssl/pkcs7.h 2023-03-15 16:53:43.232866600 -0600
34@@ -18,7 +18,11 @@
35 #ifndef _LIBCRYPTO_PKCS7_H
36 #define _LIBCRYPTO_PKCS7_H
37
38+#ifdef _MSC_VER
39+#include <../include/openssl/pkcs7.h>
40+#else
41 #include_next <openssl/pkcs7.h>
42+#endif
43 #include "crypto_namespace.h"
44
45 LCRYPTO_USED(PKCS7_ISSUER_AND_SERIAL_new);
46diff -u openbsd/src/lib/libcrypto/hidden/openssl/stack.h crypto/hidden/openssl/stack.h
47--- openbsd/src/lib/libcrypto/hidden/openssl/stack.h 2023-03-15 11:41:37.680453800 -0600
48+++ crypto/hidden/openssl/stack.h 2023-03-15 16:49:29.200142600 -0600
49@@ -18,7 +18,11 @@
50 #ifndef _LIBCRYPTO_STACK_H
51 #define _LIBCRYPTO_STACK_H
52
53+#ifdef _MSC_VER
54+#include <../include/openssl/stack.h>
55+#else
56 #include_next <openssl/stack.h>
57+#endif
58 #include "crypto_namespace.h"
59
60 LCRYPTO_USED(sk_num);
61diff -u openbsd/src/lib/libcrypto/hidden/openssl/ui.h crypto/hidden/openssl/ui.h
62--- openbsd/src/lib/libcrypto/hidden/openssl/ui.h 2023-03-15 11:41:37.696291800 -0600
63+++ crypto/hidden/openssl/ui.h 2023-03-15 16:49:29.222310800 -0600
64@@ -18,7 +18,11 @@
65 #ifndef _LIBCRYPTO_UI_H
66 #define _LIBCRYPTO_UI_H
67
68+#ifdef _MSC_VER
69+#include <../include/openssl/ui.h>
70+#else
71 #include_next <openssl/ui.h>
72+#endif
73 #include "crypto_namespace.h"
74
75 LCRYPTO_USED(UI_new);
76diff -u openbsd/src/lib/libcrypto/hidden/openssl/x509.h crypto/hidden/openssl/x509.h
77--- openbsd/src/lib/libcrypto/hidden/openssl/x509.h 2023-03-15 11:41:37.713302600 -0600
78+++ crypto/hidden/openssl/x509.h 2023-03-15 16:49:29.238904200 -0600
79@@ -18,7 +18,11 @@
80 #ifndef _LIBCRYPTO_X509_H
81 #define _LIBCRYPTO_X509_H
82
83+#ifdef _MSC_VER
84+#include <../include/openssl/x509.h>
85+#else
86 #include_next <openssl/x509.h>
87+#endif
88 #include "crypto_namespace.h"
89
90 LCRYPTO_USED(X509_CRL_up_ref);
91diff -u openbsd/src/lib/libcrypto/hidden/openssl/x509v3.h crypto/hidden/openssl/x509v3.h
92--- openbsd/src/lib/libcrypto/hidden/openssl/x509v3.h 2023-03-15 11:41:37.756379100 -0600
93+++ crypto/hidden/openssl/x509v3.h 2023-03-15 16:49:29.264482800 -0600
94@@ -18,7 +18,11 @@
95 #ifndef _LIBCRYPTO_X509V3_H
96 #define _LIBCRYPTO_X509V3_H
97
98+#ifdef _MSC_VER
99+#include <../include/openssl/x509v3.h>
100+#else
101 #include_next <openssl/x509v3.h>
102+#endif
103 #include "crypto_namespace.h"
104
105 LCRYPTO_USED(PROXY_POLICY_new);
106diff -u openbsd/src/lib/libcrypto/hidden/openssl/x509_vfy.h crypto/hidden/openssl/x509_vfy.h
107--- openbsd/src/lib/libcrypto/hidden/openssl/x509_vfy.h 2023-03-15 11:41:37.735995100 -0600
108+++ crypto/hidden/openssl/x509_vfy.h 2023-03-15 16:49:29.300450300 -0600
109@@ -18,7 +18,11 @@
110 #ifndef _LIBCRYPTO_X509_VFY_H
111 #define _LIBCRYPTO_X509_VFY_H
112
113+#ifdef _MSC_VER
114+#include <../include/openssl/x509_vfy.h>
115+#else
116 #include_next <openssl/x509_vfy.h>
117+#endif
118 #include "crypto_namespace.h"
119
120 LCRYPTO_USED(X509_STORE_set_depth);
diff --git a/patches/libssl.hidden.patch b/patches/libssl.hidden.patch
new file mode 100644
index 0000000..5a8c2c8
--- /dev/null
+++ b/patches/libssl.hidden.patch
@@ -0,0 +1,15 @@
1diff -u openbsd/src/lib/libssl/hidden/openssl/ssl.h ssl/hidden/openssl/ssl.h
2--- openbsd/src/lib/libssl/hidden/openssl/ssl.h 2023-03-15 11:41:52.466146400 -0600
3+++ ssl/hidden/openssl/ssl.h 2023-03-15 16:49:29.358377300 -0600
4@@ -18,7 +18,11 @@
5 #ifndef _LIBSSL_SSL_H_
6 #define _LIBSSL_SSL_H_
7
8+#ifdef _MSC_VER
9+#include <../include/openssl/ssl.h>
10+#else
11 #include_next <openssl/ssl.h>
12+#endif
13 #include "ssl_namespace.h"
14
15 LSSL_USED(BIO_f_ssl);
diff --git a/patches/openssl.c.patch b/patches/openssl.c.patch
index 46702f2..7816dd0 100644
--- a/patches/openssl.c.patch
+++ b/patches/openssl.c.patch
@@ -1,6 +1,6 @@
1--- apps/openssl/openssl.c.orig Sun Nov 27 10:48:36 2022 1--- apps/openssl/openssl.c.orig Tue Apr 25 16:50:41 2023
2+++ apps/openssl/openssl.c Sun Nov 27 10:48:49 2022 2+++ apps/openssl/openssl.c Tue Apr 25 16:51:01 2023
3@@ -359,7 +359,9 @@ BIO *bio_err = NULL; 3@@ -358,7 +358,9 @@
4 static void 4 static void
5 openssl_startup(void) 5 openssl_startup(void)
6 { 6 {
diff --git a/patches/opensslfeatures.h.patch b/patches/opensslfeatures.h.patch
new file mode 100644
index 0000000..8ee311d
--- /dev/null
+++ b/patches/opensslfeatures.h.patch
@@ -0,0 +1,16 @@
1--- openbsd/src/lib/libcrypto/opensslfeatures.h 2023-03-15 11:41:47.301015100 -0600
2+++ include/openssl/opensslfeatures.h 2023-03-15 18:27:57.740024800 -0600
3@@ -7,6 +7,13 @@
4 #define LIBRESSL_HAS_TLS1_3
5 #define LIBRESSL_HAS_DTLS1_2
6
7+/*
8+ * Used for compatibility with compilers lacking __attribute__
9+ */
10+#if defined(_MSC_VER) && !defined(__clang__) && !defined(__attribute__)
11+#define __attribute__(a)
12+#endif
13+
14 #define OPENSSL_THREADS
15
16 #define OPENSSL_NO_BUF_FREELISTS
diff --git a/patches/speed.c.patch b/patches/speed.c.patch
index 87a06bc..3baf9f2 100644
--- a/patches/speed.c.patch
+++ b/patches/speed.c.patch
@@ -1,6 +1,6 @@
1--- apps/openssl/speed.c.orig Tue Nov 22 17:32:11 2022 1--- apps/openssl/speed.c.orig Sun May 21 12:13:46 2023
2+++ apps/openssl/speed.c Tue Nov 22 18:33:13 2022 2+++ apps/openssl/speed.c Sun May 21 12:31:50 2023
3@@ -159,7 +159,16 @@ static void 3@@ -161,7 +161,16 @@ static void
4 pkey_print_message(const char *str, const char *str2, 4 pkey_print_message(const char *str, const char *str2,
5 long num, int bits, int sec); 5 long num, int bits, int sec);
6 static void print_result(int alg, int run_no, int count, double time_used); 6 static void print_result(int alg, int run_no, int count, double time_used);
@@ -17,44 +17,43 @@
17 17
18 #define ALGOR_NUM 32 18 #define ALGOR_NUM 32
19 #define SIZE_NUM 5 19 #define SIZE_NUM 5
20@@ -466,8 +475,10 @@ speed_main(int argc, char **argv) 20@@ -431,7 +440,9 @@ speed_main(int argc, char **argv)
21 const EVP_CIPHER *evp_cipher = NULL; 21 const EVP_CIPHER *evp_cipher = NULL;
22 const EVP_MD *evp_md = NULL; 22 const EVP_MD *evp_md = NULL;
23 int decrypt = 0; 23 int decrypt = 0;
24+#ifndef _WIN32 24+#ifndef _WIN32
25 int multi = 0; 25 int multi = 0;
26 const char *errstr = NULL;
27+#endif 26+#endif
27 const char *errstr = NULL;
28 28
29 if (pledge("stdio proc", NULL) == -1) { 29 if (pledge("stdio proc", NULL) == -1) {
30 perror("pledge"); 30@@ -506,6 +517,7 @@ speed_main(int argc, char **argv)
31@@ -542,6 +553,7 @@ speed_main(int argc, char **argv) 31 decrypt = 1;
32 j--; /* Otherwise, -decrypt gets confused with an 32 j--; /* Otherwise, -decrypt gets confused with an
33 * algorithm. */ 33 * algorithm. */
34 }
35+#ifndef _WIN32 34+#ifndef _WIN32
36 else if ((argc > 0) && (strcmp(*argv, "-multi") == 0)) { 35 } else if (argc > 0 && strcmp(*argv, "-multi") == 0) {
37 argc--; 36 argc--;
38 argv++; 37 argv++;
39@@ -557,6 +569,7 @@ speed_main(int argc, char **argv) 38@@ -520,6 +532,7 @@ speed_main(int argc, char **argv)
39 }
40 j--; /* Otherwise, -multi gets confused with an 40 j--; /* Otherwise, -multi gets confused with an
41 * algorithm. */ 41 * algorithm. */
42 }
43+#endif 42+#endif
44 else if (argc > 0 && !strcmp(*argv, "-mr")) { 43 } else if (argc > 0 && strcmp(*argv, "-unaligned") == 0) {
45 mr = 1; 44 argc--;
46 j--; /* Otherwise, -mr gets confused with an 45 argv++;
47@@ -919,7 +932,9 @@ speed_main(int argc, char **argv) 46@@ -855,7 +868,9 @@ speed_main(int argc, char **argv)
48 BIO_printf(bio_err, "-evp e use EVP e.\n"); 47 BIO_printf(bio_err, "-evp e use EVP e.\n");
49 BIO_printf(bio_err, "-decrypt time decryption instead of encryption (only EVP).\n"); 48 BIO_printf(bio_err, "-decrypt time decryption instead of encryption (only EVP).\n");
50 BIO_printf(bio_err, "-mr produce machine readable output.\n"); 49 BIO_printf(bio_err, "-mr produce machine readable output.\n");
51+#ifndef _WIN32 50+#ifndef _WIN32
52 BIO_printf(bio_err, "-multi n run n benchmarks in parallel.\n"); 51 BIO_printf(bio_err, "-multi n run n benchmarks in parallel.\n");
53+#endif 52+#endif
53 BIO_printf(bio_err, "-unaligned n use buffers with offset n from proper alignment.\n");
54 goto end; 54 goto end;
55 } 55 }
56 argc--; 56@@ -864,8 +879,10 @@ speed_main(int argc, char **argv)
57@@ -927,8 +942,10 @@ speed_main(int argc, char **argv)
58 j++; 57 j++;
59 } 58 }
60 59
@@ -65,7 +64,7 @@
65 64
66 if (j == 0) { 65 if (j == 0) {
67 for (i = 0; i < ALGOR_NUM; i++) { 66 for (i = 0; i < ALGOR_NUM; i++) {
68@@ -1805,7 +1822,9 @@ speed_main(int argc, char **argv) 67@@ -1742,7 +1759,9 @@ speed_main(int argc, char **argv)
69 ecdh_doit[j] = 0; 68 ecdh_doit[j] = 0;
70 } 69 }
71 } 70 }
@@ -75,7 +74,7 @@
75 if (!mr) { 74 if (!mr) {
76 fprintf(stdout, "%s\n", SSLeay_version(SSLEAY_VERSION)); 75 fprintf(stdout, "%s\n", SSLeay_version(SSLEAY_VERSION));
77 fprintf(stdout, "%s\n", SSLeay_version(SSLEAY_BUILT_ON)); 76 fprintf(stdout, "%s\n", SSLeay_version(SSLEAY_BUILT_ON));
78@@ -1978,11 +1997,15 @@ pkey_print_message(const char *str, const char *str2, 77@@ -1915,11 +1934,15 @@ pkey_print_message(const char *str, const char *str2,
79 static void 78 static void
80 print_result(int alg, int run_no, int count, double time_used) 79 print_result(int alg, int run_no, int count, double time_used)
81 { 80 {
@@ -91,7 +90,7 @@
91 static char * 90 static char *
92 sstrsep(char **string, const char *delim) 91 sstrsep(char **string, const char *delim)
93 { 92 {
94@@ -2189,4 +2212,5 @@ do_multi(int multi) 93@@ -2126,4 +2149,5 @@ do_multi(int multi)
95 free(fds); 94 free(fds);
96 return 1; 95 return 1;
97 } 96 }
diff --git a/patches/ssl_namespace.h.patch b/patches/ssl_namespace.h.patch
index 649e862..758f8dc 100644
--- a/patches/ssl_namespace.h.patch
+++ b/patches/ssl_namespace.h.patch
@@ -1,13 +1,21 @@
1--- ssl/hidden/ssl_namespace.h.orig 2023-02-28 00:42:20.928756042 -0600 1--- openbsd/src/lib/libssl/hidden/ssl_namespace.h 2023-03-15 11:41:52.481641800 -0600
2+++ ssl/hidden/ssl_namespace.h 2023-02-28 00:43:16.372755180 -0600 2+++ ssl/hidden/ssl_namespace.h 2023-03-15 17:28:04.685309300 -0600
3@@ -18,6 +18,10 @@ 3@@ -23,6 +23,11 @@
4 #ifndef _LIBSSL_SSL_NAMESPACE_H_
5 #define _LIBSSL_SSL_NAMESPACE_H_
6
7+#if defined(_MSC_VER) && !defined(__clang__) && !defined(__attribute__)
8+#define __attribute__(a)
9+#endif
10+
11 /*
12 * If marked as 'used', then internal calls use the name with prefix "_lssl_"
13 * and we alias that to the normal name. 4 * and we alias that to the normal name.
5 */
6
7+#ifdef _MSC_VER
8+#define LSSL_UNUSED(x)
9+#define LSSL_USED(x)
10+#define LSSL_ALIAS(x)
11+#else
12 #ifdef LIBRESSL_NAMESPACE
13 #define LSSL_UNUSED(x) typeof(x) x __attribute__((deprecated))
14 #define LSSL_USED(x) __attribute__((visibility("hidden"))) \
15@@ -33,5 +38,6 @@
16 #define LSSL_USED(x)
17 #define LSSL_ALIAS(x) asm("")
18 #endif
19+#endif /* _MSC_VER */
20
21 #endif /* _LIBSSL_SSL_NAMESPACE_H_ */
diff --git a/patches/tlsexttest.c.patch b/patches/tlsexttest.c.patch
index c1591d7..023d323 100644
--- a/patches/tlsexttest.c.patch
+++ b/patches/tlsexttest.c.patch
@@ -1,6 +1,6 @@
1--- tests/tlsexttest.c.orig Tue Nov 8 10:32:18 2022 1--- tests/tlsexttest.c.orig Fri Apr 28 11:42:38 2023
2+++ tests/tlsexttest.c Tue Nov 8 10:35:52 2022 2+++ tests/tlsexttest.c Fri Apr 28 11:55:27 2023
3@@ -1773,7 +1773,9 @@ static const unsigned char tlsext_sni_client[] = { 3@@ -1775,7 +1775,9 @@
4 }; 4 };
5 5
6 static const unsigned char tlsext_sni_server[] = { 6 static const 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@@ -1971,9 +1973,9 @@ test_tlsext_sni_server(void) 13@@ -1973,9 +1975,9 @@
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@@ -1982,14 +1984,14 @@ test_tlsext_sni_server(void) 25@@ -1984,14 +1986,14 @@
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");
@@ -39,7 +39,7 @@
39 if (!client_funcs->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@@ -3194,7 +3196,10 @@ unsigned char tlsext_clienthello_default[] = { 42@@ -3196,7 +3198,10 @@
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@@ -3280,18 +3285,18 @@ test_tlsext_clienthello_build(void) 54@@ -3287,18 +3292,18 @@
55 goto err; 55 goto err;
56 } 56 }
57 57
diff --git a/patches/windows_headers.patch b/patches/windows_headers.patch
index 17c447d..e6bf584 100644
--- a/patches/windows_headers.patch
+++ b/patches/windows_headers.patch
@@ -61,12 +61,12 @@ diff -u include/openssl.orig/pkcs7.h include/openssl/pkcs7.h
61 Encryption_ID DES-CBC 61 Encryption_ID DES-CBC
62 Digest_ID MD5 62 Digest_ID MD5
63diff -u include/openssl.orig/x509.h include/openssl/x509.h 63diff -u include/openssl.orig/x509.h include/openssl/x509.h
64--- include/openssl.orig/x509.h Mon Dec 7 07:58:32 2015 64--- include/openssl.orig/x509.h Tue Apr 18 03:26:56 2023
65+++ include/openssl/x509.h Mon Dec 7 07:56:14 2015 65+++ include/openssl/x509.h Tue Apr 18 03:27:14 2023
66@@ -112,6 +112,19 @@ 66@@ -106,6 +106,19 @@
67 extern "C" { 67 extern "C" {
68 #endif 68 #endif
69 69
70+#if defined(_WIN32) && defined(__WINCRYPT_H__) 70+#if defined(_WIN32) && defined(__WINCRYPT_H__)
71+#ifndef LIBRESSL_INTERNAL 71+#ifndef LIBRESSL_INTERNAL
72+#ifdef _MSC_VER 72+#ifdef _MSC_VER
diff --git a/scripts/test b/scripts/test
index c7200dc..f1fdd83 100755
--- a/scripts/test
+++ b/scripts/test
@@ -3,6 +3,7 @@ set -e
3set -x 3set -x
4 4
5unset CC 5unset CC
6ENABLE_ASM="${ENABLE_ASM:=ON}"
6 7
7if type apt-get >/dev/null 2>&1; then 8if type apt-get >/dev/null 2>&1; then
8 sudo apt-get update 9 sudo apt-get update
@@ -27,21 +28,21 @@ if [ "x$ARCH" = "xnative" ]; then
27 28
28 # test cmake and ninja 29 # test cmake and ninja
29 if [ `uname` = "Darwin" ]; then 30 if [ `uname` = "Darwin" ]; then
30 cmake .. 31 cmake -DENABLE_ASM=${ENABLE_ASM} ..
31 make -j 4 32 make -j 4
32 make test 33 make test
33 34
34 cd ../build-shared 35 cd ../build-shared
35 cmake -DBUILD_SHARED_LIBS=ON .. 36 cmake -DBUILD_SHARED_LIBS=ON -DENABLE_ASM=${ENABLE_ASM} ..
36 make -j 4 37 make -j 4
37 make test 38 make test
38 else 39 else
39 cmake -GNinja .. 40 cmake -GNinja -DENABLE_ASM=${ENABLE_ASM} ..
40 ninja -j 4 41 ninja -j 4
41 ninja test 42 ninja test
42 43
43 cd ../build-shared 44 cd ../build-shared
44 cmake -GNinja -DBUILD_SHARED_LIBS=ON .. 45 cmake -GNinja -DBUILD_SHARED_LIBS=ON -DENABLE_ASM=${ENABLE_ASM} ..
45 ninja -j 4 46 ninja -j 4
46 ninja test 47 ninja test
47 fi 48 fi
@@ -63,14 +64,14 @@ elif [ "x$ARCH" = "xmingw32" -o "x$ARCH" = "xmingw64" ]; then
63 rm -fr build-static 64 rm -fr build-static
64 mkdir build-static 65 mkdir build-static
65 cd build-static 66 cd build-static
66 cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=../scripts/$CPU-w64-mingw32.cmake .. 67 cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=../scripts/$CPU-w64-mingw32.cmake -DENABLE_ASM=${ENABLE_ASM} ..
67 ninja -j 4 68 ninja -j 4
68 ) 69 )
69 ( 70 (
70 rm -fr build-shared 71 rm -fr build-shared
71 mkdir build-shared 72 mkdir build-shared
72 cd build-shared 73 cd build-shared
73 cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=../scripts/$CPU-w64-mingw32.cmake -DBUILD_SHARED_LIBS=ON .. 74 cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=../scripts/$CPU-w64-mingw32.cmake -DBUILD_SHARED_LIBS=ON -DENABLE_ASM=${ENABLE_ASM} ..
74 ninja -j 4 75 ninja -j 4
75 ) 76 )
76 77
@@ -91,6 +92,23 @@ elif [ "x$ARCH" = "xarm32" -o "x$ARCH" = "xarm64" ]; then
91 92
92 file apps/openssl/.libs/openssl 93 file apps/openssl/.libs/openssl
93 94
95elif [ "x$ARCH" = "xmips32" -o "x$ARCH" = "xmips64" ]; then
96 sudo apt-get install -y qemu-user-static binfmt-support
97
98 if [ "x$ARCH" = "xmips32" ]; then
99 sudo apt-get install -y g++-mips-linux-gnu
100 sudo ln -sf /usr/mipsel-linux-gnu/lib/ld.so.1 /lib/
101 ./configure --host=mipsel-linux-gnu
102 LD_LIBRARY_PATH=/usr/mipsel-linux-gnu/lib make -j 4 check
103 else
104 sudo apt-get install -y g++-mips64el-linux-gnuabi64
105 sudo ln -sf /usr/mips64el-linux-gnuabi64/lib64/ld.so.1 /lib64
106 ./configure --host=mips64el-linux-gnuabi64
107 LD_LIBRARY_PATH=/usr/mips64el-linux-gnuabi64/lib make -j 4 check
108 fi
109
110 file apps/openssl/.libs/openssl
111
94elif [ "x$ARCH" = "xandroid" ]; then 112elif [ "x$ARCH" = "xandroid" ]; then
95 export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake 113 export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
96 114
@@ -125,7 +143,8 @@ elif [ "x$ARCH" = "xandroid" ]; then
125 cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja \ 143 cmake -GNinja -DCMAKE_MAKE_PROGRAM=ninja \
126 -DANDROID_NDK=$ANDROID_NDK_HOME \ 144 -DANDROID_NDK=$ANDROID_NDK_HOME \
127 -DCMAKE_TOOLCHAIN_FILE=$TC_FILE \ 145 -DCMAKE_TOOLCHAIN_FILE=$TC_FILE \
128 -DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAL .. 146 -DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$NAL \
147 -DENABLE_ASM=${ENABLE_ASM} ..
129 148
130 ninja -j 4 149 ninja -j 4
131 150
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 6f3be85..7e730e3 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -40,6 +40,13 @@ add_executable(aes_wrap aes_wrap.c)
40target_link_libraries(aes_wrap ${OPENSSL_TEST_LIBS}) 40target_link_libraries(aes_wrap ${OPENSSL_TEST_LIBS})
41add_test(aes_wrap aes_wrap) 41add_test(aes_wrap aes_wrap)
42 42
43# apitest
44add_executable(apitest apitest.c)
45target_link_libraries(apitest ${OPENSSL_TEST_LIBS})
46set_source_files_properties(apitest.c PROPERTIES COMPILE_FLAGS
47 -DCERTSDIR=\\"${CMAKE_CURRENT_SOURCE_DIR}\\")
48add_test(apitest apitest)
49
43# arc4randomforktest 50# arc4randomforktest
44# Windows/mingw does not have fork, but Cygwin does. 51# Windows/mingw does not have fork, but Cygwin does.
45if(NOT (WIN32 OR (CMAKE_SYSTEM_NAME MATCHES "MINGW"))) 52if(NOT (WIN32 OR (CMAKE_SYSTEM_NAME MATCHES "MINGW")))
@@ -73,6 +80,11 @@ add_executable(asn1object asn1object.c)
73target_link_libraries(asn1object ${OPENSSL_TEST_LIBS}) 80target_link_libraries(asn1object ${OPENSSL_TEST_LIBS})
74add_test(asn1object asn1object) 81add_test(asn1object asn1object)
75 82
83# asn1oct
84add_executable(asn1oct asn1oct.c)
85target_link_libraries(asn1oct ${OPENSSL_TEST_LIBS})
86add_test(asn1oct asn1oct)
87
76# asn1string_copy 88# asn1string_copy
77add_executable(asn1string_copy asn1string_copy.c) 89add_executable(asn1string_copy asn1string_copy.c)
78target_link_libraries(asn1string_copy ${OPENSSL_TEST_LIBS}) 90target_link_libraries(asn1string_copy ${OPENSSL_TEST_LIBS})
@@ -108,6 +120,11 @@ add_executable(bf_test bf_test.c)
108target_link_libraries(bf_test ${OPENSSL_TEST_LIBS}) 120target_link_libraries(bf_test ${OPENSSL_TEST_LIBS})
109add_test(bf_test bf_test) 121add_test(bf_test bf_test)
110 122
123# bio_asn1
124add_executable(bio_asn1 bio_asn1.c)
125target_link_libraries(bio_asn1 ${OPENSSL_TEST_LIBS})
126add_test(bio_asn1 bio_asn1)
127
111# bio_chain 128# bio_chain
112add_executable(bio_chain bio_chain.c) 129add_executable(bio_chain bio_chain.c)
113target_link_libraries(bio_chain ${OPENSSL_TEST_LIBS}) 130target_link_libraries(bio_chain ${OPENSSL_TEST_LIBS})
@@ -136,6 +153,13 @@ add_executable(bn_cmp bn_cmp.c)
136target_link_libraries(bn_cmp ${OPENSSL_TEST_LIBS}) 153target_link_libraries(bn_cmp ${OPENSSL_TEST_LIBS})
137add_test(bn_cmp bn_cmp) 154add_test(bn_cmp bn_cmp)
138 155
156# bn_gcd
157add_executable(bn_gcd bn_cmp.c)
158target_link_libraries(bn_gcd ${OPENSSL_TEST_LIBS})
159add_test(bn_gcd bn_gcd)
160
161# bn_general is a benchmark
162
139# bn_isqrt 163# bn_isqrt
140add_executable(bn_isqrt bn_isqrt.c) 164add_executable(bn_isqrt bn_isqrt.c)
141target_link_libraries(bn_isqrt ${OPENSSL_TEST_LIBS}) 165target_link_libraries(bn_isqrt ${OPENSSL_TEST_LIBS})
@@ -148,18 +172,6 @@ set_source_files_properties(bn_mod_exp.c PROPERTIES COMPILE_FLAGS
148target_link_libraries(bn_mod_exp ${OPENSSL_TEST_LIBS}) 172target_link_libraries(bn_mod_exp ${OPENSSL_TEST_LIBS})
149add_test(bn_mod_exp bn_mod_exp) 173add_test(bn_mod_exp bn_mod_exp)
150 174
151# bn_mod_exp_zero
152add_executable(bn_mod_exp_zero bn_mod_exp_zero.c)
153set_source_files_properties(bn_mod_exp_zero.c PROPERTIES COMPILE_FLAGS
154 -ULIBRESSL_INTERNAL)
155target_link_libraries(bn_mod_exp_zero ${OPENSSL_TEST_LIBS})
156add_test(bn_mod_exp_zero bn_mod_exp_zero)
157
158# bn_mod_exp2_mont
159add_executable(bn_mod_exp2_mont bn_mod_exp2_mont.c)
160target_link_libraries(bn_mod_exp2_mont ${OPENSSL_TEST_LIBS})
161add_test(bn_mod_exp2_mont bn_mod_exp2_mont)
162
163# bn_mod_sqrt 175# bn_mod_sqrt
164add_executable(bn_mod_sqrt bn_mod_sqrt.c) 176add_executable(bn_mod_sqrt bn_mod_sqrt.c)
165target_link_libraries(bn_mod_sqrt ${OPENSSL_TEST_LIBS}) 177target_link_libraries(bn_mod_sqrt ${OPENSSL_TEST_LIBS})
@@ -202,6 +214,11 @@ add_executable(bn_unit bn_unit.c)
202target_link_libraries(bn_unit ${OPENSSL_TEST_LIBS}) 214target_link_libraries(bn_unit ${OPENSSL_TEST_LIBS})
203add_test(bn_unit bn_unit) 215add_test(bn_unit bn_unit)
204 216
217# bn_word
218add_executable(bn_word bn_word.c)
219target_link_libraries(bn_word ${OPENSSL_TEST_LIBS})
220add_test(bn_word bn_word)
221
205# buffertest 222# buffertest
206add_executable(buffertest buffertest.c) 223add_executable(buffertest buffertest.c)
207target_link_libraries(buffertest ${OPENSSL_TEST_LIBS}) 224target_link_libraries(buffertest ${OPENSSL_TEST_LIBS})
@@ -212,6 +229,9 @@ add_executable(bytestringtest bytestringtest.c)
212target_link_libraries(bytestringtest ${OPENSSL_TEST_LIBS}) 229target_link_libraries(bytestringtest ${OPENSSL_TEST_LIBS})
213add_test(bytestringtest bytestringtest) 230add_test(bytestringtest bytestringtest)
214 231
232# callback
233# callbackfailures
234
215# casttest 235# casttest
216add_executable(casttest casttest.c) 236add_executable(casttest casttest.c)
217target_link_libraries(casttest ${OPENSSL_TEST_LIBS}) 237target_link_libraries(casttest ${OPENSSL_TEST_LIBS})
@@ -252,10 +272,12 @@ add_executable(constraints constraints.c)
252target_link_libraries(constraints ${OPENSSL_TEST_LIBS}) 272target_link_libraries(constraints ${OPENSSL_TEST_LIBS})
253add_test(constraints constraints) 273add_test(constraints constraints)
254 274
255# cts128test 275# cttest
256add_executable(cts128test cts128test.c) 276add_executable(cttest cttest.c)
257target_link_libraries(cts128test ${OPENSSL_TEST_LIBS}) 277target_link_libraries(cttest ${OPENSSL_TEST_LIBS})
258add_test(cts128test cts128test) 278set_source_files_properties(cttest.c PROPERTIES COMPILE_FLAGS
279 -DCTPATH=\\"${CMAKE_CURRENT_SOURCE_DIR}\\")
280add_test(cttest cttest)
259 281
260# destest 282# destest
261add_executable(destest destest.c) 283add_executable(destest destest.c)
@@ -336,6 +358,13 @@ add_executable(evptest evptest.c)
336target_link_libraries(evptest ${OPENSSL_TEST_LIBS}) 358target_link_libraries(evptest ${OPENSSL_TEST_LIBS})
337add_test(evptest evptest ${CMAKE_CURRENT_SOURCE_DIR}/evptests.txt) 359add_test(evptest evptest ${CMAKE_CURRENT_SOURCE_DIR}/evptests.txt)
338 360
361# evp_test
362add_executable(evp_test evp_test.c)
363target_link_libraries(evp_test ${OPENSSL_TEST_LIBS})
364add_test(evp_test evp_test)
365
366# expirecallback.c
367
339# explicit_bzero 368# explicit_bzero
340# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows 369# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows
341if(NOT WIN32) 370if(NOT WIN32)
@@ -348,8 +377,15 @@ if(NOT WIN32)
348 add_test(explicit_bzero explicit_bzero) 377 add_test(explicit_bzero explicit_bzero)
349endif() 378endif()
350 379
380# exportertest
381add_executable(exportertest exportertest.c)
382target_link_libraries(exportertest ${OPENSSL_TEST_LIBS})
383add_test(exportertest exportertest)
384
351# freenull 385# freenull
352add_executable(freenull freenull.c) 386add_executable(freenull freenull.c)
387set_source_files_properties(freenull.c PROPERTIES COMPILE_FLAGS
388 -ULIBRESSL_INTERNAL)
353target_link_libraries(freenull ${OPENSSL_TEST_LIBS}) 389target_link_libraries(freenull ${OPENSSL_TEST_LIBS})
354add_test(freenull freenull) 390add_test(freenull freenull)
355 391
@@ -388,11 +424,14 @@ add_executable(igetest igetest.c)
388target_link_libraries(igetest ${OPENSSL_TEST_LIBS}) 424target_link_libraries(igetest ${OPENSSL_TEST_LIBS})
389add_test(igetest igetest) 425add_test(igetest igetest)
390 426
391# keypairtest 427# init_pledge
428
429# key_schedule
392add_executable(key_schedule key_schedule.c) 430add_executable(key_schedule key_schedule.c)
393target_link_libraries(key_schedule ${OPENSSL_TEST_LIBS}) 431target_link_libraries(key_schedule ${OPENSSL_TEST_LIBS})
394add_test(key_schedule key_schedule) 432add_test(key_schedule key_schedule)
395 433
434# keypair
396add_executable(keypairtest keypairtest.c) 435add_executable(keypairtest keypairtest.c)
397target_link_libraries(keypairtest ${LIBTLS_TEST_LIBS}) 436target_link_libraries(keypairtest ${LIBTLS_TEST_LIBS})
398target_include_directories(keypairtest BEFORE PUBLIC ../tls) 437target_include_directories(keypairtest BEFORE PUBLIC ../tls)
@@ -451,6 +490,13 @@ add_executable(poly1305test poly1305test.c)
451target_link_libraries(poly1305test ${OPENSSL_TEST_LIBS}) 490target_link_libraries(poly1305test ${OPENSSL_TEST_LIBS})
452add_test(poly1305test poly1305test) 491add_test(poly1305test poly1305test)
453 492
493# policy
494add_executable(policy policy.c)
495set_source_files_properties(policy.c PROPERTIES COMPILE_FLAGS
496 -DCERTSDIR=\\"${CMAKE_CURRENT_SOURCE_DIR}\\")
497target_link_libraries(policy ${OPENSSL_TEST_LIBS})
498add_test(policy policy)
499
454# pq_test 500# pq_test
455add_executable(pq_test pq_test.c) 501add_executable(pq_test pq_test.c)
456target_link_libraries(pq_test ${OPENSSL_TEST_LIBS}) 502target_link_libraries(pq_test ${OPENSSL_TEST_LIBS})
@@ -500,7 +546,6 @@ add_test(record_layer_test record_layer_test)
500 546
501# rfc3779 547# rfc3779
502add_executable(rfc3779 rfc3779.c) 548add_executable(rfc3779 rfc3779.c)
503set_source_files_properties(rfc3779.c PROPERTIES COMPILE_FLAGS -D__unused=)
504target_link_libraries(rfc3779 ${OPENSSL_TEST_LIBS}) 549target_link_libraries(rfc3779 ${OPENSSL_TEST_LIBS})
505add_test(rfc3779 rfc3779) 550add_test(rfc3779 rfc3779)
506 551
@@ -523,6 +568,8 @@ add_executable(rsa_test rsa_test.c)
523target_link_libraries(rsa_test ${OPENSSL_TEST_LIBS}) 568target_link_libraries(rsa_test ${OPENSSL_TEST_LIBS})
524add_test(rsa_test rsa_test) 569add_test(rsa_test rsa_test)
525 570
571# server.c
572
526# servertest 573# servertest
527add_executable(servertest servertest.c) 574add_executable(servertest servertest.c)
528target_link_libraries(servertest ${OPENSSL_TEST_LIBS}) 575target_link_libraries(servertest ${OPENSSL_TEST_LIBS})
@@ -538,6 +585,19 @@ add_executable(sha_test sha_test.c)
538target_link_libraries(sha_test ${OPENSSL_TEST_LIBS}) 585target_link_libraries(sha_test ${OPENSSL_TEST_LIBS})
539add_test(sha_test sha_test) 586add_test(sha_test sha_test)
540 587
588# XXX HAVE_SOCKETPAIR
589# signertest
590# add_executable(signertest signertest.c)
591# target_link_libraries(signertest ${LIBTLS_TEST_LIBS})
592# target_include_directories(signertest BEFORE PUBLIC ../tls)
593# set_source_files_properties(signertest.c PROPERTIES COMPILE_FLAGS
594# -DCERTSDIR=\\"${CMAKE_CURRENT_SOURCE_DIR}\\")
595# add_test(signertest signertest)
596
597# sm2crypttest
598# sm2evptest
599# sm2sigtest
600
541# sm3test 601# sm3test
542add_executable(sm3test sm3test.c) 602add_executable(sm3test sm3test.c)
543target_link_libraries(sm3test ${OPENSSL_TEST_LIBS}) 603target_link_libraries(sm3test ${OPENSSL_TEST_LIBS})
@@ -565,6 +625,11 @@ add_executable(ssl_set_alpn_protos ssl_set_alpn_protos.c)
565target_link_libraries(ssl_set_alpn_protos ${OPENSSL_TEST_LIBS}) 625target_link_libraries(ssl_set_alpn_protos ${OPENSSL_TEST_LIBS})
566add_test(ssl_set_alpn_protos ssl_set_alpn_protos) 626add_test(ssl_set_alpn_protos ssl_set_alpn_protos)
567 627
628# ssl_verify_param
629add_executable(ssl_verify_param ssl_verify_param.c)
630target_link_libraries(ssl_verify_param ${OPENSSL_TEST_LIBS})
631add_test(ssl_verify_param ssl_verify_param)
632
568# ssl_versions 633# ssl_versions
569add_executable(ssl_versions ssl_versions.c) 634add_executable(ssl_versions ssl_versions.c)
570target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS}) 635target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS})
@@ -679,6 +744,11 @@ add_executable(x509attribute x509attribute.c)
679target_link_libraries(x509attribute ${OPENSSL_TEST_LIBS}) 744target_link_libraries(x509attribute ${OPENSSL_TEST_LIBS})
680add_test(x509attribute x509attribute) 745add_test(x509attribute x509attribute)
681 746
747# x509_asn1
748add_executable(x509_asn1 x509_asn1.c)
749target_link_libraries(x509_asn1 ${OPENSSL_TEST_LIBS})
750add_test(x509_asn1 x509_asn1)
751
682# x509_info 752# x509_info
683add_executable(x509_info x509_info.c) 753add_executable(x509_info x509_info.c)
684target_link_libraries(x509_info ${OPENSSL_TEST_LIBS}) 754target_link_libraries(x509_info ${OPENSSL_TEST_LIBS})
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 26ed681..6c257c0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -57,6 +57,12 @@ TESTS += aes_wrap
57check_PROGRAMS += aes_wrap 57check_PROGRAMS += aes_wrap
58aes_wrap_SOURCES = aes_wrap.c 58aes_wrap_SOURCES = aes_wrap.c
59 59
60# apitest
61TESTS += apitest
62check_PROGRAMS += apitest
63apitest_SOURCES = apitest.c
64apitest_CPPFLAGS = $(AM_CPPFLAGS) -DCERTSDIR=\"$(srcdir)\"
65
60# arc4randomforktest 66# arc4randomforktest
61# Windows/mingw does not have fork, but Cygwin does. 67# Windows/mingw does not have fork, but Cygwin does.
62if !HOST_WIN 68if !HOST_WIN
@@ -96,6 +102,11 @@ TESTS += asn1object
96check_PROGRAMS += asn1object 102check_PROGRAMS += asn1object
97asn1object_SOURCES = asn1object.c 103asn1object_SOURCES = asn1object.c
98 104
105# asn1oct
106TESTS += asn1oct
107check_PROGRAMS += asn1oct
108asn1oct_SOURCES = asn1oct.c
109
99# asn1string_copy 110# asn1string_copy
100TESTS += asn1string_copy 111TESTS += asn1string_copy
101check_PROGRAMS += asn1string_copy 112check_PROGRAMS += asn1string_copy
@@ -126,6 +137,11 @@ TESTS += bf_test
126check_PROGRAMS += bf_test 137check_PROGRAMS += bf_test
127bf_test_SOURCES = bf_test.c 138bf_test_SOURCES = bf_test.c
128 139
140# bio_asn1
141TESTS += bio_asn1
142check_PROGRAMS += bio_asn1
143bio_asn1_SOURCES = bio_asn1.c
144
129# bio_chain 145# bio_chain
130TESTS += bio_chain 146TESTS += bio_chain
131check_PROGRAMS += bio_chain 147check_PROGRAMS += bio_chain
@@ -154,6 +170,13 @@ TESTS += bn_cmp
154check_PROGRAMS += bn_cmp 170check_PROGRAMS += bn_cmp
155bn_cmp_SOURCES = bn_cmp.c 171bn_cmp_SOURCES = bn_cmp.c
156 172
173# bn_gcd
174TESTS += bn_gcd
175check_PROGRAMS += bn_gcd
176bn_gcd_SOURCES = bn_gcd.c
177
178# bn_general is a benchmark.
179
157# bn_isqrt 180# bn_isqrt
158TESTS += bn_isqrt 181TESTS += bn_isqrt
159check_PROGRAMS += bn_isqrt 182check_PROGRAMS += bn_isqrt
@@ -165,17 +188,6 @@ check_PROGRAMS += bn_mod_exp
165bn_mod_exp_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL 188bn_mod_exp_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
166bn_mod_exp_SOURCES = bn_mod_exp.c 189bn_mod_exp_SOURCES = bn_mod_exp.c
167 190
168# bn_mod_exp_zero
169TESTS += bn_mod_exp_zero
170check_PROGRAMS += bn_mod_exp_zero
171bn_mod_exp_zero_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
172bn_mod_exp_zero_SOURCES = bn_mod_exp_zero.c
173
174# bn_mod_exp2_mont
175TESTS += bn_mod_exp2_mont
176check_PROGRAMS += bn_mod_exp2_mont
177bn_mod_exp2_mont_SOURCES = bn_mod_exp2_mont.c
178
179# bn_mod_sqrt 191# bn_mod_sqrt
180TESTS += bn_mod_sqrt 192TESTS += bn_mod_sqrt
181check_PROGRAMS += bn_mod_sqrt 193check_PROGRAMS += bn_mod_sqrt
@@ -217,6 +229,11 @@ TESTS += bn_unit
217check_PROGRAMS += bn_unit 229check_PROGRAMS += bn_unit
218bn_unit_SOURCES = bn_unit.c 230bn_unit_SOURCES = bn_unit.c
219 231
232# bn_word
233TESTS += bn_word
234check_PROGRAMS += bn_word
235bn_word_SOURCES = bn_word.c
236
220# buffertest 237# buffertest
221TESTS += buffertest 238TESTS += buffertest
222check_PROGRAMS += buffertest 239check_PROGRAMS += buffertest
@@ -227,6 +244,9 @@ TESTS += bytestringtest
227check_PROGRAMS += bytestringtest 244check_PROGRAMS += bytestringtest
228bytestringtest_SOURCES = bytestringtest.c 245bytestringtest_SOURCES = bytestringtest.c
229 246
247# callback
248# callbackfailures
249
230# casttest 250# casttest
231TESTS += casttest 251TESTS += casttest
232check_PROGRAMS += casttest 252check_PROGRAMS += casttest
@@ -268,10 +288,14 @@ TESTS += constraints
268check_PROGRAMS += constraints 288check_PROGRAMS += constraints
269constraints_SOURCES = constraints.c 289constraints_SOURCES = constraints.c
270 290
271# cts128test 291# cttest
272TESTS += cts128test 292TESTS += cttest
273check_PROGRAMS += cts128test 293check_PROGRAMS += cttest
274cts128test_SOURCES = cts128test.c 294cttest_SOURCES = cttest.c
295cttest_CPPFLAGS = $(AM_CPPFLAGS) -DCTPATH=\"$(srcdir)\"
296EXTRA_DIST += ctlog.conf
297EXTRA_DIST += letsencrypt-r3.crt
298EXTRA_DIST += libressl.org.crt
275 299
276# destest 300# destest
277TESTS += destest 301TESTS += destest
@@ -354,6 +378,13 @@ evptest_SOURCES = evptest.c
354EXTRA_DIST += evptest.sh 378EXTRA_DIST += evptest.sh
355EXTRA_DIST += evptests.txt 379EXTRA_DIST += evptests.txt
356 380
381# evp_test
382TESTS += evp_test
383check_PROGRAMS += evp_test
384evp_test_SOURCES = evp_test.c
385
386# expirecallback.c
387
357# explicit_bzero 388# explicit_bzero
358# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows 389# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows
359if !HOST_WIN 390if !HOST_WIN
@@ -367,8 +398,14 @@ endif
367endif 398endif
368endif 399endif
369 400
401# exportertest
402TESTS += exportertest
403check_PROGRAMS += exportertest
404exportertest_SOURCES = exportertest.c
405
370# freenull 406# freenull
371TESTS += freenull 407TESTS += freenull
408freenull_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
372check_PROGRAMS += freenull 409check_PROGRAMS += freenull
373freenull_SOURCES = freenull.c 410freenull_SOURCES = freenull.c
374 411
@@ -407,6 +444,8 @@ TESTS += igetest
407check_PROGRAMS += igetest 444check_PROGRAMS += igetest
408igetest_SOURCES = igetest.c 445igetest_SOURCES = igetest.c
409 446
447# init_pledge.c
448
410# key_schedule 449# key_schedule
411TESTS += key_schedule 450TESTS += key_schedule
412check_PROGRAMS += key_schedule 451check_PROGRAMS += key_schedule
@@ -467,6 +506,39 @@ TESTS += poly1305test
467check_PROGRAMS += poly1305test 506check_PROGRAMS += poly1305test
468poly1305test_SOURCES = poly1305test.c 507poly1305test_SOURCES = poly1305test.c
469 508
509# policy
510TESTS += policy
511check_PROGRAMS += policy
512policy_CPPFLAGS = $(AM_CPPFLAGS) -DCERTSDIR=\"$(srcdir)\"
513policy_SOURCES = policy.c
514EXTRA_DIST += policy_intermediate.pem
515EXTRA_DIST += policy_intermediate_any.pem
516EXTRA_DIST += policy_intermediate_duplicate.pem
517EXTRA_DIST += policy_intermediate_invalid.pem
518EXTRA_DIST += policy_intermediate_mapped.pem
519EXTRA_DIST += policy_intermediate_mapped_any.pem
520EXTRA_DIST += policy_intermediate_mapped_oid3.pem
521EXTRA_DIST += policy_intermediate_require.pem
522EXTRA_DIST += policy_intermediate_require1.pem
523EXTRA_DIST += policy_intermediate_require2.pem
524EXTRA_DIST += policy_intermediate_require_duplicate.pem
525EXTRA_DIST += policy_intermediate_require_no_policies.pem
526EXTRA_DIST += policy_leaf.pem
527EXTRA_DIST += policy_leaf_any.pem
528EXTRA_DIST += policy_leaf_duplicate.pem
529EXTRA_DIST += policy_leaf_invalid.pem
530EXTRA_DIST += policy_leaf_none.pem
531EXTRA_DIST += policy_leaf_oid1.pem
532EXTRA_DIST += policy_leaf_oid2.pem
533EXTRA_DIST += policy_leaf_oid3.pem
534EXTRA_DIST += policy_leaf_oid4.pem
535EXTRA_DIST += policy_leaf_oid5.pem
536EXTRA_DIST += policy_leaf_require.pem
537EXTRA_DIST += policy_leaf_require1.pem
538EXTRA_DIST += policy_root.pem
539EXTRA_DIST += policy_root2.pem
540EXTRA_DIST += policy_root_cross_inhibit_mapping.pem
541
470# pq_test 542# pq_test
471TESTS += pq_test.sh 543TESTS += pq_test.sh
472check_PROGRAMS += pq_test 544check_PROGRAMS += pq_test
@@ -507,7 +579,7 @@ record_layer_test_SOURCES = record_layer_test.c
507 579
508# rfc3779 580# rfc3779
509TESTS += rfc3779 581TESTS += rfc3779
510rfc3779_CPPFLAGS = $(AM_CPPFLAGS) -D__unused= 582rfc3779_CPPFLAGS = $(AM_CPPFLAGS)
511check_PROGRAMS += rfc3779 583check_PROGRAMS += rfc3779
512rfc3779_SOURCES = rfc3779.c 584rfc3779_SOURCES = rfc3779.c
513 585
@@ -531,6 +603,8 @@ TESTS += rsa_test
531check_PROGRAMS += rsa_test 603check_PROGRAMS += rsa_test
532rsa_test_SOURCES = rsa_test.c 604rsa_test_SOURCES = rsa_test.c
533 605
606# server.c
607
534# servertest 608# servertest
535TESTS += servertest.sh 609TESTS += servertest.sh
536check_PROGRAMS += servertest 610check_PROGRAMS += servertest
@@ -542,6 +616,17 @@ TESTS += sha_test
542check_PROGRAMS += sha_test 616check_PROGRAMS += sha_test
543sha_test_SOURCES = sha_test.c 617sha_test_SOURCES = sha_test.c
544 618
619# XXX HAVE_SOCKETPAIR
620# signertest
621# TESTS += signertest
622# check_PROGRAMS += signertest
623# signertest_CPPFLAGS = -I $(top_srcdir)/tls $(AM_CPPFLAGS) -DCERTSDIR=\"$(srcdir)\"
624# signertest_SOURCES = signertest.c
625
626# sm2crypttest
627# sm2evptest
628# sm2sigtest
629
545# sm3test 630# sm3test
546TESTS += sm3test 631TESTS += sm3test
547check_PROGRAMS += sm3test 632check_PROGRAMS += sm3test
@@ -568,6 +653,11 @@ TESTS += ssl_set_alpn_protos
568check_PROGRAMS += ssl_set_alpn_protos 653check_PROGRAMS += ssl_set_alpn_protos
569ssl_set_alpn_protos_SOURCES = ssl_set_alpn_protos.c 654ssl_set_alpn_protos_SOURCES = ssl_set_alpn_protos.c
570 655
656# ssl_verify_param
657TESTS += ssl_verify_param
658check_PROGRAMS += ssl_verify_param
659ssl_verify_param_SOURCES = ssl_verify_param.c
660
571# ssl_versions 661# ssl_versions
572TESTS += ssl_versions 662TESTS += ssl_versions
573check_PROGRAMS += ssl_versions 663check_PROGRAMS += ssl_versions
@@ -669,6 +759,11 @@ TESTS += x509attribute
669check_PROGRAMS += x509attribute 759check_PROGRAMS += x509attribute
670x509attribute_SOURCES = x509attribute.c 760x509attribute_SOURCES = x509attribute.c
671 761
762# x509_asn1
763TESTS += x509_asn1
764check_PROGRAMS += x509_asn1
765x509_asn1_SOURCES = x509_asn1.c
766
672# x509_info 767# x509_info
673TESTS += x509_info 768TESTS += x509_info
674check_PROGRAMS += x509_info 769check_PROGRAMS += x509_info
diff --git a/update.sh b/update.sh
index 29600a4..abf2097 100755
--- a/update.sh
+++ b/update.sh
@@ -12,10 +12,27 @@ if [ ! -d openbsd ]; then
12 git clone $LIBRESSL_GIT/openbsd 12 git clone $LIBRESSL_GIT/openbsd
13 fi 13 fi
14fi 14fi
15(cd openbsd 15
16 git fetch 16# pull either the latest or if on a tag, the matching tag
17 git checkout $openbsd_branch 17set +e
18 git pull --rebase) 18tag=`git describe --exact-match --tags HEAD 2>/dev/null`
19is_tag=$?
20# adjust for 9 hour time delta between trees
21release_ts=$((`git show -s --format=%ct $tag|tail -n1` + 32400))
22commit=`git -C openbsd rev-list -n 1 --before=$release_ts $openbsd_branch`
23git -C openbsd fetch
24if [ $is_tag -eq 0 ]; then
25 echo "This is tag $tag, trying OpenBSD tag libressl-$tag"
26 if ! git -C openbsd checkout "libressl-$tag"; then
27 echo "No matching OpenBSD tag found trying nearest commit $commit"
28 git -C openbsd checkout -q $commit
29 fi
30else
31 echo "Not on a tag, grabbing latest (NOTE: this may be broken from time to time)"
32 git -C openbsd checkout $openbsd_branch
33 git -C openbsd pull
34fi
35set -e
19 36
20# setup source paths 37# setup source paths
21CWD=`pwd` 38CWD=`pwd`
@@ -177,68 +194,104 @@ fixup_masm() {
177 > $2 194 > $2
178} 195}
179 196
197fixup_macosx() {
198 echo Fixing up $2
199 sed -e 's/endbr64//' $1 > $2
200}
201
180# generate assembly crypto algorithms 202# generate assembly crypto algorithms
181asm_src=$libcrypto_src 203asm_src=$libcrypto_src
182gen_asm_stdout() { 204gen_asm_stdout() {
183 CC=true perl $asm_src/$2 $1 > $3.tmp 205 CC=true perl $asm_src/$2 $1 > crypto/$3.tmp
184 [ $1 = "elf" ] && cat <<-EOF >> $3.tmp 206 [ $1 = "elf" ] && cat <<-EOF >> crypto/$3.tmp
185 #if defined(HAVE_GNU_STACK) 207 #if defined(HAVE_GNU_STACK)
186 .section .note.GNU-stack,"",%progbits 208 .section .note.GNU-stack,"",%progbits
187 #endif 209 #endif
188 EOF 210 EOF
189 if [ $1 = "masm" ]; then 211 if [ $1 = "masm" ]; then
190 fixup_masm $3.tmp $3 212 fixup_masm crypto/$3.tmp crypto/$3
213 elif [ $1 = "macosx" ]; then
214 fixup_macosx crypto/$3.tmp crypto/$3
191 else 215 else
192 $MV $3.tmp $3 216 $MV crypto/$3.tmp crypto/$3
193 fi 217 fi
194} 218}
219gen_asm_mips() {
220 abi=$1
221 dir=$2
222 src=$3
223 dst=$4
224 CC=true perl $asm_src/$dir/asm/$src.pl $abi $dst.S
225 cat <<-EOF >> $dst.S
226 #if defined(HAVE_GNU_STACK)
227 .section .note.GNU-stack,"",%progbits
228 #endif
229 EOF
230 mv $dst.S crypto/$dir/$dst.S
231}
195gen_asm() { 232gen_asm() {
196 CC=true perl $asm_src/$2 $1 $3.tmp 233 CC=true perl $asm_src/$2 $1 crypto/$3.tmp
197 [ $1 = "elf" ] && cat <<-EOF >> $3.tmp 234 [ $1 = "elf" ] && cat <<-EOF >> crypto/$3.tmp
198 #if defined(HAVE_GNU_STACK) 235 #if defined(HAVE_GNU_STACK)
199 .section .note.GNU-stack,"",%progbits 236 .section .note.GNU-stack,"",%progbits
200 #endif 237 #endif
201 EOF 238 EOF
202 if [ $1 = "masm" ]; then 239 if [ $1 = "masm" ]; then
203 fixup_masm $3.tmp $3 240 fixup_masm crypto/$3.tmp crypto/$3
241 elif [ $1 = "macosx" ]; then
242 fixup_macosx crypto/$3.tmp crypto/$3
204 else 243 else
205 $MV $3.tmp $3 244 $MV crypto/$3.tmp crypto/$3
206 fi 245 fi
207} 246}
208 247
248echo generating mips ASM source for elf
249gen_asm_mips o32 aes aes-mips aes-mips
250gen_asm_mips o32 bn mips bn-mips
251gen_asm_mips o32 bn mips-mont mont-mips
252gen_asm_mips o32 sha sha1-mips sha1-mips
253gen_asm_mips o32 sha sha512-mips sha256-mips
254gen_asm_mips o32 sha sha512-mips sha512-mips
255
256echo generating mips64 ASM source for elf
257gen_asm_mips 64 aes aes-mips aes-mips64
258gen_asm_mips 64 bn mips bn-mips64
259gen_asm_mips 64 bn mips-mont mont-mips64
260gen_asm_mips 64 sha sha1-mips sha1-mips64
261gen_asm_mips 64 sha sha512-mips sha256-mips64
262gen_asm_mips 64 sha sha512-mips sha512-mips64
263
209echo generating arm ASM source for elf 264echo generating arm ASM source for elf
210gen_asm_stdout elf aes/asm/aes-armv4.pl crypto/aes/aes-elf-armv4.S 265gen_asm_stdout elf aes/asm/aes-armv4.pl aes/aes-elf-armv4.S
211gen_asm_stdout elf bn/asm/armv4-gf2m.pl crypto/bn/gf2m-elf-armv4.S 266gen_asm_stdout elf bn/asm/armv4-mont.pl bn/mont-elf-armv4.S
212gen_asm_stdout elf bn/asm/armv4-mont.pl crypto/bn/mont-elf-armv4.S 267gen_asm_stdout elf sha/asm/sha1-armv4-large.pl sha/sha1-elf-armv4.S
213gen_asm_stdout elf sha/asm/sha1-armv4-large.pl crypto/sha/sha1-elf-armv4.S 268gen_asm_stdout elf sha/asm/sha256-armv4.pl sha/sha256-elf-armv4.S
214gen_asm_stdout elf sha/asm/sha256-armv4.pl crypto/sha/sha256-elf-armv4.S 269gen_asm_stdout elf sha/asm/sha512-armv4.pl sha/sha512-elf-armv4.S
215gen_asm_stdout elf sha/asm/sha512-armv4.pl crypto/sha/sha512-elf-armv4.S 270gen_asm_stdout elf modes/asm/ghash-armv4.pl modes/ghash-elf-armv4.S
216gen_asm_stdout elf modes/asm/ghash-armv4.pl crypto/modes/ghash-elf-armv4.S
217$CP $libcrypto_src/arch/arm/armv4cpuid.S crypto 271$CP $libcrypto_src/arch/arm/armv4cpuid.S crypto
218$CP $libcrypto_src/arch/arm/armcap.c crypto 272$CP $libcrypto_src/arch/arm/armcap.c crypto
219$CP $libcrypto_src/arch/arm/arm_arch.h crypto 273$CP $libcrypto_src/arch/arm/arm_arch.h crypto
220 274
221for abi in elf macosx masm mingw64; do 275for abi in elf macosx masm mingw64; do
222 echo generating x86_64 ASM source for $abi 276 echo generating x86_64 ASM source for $abi
223 gen_asm_stdout $abi aes/asm/aes-x86_64.pl crypto/aes/aes-$abi-x86_64.S 277 gen_asm_stdout $abi aes/asm/aes-x86_64.pl aes/aes-$abi-x86_64.S
224 gen_asm_stdout $abi aes/asm/vpaes-x86_64.pl crypto/aes/vpaes-$abi-x86_64.S 278 gen_asm_stdout $abi aes/asm/vpaes-x86_64.pl aes/vpaes-$abi-x86_64.S
225 gen_asm_stdout $abi aes/asm/bsaes-x86_64.pl crypto/aes/bsaes-$abi-x86_64.S 279 gen_asm_stdout $abi aes/asm/bsaes-x86_64.pl aes/bsaes-$abi-x86_64.S
226 gen_asm_stdout $abi aes/asm/aesni-x86_64.pl crypto/aes/aesni-$abi-x86_64.S 280 gen_asm_stdout $abi aes/asm/aesni-x86_64.pl aes/aesni-$abi-x86_64.S
227 gen_asm_stdout $abi aes/asm/aesni-sha1-x86_64.pl crypto/aes/aesni-sha1-$abi-x86_64.S 281 gen_asm_stdout $abi aes/asm/aesni-sha1-x86_64.pl aes/aesni-sha1-$abi-x86_64.S
228 gen_asm_stdout $abi bn/asm/modexp512-x86_64.pl crypto/bn/modexp512-$abi-x86_64.S 282 gen_asm_stdout $abi bn/asm/modexp512-x86_64.pl bn/modexp512-$abi-x86_64.S
229 gen_asm_stdout $abi bn/asm/x86_64-mont.pl crypto/bn/mont-$abi-x86_64.S 283 gen_asm_stdout $abi bn/asm/x86_64-mont.pl bn/mont-$abi-x86_64.S
230 gen_asm_stdout $abi bn/asm/x86_64-mont5.pl crypto/bn/mont5-$abi-x86_64.S 284 gen_asm_stdout $abi bn/asm/x86_64-mont5.pl bn/mont5-$abi-x86_64.S
231 gen_asm_stdout $abi bn/asm/x86_64-gf2m.pl crypto/bn/gf2m-$abi-x86_64.S 285 gen_asm_stdout $abi camellia/asm/cmll-x86_64.pl camellia/cmll-$abi-x86_64.S
232 gen_asm_stdout $abi camellia/asm/cmll-x86_64.pl crypto/camellia/cmll-$abi-x86_64.S 286 gen_asm_stdout $abi md5/asm/md5-x86_64.pl md5/md5-$abi-x86_64.S
233 gen_asm_stdout $abi md5/asm/md5-x86_64.pl crypto/md5/md5-$abi-x86_64.S 287 gen_asm_stdout $abi modes/asm/ghash-x86_64.pl modes/ghash-$abi-x86_64.S
234 gen_asm_stdout $abi modes/asm/ghash-x86_64.pl crypto/modes/ghash-$abi-x86_64.S 288 gen_asm_stdout $abi rc4/asm/rc4-x86_64.pl rc4/rc4-$abi-x86_64.S
235 gen_asm_stdout $abi rc4/asm/rc4-x86_64.pl crypto/rc4/rc4-$abi-x86_64.S 289 gen_asm_stdout $abi rc4/asm/rc4-md5-x86_64.pl rc4/rc4-md5-$abi-x86_64.S
236 gen_asm_stdout $abi rc4/asm/rc4-md5-x86_64.pl crypto/rc4/rc4-md5-$abi-x86_64.S 290 gen_asm_stdout $abi sha/asm/sha1-x86_64.pl sha/sha1-$abi-x86_64.S
237 gen_asm_stdout $abi sha/asm/sha1-x86_64.pl crypto/sha/sha1-$abi-x86_64.S 291 gen_asm $abi sha/asm/sha512-x86_64.pl sha/sha256-$abi-x86_64.S
238 gen_asm $abi sha/asm/sha512-x86_64.pl crypto/sha/sha256-$abi-x86_64.S 292 gen_asm $abi sha/asm/sha512-x86_64.pl sha/sha512-$abi-x86_64.S
239 gen_asm $abi sha/asm/sha512-x86_64.pl crypto/sha/sha512-$abi-x86_64.S 293 gen_asm_stdout $abi whrlpool/asm/wp-x86_64.pl whrlpool/wp-$abi-x86_64.S
240 gen_asm_stdout $abi whrlpool/asm/wp-x86_64.pl crypto/whrlpool/wp-$abi-x86_64.S 294 gen_asm $abi x86_64cpuid.pl cpuid-$abi-x86_64.S
241 gen_asm $abi x86_64cpuid.pl crypto/cpuid-$abi-x86_64.S
242done 295done
243 296
244# copy libtls source 297# copy libtls source
@@ -307,6 +360,9 @@ for i in `find $libcrypto_regress -name '*.c'`; do
307done 360done
308$CP $libcrypto_regress/evp/evptests.txt tests 361$CP $libcrypto_regress/evp/evptests.txt tests
309$CP $libcrypto_regress/aead/*.txt tests 362$CP $libcrypto_regress/aead/*.txt tests
363$CP $libcrypto_regress/ct/ctlog.conf tests
364$CP $libcrypto_regress/ct/*.crt tests
365$CP $libcrypto_regress/x509/policy/*.pem tests
310 366
311# generate libcrypto freenull.c 367# generate libcrypto freenull.c
312awk -f $libcrypto_regress/free/freenull.awk \ 368awk -f $libcrypto_regress/free/freenull.awk \