diff --git a/.travis.yml b/.travis.yml
index e3cf371831765a..93456573438b1c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -74,14 +74,14 @@ jobs:
- make -j1 V=1 test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
- python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare addons js-native-api node-api
- - name: "Linter"
+ - name: "Run Linter and Build Docs"
language: node_js
node_js: "node"
install:
- pyenv global ${PYTHON_VERSION}
- make lint-py-build || true
script:
- - NODE=$(which node) make lint lint-py
+ - NODE=$(which node) make lint-py doc-only lint
- name: "First commit message adheres to guidelines at https://goo.gl/p2fr5Q"
if: type = pull_request
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b6e21279f63122..4e90bf32d78341 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -28,7 +28,8 @@ release.
-12.11.1
+12.12.0
+12.11.1
12.11.0
12.10.0
12.9.1
diff --git a/COLLABORATOR_GUIDE.md b/COLLABORATOR_GUIDE.md
index 2796565670a1ff..43bd683e800287 100644
--- a/COLLABORATOR_GUIDE.md
+++ b/COLLABORATOR_GUIDE.md
@@ -194,8 +194,7 @@ for changes that only affect comments or documentation.
* [`citgm-smoker`](https://ci.nodejs.org/job/citgm-smoker/)
uses [`CitGM`](https://github.com/nodejs/citgm) to allow you to run
`npm install && npm test` on a large selection of common modules. This is
-useful to check whether a change will cause breakage in the ecosystem. To test
-Node.js ABI changes you can run [`citgm-abi-smoker`](https://ci.nodejs.org/job/citgm-abi-smoker/).
+useful to check whether a change will cause breakage in the ecosystem.
* [`node-stress-single-test`](https://ci.nodejs.org/job/node-stress-single-test/)
can run a group of tests over and over on a specific platform. Use it to check
diff --git a/benchmark/dgram/array-vs-concat.js b/benchmark/dgram/array-vs-concat.js
index 669cf47df40ff2..d260a48063d489 100644
--- a/benchmark/dgram/array-vs-concat.js
+++ b/benchmark/dgram/array-vs-concat.js
@@ -29,17 +29,25 @@ function main({ dur, len, num, type, chunks }) {
function onsendConcat() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(Buffer.concat(chunk), PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(Buffer.concat(chunk), PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
function onsendMulti() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
diff --git a/benchmark/dgram/multi-buffer.js b/benchmark/dgram/multi-buffer.js
index a1c50551b87196..7b69a82255ed4b 100644
--- a/benchmark/dgram/multi-buffer.js
+++ b/benchmark/dgram/multi-buffer.js
@@ -27,9 +27,13 @@ function main({ dur, len, num, type, chunks }) {
function onsend() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
diff --git a/benchmark/dgram/offset-length.js b/benchmark/dgram/offset-length.js
index 7c672acae20404..696fa6a7a0c0bd 100644
--- a/benchmark/dgram/offset-length.js
+++ b/benchmark/dgram/offset-length.js
@@ -23,9 +23,13 @@ function main({ dur, len, num, type }) {
function onsend() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, 0, chunk.length, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, 0, chunk.length, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
diff --git a/benchmark/dgram/single-buffer.js b/benchmark/dgram/single-buffer.js
index d183b9cd1d69a6..5c95b17887d37a 100644
--- a/benchmark/dgram/single-buffer.js
+++ b/benchmark/dgram/single-buffer.js
@@ -23,9 +23,13 @@ function main({ dur, len, num, type }) {
function onsend() {
if (sent++ % num === 0) {
- for (var i = 0; i < num; i++) {
- socket.send(chunk, PORT, '127.0.0.1', onsend);
- }
+ // The setImmediate() is necessary to have event loop progress on OSes
+ // that only perform synchronous I/O on nonblocking UDP sockets.
+ setImmediate(() => {
+ for (var i = 0; i < num; i++) {
+ socket.send(chunk, PORT, '127.0.0.1', onsend);
+ }
+ });
}
}
diff --git a/deps/openssl/config/archs/BSD-x86/asm/configdata.pm b/deps/openssl/config/archs/BSD-x86/asm/configdata.pm
index 767b366c5fd67c..60838a7aa0d12e 100644
--- a/deps/openssl/config/archs/BSD-x86/asm/configdata.pm
+++ b/deps/openssl/config/archs/BSD-x86/asm/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "BSD-x86",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1683,8 +1683,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3226,6 +3227,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4839,12 +4841,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4861,12 +4857,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -9985,6 +9993,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10618,14 +10630,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13319,8 +13335,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15223,6 +15240,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15568,6 +15586,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h
index 77c385daaa303c..feabbb00ba4bc3 100644
--- a/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: BSD-x86"
-#define DATE "built on: Mon Jul 22 14:54:03 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:16 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -36,13 +36,12 @@ static const char compiler_flags[] = {
'M',' ','-','D','S','H','A','2','5','6','_','A','S','M',' ','-',
'D','S','H','A','5','1','2','_','A','S','M',' ','-','D','R','C',
'4','_','A','S','M',' ','-','D','M','D','5','_','A','S','M',' ',
- '-','D','R','M','D','1','6','0','_','A','S','M',' ','-','D','A',
- 'E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_','A',
- 'S','M',' ','-','D','W','H','I','R','L','P','O','O','L','_','A',
- 'S','M',' ','-','D','G','H','A','S','H','_','A','S','M',' ','-',
- 'D','E','C','P','_','N','I','S','T','Z','2','5','6','_','A','S',
- 'M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',
- ' ','-','D','_','T','H','R','E','A','D','_','S','A','F','E',' ',
- '-','D','_','R','E','E','N','T','R','A','N','T',' ','-','D','N',
- 'D','E','B','U','G','\0'
+ '-','D','R','M','D','1','6','0','_','A','S','M',' ','-','D','V',
+ 'P','A','E','S','_','A','S','M',' ','-','D','W','H','I','R','L',
+ 'P','O','O','L','_','A','S','M',' ','-','D','G','H','A','S','H',
+ '_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z',
+ '2','5','6','_','A','S','M',' ','-','D','P','O','L','Y','1','3',
+ '0','5','_','A','S','M',' ','-','D','_','T','H','R','E','A','D',
+ '_','S','A','F','E',' ','-','D','_','R','E','E','N','T','R','A',
+ 'N','T',' ','-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi
index 14d7b29778f3c0..96efa1c4bb1118 100644
--- a/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/BSD-x86/asm/openssl-cl.gypi
@@ -15,7 +15,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi
index 677da3cdab0458..5e6af396479e3a 100644
--- a/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi
+++ b/deps/openssl/config/archs/BSD-x86/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -672,7 +674,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_BSD-x86': [
- './config/archs/BSD-x86/asm/crypto/aes/aes-586.s',
'./config/archs/BSD-x86/asm/crypto/aes/aesni-x86.s',
'./config/archs/BSD-x86/asm/crypto/aes/vpaes-x86.s',
'./config/archs/BSD-x86/asm/crypto/bf/bf-586.s',
@@ -712,7 +713,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm b/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm
index b47803a3a49ab0..15ac34550bee59 100644
--- a/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "BSD-x86",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1683,8 +1683,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3226,6 +3227,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4839,12 +4841,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4861,12 +4857,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -9985,6 +9993,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10618,14 +10630,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13319,8 +13335,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15223,6 +15240,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15568,6 +15586,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h
index ed9e2ccbb47b7c..e3bc6a9e02edd8 100644
--- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: BSD-x86"
-#define DATE "built on: Mon Jul 22 14:54:06 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:23 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -38,12 +38,11 @@ static const char compiler_flags[] = {
' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D',
'R','C','4','_','A','S','M',' ','-','D','M','D','5','_','A','S',
'M',' ','-','D','R','M','D','1','6','0','_','A','S','M',' ','-',
- 'D','A','E','S','_','A','S','M',' ','-','D','V','P','A','E','S',
- '_','A','S','M',' ','-','D','W','H','I','R','L','P','O','O','L',
- '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M',
- ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_',
- 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A',
- 'S','M',' ','-','D','_','T','H','R','E','A','D','_','S','A','F',
- 'E',' ','-','D','_','R','E','E','N','T','R','A','N','T',' ','-',
- 'D','N','D','E','B','U','G','\0'
+ 'D','V','P','A','E','S','_','A','S','M',' ','-','D','W','H','I',
+ 'R','L','P','O','O','L','_','A','S','M',' ','-','D','G','H','A',
+ 'S','H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S',
+ 'T','Z','2','5','6','_','A','S','M',' ','-','D','P','O','L','Y',
+ '1','3','0','5','_','A','S','M',' ','-','D','_','T','H','R','E',
+ 'A','D','_','S','A','F','E',' ','-','D','_','R','E','E','N','T',
+ 'R','A','N','T',' ','-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi
index 14d7b29778f3c0..96efa1c4bb1118 100644
--- a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl-cl.gypi
@@ -15,7 +15,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi
index a4b46f71186fce..0645934ea717a8 100644
--- a/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -672,7 +674,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_BSD-x86': [
- './config/archs/BSD-x86/asm_avx2/crypto/aes/aes-586.s',
'./config/archs/BSD-x86/asm_avx2/crypto/aes/aesni-x86.s',
'./config/archs/BSD-x86/asm_avx2/crypto/aes/vpaes-x86.s',
'./config/archs/BSD-x86/asm_avx2/crypto/bf/bf-586.s',
@@ -712,7 +713,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm b/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm
index 3bcb1cb3f10c0f..c406c0cc9873b8 100644
--- a/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "BSD-x86",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3212,6 +3212,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -9899,6 +9900,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15077,6 +15082,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15422,6 +15428,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h
index 507d98f23d6edd..c1c537b3fb0604 100644
--- a/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: BSD-x86"
-#define DATE "built on: Mon Jul 22 14:54:09 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:29 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm
index 068dd9fb50fb7d..958b30cc6a1612 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm
+++ b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "BSD-x86_64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1692,8 +1692,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1703,7 +1704,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3259,6 +3259,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4900,7 +4901,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4912,6 +4913,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4982,12 +4989,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7956,10 +7957,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10100,6 +10097,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10733,14 +10734,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10777,10 +10782,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13478,8 +13479,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13489,7 +13491,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15393,6 +15394,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15738,6 +15740,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h
index 0c62ca8d17630d..3eb8d7ca6bad4a 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: BSD-x86_64"
-#define DATE "built on: Wed Jun 12 20:53:27 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:33 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -35,13 +35,12 @@ static const char compiler_flags[] = {
'_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S',
'M',' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A',
'S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M',
- 'D','5','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',
- ' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D','B',
- 'S','A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H',
- '_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z',
- '2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9',
- '_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_',
- 'A','S','M',' ','-','D','_','T','H','R','E','A','D','_','S','A',
- 'F','E',' ','-','D','_','R','E','E','N','T','R','A','N','T',' ',
- '-','D','N','D','E','B','U','G','\0'
+ 'D','5','_','A','S','M',' ','-','D','V','P','A','E','S','_','A',
+ 'S','M',' ','-','D','G','H','A','S','H','_','A','S','M',' ','-',
+ 'D','E','C','P','_','N','I','S','T','Z','2','5','6','_','A','S',
+ 'M',' ','-','D','X','2','5','5','1','9','_','A','S','M',' ','-',
+ 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D',
+ '_','T','H','R','E','A','D','_','S','A','F','E',' ','-','D','_',
+ 'R','E','E','N','T','R','A','N','T',' ','-','D','N','D','E','B',
+ 'U','G','\0'
};
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi
index fc37c33c969934..046ed1ab79500b 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/BSD-x86_64/asm/openssl-cl.gypi
@@ -15,9 +15,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi
index cbfe13a9055491..08b438900a5857 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi
+++ b/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -676,12 +678,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_BSD-x86_64': [
- './config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s',
'./config/archs/BSD-x86_64/asm/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s',
- './config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s',
'./config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s',
'./config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s',
'./config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm
index 2cbfd330978b5f..bf9459acade3c8 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "BSD-x86_64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1692,8 +1692,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1703,7 +1704,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3259,6 +3259,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4900,7 +4901,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4912,6 +4913,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4982,12 +4989,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7956,10 +7957,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10100,6 +10097,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10733,14 +10734,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10777,10 +10782,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13478,8 +13479,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13489,7 +13491,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15393,6 +15394,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15738,6 +15740,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h
index 2692ef00bbc6e1..c9ffd0c3c093bf 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: BSD-x86_64"
-#define DATE "built on: Wed Jun 12 20:53:36 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:48 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -36,13 +36,12 @@ static const char compiler_flags[] = {
'5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_',
'A','S','M',' ','-','D','K','E','C','C','A','K','1','6','0','0',
'_','A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-',
- 'D','M','D','5','_','A','S','M',' ','-','D','A','E','S','_','A',
- 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-',
- 'D','B','S','A','E','S','_','A','S','M',' ','-','D','G','H','A',
- 'S','H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S',
- 'T','Z','2','5','6','_','A','S','M',' ','-','D','X','2','5','5',
- '1','9','_','A','S','M',' ','-','D','P','O','L','Y','1','3','0',
- '5','_','A','S','M',' ','-','D','_','T','H','R','E','A','D','_',
- 'S','A','F','E',' ','-','D','_','R','E','E','N','T','R','A','N',
- 'T',' ','-','D','N','D','E','B','U','G','\0'
+ 'D','M','D','5','_','A','S','M',' ','-','D','V','P','A','E','S',
+ '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M',
+ ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_',
+ 'A','S','M',' ','-','D','X','2','5','5','1','9','_','A','S','M',
+ ' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ',
+ '-','D','_','T','H','R','E','A','D','_','S','A','F','E',' ','-',
+ 'D','_','R','E','E','N','T','R','A','N','T',' ','-','D','N','D',
+ 'E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi
index fc37c33c969934..046ed1ab79500b 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl-cl.gypi
@@ -15,9 +15,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi
index 883e23c2bec700..e9ccff96476c79 100644
--- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -676,12 +678,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_BSD-x86_64': [
- './config/archs/BSD-x86_64/asm_avx2/crypto/aes/aes-x86_64.s',
'./config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/BSD-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s',
- './config/archs/BSD-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s',
'./config/archs/BSD-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s',
'./config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s',
'./config/archs/BSD-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm
index 8a783acc3db639..84e3b187535590 100644
--- a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "BSD-x86_64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3221,6 +3221,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7828,10 +7829,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9924,6 +9921,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15102,6 +15103,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15447,6 +15449,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h
index 9ef21c3c404f42..7702df5969293b 100644
--- a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: BSD-x86_64"
-#define DATE "built on: Wed Jun 12 20:53:45 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:03 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm
index 112c031938ad6c..ecd5ebea5fdb19 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm
+++ b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm
@@ -53,7 +53,7 @@ our %config = (
export_var_as_fn => "1",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
minor => "1.1",
@@ -115,8 +115,8 @@ our %config = (
sourcedir => ".",
target => "VC-WIN32",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -132,11 +132,11 @@ our %target = (
LDFLAGS => "/nologo /debug",
MT => "mt",
MTFLAGS => "-nologo",
- RANLIB => "CODE(0x557a75a28f28)",
+ RANLIB => "CODE(0x56535777ac98)",
RC => "rc",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "win32_init.c",
apps_init_src => "",
apps_obj => "win32_init.o",
@@ -1714,8 +1714,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3256,6 +3257,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4891,12 +4893,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4913,12 +4909,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7897,10 +7905,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10035,6 +10039,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10646,14 +10654,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13343,8 +13355,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15246,6 +15259,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15591,6 +15605,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h
index 058b2db124e506..b0dfdc7a561045 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: "
-#define DATE "built on: Wed Jun 12 20:57:03 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:03:33 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi
index 0599fc39d8fc49..5028da71f3d37c 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/VC-WIN32/asm/openssl-cl.gypi
@@ -20,7 +20,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi
index e5baf5bc16e0e8..a718f985ec9427 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi
+++ b/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_VC-WIN32': [
- './config/archs/VC-WIN32/asm/crypto/aes/aes-586.asm',
'./config/archs/VC-WIN32/asm/crypto/aes/aesni-x86.asm',
'./config/archs/VC-WIN32/asm/crypto/aes/vpaes-x86.asm',
'./config/archs/VC-WIN32/asm/crypto/bf/bf-586.asm',
@@ -716,7 +717,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm
index ed6c58379c61b6..f0ae44934c40be 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm
@@ -53,7 +53,7 @@ our %config = (
export_var_as_fn => "1",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
minor => "1.1",
@@ -115,8 +115,8 @@ our %config = (
sourcedir => ".",
target => "VC-WIN32",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -132,11 +132,11 @@ our %target = (
LDFLAGS => "/nologo /debug",
MT => "mt",
MTFLAGS => "-nologo",
- RANLIB => "CODE(0x558cc0187db8)",
+ RANLIB => "CODE(0x55a934dbe798)",
RC => "rc",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "win32_init.c",
apps_init_src => "",
apps_obj => "win32_init.o",
@@ -1714,8 +1714,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3256,6 +3257,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4891,12 +4893,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4913,12 +4909,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7897,10 +7905,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10035,6 +10039,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10646,14 +10654,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13343,8 +13355,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15246,6 +15259,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15591,6 +15605,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h
index 4c9937145802da..6aeb27ba400834 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: "
-#define DATE "built on: Wed Jun 12 20:57:08 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:03:39 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi
index 0599fc39d8fc49..5028da71f3d37c 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl-cl.gypi
@@ -20,7 +20,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi
index e0d6a8f1363383..a5bb5f58ee45b3 100644
--- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_VC-WIN32': [
- './config/archs/VC-WIN32/asm_avx2/crypto/aes/aes-586.asm',
'./config/archs/VC-WIN32/asm_avx2/crypto/aes/aesni-x86.asm',
'./config/archs/VC-WIN32/asm_avx2/crypto/aes/vpaes-x86.asm',
'./config/archs/VC-WIN32/asm_avx2/crypto/bf/bf-586.asm',
@@ -716,7 +717,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm
index 4441443ea330e7..16ff6d982004a3 100644
--- a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm
@@ -114,8 +114,8 @@ our %config = (
sourcedir => ".",
target => "VC-WIN32",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -131,7 +131,7 @@ our %target = (
LDFLAGS => "/nologo /debug",
MT => "mt",
MTFLAGS => "-nologo",
- RANLIB => "CODE(0x55bca9ad89d8)",
+ RANLIB => "CODE(0x55ddfff979c8)",
RC => "rc",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
aes_asm_src => "aes_core.c aes_cbc.c",
@@ -3242,6 +3242,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7853,10 +7854,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9949,6 +9946,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15100,6 +15101,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15445,6 +15447,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h
index c94d1e62d74cb5..916cdacd502875 100644
--- a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: "
-#define DATE "built on: Wed Jun 12 20:57:14 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:03:44 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm
index 2772e9210d6e86..1d006b56d6bc9e 100644
--- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm
@@ -113,8 +113,8 @@ our %config = (
sourcedir => ".",
target => "VC-WIN64-ARM",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -128,7 +128,7 @@ our %target = (
LDFLAGS => "/nologo /debug",
MT => "mt",
MTFLAGS => "-nologo",
- RANLIB => "CODE(0x55648ae1bb98)",
+ RANLIB => "CODE(0x55cd56acf3f8)",
RC => "rc",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/50-win-onecore.conf", "Configurations/shared-info.pl" ],
aes_asm_src => "aes_core.c aes_cbc.c",
@@ -3236,6 +3236,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7847,10 +7848,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9943,6 +9940,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15094,6 +15095,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15439,6 +15441,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h
index 1a01fe8598c2a4..3e790eb5d64363 100644
--- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: VC-WIN64-ARM"
-#define DATE "built on: Wed Jun 12 20:57:18 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:03:47 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm
index 00285eb24a4619..fd72727b52092d 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm
+++ b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm
@@ -54,7 +54,7 @@ our %config = (
export_var_as_fn => "1",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
minor => "1.1",
@@ -116,8 +116,8 @@ our %config = (
sourcedir => ".",
target => "VC-WIN64A",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -133,11 +133,11 @@ our %target = (
LDFLAGS => "/nologo /debug",
MT => "mt",
MTFLAGS => "-nologo",
- RANLIB => "CODE(0x556a36060c78)",
+ RANLIB => "CODE(0x560295a39668)",
RC => "rc",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "win32_init.c",
apps_init_src => "",
apps_obj => "win32_init.o",
@@ -1716,8 +1716,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1727,7 +1728,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3269,6 +3269,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4920,7 +4921,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4932,6 +4933,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -5002,12 +5009,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7970,10 +7971,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10114,6 +10111,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10725,14 +10726,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10769,10 +10774,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13466,8 +13467,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13477,7 +13479,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15380,6 +15381,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15725,6 +15727,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h
index 4da5fb0fb5a39d..eba30a9c2857ac 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: "
-#define DATE "built on: Wed Jun 12 20:56:41 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:58 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi
index 662070cb9d2125..2d20ac387916a0 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl-cl.gypi
@@ -20,9 +20,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi
index da853be2754872..20ef5e5d4b3a08 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi
+++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_VC-WIN64A': [
- './config/archs/VC-WIN64A/asm/crypto/aes/aes-x86_64.asm',
'./config/archs/VC-WIN64A/asm/crypto/aes/aesni-mb-x86_64.asm',
'./config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha1-x86_64.asm',
'./config/archs/VC-WIN64A/asm/crypto/aes/aesni-sha256-x86_64.asm',
'./config/archs/VC-WIN64A/asm/crypto/aes/aesni-x86_64.asm',
- './config/archs/VC-WIN64A/asm/crypto/aes/bsaes-x86_64.asm',
'./config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm',
'./config/archs/VC-WIN64A/asm/crypto/bn/rsaz-avx2.asm',
'./config/archs/VC-WIN64A/asm/crypto/bn/rsaz-x86_64.asm',
@@ -727,9 +727,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm
index dd484b65e0355c..1a22e6b6ed13c0 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm
@@ -54,7 +54,7 @@ our %config = (
export_var_as_fn => "1",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
minor => "1.1",
@@ -116,8 +116,8 @@ our %config = (
sourcedir => ".",
target => "VC-WIN64A",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -133,11 +133,11 @@ our %target = (
LDFLAGS => "/nologo /debug",
MT => "mt",
MTFLAGS => "-nologo",
- RANLIB => "CODE(0x555ae63ae078)",
+ RANLIB => "CODE(0x562305dbe5d8)",
RC => "rc",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "win32_init.c",
apps_init_src => "",
apps_obj => "win32_init.o",
@@ -1716,8 +1716,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1727,7 +1728,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3269,6 +3269,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4920,7 +4921,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4932,6 +4933,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -5002,12 +5009,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7970,10 +7971,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10114,6 +10111,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10725,14 +10726,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10769,10 +10774,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13466,8 +13467,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13477,7 +13479,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15380,6 +15381,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15725,6 +15727,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h
index a1c260c8a8aad6..8b7c50ce9a5416 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: "
-#define DATE "built on: Wed Jun 12 20:56:51 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:03:14 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi
index 662070cb9d2125..2d20ac387916a0 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl-cl.gypi
@@ -20,9 +20,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi
index 062a5e4910e0b7..53d15ad06c0ecb 100644
--- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_VC-WIN64A': [
- './config/archs/VC-WIN64A/asm_avx2/crypto/aes/aes-x86_64.asm',
'./config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-mb-x86_64.asm',
'./config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha1-x86_64.asm',
'./config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-sha256-x86_64.asm',
'./config/archs/VC-WIN64A/asm_avx2/crypto/aes/aesni-x86_64.asm',
- './config/archs/VC-WIN64A/asm_avx2/crypto/aes/bsaes-x86_64.asm',
'./config/archs/VC-WIN64A/asm_avx2/crypto/aes/vpaes-x86_64.asm',
'./config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-avx2.asm',
'./config/archs/VC-WIN64A/asm_avx2/crypto/bn/rsaz-x86_64.asm',
@@ -727,9 +727,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm
index 0fb65ec6913418..fdebb6f709d6b6 100644
--- a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm
@@ -115,8 +115,8 @@ our %config = (
sourcedir => ".",
target => "VC-WIN64A",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -132,7 +132,7 @@ our %target = (
LDFLAGS => "/nologo /debug",
MT => "mt",
MTFLAGS => "-nologo",
- RANLIB => "CODE(0x55e934b6f2a8)",
+ RANLIB => "CODE(0x557a48128d28)",
RC => "rc",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
aes_asm_src => "aes_core.c aes_cbc.c",
@@ -3244,6 +3244,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7855,10 +7856,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9951,6 +9948,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15102,6 +15103,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15447,6 +15449,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h
index 15402bbf23ddbe..fae2f1183e9277 100644
--- a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: "
-#define DATE "built on: Wed Jun 12 20:57:01 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:03:30 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/aix-gcc/asm/configdata.pm b/deps/openssl/config/archs/aix-gcc/asm/configdata.pm
index a110f704dee5c4..b79cebd14c344b 100644
--- a/deps/openssl/config/archs/aix-gcc/asm/configdata.pm
+++ b/deps/openssl/config/archs/aix-gcc/asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "aix-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -170,7 +170,7 @@ our %target = (
modes_obj => "ghashp8-ppc.o",
module_cflags => "",
module_cxxflags => "",
- module_ldflags => "-Wl,-G,-bsymbolic,-bexpall",
+ module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
padlock_asm_src => "",
padlock_obj => "",
perlasm_scheme => "aix32",
@@ -3236,6 +3236,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7873,10 +7874,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10011,6 +10008,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15249,6 +15250,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15594,6 +15596,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h
index 90465026876528..23bf3c386089ea 100644
--- a/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: aix-gcc"
-#define DATE "built on: Wed Jun 12 20:53:10 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:56:47 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/aix-gcc/asm_avx2/configdata.pm b/deps/openssl/config/archs/aix-gcc/asm_avx2/configdata.pm
index 5e64aad3f74723..52c1848ab07914 100644
--- a/deps/openssl/config/archs/aix-gcc/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/aix-gcc/asm_avx2/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "aix-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -170,7 +170,7 @@ our %target = (
modes_obj => "ghashp8-ppc.o",
module_cflags => "",
module_cxxflags => "",
- module_ldflags => "-Wl,-G,-bsymbolic,-bexpall",
+ module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
padlock_asm_src => "",
padlock_obj => "",
perlasm_scheme => "aix32",
@@ -3236,6 +3236,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7873,10 +7874,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10011,6 +10008,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15249,6 +15250,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15594,6 +15596,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/aix-gcc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/aix-gcc/asm_avx2/crypto/buildinf.h
index d9df13921d02a4..553eaaf94c54aa 100644
--- a/deps/openssl/config/archs/aix-gcc/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/aix-gcc/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: aix-gcc"
-#define DATE "built on: Wed Jun 12 20:53:13 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:56:53 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm
index 2040d26004df56..48bc45df709b75 100644
--- a/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "aix-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -170,7 +170,7 @@ our %target = (
modes_obj => "",
module_cflags => "",
module_cxxflags => "",
- module_ldflags => "-Wl,-G,-bsymbolic,-bexpall",
+ module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
padlock_asm_src => "",
padlock_obj => "",
perlasm_scheme => "aix32",
@@ -3222,6 +3222,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7823,10 +7824,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9919,6 +9916,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15092,6 +15093,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15437,6 +15439,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h
index 95c174ecd1aad1..a3c2c5a66f7e4e 100644
--- a/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: aix-gcc"
-#define DATE "built on: Wed Jun 12 20:53:16 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:56:58 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm
index bba88e2ef2d956..a91a3c0878db81 100644
--- a/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm
+++ b/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "aix64-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -170,7 +170,7 @@ our %target = (
modes_obj => "ghashp8-ppc.o",
module_cflags => "",
module_cxxflags => "",
- module_ldflags => "-Wl,-G,-bsymbolic,-bexpall",
+ module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
padlock_asm_src => "",
padlock_obj => "",
perlasm_scheme => "aix64",
@@ -3239,6 +3239,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7894,10 +7895,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10032,6 +10029,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15285,6 +15286,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15630,6 +15632,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h
index 1f064d0e093fc3..4ec1ec8283c301 100644
--- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: aix64-gcc"
-#define DATE "built on: Wed Jun 12 20:53:19 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:01 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/aix64-gcc/asm_avx2/configdata.pm b/deps/openssl/config/archs/aix64-gcc/asm_avx2/configdata.pm
index ecd2182d17d6d8..56f615362d9a45 100644
--- a/deps/openssl/config/archs/aix64-gcc/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/aix64-gcc/asm_avx2/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "aix64-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -170,7 +170,7 @@ our %target = (
modes_obj => "ghashp8-ppc.o",
module_cflags => "",
module_cxxflags => "",
- module_ldflags => "-Wl,-G,-bsymbolic,-bexpall",
+ module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
padlock_asm_src => "",
padlock_obj => "",
perlasm_scheme => "aix64",
@@ -3239,6 +3239,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7894,10 +7895,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10032,6 +10029,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15285,6 +15286,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15630,6 +15632,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/aix64-gcc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc/asm_avx2/crypto/buildinf.h
index 14fd251fa70d72..fe20db38c0347d 100644
--- a/deps/openssl/config/archs/aix64-gcc/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/aix64-gcc/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: aix64-gcc"
-#define DATE "built on: Wed Jun 12 20:53:22 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:07 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm
index ea434bf09d4118..d37f8ad8b04179 100644
--- a/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "aix64-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -170,7 +170,7 @@ our %target = (
modes_obj => "",
module_cflags => "",
module_cxxflags => "",
- module_ldflags => "-Wl,-G,-bsymbolic,-bexpall",
+ module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
padlock_asm_src => "",
padlock_obj => "",
perlasm_scheme => "aix64",
@@ -3222,6 +3222,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7823,10 +7824,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9919,6 +9916,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15092,6 +15093,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15437,6 +15439,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h
index 8684a8c5442691..533bf0b9e3e4a7 100644
--- a/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: aix64-gcc"
-#define DATE "built on: Wed Jun 12 20:53:25 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:57:13 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm
index bb042f080a6a37..d9ceb02bb7bc17 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "darwin-i386-cc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib -c",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1684,8 +1684,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3226,6 +3227,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4839,12 +4841,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4861,12 +4857,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7845,10 +7853,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9983,6 +9987,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10616,14 +10624,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13313,8 +13325,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15216,6 +15229,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15561,6 +15575,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h
index 02b60782aa5cd9..abd541341f17ee 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: darwin-i386-cc"
-#define DATE "built on: Wed Jun 12 20:54:07 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:40 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -36,12 +36,11 @@ static const char compiler_flags[] = {
'S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A',
'5','1','2','_','A','S','M',' ','-','D','R','C','4','_','A','S',
'M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','R','M',
- 'D','1','6','0','_','A','S','M',' ','-','D','A','E','S','_','A',
- 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-',
- 'D','W','H','I','R','L','P','O','O','L','_','A','S','M',' ','-',
- 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P',
- '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D',
- 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','_',
- 'R','E','E','N','T','R','A','N','T',' ','-','D','N','D','E','B',
- 'U','G','\0'
+ 'D','1','6','0','_','A','S','M',' ','-','D','V','P','A','E','S',
+ '_','A','S','M',' ','-','D','W','H','I','R','L','P','O','O','L',
+ '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M',
+ ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_',
+ 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A',
+ 'S','M',' ','-','D','_','R','E','E','N','T','R','A','N','T',' ',
+ '-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi
index fa431835b0427e..35d5734b533f73 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl-cl.gypi
@@ -15,7 +15,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi
index 495e20768e29dc..38d1fdcc00e68c 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_darwin-i386-cc': [
- './config/archs/darwin-i386-cc/asm/crypto/aes/aes-586.s',
'./config/archs/darwin-i386-cc/asm/crypto/aes/aesni-x86.s',
'./config/archs/darwin-i386-cc/asm/crypto/aes/vpaes-x86.s',
'./config/archs/darwin-i386-cc/asm/crypto/bf/bf-586.s',
@@ -711,7 +712,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm
index e8bd163cc426b8..e6aed64bed36d2 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "darwin-i386-cc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib -c",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1684,8 +1684,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3226,6 +3227,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4839,12 +4841,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4861,12 +4857,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7845,10 +7853,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9983,6 +9987,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10616,14 +10624,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13313,8 +13325,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15216,6 +15229,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15561,6 +15575,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h
index 6b21e65596ecd9..a78ae310fc883b 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: darwin-i386-cc"
-#define DATE "built on: Wed Jun 12 20:54:11 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:46 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -37,12 +37,11 @@ static const char compiler_flags[] = {
'-','D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S',
'H','A','5','1','2','_','A','S','M',' ','-','D','R','C','4','_',
'A','S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D',
- 'R','M','D','1','6','0','_','A','S','M',' ','-','D','A','E','S',
- '_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M',
- ' ','-','D','W','H','I','R','L','P','O','O','L','_','A','S','M',
- ' ','-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E',
- 'C','P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ',
- '-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-',
- 'D','_','R','E','E','N','T','R','A','N','T',' ','-','D','N','D',
- 'E','B','U','G','\0'
+ 'R','M','D','1','6','0','_','A','S','M',' ','-','D','V','P','A',
+ 'E','S','_','A','S','M',' ','-','D','W','H','I','R','L','P','O',
+ 'O','L','_','A','S','M',' ','-','D','G','H','A','S','H','_','A',
+ 'S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5',
+ '6','_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5',
+ '_','A','S','M',' ','-','D','_','R','E','E','N','T','R','A','N',
+ 'T',' ','-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi
index fa431835b0427e..35d5734b533f73 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl-cl.gypi
@@ -15,7 +15,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi
index 3854ce56d14efe..c1f15b01a15b5a 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_darwin-i386-cc': [
- './config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aes-586.s',
'./config/archs/darwin-i386-cc/asm_avx2/crypto/aes/aesni-x86.s',
'./config/archs/darwin-i386-cc/asm_avx2/crypto/aes/vpaes-x86.s',
'./config/archs/darwin-i386-cc/asm_avx2/crypto/bf/bf-586.s',
@@ -711,7 +712,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm
index 820d3892599215..a40cf9d26d3bd6 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "darwin-i386-cc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3212,6 +3212,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7801,10 +7802,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9897,6 +9894,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15070,6 +15071,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15415,6 +15417,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h
index a38383239e7ab2..5a6d99c66de2c9 100644
--- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: darwin-i386-cc"
-#define DATE "built on: Wed Jun 12 20:54:15 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:53 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm
index cf2e5f4eab9651..667d891890ef1c 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "darwin64-x86_64-cc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib -c",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1684,8 +1684,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1695,7 +1696,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3250,6 +3250,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4879,7 +4880,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4891,6 +4892,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4961,12 +4968,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7929,10 +7930,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10073,6 +10070,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10706,14 +10707,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10750,10 +10755,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13447,8 +13448,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13458,7 +13460,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15361,6 +15362,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15706,6 +15708,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h
index 4605365e1f3807..a6d2dadb30280a 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: darwin64-x86_64-cc"
-#define DATE "built on: Wed Jun 12 20:53:47 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:07 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -35,12 +35,11 @@ static const char compiler_flags[] = {
'A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1',
'2','_','A','S','M',' ','-','D','K','E','C','C','A','K','1','6',
'0','0','_','A','S','M',' ','-','D','R','C','4','_','A','S','M',
- ' ','-','D','M','D','5','_','A','S','M',' ','-','D','A','E','S',
- '_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M',
- ' ','-','D','B','S','A','E','S','_','A','S','M',' ','-','D','G',
- 'H','A','S','H','_','A','S','M',' ','-','D','E','C','P','_','N',
- 'I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','X','2',
- '5','5','1','9','_','A','S','M',' ','-','D','P','O','L','Y','1',
- '3','0','5','_','A','S','M',' ','-','D','_','R','E','E','N','T',
- 'R','A','N','T',' ','-','D','N','D','E','B','U','G','\0'
+ ' ','-','D','M','D','5','_','A','S','M',' ','-','D','V','P','A',
+ 'E','S','_','A','S','M',' ','-','D','G','H','A','S','H','_','A',
+ 'S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5',
+ '6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_','A',
+ 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S',
+ 'M',' ','-','D','_','R','E','E','N','T','R','A','N','T',' ','-',
+ 'D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi
index 48d7158e614dbd..95e8dc567ee299 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi
@@ -15,9 +15,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi
index 787652fc97e5f4..f87225df694da8 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_darwin64-x86_64-cc': [
- './config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s',
- './config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s',
'./config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s',
@@ -722,9 +722,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm
index 0ffd375cdcdf95..32bcc2c46627da 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "darwin64-x86_64-cc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib -c",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1684,8 +1684,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1695,7 +1696,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3250,6 +3250,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4879,7 +4880,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4891,6 +4892,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4961,12 +4968,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7929,10 +7930,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10073,6 +10070,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10706,14 +10707,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10750,10 +10755,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13447,8 +13448,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13458,7 +13460,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15361,6 +15362,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15706,6 +15708,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h
index 5d824a8fb06e49..da2e3d51505ac4 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: darwin64-x86_64-cc"
-#define DATE "built on: Wed Jun 12 20:53:57 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:21 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -36,12 +36,11 @@ static const char compiler_flags[] = {
'S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A',
'5','1','2','_','A','S','M',' ','-','D','K','E','C','C','A','K',
'1','6','0','0','_','A','S','M',' ','-','D','R','C','4','_','A',
- 'S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','A',
- 'E','S','_','A','S','M',' ','-','D','V','P','A','E','S','_','A',
- 'S','M',' ','-','D','B','S','A','E','S','_','A','S','M',' ','-',
- 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P',
- '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D',
- 'X','2','5','5','1','9','_','A','S','M',' ','-','D','P','O','L',
- 'Y','1','3','0','5','_','A','S','M',' ','-','D','_','R','E','E',
- 'N','T','R','A','N','T',' ','-','D','N','D','E','B','U','G','\0'
+ 'S','M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','V',
+ 'P','A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H',
+ '_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z',
+ '2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9',
+ '_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_',
+ 'A','S','M',' ','-','D','_','R','E','E','N','T','R','A','N','T',
+ ' ','-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi
index 48d7158e614dbd..95e8dc567ee299 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl-cl.gypi
@@ -15,9 +15,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi
index 46a42c7ec4f2dd..be4971efb1cbbf 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_darwin64-x86_64-cc': [
- './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aes-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/aesni-x86_64.s',
- './config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/bsaes-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm_avx2/crypto/aes/vpaes-x86_64.s',
'./config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-avx2.s',
'./config/archs/darwin64-x86_64-cc/asm_avx2/crypto/bn/rsaz-x86_64.s',
@@ -722,9 +722,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm
index 08d19cb3e97d33..02290abc08f011 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "darwin64-x86_64-cc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3212,6 +3212,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7801,10 +7802,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9897,6 +9894,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15070,6 +15071,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15415,6 +15417,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h
index cefbd6f968ca0a..a2a8835315fef3 100644
--- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: darwin64-x86_64-cc"
-#define DATE "built on: Wed Jun 12 20:54:05 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:36 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm
index 1f482890d6639e..832a223ee3ea9c 100644
--- a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-aarch64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3237,6 +3237,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7868,10 +7869,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9973,6 +9970,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15201,6 +15202,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15546,6 +15548,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h
index 7f406ed8cc5e1b..6046c7d5fd9777 100644
--- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-aarch64"
-#define DATE "built on: Wed Jun 12 20:54:17 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:58:56 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S
index b21c22f8742415..d8bdc71aee3737 100644
--- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S
+++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/sha/keccak1600-armv8.S
@@ -844,7 +844,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v1.16b,v1.16b,v31.16b
beq .Lprocess_block_ce
@@ -857,7 +857,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v3.16b,v3.16b,v31.16b
beq .Lprocess_block_ce
@@ -870,7 +870,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v5.16b,v5.16b,v31.16b
beq .Lprocess_block_ce
@@ -883,7 +883,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v7.16b,v7.16b,v31.16b
beq .Lprocess_block_ce
@@ -896,7 +896,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v9.16b,v9.16b,v31.16b
beq .Lprocess_block_ce
@@ -909,7 +909,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v11.16b,v11.16b,v31.16b
beq .Lprocess_block_ce
@@ -922,7 +922,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v13.16b,v13.16b,v31.16b
beq .Lprocess_block_ce
@@ -935,7 +935,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v15.16b,v15.16b,v31.16b
beq .Lprocess_block_ce
@@ -948,7 +948,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v17.16b,v17.16b,v31.16b
beq .Lprocess_block_ce
@@ -961,7 +961,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v19.16b,v19.16b,v31.16b
beq .Lprocess_block_ce
@@ -974,7 +974,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v21.16b,v21.16b,v31.16b
beq .Lprocess_block_ce
@@ -987,13 +987,13 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v23.16b,v23.16b,v31.16b
beq .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v24.16b,v24.16b,v31.16b
diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm
index faaace1112f121..bfc02733dc2706 100644
--- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-aarch64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3237,6 +3237,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7868,10 +7869,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9973,6 +9970,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15201,6 +15202,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15546,6 +15548,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h
index af1877aa76ba4c..566cfdfd842a9a 100644
--- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-aarch64"
-#define DATE "built on: Wed Jun 12 20:54:20 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:02 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S
index b21c22f8742415..d8bdc71aee3737 100644
--- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S
+++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/sha/keccak1600-armv8.S
@@ -844,7 +844,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v1.16b,v1.16b,v31.16b
beq .Lprocess_block_ce
@@ -857,7 +857,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v3.16b,v3.16b,v31.16b
beq .Lprocess_block_ce
@@ -870,7 +870,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v5.16b,v5.16b,v31.16b
beq .Lprocess_block_ce
@@ -883,7 +883,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v7.16b,v7.16b,v31.16b
beq .Lprocess_block_ce
@@ -896,7 +896,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v9.16b,v9.16b,v31.16b
beq .Lprocess_block_ce
@@ -909,7 +909,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v11.16b,v11.16b,v31.16b
beq .Lprocess_block_ce
@@ -922,7 +922,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v13.16b,v13.16b,v31.16b
beq .Lprocess_block_ce
@@ -935,7 +935,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v15.16b,v15.16b,v31.16b
beq .Lprocess_block_ce
@@ -948,7 +948,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v17.16b,v17.16b,v31.16b
beq .Lprocess_block_ce
@@ -961,7 +961,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v19.16b,v19.16b,v31.16b
beq .Lprocess_block_ce
@@ -974,7 +974,7 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v21.16b,v21.16b,v31.16b
beq .Lprocess_block_ce
@@ -987,13 +987,13 @@ SHA3_absorb_cext:
blo .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v23.16b,v23.16b,v31.16b
beq .Lprocess_block_ce
ldr d31,[x1],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor v24.16b,v24.16b,v31.16b
diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm
index cb62b736d2d711..320833b90223fa 100644
--- a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-aarch64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3225,6 +3225,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7826,10 +7827,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9922,6 +9919,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15095,6 +15096,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15440,6 +15442,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h
index fa49510056b3ea..ed237c3102f71e 100644
--- a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-aarch64"
-#define DATE "built on: Wed Jun 12 20:54:24 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:08 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm
index 49ce44b96efa43..c62115205baa7e 100644
--- a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-armv4",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3239,6 +3239,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7867,10 +7868,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9969,6 +9966,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15207,6 +15208,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15552,6 +15554,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h
index d1b7d5eec53b98..ef86bdcf892a82 100644
--- a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-armv4"
-#define DATE "built on: Wed Jun 12 20:54:26 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:11 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S
index f4e72da051bbae..07c924059052cd 100644
--- a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S
+++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/keccak1600-armv4.S
@@ -2200,9 +2200,9 @@ KeccakF1600_neon:
.align 4
.Loop_neon:
@ Theta
- vst1.64 {q4}, [r0:64] @ offload A[0..1][4]
+ vst1.64 {q4}, [r0,:64] @ offload A[0..1][4]
veor q13, q0, q5 @ A[0..1][0]^A[2..3][0]
- vst1.64 {d18}, [r1:64] @ offload A[2][4]
+ vst1.64 {d18}, [r1,:64] @ offload A[2][4]
veor q14, q1, q6 @ A[0..1][1]^A[2..3][1]
veor q15, q2, q7 @ A[0..1][2]^A[2..3][2]
veor d26, d26, d27 @ C[0]=A[0][0]^A[1][0]^A[2][0]^A[3][0]
@@ -2245,10 +2245,10 @@ KeccakF1600_neon:
veor d16, d16, d28 @ A[2][3] ^= C[2]
veor d17, d17, d28 @ A[3][3] ^= C[2]
veor d23, d23, d28 @ A[4][3] ^= C[2]
- vld1.64 {q4}, [r0:64] @ restore A[0..1][4]
+ vld1.64 {q4}, [r0,:64] @ restore A[0..1][4]
vmov d28, d29
- vld1.64 {d18}, [r1:64] @ restore A[2][4]
+ vld1.64 {d18}, [r1,:64] @ restore A[2][4]
veor q2, q2, q13 @ A[0..1][2] ^= D[2]
veor q7, q7, q13 @ A[2..3][2] ^= D[2]
veor d22, d22, d27 @ A[4][2] ^= D[2]
@@ -2323,7 +2323,7 @@ KeccakF1600_neon:
veor q13, q13, q0 @ A[0..1][0] ^ (~A[0..1][1] & A[0..1][2])
veor q14, q14, q1 @ A[0..1][1] ^ (~A[0..1][2] & A[0..1][3])
veor q2, q2, q15 @ A[0..1][2] ^= (~A[0..1][3] & A[0..1][4])
- vst1.64 {q13}, [r0:64] @ offload A[0..1][0]
+ vst1.64 {q13}, [r0,:64] @ offload A[0..1][0]
vbic q13, q0, q4
vbic q15, q1, q0
vmov q1, q14 @ A[0..1][1]
@@ -2344,10 +2344,10 @@ KeccakF1600_neon:
vmov q14, q10 @ A[4][0..1]
veor q9, q9, q13 @ A[2..3][4] ^= (~A[2..3][0] & A[2..3][1])
- vld1.64 d25, [r2:64]! @ Iota[i++]
+ vld1.64 d25, [r2,:64]! @ Iota[i++]
vbic d26, d22, d21
vbic d27, d23, d22
- vld1.64 {q0}, [r0:64] @ restore A[0..1][0]
+ vld1.64 {q0}, [r0,:64] @ restore A[0..1][0]
veor d20, d20, d26 @ A[4][0] ^= (~A[4][1] & A[4][2])
vbic d26, d24, d23
veor d21, d21, d27 @ A[4][1] ^= (~A[4][2] & A[4][3])
@@ -2375,32 +2375,32 @@ SHA3_absorb_neon:
mov r5, r2 @ len
mov r6, r3 @ bsz
- vld1.32 {d0}, [r0:64]! @ A[0][0]
- vld1.32 {d2}, [r0:64]! @ A[0][1]
- vld1.32 {d4}, [r0:64]! @ A[0][2]
- vld1.32 {d6}, [r0:64]! @ A[0][3]
- vld1.32 {d8}, [r0:64]! @ A[0][4]
-
- vld1.32 {d1}, [r0:64]! @ A[1][0]
- vld1.32 {d3}, [r0:64]! @ A[1][1]
- vld1.32 {d5}, [r0:64]! @ A[1][2]
- vld1.32 {d7}, [r0:64]! @ A[1][3]
- vld1.32 {d9}, [r0:64]! @ A[1][4]
-
- vld1.32 {d10}, [r0:64]! @ A[2][0]
- vld1.32 {d12}, [r0:64]! @ A[2][1]
- vld1.32 {d14}, [r0:64]! @ A[2][2]
- vld1.32 {d16}, [r0:64]! @ A[2][3]
- vld1.32 {d18}, [r0:64]! @ A[2][4]
-
- vld1.32 {d11}, [r0:64]! @ A[3][0]
- vld1.32 {d13}, [r0:64]! @ A[3][1]
- vld1.32 {d15}, [r0:64]! @ A[3][2]
- vld1.32 {d17}, [r0:64]! @ A[3][3]
- vld1.32 {d19}, [r0:64]! @ A[3][4]
-
- vld1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..3]
- vld1.32 {d24}, [r0:64] @ A[4][4]
+ vld1.32 {d0}, [r0,:64]! @ A[0][0]
+ vld1.32 {d2}, [r0,:64]! @ A[0][1]
+ vld1.32 {d4}, [r0,:64]! @ A[0][2]
+ vld1.32 {d6}, [r0,:64]! @ A[0][3]
+ vld1.32 {d8}, [r0,:64]! @ A[0][4]
+
+ vld1.32 {d1}, [r0,:64]! @ A[1][0]
+ vld1.32 {d3}, [r0,:64]! @ A[1][1]
+ vld1.32 {d5}, [r0,:64]! @ A[1][2]
+ vld1.32 {d7}, [r0,:64]! @ A[1][3]
+ vld1.32 {d9}, [r0,:64]! @ A[1][4]
+
+ vld1.32 {d10}, [r0,:64]! @ A[2][0]
+ vld1.32 {d12}, [r0,:64]! @ A[2][1]
+ vld1.32 {d14}, [r0,:64]! @ A[2][2]
+ vld1.32 {d16}, [r0,:64]! @ A[2][3]
+ vld1.32 {d18}, [r0,:64]! @ A[2][4]
+
+ vld1.32 {d11}, [r0,:64]! @ A[3][0]
+ vld1.32 {d13}, [r0,:64]! @ A[3][1]
+ vld1.32 {d15}, [r0,:64]! @ A[3][2]
+ vld1.32 {d17}, [r0,:64]! @ A[3][3]
+ vld1.32 {d19}, [r0,:64]! @ A[3][4]
+
+ vld1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..3]
+ vld1.32 {d24}, [r0,:64] @ A[4][4]
sub r0, r0, #24*8 @ rewind
b .Loop_absorb_neon
@@ -2507,32 +2507,32 @@ SHA3_absorb_neon:
.align 4
.Labsorbed_neon:
- vst1.32 {d0}, [r0:64]! @ A[0][0..4]
- vst1.32 {d2}, [r0:64]!
- vst1.32 {d4}, [r0:64]!
- vst1.32 {d6}, [r0:64]!
- vst1.32 {d8}, [r0:64]!
-
- vst1.32 {d1}, [r0:64]! @ A[1][0..4]
- vst1.32 {d3}, [r0:64]!
- vst1.32 {d5}, [r0:64]!
- vst1.32 {d7}, [r0:64]!
- vst1.32 {d9}, [r0:64]!
-
- vst1.32 {d10}, [r0:64]! @ A[2][0..4]
- vst1.32 {d12}, [r0:64]!
- vst1.32 {d14}, [r0:64]!
- vst1.32 {d16}, [r0:64]!
- vst1.32 {d18}, [r0:64]!
-
- vst1.32 {d11}, [r0:64]! @ A[3][0..4]
- vst1.32 {d13}, [r0:64]!
- vst1.32 {d15}, [r0:64]!
- vst1.32 {d17}, [r0:64]!
- vst1.32 {d19}, [r0:64]!
-
- vst1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..4]
- vst1.32 {d24}, [r0:64]
+ vst1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vst1.32 {d2}, [r0,:64]!
+ vst1.32 {d4}, [r0,:64]!
+ vst1.32 {d6}, [r0,:64]!
+ vst1.32 {d8}, [r0,:64]!
+
+ vst1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vst1.32 {d3}, [r0,:64]!
+ vst1.32 {d5}, [r0,:64]!
+ vst1.32 {d7}, [r0,:64]!
+ vst1.32 {d9}, [r0,:64]!
+
+ vst1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vst1.32 {d12}, [r0,:64]!
+ vst1.32 {d14}, [r0,:64]!
+ vst1.32 {d16}, [r0,:64]!
+ vst1.32 {d18}, [r0,:64]!
+
+ vst1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vst1.32 {d13}, [r0,:64]!
+ vst1.32 {d15}, [r0,:64]!
+ vst1.32 {d17}, [r0,:64]!
+ vst1.32 {d19}, [r0,:64]!
+
+ vst1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..4]
+ vst1.32 {d24}, [r0,:64]
mov r0, r5 @ return value
vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
@@ -2567,64 +2567,64 @@ SHA3_squeeze_neon:
vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
- vld1.32 {d0}, [r0:64]! @ A[0][0..4]
- vld1.32 {d2}, [r0:64]!
- vld1.32 {d4}, [r0:64]!
- vld1.32 {d6}, [r0:64]!
- vld1.32 {d8}, [r0:64]!
-
- vld1.32 {d1}, [r0:64]! @ A[1][0..4]
- vld1.32 {d3}, [r0:64]!
- vld1.32 {d5}, [r0:64]!
- vld1.32 {d7}, [r0:64]!
- vld1.32 {d9}, [r0:64]!
-
- vld1.32 {d10}, [r0:64]! @ A[2][0..4]
- vld1.32 {d12}, [r0:64]!
- vld1.32 {d14}, [r0:64]!
- vld1.32 {d16}, [r0:64]!
- vld1.32 {d18}, [r0:64]!
-
- vld1.32 {d11}, [r0:64]! @ A[3][0..4]
- vld1.32 {d13}, [r0:64]!
- vld1.32 {d15}, [r0:64]!
- vld1.32 {d17}, [r0:64]!
- vld1.32 {d19}, [r0:64]!
-
- vld1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..4]
- vld1.32 {d24}, [r0:64]
+ vld1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vld1.32 {d2}, [r0,:64]!
+ vld1.32 {d4}, [r0,:64]!
+ vld1.32 {d6}, [r0,:64]!
+ vld1.32 {d8}, [r0,:64]!
+
+ vld1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vld1.32 {d3}, [r0,:64]!
+ vld1.32 {d5}, [r0,:64]!
+ vld1.32 {d7}, [r0,:64]!
+ vld1.32 {d9}, [r0,:64]!
+
+ vld1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vld1.32 {d12}, [r0,:64]!
+ vld1.32 {d14}, [r0,:64]!
+ vld1.32 {d16}, [r0,:64]!
+ vld1.32 {d18}, [r0,:64]!
+
+ vld1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vld1.32 {d13}, [r0,:64]!
+ vld1.32 {d15}, [r0,:64]!
+ vld1.32 {d17}, [r0,:64]!
+ vld1.32 {d19}, [r0,:64]!
+
+ vld1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..4]
+ vld1.32 {d24}, [r0,:64]
sub r0, r0, #24*8 @ rewind
bl KeccakF1600_neon
mov r12, r0 @ A_flat
- vst1.32 {d0}, [r0:64]! @ A[0][0..4]
- vst1.32 {d2}, [r0:64]!
- vst1.32 {d4}, [r0:64]!
- vst1.32 {d6}, [r0:64]!
- vst1.32 {d8}, [r0:64]!
-
- vst1.32 {d1}, [r0:64]! @ A[1][0..4]
- vst1.32 {d3}, [r0:64]!
- vst1.32 {d5}, [r0:64]!
- vst1.32 {d7}, [r0:64]!
- vst1.32 {d9}, [r0:64]!
-
- vst1.32 {d10}, [r0:64]! @ A[2][0..4]
- vst1.32 {d12}, [r0:64]!
- vst1.32 {d14}, [r0:64]!
- vst1.32 {d16}, [r0:64]!
- vst1.32 {d18}, [r0:64]!
-
- vst1.32 {d11}, [r0:64]! @ A[3][0..4]
- vst1.32 {d13}, [r0:64]!
- vst1.32 {d15}, [r0:64]!
- vst1.32 {d17}, [r0:64]!
- vst1.32 {d19}, [r0:64]!
-
- vst1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..4]
+ vst1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vst1.32 {d2}, [r0,:64]!
+ vst1.32 {d4}, [r0,:64]!
+ vst1.32 {d6}, [r0,:64]!
+ vst1.32 {d8}, [r0,:64]!
+
+ vst1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vst1.32 {d3}, [r0,:64]!
+ vst1.32 {d5}, [r0,:64]!
+ vst1.32 {d7}, [r0,:64]!
+ vst1.32 {d9}, [r0,:64]!
+
+ vst1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vst1.32 {d12}, [r0,:64]!
+ vst1.32 {d14}, [r0,:64]!
+ vst1.32 {d16}, [r0,:64]!
+ vst1.32 {d18}, [r0,:64]!
+
+ vst1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vst1.32 {d13}, [r0,:64]!
+ vst1.32 {d15}, [r0,:64]!
+ vst1.32 {d17}, [r0,:64]!
+ vst1.32 {d19}, [r0,:64]!
+
+ vst1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..4]
mov r14, r6 @ bsz
- vst1.32 {d24}, [r0:64]
+ vst1.32 {d24}, [r0,:64]
mov r0, r12 @ rewind
vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm
index 48fcc298a9c340..41e52a0bd5590d 100644
--- a/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-armv4",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3239,6 +3239,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7867,10 +7868,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9969,6 +9966,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15207,6 +15208,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15552,6 +15554,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h
index 594ca60bb3fd75..3b9d482a1ab1ba 100644
--- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-armv4"
-#define DATE "built on: Wed Jun 12 20:54:29 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:17 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S
index f4e72da051bbae..07c924059052cd 100644
--- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S
+++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/sha/keccak1600-armv4.S
@@ -2200,9 +2200,9 @@ KeccakF1600_neon:
.align 4
.Loop_neon:
@ Theta
- vst1.64 {q4}, [r0:64] @ offload A[0..1][4]
+ vst1.64 {q4}, [r0,:64] @ offload A[0..1][4]
veor q13, q0, q5 @ A[0..1][0]^A[2..3][0]
- vst1.64 {d18}, [r1:64] @ offload A[2][4]
+ vst1.64 {d18}, [r1,:64] @ offload A[2][4]
veor q14, q1, q6 @ A[0..1][1]^A[2..3][1]
veor q15, q2, q7 @ A[0..1][2]^A[2..3][2]
veor d26, d26, d27 @ C[0]=A[0][0]^A[1][0]^A[2][0]^A[3][0]
@@ -2245,10 +2245,10 @@ KeccakF1600_neon:
veor d16, d16, d28 @ A[2][3] ^= C[2]
veor d17, d17, d28 @ A[3][3] ^= C[2]
veor d23, d23, d28 @ A[4][3] ^= C[2]
- vld1.64 {q4}, [r0:64] @ restore A[0..1][4]
+ vld1.64 {q4}, [r0,:64] @ restore A[0..1][4]
vmov d28, d29
- vld1.64 {d18}, [r1:64] @ restore A[2][4]
+ vld1.64 {d18}, [r1,:64] @ restore A[2][4]
veor q2, q2, q13 @ A[0..1][2] ^= D[2]
veor q7, q7, q13 @ A[2..3][2] ^= D[2]
veor d22, d22, d27 @ A[4][2] ^= D[2]
@@ -2323,7 +2323,7 @@ KeccakF1600_neon:
veor q13, q13, q0 @ A[0..1][0] ^ (~A[0..1][1] & A[0..1][2])
veor q14, q14, q1 @ A[0..1][1] ^ (~A[0..1][2] & A[0..1][3])
veor q2, q2, q15 @ A[0..1][2] ^= (~A[0..1][3] & A[0..1][4])
- vst1.64 {q13}, [r0:64] @ offload A[0..1][0]
+ vst1.64 {q13}, [r0,:64] @ offload A[0..1][0]
vbic q13, q0, q4
vbic q15, q1, q0
vmov q1, q14 @ A[0..1][1]
@@ -2344,10 +2344,10 @@ KeccakF1600_neon:
vmov q14, q10 @ A[4][0..1]
veor q9, q9, q13 @ A[2..3][4] ^= (~A[2..3][0] & A[2..3][1])
- vld1.64 d25, [r2:64]! @ Iota[i++]
+ vld1.64 d25, [r2,:64]! @ Iota[i++]
vbic d26, d22, d21
vbic d27, d23, d22
- vld1.64 {q0}, [r0:64] @ restore A[0..1][0]
+ vld1.64 {q0}, [r0,:64] @ restore A[0..1][0]
veor d20, d20, d26 @ A[4][0] ^= (~A[4][1] & A[4][2])
vbic d26, d24, d23
veor d21, d21, d27 @ A[4][1] ^= (~A[4][2] & A[4][3])
@@ -2375,32 +2375,32 @@ SHA3_absorb_neon:
mov r5, r2 @ len
mov r6, r3 @ bsz
- vld1.32 {d0}, [r0:64]! @ A[0][0]
- vld1.32 {d2}, [r0:64]! @ A[0][1]
- vld1.32 {d4}, [r0:64]! @ A[0][2]
- vld1.32 {d6}, [r0:64]! @ A[0][3]
- vld1.32 {d8}, [r0:64]! @ A[0][4]
-
- vld1.32 {d1}, [r0:64]! @ A[1][0]
- vld1.32 {d3}, [r0:64]! @ A[1][1]
- vld1.32 {d5}, [r0:64]! @ A[1][2]
- vld1.32 {d7}, [r0:64]! @ A[1][3]
- vld1.32 {d9}, [r0:64]! @ A[1][4]
-
- vld1.32 {d10}, [r0:64]! @ A[2][0]
- vld1.32 {d12}, [r0:64]! @ A[2][1]
- vld1.32 {d14}, [r0:64]! @ A[2][2]
- vld1.32 {d16}, [r0:64]! @ A[2][3]
- vld1.32 {d18}, [r0:64]! @ A[2][4]
-
- vld1.32 {d11}, [r0:64]! @ A[3][0]
- vld1.32 {d13}, [r0:64]! @ A[3][1]
- vld1.32 {d15}, [r0:64]! @ A[3][2]
- vld1.32 {d17}, [r0:64]! @ A[3][3]
- vld1.32 {d19}, [r0:64]! @ A[3][4]
-
- vld1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..3]
- vld1.32 {d24}, [r0:64] @ A[4][4]
+ vld1.32 {d0}, [r0,:64]! @ A[0][0]
+ vld1.32 {d2}, [r0,:64]! @ A[0][1]
+ vld1.32 {d4}, [r0,:64]! @ A[0][2]
+ vld1.32 {d6}, [r0,:64]! @ A[0][3]
+ vld1.32 {d8}, [r0,:64]! @ A[0][4]
+
+ vld1.32 {d1}, [r0,:64]! @ A[1][0]
+ vld1.32 {d3}, [r0,:64]! @ A[1][1]
+ vld1.32 {d5}, [r0,:64]! @ A[1][2]
+ vld1.32 {d7}, [r0,:64]! @ A[1][3]
+ vld1.32 {d9}, [r0,:64]! @ A[1][4]
+
+ vld1.32 {d10}, [r0,:64]! @ A[2][0]
+ vld1.32 {d12}, [r0,:64]! @ A[2][1]
+ vld1.32 {d14}, [r0,:64]! @ A[2][2]
+ vld1.32 {d16}, [r0,:64]! @ A[2][3]
+ vld1.32 {d18}, [r0,:64]! @ A[2][4]
+
+ vld1.32 {d11}, [r0,:64]! @ A[3][0]
+ vld1.32 {d13}, [r0,:64]! @ A[3][1]
+ vld1.32 {d15}, [r0,:64]! @ A[3][2]
+ vld1.32 {d17}, [r0,:64]! @ A[3][3]
+ vld1.32 {d19}, [r0,:64]! @ A[3][4]
+
+ vld1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..3]
+ vld1.32 {d24}, [r0,:64] @ A[4][4]
sub r0, r0, #24*8 @ rewind
b .Loop_absorb_neon
@@ -2507,32 +2507,32 @@ SHA3_absorb_neon:
.align 4
.Labsorbed_neon:
- vst1.32 {d0}, [r0:64]! @ A[0][0..4]
- vst1.32 {d2}, [r0:64]!
- vst1.32 {d4}, [r0:64]!
- vst1.32 {d6}, [r0:64]!
- vst1.32 {d8}, [r0:64]!
-
- vst1.32 {d1}, [r0:64]! @ A[1][0..4]
- vst1.32 {d3}, [r0:64]!
- vst1.32 {d5}, [r0:64]!
- vst1.32 {d7}, [r0:64]!
- vst1.32 {d9}, [r0:64]!
-
- vst1.32 {d10}, [r0:64]! @ A[2][0..4]
- vst1.32 {d12}, [r0:64]!
- vst1.32 {d14}, [r0:64]!
- vst1.32 {d16}, [r0:64]!
- vst1.32 {d18}, [r0:64]!
-
- vst1.32 {d11}, [r0:64]! @ A[3][0..4]
- vst1.32 {d13}, [r0:64]!
- vst1.32 {d15}, [r0:64]!
- vst1.32 {d17}, [r0:64]!
- vst1.32 {d19}, [r0:64]!
-
- vst1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..4]
- vst1.32 {d24}, [r0:64]
+ vst1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vst1.32 {d2}, [r0,:64]!
+ vst1.32 {d4}, [r0,:64]!
+ vst1.32 {d6}, [r0,:64]!
+ vst1.32 {d8}, [r0,:64]!
+
+ vst1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vst1.32 {d3}, [r0,:64]!
+ vst1.32 {d5}, [r0,:64]!
+ vst1.32 {d7}, [r0,:64]!
+ vst1.32 {d9}, [r0,:64]!
+
+ vst1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vst1.32 {d12}, [r0,:64]!
+ vst1.32 {d14}, [r0,:64]!
+ vst1.32 {d16}, [r0,:64]!
+ vst1.32 {d18}, [r0,:64]!
+
+ vst1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vst1.32 {d13}, [r0,:64]!
+ vst1.32 {d15}, [r0,:64]!
+ vst1.32 {d17}, [r0,:64]!
+ vst1.32 {d19}, [r0,:64]!
+
+ vst1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..4]
+ vst1.32 {d24}, [r0,:64]
mov r0, r5 @ return value
vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
@@ -2567,64 +2567,64 @@ SHA3_squeeze_neon:
vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
- vld1.32 {d0}, [r0:64]! @ A[0][0..4]
- vld1.32 {d2}, [r0:64]!
- vld1.32 {d4}, [r0:64]!
- vld1.32 {d6}, [r0:64]!
- vld1.32 {d8}, [r0:64]!
-
- vld1.32 {d1}, [r0:64]! @ A[1][0..4]
- vld1.32 {d3}, [r0:64]!
- vld1.32 {d5}, [r0:64]!
- vld1.32 {d7}, [r0:64]!
- vld1.32 {d9}, [r0:64]!
-
- vld1.32 {d10}, [r0:64]! @ A[2][0..4]
- vld1.32 {d12}, [r0:64]!
- vld1.32 {d14}, [r0:64]!
- vld1.32 {d16}, [r0:64]!
- vld1.32 {d18}, [r0:64]!
-
- vld1.32 {d11}, [r0:64]! @ A[3][0..4]
- vld1.32 {d13}, [r0:64]!
- vld1.32 {d15}, [r0:64]!
- vld1.32 {d17}, [r0:64]!
- vld1.32 {d19}, [r0:64]!
-
- vld1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..4]
- vld1.32 {d24}, [r0:64]
+ vld1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vld1.32 {d2}, [r0,:64]!
+ vld1.32 {d4}, [r0,:64]!
+ vld1.32 {d6}, [r0,:64]!
+ vld1.32 {d8}, [r0,:64]!
+
+ vld1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vld1.32 {d3}, [r0,:64]!
+ vld1.32 {d5}, [r0,:64]!
+ vld1.32 {d7}, [r0,:64]!
+ vld1.32 {d9}, [r0,:64]!
+
+ vld1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vld1.32 {d12}, [r0,:64]!
+ vld1.32 {d14}, [r0,:64]!
+ vld1.32 {d16}, [r0,:64]!
+ vld1.32 {d18}, [r0,:64]!
+
+ vld1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vld1.32 {d13}, [r0,:64]!
+ vld1.32 {d15}, [r0,:64]!
+ vld1.32 {d17}, [r0,:64]!
+ vld1.32 {d19}, [r0,:64]!
+
+ vld1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..4]
+ vld1.32 {d24}, [r0,:64]
sub r0, r0, #24*8 @ rewind
bl KeccakF1600_neon
mov r12, r0 @ A_flat
- vst1.32 {d0}, [r0:64]! @ A[0][0..4]
- vst1.32 {d2}, [r0:64]!
- vst1.32 {d4}, [r0:64]!
- vst1.32 {d6}, [r0:64]!
- vst1.32 {d8}, [r0:64]!
-
- vst1.32 {d1}, [r0:64]! @ A[1][0..4]
- vst1.32 {d3}, [r0:64]!
- vst1.32 {d5}, [r0:64]!
- vst1.32 {d7}, [r0:64]!
- vst1.32 {d9}, [r0:64]!
-
- vst1.32 {d10}, [r0:64]! @ A[2][0..4]
- vst1.32 {d12}, [r0:64]!
- vst1.32 {d14}, [r0:64]!
- vst1.32 {d16}, [r0:64]!
- vst1.32 {d18}, [r0:64]!
-
- vst1.32 {d11}, [r0:64]! @ A[3][0..4]
- vst1.32 {d13}, [r0:64]!
- vst1.32 {d15}, [r0:64]!
- vst1.32 {d17}, [r0:64]!
- vst1.32 {d19}, [r0:64]!
-
- vst1.32 {d20,d21,d22,d23}, [r0:64]! @ A[4][0..4]
+ vst1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vst1.32 {d2}, [r0,:64]!
+ vst1.32 {d4}, [r0,:64]!
+ vst1.32 {d6}, [r0,:64]!
+ vst1.32 {d8}, [r0,:64]!
+
+ vst1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vst1.32 {d3}, [r0,:64]!
+ vst1.32 {d5}, [r0,:64]!
+ vst1.32 {d7}, [r0,:64]!
+ vst1.32 {d9}, [r0,:64]!
+
+ vst1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vst1.32 {d12}, [r0,:64]!
+ vst1.32 {d14}, [r0,:64]!
+ vst1.32 {d16}, [r0,:64]!
+ vst1.32 {d18}, [r0,:64]!
+
+ vst1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vst1.32 {d13}, [r0,:64]!
+ vst1.32 {d15}, [r0,:64]!
+ vst1.32 {d17}, [r0,:64]!
+ vst1.32 {d19}, [r0,:64]!
+
+ vst1.32 {d20,d21,d22,d23}, [r0,:64]! @ A[4][0..4]
mov r14, r6 @ bsz
- vst1.32 {d24}, [r0:64]
+ vst1.32 {d24}, [r0,:64]
mov r0, r12 @ rewind
vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm
index 22041f4c705d9d..9603f342e70290 100644
--- a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-armv4",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3225,6 +3225,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7826,10 +7827,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9922,6 +9919,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15095,6 +15096,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15440,6 +15442,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h
index e3af840967728d..7cf872d12e9d2a 100644
--- a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-armv4"
-#define DATE "built on: Wed Jun 12 20:54:33 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:23 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-elf/asm/configdata.pm b/deps/openssl/config/archs/linux-elf/asm/configdata.pm
index 7b6d063b8f7e4a..2e07e0f655cb5d 100644
--- a/deps/openssl/config/archs/linux-elf/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-elf/asm/configdata.pm
@@ -49,7 +49,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -112,8 +112,8 @@ our %config = (
sourcedir => ".",
target => "linux-elf",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -127,8 +127,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1697,8 +1697,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3239,6 +3240,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4864,12 +4866,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4886,12 +4882,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7870,10 +7878,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10008,6 +10012,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10641,14 +10649,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13338,8 +13350,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15241,6 +15254,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15586,6 +15600,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h
index 29bb1a47b44b82..d35d80a968c59e 100644
--- a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-elf"
-#define DATE "built on: Wed Jun 12 20:54:35 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:27 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -38,10 +38,10 @@ static const char compiler_flags[] = {
'6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A',
'S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M',
'D','5','_','A','S','M',' ','-','D','R','M','D','1','6','0','_',
- 'A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D',
- 'V','P','A','E','S','_','A','S','M',' ','-','D','W','H','I','R',
- 'L','P','O','O','L','_','A','S','M',' ','-','D','G','H','A','S',
- 'H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T',
- 'Z','2','5','6','_','A','S','M',' ','-','D','P','O','L','Y','1',
- '3','0','5','_','A','S','M',' ','-','D','N','D','E','B','U','G','\0'
+ 'A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ',
+ '-','D','W','H','I','R','L','P','O','O','L','_','A','S','M',' ',
+ '-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C',
+ 'P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-',
+ 'D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D',
+ 'N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi
index 841130aed241cb..e2fe28d73a968d 100644
--- a/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/linux-elf/asm/openssl-cl.gypi
@@ -16,7 +16,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/linux-elf/asm/openssl.gypi b/deps/openssl/config/archs/linux-elf/asm/openssl.gypi
index ca1aa0111be438..19fe9eac77262f 100644
--- a/deps/openssl/config/archs/linux-elf/asm/openssl.gypi
+++ b/deps/openssl/config/archs/linux-elf/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_linux-elf': [
- './config/archs/linux-elf/asm/crypto/aes/aes-586.s',
'./config/archs/linux-elf/asm/crypto/aes/aesni-x86.s',
'./config/archs/linux-elf/asm/crypto/aes/vpaes-x86.s',
'./config/archs/linux-elf/asm/crypto/bf/bf-586.s',
@@ -712,7 +713,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm
index e94ac927211abf..9ddf36af0f5672 100644
--- a/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm
@@ -49,7 +49,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -112,8 +112,8 @@ our %config = (
sourcedir => ".",
target => "linux-elf",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -127,8 +127,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1697,8 +1697,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3239,6 +3240,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4864,12 +4866,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4886,12 +4882,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7870,10 +7878,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10008,6 +10012,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10641,14 +10649,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13338,8 +13350,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15241,6 +15254,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15586,6 +15600,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h
index b1e8d591a587dc..153225532e4c1c 100644
--- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-elf"
-#define DATE "built on: Wed Jun 12 20:54:39 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:33 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -39,11 +39,10 @@ static const char compiler_flags[] = {
'2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2',
'_','A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-',
'D','M','D','5','_','A','S','M',' ','-','D','R','M','D','1','6',
- '0','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ',
- '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','W','H',
- 'I','R','L','P','O','O','L','_','A','S','M',' ','-','D','G','H',
- 'A','S','H','_','A','S','M',' ','-','D','E','C','P','_','N','I',
- 'S','T','Z','2','5','6','_','A','S','M',' ','-','D','P','O','L',
- 'Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E','B',
- 'U','G','\0'
+ '0','_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S',
+ 'M',' ','-','D','W','H','I','R','L','P','O','O','L','_','A','S',
+ 'M',' ','-','D','G','H','A','S','H','_','A','S','M',' ','-','D',
+ 'E','C','P','_','N','I','S','T','Z','2','5','6','_','A','S','M',
+ ' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ',
+ '-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi
index 841130aed241cb..e2fe28d73a968d 100644
--- a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl-cl.gypi
@@ -16,7 +16,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi
index 383f3ca0d4b264..5cfdf4bbe688ae 100644
--- a/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/linux-elf/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_linux-elf': [
- './config/archs/linux-elf/asm_avx2/crypto/aes/aes-586.s',
'./config/archs/linux-elf/asm_avx2/crypto/aes/aesni-x86.s',
'./config/archs/linux-elf/asm_avx2/crypto/aes/vpaes-x86.s',
'./config/archs/linux-elf/asm_avx2/crypto/bf/bf-586.s',
@@ -712,7 +713,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm b/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm
index 252c46953d4c3e..0c657bee8b914c 100644
--- a/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-elf",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3224,6 +3224,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7825,10 +7826,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9921,6 +9918,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15094,6 +15095,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15439,6 +15441,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h
index 1dd3c287502116..39469e8298ae17 100644
--- a/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-elf"
-#define DATE "built on: Wed Jun 12 20:54:42 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:39 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc/asm/configdata.pm b/deps/openssl/config/archs/linux-ppc/asm/configdata.pm
index 9bd62dc005de5d..47234ab9177f5b 100644
--- a/deps/openssl/config/archs/linux-ppc/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc/asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3239,6 +3239,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7876,10 +7877,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10014,6 +10011,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15252,6 +15253,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15597,6 +15599,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h
index 488a189a61b90c..af759c6bdab883 100644
--- a/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc"
-#define DATE "built on: Wed Jun 12 20:55:26 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:00:48 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-ppc/asm_avx2/configdata.pm
index a79ff6a2ff6e0a..65b50577c3673c 100644
--- a/deps/openssl/config/archs/linux-ppc/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3239,6 +3239,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7876,10 +7877,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10014,6 +10011,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15252,6 +15253,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15597,6 +15599,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/buildinf.h
index 31e71e82e6d9c4..d91d124d0d95f7 100644
--- a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc"
-#define DATE "built on: Wed Jun 12 20:55:29 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:00:53 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm b/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm
index a5734852699f73..41afbcc4445a44 100644
--- a/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3225,6 +3225,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7826,10 +7827,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9922,6 +9919,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15095,6 +15096,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15440,6 +15442,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h
index 15f8319f781601..feccd6e409e5d0 100644
--- a/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc"
-#define DATE "built on: Wed Jun 12 20:55:33 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:00:59 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm
index e4af0246f53958..a8105b72abd10d 100644
--- a/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3243,6 +3243,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7898,10 +7899,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10036,6 +10033,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15289,6 +15290,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15634,6 +15636,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h
index 75473d6529d095..2c9f24fdee2e25 100644
--- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc64"
-#define DATE "built on: Wed Jun 12 20:55:35 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:02 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-ppc64/asm_avx2/configdata.pm
index c38e26de921882..fa53549253d37e 100644
--- a/deps/openssl/config/archs/linux-ppc64/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc64/asm_avx2/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3243,6 +3243,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7898,10 +7899,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10036,6 +10033,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15289,6 +15290,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15634,6 +15636,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/buildinf.h
index 4183f815d14fd9..0e70ae12285ec6 100644
--- a/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc64"
-#define DATE "built on: Wed Jun 12 20:55:38 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:08 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm
index 5aa7eb6816c877..42b7f02251e94b 100644
--- a/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3226,6 +3226,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7827,10 +7828,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9923,6 +9920,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15096,6 +15097,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15441,6 +15443,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h
index 94b40f31728924..50c645ff13a868 100644
--- a/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc64"
-#define DATE "built on: Wed Jun 12 20:55:42 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:14 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm
index 632f7f03512207..aff8df2a584ca8 100644
--- a/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc64le",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3242,6 +3242,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7897,10 +7898,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10035,6 +10032,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15288,6 +15289,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15633,6 +15635,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h
index ad0bfb25edd38a..e7003954bb1a42 100644
--- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc64le"
-#define DATE "built on: Wed Jun 12 20:55:44 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:17 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm
index 0b2ffc07ca6da2..a92bb250672e06 100644
--- a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc64le",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3242,6 +3242,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7897,10 +7898,6 @@ our %unified_info = (
"crypto/include",
"include",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10035,6 +10032,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15288,6 +15289,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15633,6 +15635,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h
index 4ce6a71896a85e..e8e073c0d22a9f 100644
--- a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc64le"
-#define DATE "built on: Wed Jun 12 20:55:48 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:23 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm
index d482d6a14cf9fa..9d91dea1de5354 100644
--- a/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-ppc64le",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3225,6 +3225,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7826,10 +7827,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9922,6 +9919,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15095,6 +15096,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15440,6 +15442,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h
index 56e2d2c8ff7e94..aebc739df4d2c0 100644
--- a/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-ppc64le"
-#define DATE "built on: Wed Jun 12 20:55:52 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:29 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-x32/asm/configdata.pm b/deps/openssl/config/archs/linux-x32/asm/configdata.pm
index 526fc03a399978..58a473be95a3e6 100644
--- a/deps/openssl/config/archs/linux-x32/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-x32/asm/configdata.pm
@@ -49,7 +49,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -112,8 +112,8 @@ our %config = (
sourcedir => ".",
target => "linux-x32",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -127,8 +127,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1698,8 +1698,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1709,7 +1710,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3264,6 +3264,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4905,7 +4906,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4917,6 +4918,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4987,12 +4994,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7955,10 +7956,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10099,6 +10096,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10732,14 +10733,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10776,10 +10781,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13473,8 +13474,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13484,7 +13486,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15387,6 +15388,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15732,6 +15734,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h
index a02715c9da37d2..c9b1f198949916 100644
--- a/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-x32"
-#define DATE "built on: Wed Jun 12 20:54:45 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:43 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -37,11 +37,10 @@ static const char compiler_flags[] = {
'M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-',
'D','K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ',
'-','D','R','C','4','_','A','S','M',' ','-','D','M','D','5','_',
- 'A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D',
- 'V','P','A','E','S','_','A','S','M',' ','-','D','B','S','A','E',
- 'S','_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S',
- 'M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6',
- '_','A','S','M',' ','-','D','X','2','5','5','1','9','_','A','S',
- 'M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',
- ' ','-','D','N','D','E','B','U','G','\0'
+ 'A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ',
+ '-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C',
+ 'P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-',
+ 'D','X','2','5','5','1','9','_','A','S','M',' ','-','D','P','O',
+ 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E',
+ 'B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/linux-x32/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-x32/asm/openssl-cl.gypi
index fa200427590930..859eb1a3691ebf 100644
--- a/deps/openssl/config/archs/linux-x32/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/linux-x32/asm/openssl-cl.gypi
@@ -16,9 +16,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x32/asm/openssl.gypi b/deps/openssl/config/archs/linux-x32/asm/openssl.gypi
index 1705d7ef3c3490..5faef9c0e48f51 100644
--- a/deps/openssl/config/archs/linux-x32/asm/openssl.gypi
+++ b/deps/openssl/config/archs/linux-x32/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_linux-x32': [
- './config/archs/linux-x32/asm/crypto/aes/aes-x86_64.s',
'./config/archs/linux-x32/asm/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/linux-x32/asm/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/linux-x32/asm/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/linux-x32/asm/crypto/aes/aesni-x86_64.s',
- './config/archs/linux-x32/asm/crypto/aes/bsaes-x86_64.s',
'./config/archs/linux-x32/asm/crypto/aes/vpaes-x86_64.s',
'./config/archs/linux-x32/asm/crypto/bn/rsaz-avx2.s',
'./config/archs/linux-x32/asm/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x32/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-x32/asm_avx2/configdata.pm
index 001552a7718ab6..c85073cdc5ea14 100644
--- a/deps/openssl/config/archs/linux-x32/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-x32/asm_avx2/configdata.pm
@@ -49,7 +49,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -112,8 +112,8 @@ our %config = (
sourcedir => ".",
target => "linux-x32",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -127,8 +127,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1698,8 +1698,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1709,7 +1710,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3264,6 +3264,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4905,7 +4906,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4917,6 +4918,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4987,12 +4994,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7955,10 +7956,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10099,6 +10096,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10732,14 +10733,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10776,10 +10781,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13473,8 +13474,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13484,7 +13486,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15387,6 +15388,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15732,6 +15734,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-x32/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-x32/asm_avx2/crypto/buildinf.h
index 8b65a79f17aa48..f567041169936f 100644
--- a/deps/openssl/config/archs/linux-x32/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-x32/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-x32"
-#define DATE "built on: Wed Jun 12 20:54:54 2019 UTC"
+#define DATE "built on: Fri Sep 13 15:59:58 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -38,11 +38,10 @@ static const char compiler_flags[] = {
'A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M',
' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A','S',
'M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M','D',
- '5','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ',
- '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','B','S',
- 'A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H','_',
- 'A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2',
- '5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_',
- 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A',
- 'S','M',' ','-','D','N','D','E','B','U','G','\0'
+ '5','_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S',
+ 'M',' ','-','D','G','H','A','S','H','_','A','S','M',' ','-','D',
+ 'E','C','P','_','N','I','S','T','Z','2','5','6','_','A','S','M',
+ ' ','-','D','X','2','5','5','1','9','_','A','S','M',' ','-','D',
+ 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N',
+ 'D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/linux-x32/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/linux-x32/asm_avx2/openssl-cl.gypi
index fa200427590930..859eb1a3691ebf 100644
--- a/deps/openssl/config/archs/linux-x32/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/linux-x32/asm_avx2/openssl-cl.gypi
@@ -16,9 +16,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x32/asm_avx2/openssl.gypi b/deps/openssl/config/archs/linux-x32/asm_avx2/openssl.gypi
index fe3c93c3f7778f..7dd6ee5dda657f 100644
--- a/deps/openssl/config/archs/linux-x32/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/linux-x32/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_linux-x32': [
- './config/archs/linux-x32/asm_avx2/crypto/aes/aes-x86_64.s',
'./config/archs/linux-x32/asm_avx2/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/linux-x32/asm_avx2/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/linux-x32/asm_avx2/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/linux-x32/asm_avx2/crypto/aes/aesni-x86_64.s',
- './config/archs/linux-x32/asm_avx2/crypto/aes/bsaes-x86_64.s',
'./config/archs/linux-x32/asm_avx2/crypto/aes/vpaes-x86_64.s',
'./config/archs/linux-x32/asm_avx2/crypto/bn/rsaz-avx2.s',
'./config/archs/linux-x32/asm_avx2/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm b/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm
index 942ec62dc1b085..b9a8bebaa20a64 100644
--- a/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-x32",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3226,6 +3226,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7827,10 +7828,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9923,6 +9920,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15096,6 +15097,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15441,6 +15443,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h
index 680bd0437dbf2c..369ee613964bf0 100644
--- a/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-x32"
-#define DATE "built on: Wed Jun 12 20:55:03 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:00:12 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm b/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm
index 0f56cf3c035ed3..6eac1af414f413 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm
@@ -49,7 +49,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -112,8 +112,8 @@ our %config = (
sourcedir => ".",
target => "linux-x86_64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -127,8 +127,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1698,8 +1698,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1709,7 +1710,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3264,6 +3264,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4905,7 +4906,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4917,6 +4918,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4987,12 +4994,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7955,10 +7956,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10099,6 +10096,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10732,14 +10733,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10776,10 +10781,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13473,8 +13474,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13484,7 +13486,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15387,6 +15388,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15732,6 +15734,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h
index feca9239fdd5d7..17e89914852fb5 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-x86_64"
-#define DATE "built on: Wed Jun 12 20:55:05 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:00:16 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -37,11 +37,10 @@ static const char compiler_flags[] = {
' ','-','D','S','H','A','5','1','2','_','A','S','M',' ','-','D',
'K','E','C','C','A','K','1','6','0','0','_','A','S','M',' ','-',
'D','R','C','4','_','A','S','M',' ','-','D','M','D','5','_','A',
- 'S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D','V',
- 'P','A','E','S','_','A','S','M',' ','-','D','B','S','A','E','S',
- '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M',
- ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_',
- 'A','S','M',' ','-','D','X','2','5','5','1','9','_','A','S','M',
- ' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ',
- '-','D','N','D','E','B','U','G','\0'
+ 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-',
+ 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P',
+ '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D',
+ 'X','2','5','5','1','9','_','A','S','M',' ','-','D','P','O','L',
+ 'Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E','B',
+ 'U','G','\0'
};
diff --git a/deps/openssl/config/archs/linux-x86_64/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux-x86_64/asm/openssl-cl.gypi
index b6da61db090acf..b134d72e7dc477 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/linux-x86_64/asm/openssl-cl.gypi
@@ -16,9 +16,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi b/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi
index a76b3ddc19c3ae..92491dbd9f1334 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi
+++ b/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_linux-x86_64': [
- './config/archs/linux-x86_64/asm/crypto/aes/aes-x86_64.s',
'./config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/linux-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/linux-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/linux-x86_64/asm/crypto/aes/aesni-x86_64.s',
- './config/archs/linux-x86_64/asm/crypto/aes/bsaes-x86_64.s',
'./config/archs/linux-x86_64/asm/crypto/aes/vpaes-x86_64.s',
'./config/archs/linux-x86_64/asm/crypto/bn/rsaz-avx2.s',
'./config/archs/linux-x86_64/asm/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm
index 3bd11714e44131..b2a66729ebcce6 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm
@@ -49,7 +49,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -112,8 +112,8 @@ our %config = (
sourcedir => ".",
target => "linux-x86_64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -127,8 +127,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1698,8 +1698,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1709,7 +1710,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3264,6 +3264,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4905,7 +4906,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4917,6 +4918,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4987,12 +4994,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7955,10 +7956,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10099,6 +10096,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10732,14 +10733,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10776,10 +10781,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13473,8 +13474,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13484,7 +13486,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15387,6 +15388,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15732,6 +15734,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h
index c6d20c88a865d4..51e776d7cb1ade 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-x86_64"
-#define DATE "built on: Wed Jun 12 20:55:14 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:00:30 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -38,11 +38,10 @@ static const char compiler_flags[] = {
'S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M',' ',
'-','D','K','E','C','C','A','K','1','6','0','0','_','A','S','M',
' ','-','D','R','C','4','_','A','S','M',' ','-','D','M','D','5',
- '_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-',
- 'D','V','P','A','E','S','_','A','S','M',' ','-','D','B','S','A',
- 'E','S','_','A','S','M',' ','-','D','G','H','A','S','H','_','A',
- 'S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2','5',
- '6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_','A',
- 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S',
- 'M',' ','-','D','N','D','E','B','U','G','\0'
+ '_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M',
+ ' ','-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E',
+ 'C','P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ',
+ '-','D','X','2','5','5','1','9','_','A','S','M',' ','-','D','P',
+ 'O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D',
+ 'E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl-cl.gypi
index b6da61db090acf..b134d72e7dc477 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl-cl.gypi
@@ -16,9 +16,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl.gypi b/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl.gypi
index c141efdc861eb4..05ee0df141731d 100644
--- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_linux-x86_64': [
- './config/archs/linux-x86_64/asm_avx2/crypto/aes/aes-x86_64.s',
'./config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/linux-x86_64/asm_avx2/crypto/aes/aesni-x86_64.s',
- './config/archs/linux-x86_64/asm_avx2/crypto/aes/bsaes-x86_64.s',
'./config/archs/linux-x86_64/asm_avx2/crypto/aes/vpaes-x86_64.s',
'./config/archs/linux-x86_64/asm_avx2/crypto/bn/rsaz-avx2.s',
'./config/archs/linux-x86_64/asm_avx2/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm
index c1bf09deb1375c..93da6e96905edd 100644
--- a/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux-x86_64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3226,6 +3226,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7827,10 +7828,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9923,6 +9920,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15096,6 +15097,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15441,6 +15443,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h
index a2efd7befa0316..df3083b539c028 100644
--- a/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux-x86_64"
-#define DATE "built on: Wed Jun 12 20:55:24 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:00:45 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm b/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm
index b18496dc588152..02768931a01019 100644
--- a/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux32-s390x",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3233,6 +3233,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7836,7 +7837,6 @@ our %unified_info = (
".",
"crypto/include",
"include",
- "crypto",
],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
@@ -9942,6 +9942,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15145,6 +15149,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15490,6 +15495,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h
index 85f76e96e4149d..e5da8365c7a61d 100644
--- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux32-s390x"
-#define DATE "built on: Wed Jun 12 20:55:54 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:33 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm
index 7848fb6a662173..96ab247e83743d 100644
--- a/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux32-s390x",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3233,6 +3233,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7836,7 +7837,6 @@ our %unified_info = (
".",
"crypto/include",
"include",
- "crypto",
],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
@@ -9942,6 +9942,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15145,6 +15149,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15490,6 +15495,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h
index 2cb993418c7787..71628ed04c6c4f 100644
--- a/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux32-s390x"
-#define DATE "built on: Wed Jun 12 20:55:56 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:37 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm b/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm
index fbb44057acf50f..1fcc3a092d63ba 100644
--- a/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux32-s390x",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3225,6 +3225,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7820,10 +7821,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9916,6 +9913,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15084,6 +15085,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15429,6 +15431,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h
index 3777a91391843a..e7256e3f12adc9 100644
--- a/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux32-s390x"
-#define DATE "built on: Wed Jun 12 20:55:59 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:41 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm b/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm
index 3ea6d4bcc9b79d..6d77d25fe39da0 100644
--- a/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm
@@ -26,6 +26,7 @@ our %config = (
PERL => "/usr/bin/perl",
RANLIB => "ranlib",
RC => "windres",
+ RCFLAGS => [ ],
b32 => "0",
b64 => "0",
b64l => "1",
@@ -35,10 +36,10 @@ our %config = (
build_infos => [ "./build.info", "crypto/build.info", "ssl/build.info", "engines/build.info", "apps/build.info", "test/build.info", "util/build.info", "tools/build.info", "fuzz/build.info", "crypto/objects/build.info", "crypto/md4/build.info", "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", "crypto/poly1305/build.info", "crypto/blake2/build.info", "crypto/siphash/build.info", "crypto/sm3/build.info", "crypto/des/build.info", "crypto/aes/build.info", "crypto/rc2/build.info", "crypto/rc4/build.info", "crypto/idea/build.info", "crypto/aria/build.info", "crypto/bf/build.info", "crypto/cast/build.info", "crypto/camellia/build.info", "crypto/seed/build.info", "crypto/sm4/build.info", "crypto/chacha/build.info", "crypto/modes/build.info", "crypto/bn/build.info", "crypto/ec/build.info", "crypto/rsa/build.info", "crypto/dsa/build.info", "crypto/dh/build.info", "crypto/sm2/build.info", "crypto/dso/build.info", "crypto/engine/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", "crypto/rand/build.info", "crypto/err/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", "crypto/pem/build.info", "crypto/x509/build.info", "crypto/x509v3/build.info", "crypto/conf/build.info", "crypto/txt_db/build.info", "crypto/pkcs7/build.info", "crypto/pkcs12/build.info", "crypto/ocsp/build.info", "crypto/ui/build.info", "crypto/cms/build.info", "crypto/ts/build.info", "crypto/srp/build.info", "crypto/cmac/build.info", "crypto/ct/build.info", "crypto/async/build.info", "crypto/kdf/build.info", "crypto/store/build.info", "test/ossl_shim/build.info" ],
build_type => "release",
builddir => ".",
- cflags => [ "-mips3", "-Wa,--noexecstack" ],
- conf_files => [ "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
+ cflags => [ "-Wa,--noexecstack" ],
+ conf_files => [ "Configurations/00-base-templates.conf", "Configurations/10-main.conf" ],
cppflags => [ ],
- cxxflags => [ "-mips3" ],
+ cxxflags => [ ],
defines => [ "NDEBUG" ],
dirs => [ "crypto", "ssl", "engines", "apps", "test", "util", "tools", "fuzz" ],
dynamic_engines => "0",
@@ -58,10 +59,10 @@ our %config = (
openssl_sys_defines => [ ],
openssl_thread_defines => [ "OPENSSL_THREADS" ],
openssldir => "",
- options => "enable-ssl-trace no-afalgeng no-asan no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-heartbeats no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic",
- perl_archname => "mips64el-linux-thread-multi",
+ options => "enable-ssl-trace no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-heartbeats no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic",
+ perl_archname => "x86_64-linux-gnu-thread-multi",
perl_cmd => "/usr/bin/perl",
- perl_version => "5.18.4",
+ perl_version => "5.28.1",
perlargv => [ "no-comp", "no-shared", "no-afalgeng", "enable-ssl-trace", "linux64-mips64" ],
perlenv => {
"AR" => undef,
@@ -110,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux64-mips64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1b",
- version_num => "0x1010102fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -222,6 +223,7 @@ our @disablables = (
"autoload-config",
"bf",
"blake2",
+ "buildtest-c\\+\\+",
"camellia",
"capieng",
"cast",
@@ -238,7 +240,6 @@ our @disablables = (
"dgram",
"dh",
"dsa",
- "dso",
"dtls",
"dynamic-engine",
"ec",
@@ -322,11 +323,12 @@ our @disablables = (
our %disabled = (
"afalgeng" => "option",
"asan" => "default",
+ "buildtest-c++" => "default",
"comp" => "option",
"crypto-mdebug" => "default",
"crypto-mdebug-backtrace" => "default",
"devcryptoeng" => "default",
- "dynamic-engine" => "forced",
+ "dynamic-engine" => "cascade",
"ec_nistp_64_gcc_128" => "default",
"egd" => "default",
"external-tests" => "default",
@@ -803,342 +805,342 @@ our %unified_info = (
"libcrypto",
"test/libtestutil.a",
],
- "test/buildtest_aes" =>
+ "test/buildtest_c_aes" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_asn1" =>
+ "test/buildtest_c_asn1" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_asn1t" =>
+ "test/buildtest_c_asn1t" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_async" =>
+ "test/buildtest_c_async" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_bio" =>
+ "test/buildtest_c_bio" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_blowfish" =>
+ "test/buildtest_c_blowfish" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_bn" =>
+ "test/buildtest_c_bn" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_buffer" =>
+ "test/buildtest_c_buffer" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_camellia" =>
+ "test/buildtest_c_camellia" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_cast" =>
+ "test/buildtest_c_cast" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_cmac" =>
+ "test/buildtest_c_cmac" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_cms" =>
+ "test/buildtest_c_cms" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_conf" =>
+ "test/buildtest_c_conf" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_conf_api" =>
+ "test/buildtest_c_conf_api" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_crypto" =>
+ "test/buildtest_c_crypto" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ct" =>
+ "test/buildtest_c_ct" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_des" =>
+ "test/buildtest_c_des" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_dh" =>
+ "test/buildtest_c_dh" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_dsa" =>
+ "test/buildtest_c_dsa" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_dtls1" =>
+ "test/buildtest_c_dtls1" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_e_os2" =>
+ "test/buildtest_c_e_os2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ebcdic" =>
+ "test/buildtest_c_ebcdic" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ec" =>
+ "test/buildtest_c_ec" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ecdh" =>
+ "test/buildtest_c_ecdh" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ecdsa" =>
+ "test/buildtest_c_ecdsa" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_engine" =>
+ "test/buildtest_c_engine" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_evp" =>
+ "test/buildtest_c_evp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_hmac" =>
+ "test/buildtest_c_hmac" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_idea" =>
+ "test/buildtest_c_idea" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_kdf" =>
+ "test/buildtest_c_kdf" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_lhash" =>
+ "test/buildtest_c_lhash" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_md4" =>
+ "test/buildtest_c_md4" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_md5" =>
+ "test/buildtest_c_md5" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_mdc2" =>
+ "test/buildtest_c_mdc2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_modes" =>
+ "test/buildtest_c_modes" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_obj_mac" =>
+ "test/buildtest_c_obj_mac" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_objects" =>
+ "test/buildtest_c_objects" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ocsp" =>
+ "test/buildtest_c_ocsp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_opensslv" =>
+ "test/buildtest_c_opensslv" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ossl_typ" =>
+ "test/buildtest_c_ossl_typ" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pem" =>
+ "test/buildtest_c_pem" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pem2" =>
+ "test/buildtest_c_pem2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pkcs12" =>
+ "test/buildtest_c_pkcs12" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pkcs7" =>
+ "test/buildtest_c_pkcs7" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rand" =>
+ "test/buildtest_c_rand" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rand_drbg" =>
+ "test/buildtest_c_rand_drbg" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rc2" =>
+ "test/buildtest_c_rc2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rc4" =>
+ "test/buildtest_c_rc4" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ripemd" =>
+ "test/buildtest_c_ripemd" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rsa" =>
+ "test/buildtest_c_rsa" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_safestack" =>
+ "test/buildtest_c_safestack" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_seed" =>
+ "test/buildtest_c_seed" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_sha" =>
+ "test/buildtest_c_sha" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_srp" =>
+ "test/buildtest_c_srp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_srtp" =>
+ "test/buildtest_c_srtp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ssl" =>
+ "test/buildtest_c_ssl" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ssl2" =>
+ "test/buildtest_c_ssl2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_stack" =>
+ "test/buildtest_c_stack" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_store" =>
+ "test/buildtest_c_store" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_symhacks" =>
+ "test/buildtest_c_symhacks" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_tls1" =>
+ "test/buildtest_c_tls1" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ts" =>
+ "test/buildtest_c_ts" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_txt_db" =>
+ "test/buildtest_c_txt_db" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ui" =>
+ "test/buildtest_c_ui" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_whrlpool" =>
+ "test/buildtest_c_whrlpool" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_x509" =>
+ "test/buildtest_c_x509" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_x509_vfy" =>
+ "test/buildtest_c_x509_vfy" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_x509v3" =>
+ "test/buildtest_c_x509v3" =>
[
"libcrypto",
"libssl",
@@ -3230,6 +3232,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7831,10 +7834,6 @@ our %unified_info = (
"include",
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9936,6 +9935,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10078,74 +10081,74 @@ our %unified_info = (
"test/bio_memleak_test",
"test/bioprinttest",
"test/bntest",
- "test/buildtest_aes",
- "test/buildtest_asn1",
- "test/buildtest_asn1t",
- "test/buildtest_async",
- "test/buildtest_bio",
- "test/buildtest_blowfish",
- "test/buildtest_bn",
- "test/buildtest_buffer",
- "test/buildtest_camellia",
- "test/buildtest_cast",
- "test/buildtest_cmac",
- "test/buildtest_cms",
- "test/buildtest_conf",
- "test/buildtest_conf_api",
- "test/buildtest_crypto",
- "test/buildtest_ct",
- "test/buildtest_des",
- "test/buildtest_dh",
- "test/buildtest_dsa",
- "test/buildtest_dtls1",
- "test/buildtest_e_os2",
- "test/buildtest_ebcdic",
- "test/buildtest_ec",
- "test/buildtest_ecdh",
- "test/buildtest_ecdsa",
- "test/buildtest_engine",
- "test/buildtest_evp",
- "test/buildtest_hmac",
- "test/buildtest_idea",
- "test/buildtest_kdf",
- "test/buildtest_lhash",
- "test/buildtest_md4",
- "test/buildtest_md5",
- "test/buildtest_mdc2",
- "test/buildtest_modes",
- "test/buildtest_obj_mac",
- "test/buildtest_objects",
- "test/buildtest_ocsp",
- "test/buildtest_opensslv",
- "test/buildtest_ossl_typ",
- "test/buildtest_pem",
- "test/buildtest_pem2",
- "test/buildtest_pkcs12",
- "test/buildtest_pkcs7",
- "test/buildtest_rand",
- "test/buildtest_rand_drbg",
- "test/buildtest_rc2",
- "test/buildtest_rc4",
- "test/buildtest_ripemd",
- "test/buildtest_rsa",
- "test/buildtest_safestack",
- "test/buildtest_seed",
- "test/buildtest_sha",
- "test/buildtest_srp",
- "test/buildtest_srtp",
- "test/buildtest_ssl",
- "test/buildtest_ssl2",
- "test/buildtest_stack",
- "test/buildtest_store",
- "test/buildtest_symhacks",
- "test/buildtest_tls1",
- "test/buildtest_ts",
- "test/buildtest_txt_db",
- "test/buildtest_ui",
- "test/buildtest_whrlpool",
- "test/buildtest_x509",
- "test/buildtest_x509_vfy",
- "test/buildtest_x509v3",
+ "test/buildtest_c_aes",
+ "test/buildtest_c_asn1",
+ "test/buildtest_c_asn1t",
+ "test/buildtest_c_async",
+ "test/buildtest_c_bio",
+ "test/buildtest_c_blowfish",
+ "test/buildtest_c_bn",
+ "test/buildtest_c_buffer",
+ "test/buildtest_c_camellia",
+ "test/buildtest_c_cast",
+ "test/buildtest_c_cmac",
+ "test/buildtest_c_cms",
+ "test/buildtest_c_conf",
+ "test/buildtest_c_conf_api",
+ "test/buildtest_c_crypto",
+ "test/buildtest_c_ct",
+ "test/buildtest_c_des",
+ "test/buildtest_c_dh",
+ "test/buildtest_c_dsa",
+ "test/buildtest_c_dtls1",
+ "test/buildtest_c_e_os2",
+ "test/buildtest_c_ebcdic",
+ "test/buildtest_c_ec",
+ "test/buildtest_c_ecdh",
+ "test/buildtest_c_ecdsa",
+ "test/buildtest_c_engine",
+ "test/buildtest_c_evp",
+ "test/buildtest_c_hmac",
+ "test/buildtest_c_idea",
+ "test/buildtest_c_kdf",
+ "test/buildtest_c_lhash",
+ "test/buildtest_c_md4",
+ "test/buildtest_c_md5",
+ "test/buildtest_c_mdc2",
+ "test/buildtest_c_modes",
+ "test/buildtest_c_obj_mac",
+ "test/buildtest_c_objects",
+ "test/buildtest_c_ocsp",
+ "test/buildtest_c_opensslv",
+ "test/buildtest_c_ossl_typ",
+ "test/buildtest_c_pem",
+ "test/buildtest_c_pem2",
+ "test/buildtest_c_pkcs12",
+ "test/buildtest_c_pkcs7",
+ "test/buildtest_c_rand",
+ "test/buildtest_c_rand_drbg",
+ "test/buildtest_c_rc2",
+ "test/buildtest_c_rc4",
+ "test/buildtest_c_ripemd",
+ "test/buildtest_c_rsa",
+ "test/buildtest_c_safestack",
+ "test/buildtest_c_seed",
+ "test/buildtest_c_sha",
+ "test/buildtest_c_srp",
+ "test/buildtest_c_srtp",
+ "test/buildtest_c_ssl",
+ "test/buildtest_c_ssl2",
+ "test/buildtest_c_stack",
+ "test/buildtest_c_store",
+ "test/buildtest_c_symhacks",
+ "test/buildtest_c_tls1",
+ "test/buildtest_c_ts",
+ "test/buildtest_c_txt_db",
+ "test/buildtest_c_ui",
+ "test/buildtest_c_whrlpool",
+ "test/buildtest_c_x509",
+ "test/buildtest_c_x509_vfy",
+ "test/buildtest_c_x509v3",
"test/casttest",
"test/chacha_internal_test",
"test/cipher_overhead_test",
@@ -14232,545 +14235,545 @@ our %unified_info = (
[
"test/bntest.c",
],
- "test/buildtest_aes" =>
- [
- "test/buildtest_aes.o",
- ],
"test/buildtest_aes.o" =>
[
"test/buildtest_aes.c",
],
- "test/buildtest_asn1" =>
- [
- "test/buildtest_asn1.o",
- ],
"test/buildtest_asn1.o" =>
[
"test/buildtest_asn1.c",
],
- "test/buildtest_asn1t" =>
- [
- "test/buildtest_asn1t.o",
- ],
"test/buildtest_asn1t.o" =>
[
"test/buildtest_asn1t.c",
],
- "test/buildtest_async" =>
- [
- "test/buildtest_async.o",
- ],
"test/buildtest_async.o" =>
[
"test/buildtest_async.c",
],
- "test/buildtest_bio" =>
- [
- "test/buildtest_bio.o",
- ],
"test/buildtest_bio.o" =>
[
"test/buildtest_bio.c",
],
- "test/buildtest_blowfish" =>
- [
- "test/buildtest_blowfish.o",
- ],
"test/buildtest_blowfish.o" =>
[
"test/buildtest_blowfish.c",
],
- "test/buildtest_bn" =>
- [
- "test/buildtest_bn.o",
- ],
"test/buildtest_bn.o" =>
[
"test/buildtest_bn.c",
],
- "test/buildtest_buffer" =>
- [
- "test/buildtest_buffer.o",
- ],
"test/buildtest_buffer.o" =>
[
"test/buildtest_buffer.c",
],
- "test/buildtest_camellia" =>
+ "test/buildtest_c_aes" =>
[
- "test/buildtest_camellia.o",
+ "test/buildtest_aes.o",
],
- "test/buildtest_camellia.o" =>
+ "test/buildtest_c_asn1" =>
[
- "test/buildtest_camellia.c",
+ "test/buildtest_asn1.o",
],
- "test/buildtest_cast" =>
+ "test/buildtest_c_asn1t" =>
[
- "test/buildtest_cast.o",
+ "test/buildtest_asn1t.o",
],
- "test/buildtest_cast.o" =>
+ "test/buildtest_c_async" =>
[
- "test/buildtest_cast.c",
+ "test/buildtest_async.o",
],
- "test/buildtest_cmac" =>
+ "test/buildtest_c_bio" =>
[
- "test/buildtest_cmac.o",
+ "test/buildtest_bio.o",
],
- "test/buildtest_cmac.o" =>
+ "test/buildtest_c_blowfish" =>
[
- "test/buildtest_cmac.c",
+ "test/buildtest_blowfish.o",
],
- "test/buildtest_cms" =>
+ "test/buildtest_c_bn" =>
[
- "test/buildtest_cms.o",
+ "test/buildtest_bn.o",
],
- "test/buildtest_cms.o" =>
+ "test/buildtest_c_buffer" =>
[
- "test/buildtest_cms.c",
+ "test/buildtest_buffer.o",
],
- "test/buildtest_conf" =>
+ "test/buildtest_c_camellia" =>
[
- "test/buildtest_conf.o",
+ "test/buildtest_camellia.o",
],
- "test/buildtest_conf.o" =>
+ "test/buildtest_c_cast" =>
[
- "test/buildtest_conf.c",
+ "test/buildtest_cast.o",
],
- "test/buildtest_conf_api" =>
+ "test/buildtest_c_cmac" =>
[
- "test/buildtest_conf_api.o",
+ "test/buildtest_cmac.o",
],
- "test/buildtest_conf_api.o" =>
+ "test/buildtest_c_cms" =>
[
- "test/buildtest_conf_api.c",
+ "test/buildtest_cms.o",
],
- "test/buildtest_crypto" =>
+ "test/buildtest_c_conf" =>
[
- "test/buildtest_crypto.o",
+ "test/buildtest_conf.o",
],
- "test/buildtest_crypto.o" =>
+ "test/buildtest_c_conf_api" =>
[
- "test/buildtest_crypto.c",
+ "test/buildtest_conf_api.o",
],
- "test/buildtest_ct" =>
+ "test/buildtest_c_crypto" =>
[
- "test/buildtest_ct.o",
+ "test/buildtest_crypto.o",
],
- "test/buildtest_ct.o" =>
+ "test/buildtest_c_ct" =>
[
- "test/buildtest_ct.c",
+ "test/buildtest_ct.o",
],
- "test/buildtest_des" =>
+ "test/buildtest_c_des" =>
[
"test/buildtest_des.o",
],
- "test/buildtest_des.o" =>
+ "test/buildtest_c_dh" =>
[
- "test/buildtest_des.c",
+ "test/buildtest_dh.o",
],
- "test/buildtest_dh" =>
+ "test/buildtest_c_dsa" =>
[
- "test/buildtest_dh.o",
+ "test/buildtest_dsa.o",
],
- "test/buildtest_dh.o" =>
+ "test/buildtest_c_dtls1" =>
[
- "test/buildtest_dh.c",
+ "test/buildtest_dtls1.o",
],
- "test/buildtest_dsa" =>
+ "test/buildtest_c_e_os2" =>
[
- "test/buildtest_dsa.o",
+ "test/buildtest_e_os2.o",
],
- "test/buildtest_dsa.o" =>
+ "test/buildtest_c_ebcdic" =>
[
- "test/buildtest_dsa.c",
+ "test/buildtest_ebcdic.o",
],
- "test/buildtest_dtls1" =>
+ "test/buildtest_c_ec" =>
[
- "test/buildtest_dtls1.o",
+ "test/buildtest_ec.o",
],
- "test/buildtest_dtls1.o" =>
+ "test/buildtest_c_ecdh" =>
[
- "test/buildtest_dtls1.c",
+ "test/buildtest_ecdh.o",
],
- "test/buildtest_e_os2" =>
+ "test/buildtest_c_ecdsa" =>
[
- "test/buildtest_e_os2.o",
+ "test/buildtest_ecdsa.o",
],
- "test/buildtest_e_os2.o" =>
+ "test/buildtest_c_engine" =>
[
- "test/buildtest_e_os2.c",
+ "test/buildtest_engine.o",
],
- "test/buildtest_ebcdic" =>
+ "test/buildtest_c_evp" =>
[
- "test/buildtest_ebcdic.o",
+ "test/buildtest_evp.o",
],
- "test/buildtest_ebcdic.o" =>
+ "test/buildtest_c_hmac" =>
[
- "test/buildtest_ebcdic.c",
+ "test/buildtest_hmac.o",
],
- "test/buildtest_ec" =>
+ "test/buildtest_c_idea" =>
[
- "test/buildtest_ec.o",
+ "test/buildtest_idea.o",
],
- "test/buildtest_ec.o" =>
+ "test/buildtest_c_kdf" =>
[
- "test/buildtest_ec.c",
+ "test/buildtest_kdf.o",
],
- "test/buildtest_ecdh" =>
+ "test/buildtest_c_lhash" =>
[
- "test/buildtest_ecdh.o",
+ "test/buildtest_lhash.o",
],
- "test/buildtest_ecdh.o" =>
+ "test/buildtest_c_md4" =>
[
- "test/buildtest_ecdh.c",
+ "test/buildtest_md4.o",
],
- "test/buildtest_ecdsa" =>
+ "test/buildtest_c_md5" =>
[
- "test/buildtest_ecdsa.o",
+ "test/buildtest_md5.o",
],
- "test/buildtest_ecdsa.o" =>
+ "test/buildtest_c_mdc2" =>
[
- "test/buildtest_ecdsa.c",
+ "test/buildtest_mdc2.o",
],
- "test/buildtest_engine" =>
+ "test/buildtest_c_modes" =>
[
- "test/buildtest_engine.o",
+ "test/buildtest_modes.o",
],
- "test/buildtest_engine.o" =>
+ "test/buildtest_c_obj_mac" =>
[
- "test/buildtest_engine.c",
+ "test/buildtest_obj_mac.o",
],
- "test/buildtest_evp" =>
+ "test/buildtest_c_objects" =>
[
- "test/buildtest_evp.o",
+ "test/buildtest_objects.o",
],
- "test/buildtest_evp.o" =>
+ "test/buildtest_c_ocsp" =>
[
- "test/buildtest_evp.c",
+ "test/buildtest_ocsp.o",
],
- "test/buildtest_hmac" =>
+ "test/buildtest_c_opensslv" =>
[
- "test/buildtest_hmac.o",
+ "test/buildtest_opensslv.o",
],
- "test/buildtest_hmac.o" =>
+ "test/buildtest_c_ossl_typ" =>
[
- "test/buildtest_hmac.c",
+ "test/buildtest_ossl_typ.o",
],
- "test/buildtest_idea" =>
+ "test/buildtest_c_pem" =>
[
- "test/buildtest_idea.o",
+ "test/buildtest_pem.o",
],
- "test/buildtest_idea.o" =>
+ "test/buildtest_c_pem2" =>
[
- "test/buildtest_idea.c",
+ "test/buildtest_pem2.o",
],
- "test/buildtest_kdf" =>
+ "test/buildtest_c_pkcs12" =>
[
- "test/buildtest_kdf.o",
+ "test/buildtest_pkcs12.o",
],
- "test/buildtest_kdf.o" =>
+ "test/buildtest_c_pkcs7" =>
[
- "test/buildtest_kdf.c",
+ "test/buildtest_pkcs7.o",
],
- "test/buildtest_lhash" =>
+ "test/buildtest_c_rand" =>
[
- "test/buildtest_lhash.o",
+ "test/buildtest_rand.o",
],
- "test/buildtest_lhash.o" =>
+ "test/buildtest_c_rand_drbg" =>
[
- "test/buildtest_lhash.c",
+ "test/buildtest_rand_drbg.o",
],
- "test/buildtest_md4" =>
+ "test/buildtest_c_rc2" =>
[
- "test/buildtest_md4.o",
+ "test/buildtest_rc2.o",
],
- "test/buildtest_md4.o" =>
+ "test/buildtest_c_rc4" =>
[
- "test/buildtest_md4.c",
+ "test/buildtest_rc4.o",
],
- "test/buildtest_md5" =>
+ "test/buildtest_c_ripemd" =>
[
- "test/buildtest_md5.o",
+ "test/buildtest_ripemd.o",
],
- "test/buildtest_md5.o" =>
+ "test/buildtest_c_rsa" =>
[
- "test/buildtest_md5.c",
+ "test/buildtest_rsa.o",
],
- "test/buildtest_mdc2" =>
+ "test/buildtest_c_safestack" =>
[
- "test/buildtest_mdc2.o",
+ "test/buildtest_safestack.o",
],
- "test/buildtest_mdc2.o" =>
+ "test/buildtest_c_seed" =>
[
- "test/buildtest_mdc2.c",
+ "test/buildtest_seed.o",
],
- "test/buildtest_modes" =>
+ "test/buildtest_c_sha" =>
[
- "test/buildtest_modes.o",
+ "test/buildtest_sha.o",
],
- "test/buildtest_modes.o" =>
+ "test/buildtest_c_srp" =>
[
- "test/buildtest_modes.c",
+ "test/buildtest_srp.o",
],
- "test/buildtest_obj_mac" =>
+ "test/buildtest_c_srtp" =>
[
- "test/buildtest_obj_mac.o",
+ "test/buildtest_srtp.o",
],
- "test/buildtest_obj_mac.o" =>
+ "test/buildtest_c_ssl" =>
[
- "test/buildtest_obj_mac.c",
+ "test/buildtest_ssl.o",
],
- "test/buildtest_objects" =>
+ "test/buildtest_c_ssl2" =>
[
- "test/buildtest_objects.o",
+ "test/buildtest_ssl2.o",
],
- "test/buildtest_objects.o" =>
+ "test/buildtest_c_stack" =>
[
- "test/buildtest_objects.c",
+ "test/buildtest_stack.o",
],
- "test/buildtest_ocsp" =>
+ "test/buildtest_c_store" =>
[
- "test/buildtest_ocsp.o",
+ "test/buildtest_store.o",
],
- "test/buildtest_ocsp.o" =>
+ "test/buildtest_c_symhacks" =>
[
- "test/buildtest_ocsp.c",
+ "test/buildtest_symhacks.o",
],
- "test/buildtest_opensslv" =>
+ "test/buildtest_c_tls1" =>
[
- "test/buildtest_opensslv.o",
+ "test/buildtest_tls1.o",
],
- "test/buildtest_opensslv.o" =>
+ "test/buildtest_c_ts" =>
[
- "test/buildtest_opensslv.c",
+ "test/buildtest_ts.o",
],
- "test/buildtest_ossl_typ" =>
+ "test/buildtest_c_txt_db" =>
[
- "test/buildtest_ossl_typ.o",
+ "test/buildtest_txt_db.o",
],
- "test/buildtest_ossl_typ.o" =>
+ "test/buildtest_c_ui" =>
[
- "test/buildtest_ossl_typ.c",
+ "test/buildtest_ui.o",
],
- "test/buildtest_pem" =>
+ "test/buildtest_c_whrlpool" =>
[
- "test/buildtest_pem.o",
+ "test/buildtest_whrlpool.o",
],
- "test/buildtest_pem.o" =>
+ "test/buildtest_c_x509" =>
[
- "test/buildtest_pem.c",
+ "test/buildtest_x509.o",
],
- "test/buildtest_pem2" =>
+ "test/buildtest_c_x509_vfy" =>
[
- "test/buildtest_pem2.o",
+ "test/buildtest_x509_vfy.o",
],
- "test/buildtest_pem2.o" =>
+ "test/buildtest_c_x509v3" =>
[
- "test/buildtest_pem2.c",
+ "test/buildtest_x509v3.o",
],
- "test/buildtest_pkcs12" =>
+ "test/buildtest_camellia.o" =>
[
- "test/buildtest_pkcs12.o",
+ "test/buildtest_camellia.c",
],
- "test/buildtest_pkcs12.o" =>
+ "test/buildtest_cast.o" =>
[
- "test/buildtest_pkcs12.c",
+ "test/buildtest_cast.c",
],
- "test/buildtest_pkcs7" =>
+ "test/buildtest_cmac.o" =>
[
- "test/buildtest_pkcs7.o",
+ "test/buildtest_cmac.c",
],
- "test/buildtest_pkcs7.o" =>
+ "test/buildtest_cms.o" =>
[
- "test/buildtest_pkcs7.c",
+ "test/buildtest_cms.c",
],
- "test/buildtest_rand" =>
+ "test/buildtest_conf.o" =>
[
- "test/buildtest_rand.o",
+ "test/buildtest_conf.c",
],
- "test/buildtest_rand.o" =>
+ "test/buildtest_conf_api.o" =>
[
- "test/buildtest_rand.c",
+ "test/buildtest_conf_api.c",
],
- "test/buildtest_rand_drbg" =>
+ "test/buildtest_crypto.o" =>
[
- "test/buildtest_rand_drbg.o",
+ "test/buildtest_crypto.c",
],
- "test/buildtest_rand_drbg.o" =>
+ "test/buildtest_ct.o" =>
[
- "test/buildtest_rand_drbg.c",
+ "test/buildtest_ct.c",
],
- "test/buildtest_rc2" =>
+ "test/buildtest_des.o" =>
[
- "test/buildtest_rc2.o",
+ "test/buildtest_des.c",
],
- "test/buildtest_rc2.o" =>
+ "test/buildtest_dh.o" =>
[
- "test/buildtest_rc2.c",
+ "test/buildtest_dh.c",
],
- "test/buildtest_rc4" =>
+ "test/buildtest_dsa.o" =>
[
- "test/buildtest_rc4.o",
+ "test/buildtest_dsa.c",
],
- "test/buildtest_rc4.o" =>
+ "test/buildtest_dtls1.o" =>
[
- "test/buildtest_rc4.c",
+ "test/buildtest_dtls1.c",
],
- "test/buildtest_ripemd" =>
+ "test/buildtest_e_os2.o" =>
[
- "test/buildtest_ripemd.o",
+ "test/buildtest_e_os2.c",
],
- "test/buildtest_ripemd.o" =>
+ "test/buildtest_ebcdic.o" =>
[
- "test/buildtest_ripemd.c",
+ "test/buildtest_ebcdic.c",
],
- "test/buildtest_rsa" =>
+ "test/buildtest_ec.o" =>
[
- "test/buildtest_rsa.o",
+ "test/buildtest_ec.c",
],
- "test/buildtest_rsa.o" =>
+ "test/buildtest_ecdh.o" =>
[
- "test/buildtest_rsa.c",
+ "test/buildtest_ecdh.c",
],
- "test/buildtest_safestack" =>
+ "test/buildtest_ecdsa.o" =>
[
- "test/buildtest_safestack.o",
+ "test/buildtest_ecdsa.c",
],
- "test/buildtest_safestack.o" =>
+ "test/buildtest_engine.o" =>
[
- "test/buildtest_safestack.c",
+ "test/buildtest_engine.c",
],
- "test/buildtest_seed" =>
+ "test/buildtest_evp.o" =>
[
- "test/buildtest_seed.o",
+ "test/buildtest_evp.c",
],
- "test/buildtest_seed.o" =>
+ "test/buildtest_hmac.o" =>
[
- "test/buildtest_seed.c",
+ "test/buildtest_hmac.c",
],
- "test/buildtest_sha" =>
+ "test/buildtest_idea.o" =>
[
- "test/buildtest_sha.o",
+ "test/buildtest_idea.c",
],
- "test/buildtest_sha.o" =>
+ "test/buildtest_kdf.o" =>
[
- "test/buildtest_sha.c",
+ "test/buildtest_kdf.c",
],
- "test/buildtest_srp" =>
+ "test/buildtest_lhash.o" =>
[
- "test/buildtest_srp.o",
+ "test/buildtest_lhash.c",
],
- "test/buildtest_srp.o" =>
+ "test/buildtest_md4.o" =>
[
- "test/buildtest_srp.c",
+ "test/buildtest_md4.c",
],
- "test/buildtest_srtp" =>
+ "test/buildtest_md5.o" =>
[
- "test/buildtest_srtp.o",
+ "test/buildtest_md5.c",
],
- "test/buildtest_srtp.o" =>
+ "test/buildtest_mdc2.o" =>
[
- "test/buildtest_srtp.c",
+ "test/buildtest_mdc2.c",
],
- "test/buildtest_ssl" =>
+ "test/buildtest_modes.o" =>
[
- "test/buildtest_ssl.o",
+ "test/buildtest_modes.c",
],
- "test/buildtest_ssl.o" =>
+ "test/buildtest_obj_mac.o" =>
[
- "test/buildtest_ssl.c",
+ "test/buildtest_obj_mac.c",
],
- "test/buildtest_ssl2" =>
+ "test/buildtest_objects.o" =>
[
- "test/buildtest_ssl2.o",
+ "test/buildtest_objects.c",
],
- "test/buildtest_ssl2.o" =>
+ "test/buildtest_ocsp.o" =>
[
- "test/buildtest_ssl2.c",
+ "test/buildtest_ocsp.c",
],
- "test/buildtest_stack" =>
+ "test/buildtest_opensslv.o" =>
[
- "test/buildtest_stack.o",
+ "test/buildtest_opensslv.c",
],
- "test/buildtest_stack.o" =>
+ "test/buildtest_ossl_typ.o" =>
[
- "test/buildtest_stack.c",
+ "test/buildtest_ossl_typ.c",
],
- "test/buildtest_store" =>
+ "test/buildtest_pem.o" =>
[
- "test/buildtest_store.o",
+ "test/buildtest_pem.c",
],
- "test/buildtest_store.o" =>
+ "test/buildtest_pem2.o" =>
[
- "test/buildtest_store.c",
+ "test/buildtest_pem2.c",
],
- "test/buildtest_symhacks" =>
+ "test/buildtest_pkcs12.o" =>
[
- "test/buildtest_symhacks.o",
+ "test/buildtest_pkcs12.c",
],
- "test/buildtest_symhacks.o" =>
+ "test/buildtest_pkcs7.o" =>
[
- "test/buildtest_symhacks.c",
+ "test/buildtest_pkcs7.c",
],
- "test/buildtest_tls1" =>
+ "test/buildtest_rand.o" =>
[
- "test/buildtest_tls1.o",
+ "test/buildtest_rand.c",
],
- "test/buildtest_tls1.o" =>
+ "test/buildtest_rand_drbg.o" =>
[
- "test/buildtest_tls1.c",
+ "test/buildtest_rand_drbg.c",
],
- "test/buildtest_ts" =>
+ "test/buildtest_rc2.o" =>
[
- "test/buildtest_ts.o",
+ "test/buildtest_rc2.c",
],
- "test/buildtest_ts.o" =>
+ "test/buildtest_rc4.o" =>
[
- "test/buildtest_ts.c",
+ "test/buildtest_rc4.c",
],
- "test/buildtest_txt_db" =>
+ "test/buildtest_ripemd.o" =>
[
- "test/buildtest_txt_db.o",
+ "test/buildtest_ripemd.c",
],
- "test/buildtest_txt_db.o" =>
+ "test/buildtest_rsa.o" =>
[
- "test/buildtest_txt_db.c",
+ "test/buildtest_rsa.c",
],
- "test/buildtest_ui" =>
+ "test/buildtest_safestack.o" =>
[
- "test/buildtest_ui.o",
+ "test/buildtest_safestack.c",
],
- "test/buildtest_ui.o" =>
+ "test/buildtest_seed.o" =>
[
- "test/buildtest_ui.c",
+ "test/buildtest_seed.c",
],
- "test/buildtest_whrlpool" =>
+ "test/buildtest_sha.o" =>
[
- "test/buildtest_whrlpool.o",
+ "test/buildtest_sha.c",
],
- "test/buildtest_whrlpool.o" =>
+ "test/buildtest_srp.o" =>
[
- "test/buildtest_whrlpool.c",
+ "test/buildtest_srp.c",
+ ],
+ "test/buildtest_srtp.o" =>
+ [
+ "test/buildtest_srtp.c",
],
- "test/buildtest_x509" =>
+ "test/buildtest_ssl.o" =>
[
- "test/buildtest_x509.o",
+ "test/buildtest_ssl.c",
],
- "test/buildtest_x509.o" =>
+ "test/buildtest_ssl2.o" =>
[
- "test/buildtest_x509.c",
+ "test/buildtest_ssl2.c",
],
- "test/buildtest_x509_vfy" =>
+ "test/buildtest_stack.o" =>
[
- "test/buildtest_x509_vfy.o",
+ "test/buildtest_stack.c",
],
- "test/buildtest_x509_vfy.o" =>
+ "test/buildtest_store.o" =>
[
- "test/buildtest_x509_vfy.c",
+ "test/buildtest_store.c",
],
- "test/buildtest_x509v3" =>
+ "test/buildtest_symhacks.o" =>
[
- "test/buildtest_x509v3.o",
+ "test/buildtest_symhacks.c",
+ ],
+ "test/buildtest_tls1.o" =>
+ [
+ "test/buildtest_tls1.c",
+ ],
+ "test/buildtest_ts.o" =>
+ [
+ "test/buildtest_ts.c",
+ ],
+ "test/buildtest_txt_db.o" =>
+ [
+ "test/buildtest_txt_db.c",
+ ],
+ "test/buildtest_ui.o" =>
+ [
+ "test/buildtest_ui.c",
+ ],
+ "test/buildtest_whrlpool.o" =>
+ [
+ "test/buildtest_whrlpool.c",
+ ],
+ "test/buildtest_x509.o" =>
+ [
+ "test/buildtest_x509.c",
+ ],
+ "test/buildtest_x509_vfy.o" =>
+ [
+ "test/buildtest_x509_vfy.c",
],
"test/buildtest_x509v3.o" =>
[
@@ -15134,6 +15137,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15479,6 +15483,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
@@ -15876,9 +15884,9 @@ _____
if ($reconf) {
if ($verbose) {
print 'Reconfiguring with: ', join(' ',@{$config{perlargv}}), "\n";
- foreach (sort keys %{$config{perlenv}}) {
- print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n";
- }
+ foreach (sort keys %{$config{perlenv}}) {
+ print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n";
+ }
}
chdir $here;
diff --git a/deps/openssl/config/archs/linux64-mips64/asm/crypto/bn/bn-mips.S b/deps/openssl/config/archs/linux64-mips64/asm/crypto/bn/bn-mips.S
index a99091fe44751e..bd5cf8340f1bf1 100644
--- a/deps/openssl/config/archs/linux64-mips64/asm/crypto/bn/bn-mips.S
+++ b/deps/openssl/config/archs/linux64-mips64/asm/crypto/bn/bn-mips.S
@@ -570,7 +570,7 @@ bn_sub_words_internal:
#if 0
/*
* The bn_div_3_words entry point is re-used for constant-time interface.
- * Implementation is retained as hystorical reference.
+ * Implementation is retained as historical reference.
*/
.align 5
.globl bn_div_3_words
diff --git a/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h
index a959e9512c490e..865115208dc742 100644
--- a/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux64-mips64"
-#define DATE "built on: Thu May 30 02:16:08 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:56 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -21,15 +21,15 @@
static const char compiler_flags[] = {
'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f',
'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','a',
- 'b','i','=','6','4',' ','-','m','i','p','s','3',' ','-','W','a',
- ',','-','-','n','o','e','x','e','c','s','t','a','c','k',' ','-',
- 'W','a','l','l',' ','-','O','3',' ','-','D','O','P','E','N','S',
- 'S','L','_','U','S','E','_','N','O','D','E','L','E','T','E',' ',
- '-','D','O','P','E','N','S','S','L','_','P','I','C',' ','-','D',
- 'O','P','E','N','S','S','L','_','B','N','_','A','S','M','_','M',
- 'O','N','T',' ','-','D','S','H','A','1','_','A','S','M',' ','-',
- 'D','S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H',
- 'A','5','1','2','_','A','S','M',' ','-','D','A','E','S','_','A',
- 'S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S',
- 'M',' ','-','D','N','D','E','B','U','G','\0'
+ 'b','i','=','6','4',' ','-','W','a',',','-','-','n','o','e','x',
+ 'e','c','s','t','a','c','k',' ','-','W','a','l','l',' ','-','O',
+ '3',' ','-','D','O','P','E','N','S','S','L','_','U','S','E','_',
+ 'N','O','D','E','L','E','T','E',' ','-','D','O','P','E','N','S',
+ 'S','L','_','P','I','C',' ','-','D','O','P','E','N','S','S','L',
+ '_','B','N','_','A','S','M','_','M','O','N','T',' ','-','D','S',
+ 'H','A','1','_','A','S','M',' ','-','D','S','H','A','2','5','6',
+ '_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S',
+ 'M',' ','-','D','A','E','S','_','A','S','M',' ','-','D','P','O',
+ 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E',
+ 'B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/linux64-mips64/asm/crypto/include/internal/dso_conf.h b/deps/openssl/config/archs/linux64-mips64/asm/crypto/include/internal/dso_conf.h
index 18f6ac3bffad0f..252266ec2acad6 100644
--- a/deps/openssl/config/archs/linux64-mips64/asm/crypto/include/internal/dso_conf.h
+++ b/deps/openssl/config/archs/linux64-mips64/asm/crypto/include/internal/dso_conf.h
@@ -1,7 +1,7 @@
/* WARNING: do not edit! */
/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -11,9 +11,7 @@
#ifndef HEADER_DSO_CONF_H
# define HEADER_DSO_CONF_H
-
# define DSO_DLFCN
# define HAVE_DLFCN_H
# define DSO_EXTENSION ".so"
-
#endif
diff --git a/deps/openssl/config/archs/linux64-mips64/asm/openssl-cl.gypi b/deps/openssl/config/archs/linux64-mips64/asm/openssl-cl.gypi
index 799e6ecde763e0..5c8521f57870bb 100644
--- a/deps/openssl/config/archs/linux64-mips64/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/linux64-mips64/asm/openssl-cl.gypi
@@ -12,7 +12,6 @@
'POLY1305_ASM',
],
'openssl_cflags_linux64-mips64': [
- '-mips3',
'-Wa,--noexecstack',
'-Wall -O3',
'-pthread -mabi=64',
diff --git a/deps/openssl/config/archs/linux64-mips64/asm/openssl.gypi b/deps/openssl/config/archs/linux64-mips64/asm/openssl.gypi
index 9e9580bc53bd43..bc83b68da5f125 100644
--- a/deps/openssl/config/archs/linux64-mips64/asm/openssl.gypi
+++ b/deps/openssl/config/archs/linux64-mips64/asm/openssl.gypi
@@ -701,7 +701,6 @@
'POLY1305_ASM',
],
'openssl_cflags_linux64-mips64': [
- '-mips3',
'-Wa,--noexecstack',
'-Wall -O3',
'-pthread -mabi=64',
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux64-mips64/asm_avx2/configdata.pm
new file mode 100644
index 00000000000000..8324964ca7936e
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/configdata.pm
@@ -0,0 +1,15988 @@
+#! /usr/bin/env perl
+
+package configdata;
+
+use strict;
+use warnings;
+
+use Exporter;
+#use vars qw(@ISA @EXPORT);
+our @ISA = qw(Exporter);
+our @EXPORT = qw(%config %target %disabled %withargs %unified_info @disablables);
+
+our %config = (
+ AR => "ar",
+ ARFLAGS => [ "r" ],
+ CC => "../config/fake_gcc.pl",
+ CFLAGS => [ "-Wall -O3" ],
+ CPPDEFINES => [ ],
+ CPPFLAGS => [ ],
+ CPPINCLUDES => [ ],
+ CXX => "g++",
+ CXXFLAGS => [ "-Wall -O3" ],
+ HASHBANGPERL => "/usr/bin/env perl",
+ LDFLAGS => [ ],
+ LDLIBS => [ ],
+ PERL => "/usr/bin/perl",
+ RANLIB => "ranlib",
+ RC => "windres",
+ RCFLAGS => [ ],
+ b32 => "0",
+ b64 => "0",
+ b64l => "1",
+ bn_ll => "0",
+ build_file => "Makefile",
+ build_file_templates => [ "Configurations/common0.tmpl", "Configurations/unix-Makefile.tmpl", "Configurations/common.tmpl" ],
+ build_infos => [ "./build.info", "crypto/build.info", "ssl/build.info", "engines/build.info", "apps/build.info", "test/build.info", "util/build.info", "tools/build.info", "fuzz/build.info", "crypto/objects/build.info", "crypto/md4/build.info", "crypto/md5/build.info", "crypto/sha/build.info", "crypto/mdc2/build.info", "crypto/hmac/build.info", "crypto/ripemd/build.info", "crypto/whrlpool/build.info", "crypto/poly1305/build.info", "crypto/blake2/build.info", "crypto/siphash/build.info", "crypto/sm3/build.info", "crypto/des/build.info", "crypto/aes/build.info", "crypto/rc2/build.info", "crypto/rc4/build.info", "crypto/idea/build.info", "crypto/aria/build.info", "crypto/bf/build.info", "crypto/cast/build.info", "crypto/camellia/build.info", "crypto/seed/build.info", "crypto/sm4/build.info", "crypto/chacha/build.info", "crypto/modes/build.info", "crypto/bn/build.info", "crypto/ec/build.info", "crypto/rsa/build.info", "crypto/dsa/build.info", "crypto/dh/build.info", "crypto/sm2/build.info", "crypto/dso/build.info", "crypto/engine/build.info", "crypto/buffer/build.info", "crypto/bio/build.info", "crypto/stack/build.info", "crypto/lhash/build.info", "crypto/rand/build.info", "crypto/err/build.info", "crypto/evp/build.info", "crypto/asn1/build.info", "crypto/pem/build.info", "crypto/x509/build.info", "crypto/x509v3/build.info", "crypto/conf/build.info", "crypto/txt_db/build.info", "crypto/pkcs7/build.info", "crypto/pkcs12/build.info", "crypto/ocsp/build.info", "crypto/ui/build.info", "crypto/cms/build.info", "crypto/ts/build.info", "crypto/srp/build.info", "crypto/cmac/build.info", "crypto/ct/build.info", "crypto/async/build.info", "crypto/kdf/build.info", "crypto/store/build.info", "test/ossl_shim/build.info" ],
+ build_type => "release",
+ builddir => ".",
+ cflags => [ "-Wa,--noexecstack" ],
+ conf_files => [ "Configurations/00-base-templates.conf", "Configurations/10-main.conf" ],
+ cppflags => [ ],
+ cxxflags => [ ],
+ defines => [ "NDEBUG" ],
+ dirs => [ "crypto", "ssl", "engines", "apps", "test", "util", "tools", "fuzz" ],
+ dynamic_engines => "0",
+ engdirs => [ ],
+ ex_libs => [ ],
+ export_var_as_fn => "0",
+ includes => [ ],
+ lflags => [ ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_BN_ASM_MONT", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "AES_ASM", "POLY1305_ASM" ],
+ libdir => "",
+ major => "1",
+ makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
+ minor => "1.1",
+ openssl_algorithm_defines => [ "OPENSSL_NO_COMP", "OPENSSL_NO_MD2", "OPENSSL_NO_RC5" ],
+ openssl_api_defines => [ ],
+ openssl_other_defines => [ "OPENSSL_RAND_SEED_OS", "OPENSSL_NO_AFALGENG", "OPENSSL_NO_ASAN", "OPENSSL_NO_CRYPTO_MDEBUG", "OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE", "OPENSSL_NO_DEVCRYPTOENG", "OPENSSL_NO_EC_NISTP_64_GCC_128", "OPENSSL_NO_EGD", "OPENSSL_NO_EXTERNAL_TESTS", "OPENSSL_NO_FUZZ_AFL", "OPENSSL_NO_FUZZ_LIBFUZZER", "OPENSSL_NO_HEARTBEATS", "OPENSSL_NO_MSAN", "OPENSSL_NO_SCTP", "OPENSSL_NO_SSL3", "OPENSSL_NO_SSL3_METHOD", "OPENSSL_NO_UBSAN", "OPENSSL_NO_UNIT_TEST", "OPENSSL_NO_WEAK_SSL_CIPHERS", "OPENSSL_NO_DYNAMIC_ENGINE", "OPENSSL_NO_AFALGENG" ],
+ openssl_sys_defines => [ ],
+ openssl_thread_defines => [ "OPENSSL_THREADS" ],
+ openssldir => "",
+ options => "enable-ssl-trace no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-heartbeats no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic",
+ perl_archname => "x86_64-linux-gnu-thread-multi",
+ perl_cmd => "/usr/bin/perl",
+ perl_version => "5.28.1",
+ perlargv => [ "no-comp", "no-shared", "no-afalgeng", "enable-ssl-trace", "linux64-mips64" ],
+ perlenv => {
+ "AR" => undef,
+ "ARFLAGS" => undef,
+ "AS" => undef,
+ "ASFLAGS" => undef,
+ "BUILDFILE" => undef,
+ "CC" => "../config/fake_gcc.pl",
+ "CFLAGS" => undef,
+ "CPP" => undef,
+ "CPPDEFINES" => undef,
+ "CPPFLAGS" => undef,
+ "CPPINCLUDES" => undef,
+ "CROSS_COMPILE" => undef,
+ "CXX" => undef,
+ "CXXFLAGS" => undef,
+ "HASHBANGPERL" => undef,
+ "LD" => undef,
+ "LDFLAGS" => undef,
+ "LDLIBS" => undef,
+ "MT" => undef,
+ "MTFLAGS" => undef,
+ "OPENSSL_LOCAL_CONFIG_DIR" => undef,
+ "PERL" => undef,
+ "RANLIB" => undef,
+ "RC" => undef,
+ "RCFLAGS" => undef,
+ "RM" => undef,
+ "WINDRES" => undef,
+ "__CNF_CFLAGS" => undef,
+ "__CNF_CPPDEFINES" => undef,
+ "__CNF_CPPFLAGS" => undef,
+ "__CNF_CPPINCLUDES" => undef,
+ "__CNF_CXXFLAGS" => undef,
+ "__CNF_LDFLAGS" => undef,
+ "__CNF_LDLIBS" => undef,
+ },
+ prefix => "",
+ processor => "",
+ rc4_int => "unsigned char",
+ sdirs => [ "objects", "md4", "md5", "sha", "mdc2", "hmac", "ripemd", "whrlpool", "poly1305", "blake2", "siphash", "sm3", "des", "aes", "rc2", "rc4", "idea", "aria", "bf", "cast", "camellia", "seed", "sm4", "chacha", "modes", "bn", "ec", "rsa", "dsa", "dh", "sm2", "dso", "engine", "buffer", "bio", "stack", "lhash", "rand", "err", "evp", "asn1", "pem", "x509", "x509v3", "conf", "txt_db", "pkcs7", "pkcs12", "ocsp", "ui", "cms", "ts", "srp", "cmac", "ct", "async", "kdf", "store" ],
+ shlib_major => "1",
+ shlib_minor => "1",
+ shlib_version_history => "",
+ shlib_version_number => "1.1",
+ sourcedir => ".",
+ target => "linux64-mips64",
+ tdirs => [ "ossl_shim" ],
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
+);
+
+our %target = (
+ AR => "ar",
+ ARFLAGS => "r",
+ CC => "gcc",
+ CFLAGS => "-Wall -O3",
+ CXX => "g++",
+ CXXFLAGS => "-Wall -O3",
+ HASHBANGPERL => "/usr/bin/env perl",
+ RANLIB => "ranlib",
+ RC => "windres",
+ _conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
+ aes_asm_src => "aes_cbc.c aes-mips.S",
+ aes_obj => "aes_cbc.o aes-mips.o",
+ apps_aux_src => "",
+ apps_init_src => "",
+ apps_obj => "",
+ bf_asm_src => "bf_enc.c",
+ bf_obj => "bf_enc.o",
+ bn_asm_src => "bn-mips.S mips-mont.S",
+ bn_obj => "bn-mips.o mips-mont.o",
+ bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
+ build_file => "Makefile",
+ build_scheme => [ "unified", "unix" ],
+ cast_asm_src => "c_enc.c",
+ cast_obj => "c_enc.o",
+ cflags => "-pthread -mabi=64",
+ chacha_asm_src => "chacha_enc.c",
+ chacha_obj => "chacha_enc.o",
+ cmll_asm_src => "camellia.c cmll_misc.c cmll_cbc.c",
+ cmll_obj => "camellia.o cmll_misc.o cmll_cbc.o",
+ cppflags => "",
+ cpuid_asm_src => "mem_clr.c",
+ cpuid_obj => "mem_clr.o",
+ cxxflags => "-std=c++11 -pthread -mabi=64",
+ defines => [ ],
+ des_asm_src => "des_enc.c fcrypt_b.c",
+ des_obj => "des_enc.o fcrypt_b.o",
+ disable => [ ],
+ dso_extension => ".so",
+ dso_scheme => "dlfcn",
+ ec_asm_src => "",
+ ec_obj => "",
+ enable => [ "afalgeng" ],
+ ex_libs => "-ldl -pthread",
+ exe_extension => "",
+ includes => [ ],
+ keccak1600_asm_src => "keccak1600.c",
+ keccak1600_obj => "keccak1600.o",
+ lflags => "",
+ lib_cflags => "",
+ lib_cppflags => "-DOPENSSL_USE_NODELETE",
+ lib_defines => [ ],
+ md5_asm_src => "",
+ md5_obj => "",
+ modes_asm_src => "",
+ modes_obj => "",
+ module_cflags => "-fPIC",
+ module_cxxflags => "",
+ module_ldflags => "-Wl,-znodelete -shared -Wl,-Bsymbolic",
+ multilib => "64",
+ padlock_asm_src => "",
+ padlock_obj => "",
+ perlasm_scheme => "64",
+ poly1305_asm_src => "poly1305-mips.S",
+ poly1305_obj => "poly1305-mips.o",
+ rc4_asm_src => "rc4_enc.c rc4_skey.c",
+ rc4_obj => "rc4_enc.o rc4_skey.o",
+ rc5_asm_src => "rc5_enc.c",
+ rc5_obj => "rc5_enc.o",
+ rmd160_asm_src => "",
+ rmd160_obj => "",
+ sha1_asm_src => "sha1-mips.S sha256-mips.S sha512-mips.S",
+ sha1_obj => "sha1-mips.o sha256-mips.o sha512-mips.o",
+ shared_cflag => "-fPIC",
+ shared_defflag => "-Wl,--version-script=",
+ shared_defines => [ ],
+ shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
+ shared_extension_simple => ".so",
+ shared_ldflag => "-Wl,-znodelete -shared -Wl,-Bsymbolic",
+ shared_rcflag => "",
+ shared_sonameflag => "-Wl,-soname=",
+ shared_target => "linux-shared",
+ template => "1",
+ thread_defines => [ ],
+ thread_scheme => "pthreads",
+ unistd => "",
+ uplink_aux_src => "",
+ uplink_obj => "",
+ wp_asm_src => "wp_block.c",
+ wp_obj => "wp_block.o",
+);
+
+our %available_protocols = (
+ tls => [ "ssl3", "tls1", "tls1_1", "tls1_2", "tls1_3" ],
+ dtls => [ "dtls1", "dtls1_2" ],
+);
+
+our @disablables = (
+ "afalgeng",
+ "aria",
+ "asan",
+ "asm",
+ "async",
+ "autoalginit",
+ "autoerrinit",
+ "autoload-config",
+ "bf",
+ "blake2",
+ "buildtest-c\\+\\+",
+ "camellia",
+ "capieng",
+ "cast",
+ "chacha",
+ "cmac",
+ "cms",
+ "comp",
+ "crypto-mdebug",
+ "crypto-mdebug-backtrace",
+ "ct",
+ "deprecated",
+ "des",
+ "devcryptoeng",
+ "dgram",
+ "dh",
+ "dsa",
+ "dtls",
+ "dynamic-engine",
+ "ec",
+ "ec2m",
+ "ecdh",
+ "ecdsa",
+ "ec_nistp_64_gcc_128",
+ "egd",
+ "engine",
+ "err",
+ "external-tests",
+ "filenames",
+ "fuzz-libfuzzer",
+ "fuzz-afl",
+ "gost",
+ "heartbeats",
+ "hw(-.+)?",
+ "idea",
+ "makedepend",
+ "md2",
+ "md4",
+ "mdc2",
+ "msan",
+ "multiblock",
+ "nextprotoneg",
+ "pinshared",
+ "ocb",
+ "ocsp",
+ "pic",
+ "poly1305",
+ "posix-io",
+ "psk",
+ "rc2",
+ "rc4",
+ "rc5",
+ "rdrand",
+ "rfc3779",
+ "rmd160",
+ "scrypt",
+ "sctp",
+ "seed",
+ "shared",
+ "siphash",
+ "sm2",
+ "sm3",
+ "sm4",
+ "sock",
+ "srp",
+ "srtp",
+ "sse2",
+ "ssl",
+ "ssl-trace",
+ "static-engine",
+ "stdio",
+ "tests",
+ "threads",
+ "tls",
+ "ts",
+ "ubsan",
+ "ui-console",
+ "unit-test",
+ "whirlpool",
+ "weak-ssl-ciphers",
+ "zlib",
+ "zlib-dynamic",
+ "ssl3",
+ "ssl3-method",
+ "tls1",
+ "tls1-method",
+ "tls1_1",
+ "tls1_1-method",
+ "tls1_2",
+ "tls1_2-method",
+ "tls1_3",
+ "dtls1",
+ "dtls1-method",
+ "dtls1_2",
+ "dtls1_2-method",
+);
+
+our %disabled = (
+ "afalgeng" => "option",
+ "asan" => "default",
+ "buildtest-c++" => "default",
+ "comp" => "option",
+ "crypto-mdebug" => "default",
+ "crypto-mdebug-backtrace" => "default",
+ "devcryptoeng" => "default",
+ "dynamic-engine" => "cascade",
+ "ec_nistp_64_gcc_128" => "default",
+ "egd" => "default",
+ "external-tests" => "default",
+ "fuzz-afl" => "default",
+ "fuzz-libfuzzer" => "default",
+ "heartbeats" => "default",
+ "md2" => "default",
+ "msan" => "default",
+ "rc5" => "default",
+ "sctp" => "default",
+ "shared" => "option",
+ "ssl3" => "default",
+ "ssl3-method" => "default",
+ "ubsan" => "default",
+ "unit-test" => "default",
+ "weak-ssl-ciphers" => "default",
+ "zlib" => "default",
+ "zlib-dynamic" => "default",
+);
+
+our %withargs = (
+);
+
+our %unified_info = (
+ "depends" =>
+ {
+ "" =>
+ [
+ "crypto/include/internal/bn_conf.h",
+ "crypto/include/internal/dso_conf.h",
+ "include/openssl/opensslconf.h",
+ ],
+ "apps/asn1pars.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/ca.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/ciphers.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/cms.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/crl.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/crl2p7.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/dgst.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/dhparam.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/dsa.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/dsaparam.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/ec.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/ecparam.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/enc.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/engine.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/errstr.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/gendsa.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/genpkey.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/genrsa.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/nseq.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/ocsp.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/openssl" =>
+ [
+ "apps/libapps.a",
+ "libssl",
+ ],
+ "apps/openssl.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/passwd.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/pkcs12.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/pkcs7.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/pkcs8.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/pkey.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/pkeyparam.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/pkeyutl.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/prime.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/progs.h" =>
+ [
+ "configdata.pm",
+ ],
+ "apps/rand.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/rehash.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/req.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/rsa.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/rsautl.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/s_client.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/s_server.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/s_time.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/sess_id.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/smime.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/speed.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/spkac.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/srp.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/storeutl.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/ts.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/verify.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/version.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "apps/x509.o" =>
+ [
+ "apps/progs.h",
+ ],
+ "crypto/aes/aes-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/aes/aesni-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/aes/aest4-sparcv9.S" =>
+ [
+ "crypto/perlasm/sparcv9_modes.pl",
+ ],
+ "crypto/aes/vpaes-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/bf/bf-586.s" =>
+ [
+ "crypto/perlasm/cbc.pl",
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/bn/bn-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/bn/co-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/bn/x86-gf2m.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/bn/x86-mont.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/buildinf.h" =>
+ [
+ "configdata.pm",
+ ],
+ "crypto/camellia/cmll-x86.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/camellia/cmllt4-sparcv9.S" =>
+ [
+ "crypto/perlasm/sparcv9_modes.pl",
+ ],
+ "crypto/cast/cast-586.s" =>
+ [
+ "crypto/perlasm/cbc.pl",
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/cversion.o" =>
+ [
+ "crypto/buildinf.h",
+ ],
+ "crypto/des/crypt586.s" =>
+ [
+ "crypto/perlasm/cbc.pl",
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/des/des-586.s" =>
+ [
+ "crypto/perlasm/cbc.pl",
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/include/internal/bn_conf.h" =>
+ [
+ "configdata.pm",
+ ],
+ "crypto/include/internal/dso_conf.h" =>
+ [
+ "configdata.pm",
+ ],
+ "crypto/rc4/rc4-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/ripemd/rmd-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/sha/sha1-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/sha/sha256-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/sha/sha512-586.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/whrlpool/wp-mmx.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "crypto/x86cpuid.s" =>
+ [
+ "crypto/perlasm/x86asm.pl",
+ ],
+ "fuzz/asn1-test" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "fuzz/asn1parse-test" =>
+ [
+ "libcrypto",
+ ],
+ "fuzz/bignum-test" =>
+ [
+ "libcrypto",
+ ],
+ "fuzz/bndiv-test" =>
+ [
+ "libcrypto",
+ ],
+ "fuzz/client-test" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "fuzz/cms-test" =>
+ [
+ "libcrypto",
+ ],
+ "fuzz/conf-test" =>
+ [
+ "libcrypto",
+ ],
+ "fuzz/crl-test" =>
+ [
+ "libcrypto",
+ ],
+ "fuzz/ct-test" =>
+ [
+ "libcrypto",
+ ],
+ "fuzz/server-test" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "fuzz/x509-test" =>
+ [
+ "libcrypto",
+ ],
+ "include/openssl/opensslconf.h" =>
+ [
+ "configdata.pm",
+ ],
+ "libcrypto.map" =>
+ [
+ "util/libcrypto.num",
+ ],
+ "libssl" =>
+ [
+ "libcrypto",
+ ],
+ "libssl.map" =>
+ [
+ "util/libssl.num",
+ ],
+ "test/aborttest" =>
+ [
+ "libcrypto",
+ ],
+ "test/afalgtest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/asn1_decode_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/asn1_encode_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/asn1_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/asn1_string_table_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/asn1_time_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/asynciotest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/asynctest" =>
+ [
+ "libcrypto",
+ ],
+ "test/bad_dtls_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/bftest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/bio_callback_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/bio_enc_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/bio_memleak_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/bioprinttest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/bntest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/buildtest_c_aes" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_asn1" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_asn1t" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_async" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_bio" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_blowfish" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_bn" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_buffer" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_camellia" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_cast" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_cmac" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_cms" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_conf" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_conf_api" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_crypto" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ct" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_des" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_dh" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_dsa" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_dtls1" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_e_os2" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ebcdic" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ec" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ecdh" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ecdsa" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_engine" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_evp" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_hmac" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_idea" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_kdf" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_lhash" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_md4" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_md5" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_mdc2" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_modes" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_obj_mac" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_objects" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ocsp" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_opensslv" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ossl_typ" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_pem" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_pem2" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_pkcs12" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_pkcs7" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_rand" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_rand_drbg" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_rc2" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_rc4" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ripemd" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_rsa" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_safestack" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_seed" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_sha" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_srp" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_srtp" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ssl" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ssl2" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_stack" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_store" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_symhacks" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_tls1" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ts" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_txt_db" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_ui" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_whrlpool" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_x509" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_x509_vfy" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/buildtest_c_x509v3" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/casttest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/chacha_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/cipher_overhead_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/cipherbytes_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/cipherlist_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/ciphername_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/clienthellotest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/cmsapitest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/conf_include_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/constant_time_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/crltest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/ct_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/ctype_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/curve448_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/d2i_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/danetest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/destest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/dhtest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/drbg_cavs_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/drbgtest" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/dsa_no_digest_size_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/dsatest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/dtls_mtu_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/dtlstest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/dtlsv1listentest" =>
+ [
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/ec_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/ecdsatest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/ecstresstest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/ectest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/enginetest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/errtest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/evp_extra_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/evp_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/exdatatest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/exptest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/fatalerrtest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/gmdifftest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/gosttest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/hmactest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/ideatest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/igetest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/lhash_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/libtestutil.a" =>
+ [
+ "libcrypto",
+ ],
+ "test/md2test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/mdc2_internal_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/mdc2test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/memleaktest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/modes_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/ocspapitest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/packettest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/pbelutest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/pemtest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/pkey_meth_kdf_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/pkey_meth_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/poly1305_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/rc2test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/rc4test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/rc5test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/rdrand_sanitytest" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/recordlentest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/rsa_mp_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/rsa_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/sanitytest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/secmemtest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/servername_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/siphash_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/sm2_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/sm4_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/srptest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/ssl_cert_table_internal_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/ssl_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/ssl_test_ctx_test" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/sslapitest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/sslbuffertest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/sslcorrupttest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/ssltest_old" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "test/stack_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/sysdefaulttest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/test_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/threadstest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/time_offset_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/tls13ccstest" =>
+ [
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/tls13encryptiontest" =>
+ [
+ "libcrypto",
+ "libssl.a",
+ "test/libtestutil.a",
+ ],
+ "test/uitest" =>
+ [
+ "apps/libapps.a",
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "test/v3ext" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/v3nametest" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/verify_extra_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/versions" =>
+ [
+ "libcrypto",
+ ],
+ "test/wpackettest" =>
+ [
+ "libcrypto",
+ "libssl.a",
+ "test/libtestutil.a",
+ ],
+ "test/x509_check_cert_pkey_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/x509_dup_cert_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/x509_internal_test" =>
+ [
+ "libcrypto.a",
+ "test/libtestutil.a",
+ ],
+ "test/x509_time_test" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ "test/x509aux" =>
+ [
+ "libcrypto",
+ "test/libtestutil.a",
+ ],
+ },
+ "dirinfo" =>
+ {
+ "apps" =>
+ {
+ "products" =>
+ {
+ "bin" =>
+ [
+ "apps/openssl",
+ ],
+ "lib" =>
+ [
+ "apps/libapps.a",
+ ],
+ "script" =>
+ [
+ "apps/CA.pl",
+ "apps/tsget.pl",
+ ],
+ },
+ },
+ "crypto" =>
+ {
+ "deps" =>
+ [
+ "crypto/cpt_err.o",
+ "crypto/cryptlib.o",
+ "crypto/ctype.o",
+ "crypto/cversion.o",
+ "crypto/ebcdic.o",
+ "crypto/ex_data.o",
+ "crypto/getenv.o",
+ "crypto/init.o",
+ "crypto/mem.o",
+ "crypto/mem_clr.o",
+ "crypto/mem_dbg.o",
+ "crypto/mem_sec.o",
+ "crypto/o_dir.o",
+ "crypto/o_fips.o",
+ "crypto/o_fopen.o",
+ "crypto/o_init.o",
+ "crypto/o_str.o",
+ "crypto/o_time.o",
+ "crypto/threads_none.o",
+ "crypto/threads_pthread.o",
+ "crypto/threads_win.o",
+ "crypto/uid.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/aes" =>
+ {
+ "deps" =>
+ [
+ "crypto/aes/aes-mips.o",
+ "crypto/aes/aes_cbc.o",
+ "crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_ecb.o",
+ "crypto/aes/aes_ige.o",
+ "crypto/aes/aes_misc.o",
+ "crypto/aes/aes_ofb.o",
+ "crypto/aes/aes_wrap.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/aria" =>
+ {
+ "deps" =>
+ [
+ "crypto/aria/aria.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/asn1" =>
+ {
+ "deps" =>
+ [
+ "crypto/asn1/a_bitstr.o",
+ "crypto/asn1/a_d2i_fp.o",
+ "crypto/asn1/a_digest.o",
+ "crypto/asn1/a_dup.o",
+ "crypto/asn1/a_gentm.o",
+ "crypto/asn1/a_i2d_fp.o",
+ "crypto/asn1/a_int.o",
+ "crypto/asn1/a_mbstr.o",
+ "crypto/asn1/a_object.o",
+ "crypto/asn1/a_octet.o",
+ "crypto/asn1/a_print.o",
+ "crypto/asn1/a_sign.o",
+ "crypto/asn1/a_strex.o",
+ "crypto/asn1/a_strnid.o",
+ "crypto/asn1/a_time.o",
+ "crypto/asn1/a_type.o",
+ "crypto/asn1/a_utctm.o",
+ "crypto/asn1/a_utf8.o",
+ "crypto/asn1/a_verify.o",
+ "crypto/asn1/ameth_lib.o",
+ "crypto/asn1/asn1_err.o",
+ "crypto/asn1/asn1_gen.o",
+ "crypto/asn1/asn1_item_list.o",
+ "crypto/asn1/asn1_lib.o",
+ "crypto/asn1/asn1_par.o",
+ "crypto/asn1/asn_mime.o",
+ "crypto/asn1/asn_moid.o",
+ "crypto/asn1/asn_mstbl.o",
+ "crypto/asn1/asn_pack.o",
+ "crypto/asn1/bio_asn1.o",
+ "crypto/asn1/bio_ndef.o",
+ "crypto/asn1/d2i_pr.o",
+ "crypto/asn1/d2i_pu.o",
+ "crypto/asn1/evp_asn1.o",
+ "crypto/asn1/f_int.o",
+ "crypto/asn1/f_string.o",
+ "crypto/asn1/i2d_pr.o",
+ "crypto/asn1/i2d_pu.o",
+ "crypto/asn1/n_pkey.o",
+ "crypto/asn1/nsseq.o",
+ "crypto/asn1/p5_pbe.o",
+ "crypto/asn1/p5_pbev2.o",
+ "crypto/asn1/p5_scrypt.o",
+ "crypto/asn1/p8_pkey.o",
+ "crypto/asn1/t_bitst.o",
+ "crypto/asn1/t_pkey.o",
+ "crypto/asn1/t_spki.o",
+ "crypto/asn1/tasn_dec.o",
+ "crypto/asn1/tasn_enc.o",
+ "crypto/asn1/tasn_fre.o",
+ "crypto/asn1/tasn_new.o",
+ "crypto/asn1/tasn_prn.o",
+ "crypto/asn1/tasn_scn.o",
+ "crypto/asn1/tasn_typ.o",
+ "crypto/asn1/tasn_utl.o",
+ "crypto/asn1/x_algor.o",
+ "crypto/asn1/x_bignum.o",
+ "crypto/asn1/x_info.o",
+ "crypto/asn1/x_int64.o",
+ "crypto/asn1/x_long.o",
+ "crypto/asn1/x_pkey.o",
+ "crypto/asn1/x_sig.o",
+ "crypto/asn1/x_spki.o",
+ "crypto/asn1/x_val.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/async" =>
+ {
+ "deps" =>
+ [
+ "crypto/async/async.o",
+ "crypto/async/async_err.o",
+ "crypto/async/async_wait.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/async/arch" =>
+ {
+ "deps" =>
+ [
+ "crypto/async/arch/async_null.o",
+ "crypto/async/arch/async_posix.o",
+ "crypto/async/arch/async_win.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/bf" =>
+ {
+ "deps" =>
+ [
+ "crypto/bf/bf_cfb64.o",
+ "crypto/bf/bf_ecb.o",
+ "crypto/bf/bf_enc.o",
+ "crypto/bf/bf_ofb64.o",
+ "crypto/bf/bf_skey.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/bio" =>
+ {
+ "deps" =>
+ [
+ "crypto/bio/b_addr.o",
+ "crypto/bio/b_dump.o",
+ "crypto/bio/b_print.o",
+ "crypto/bio/b_sock.o",
+ "crypto/bio/b_sock2.o",
+ "crypto/bio/bf_buff.o",
+ "crypto/bio/bf_lbuf.o",
+ "crypto/bio/bf_nbio.o",
+ "crypto/bio/bf_null.o",
+ "crypto/bio/bio_cb.o",
+ "crypto/bio/bio_err.o",
+ "crypto/bio/bio_lib.o",
+ "crypto/bio/bio_meth.o",
+ "crypto/bio/bss_acpt.o",
+ "crypto/bio/bss_bio.o",
+ "crypto/bio/bss_conn.o",
+ "crypto/bio/bss_dgram.o",
+ "crypto/bio/bss_fd.o",
+ "crypto/bio/bss_file.o",
+ "crypto/bio/bss_log.o",
+ "crypto/bio/bss_mem.o",
+ "crypto/bio/bss_null.o",
+ "crypto/bio/bss_sock.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/blake2" =>
+ {
+ "deps" =>
+ [
+ "crypto/blake2/blake2b.o",
+ "crypto/blake2/blake2s.o",
+ "crypto/blake2/m_blake2b.o",
+ "crypto/blake2/m_blake2s.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/bn" =>
+ {
+ "deps" =>
+ [
+ "crypto/bn/bn-mips.o",
+ "crypto/bn/bn_add.o",
+ "crypto/bn/bn_blind.o",
+ "crypto/bn/bn_const.o",
+ "crypto/bn/bn_ctx.o",
+ "crypto/bn/bn_depr.o",
+ "crypto/bn/bn_dh.o",
+ "crypto/bn/bn_div.o",
+ "crypto/bn/bn_err.o",
+ "crypto/bn/bn_exp.o",
+ "crypto/bn/bn_exp2.o",
+ "crypto/bn/bn_gcd.o",
+ "crypto/bn/bn_gf2m.o",
+ "crypto/bn/bn_intern.o",
+ "crypto/bn/bn_kron.o",
+ "crypto/bn/bn_lib.o",
+ "crypto/bn/bn_mod.o",
+ "crypto/bn/bn_mont.o",
+ "crypto/bn/bn_mpi.o",
+ "crypto/bn/bn_mul.o",
+ "crypto/bn/bn_nist.o",
+ "crypto/bn/bn_prime.o",
+ "crypto/bn/bn_print.o",
+ "crypto/bn/bn_rand.o",
+ "crypto/bn/bn_recp.o",
+ "crypto/bn/bn_shift.o",
+ "crypto/bn/bn_sqr.o",
+ "crypto/bn/bn_sqrt.o",
+ "crypto/bn/bn_srp.o",
+ "crypto/bn/bn_word.o",
+ "crypto/bn/bn_x931p.o",
+ "crypto/bn/mips-mont.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/buffer" =>
+ {
+ "deps" =>
+ [
+ "crypto/buffer/buf_err.o",
+ "crypto/buffer/buffer.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/camellia" =>
+ {
+ "deps" =>
+ [
+ "crypto/camellia/camellia.o",
+ "crypto/camellia/cmll_cbc.o",
+ "crypto/camellia/cmll_cfb.o",
+ "crypto/camellia/cmll_ctr.o",
+ "crypto/camellia/cmll_ecb.o",
+ "crypto/camellia/cmll_misc.o",
+ "crypto/camellia/cmll_ofb.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/cast" =>
+ {
+ "deps" =>
+ [
+ "crypto/cast/c_cfb64.o",
+ "crypto/cast/c_ecb.o",
+ "crypto/cast/c_enc.o",
+ "crypto/cast/c_ofb64.o",
+ "crypto/cast/c_skey.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/chacha" =>
+ {
+ "deps" =>
+ [
+ "crypto/chacha/chacha_enc.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/cmac" =>
+ {
+ "deps" =>
+ [
+ "crypto/cmac/cm_ameth.o",
+ "crypto/cmac/cm_pmeth.o",
+ "crypto/cmac/cmac.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/cms" =>
+ {
+ "deps" =>
+ [
+ "crypto/cms/cms_asn1.o",
+ "crypto/cms/cms_att.o",
+ "crypto/cms/cms_cd.o",
+ "crypto/cms/cms_dd.o",
+ "crypto/cms/cms_enc.o",
+ "crypto/cms/cms_env.o",
+ "crypto/cms/cms_err.o",
+ "crypto/cms/cms_ess.o",
+ "crypto/cms/cms_io.o",
+ "crypto/cms/cms_kari.o",
+ "crypto/cms/cms_lib.o",
+ "crypto/cms/cms_pwri.o",
+ "crypto/cms/cms_sd.o",
+ "crypto/cms/cms_smime.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/conf" =>
+ {
+ "deps" =>
+ [
+ "crypto/conf/conf_api.o",
+ "crypto/conf/conf_def.o",
+ "crypto/conf/conf_err.o",
+ "crypto/conf/conf_lib.o",
+ "crypto/conf/conf_mall.o",
+ "crypto/conf/conf_mod.o",
+ "crypto/conf/conf_sap.o",
+ "crypto/conf/conf_ssl.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ct" =>
+ {
+ "deps" =>
+ [
+ "crypto/ct/ct_b64.o",
+ "crypto/ct/ct_err.o",
+ "crypto/ct/ct_log.o",
+ "crypto/ct/ct_oct.o",
+ "crypto/ct/ct_policy.o",
+ "crypto/ct/ct_prn.o",
+ "crypto/ct/ct_sct.o",
+ "crypto/ct/ct_sct_ctx.o",
+ "crypto/ct/ct_vfy.o",
+ "crypto/ct/ct_x509v3.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/des" =>
+ {
+ "deps" =>
+ [
+ "crypto/des/cbc_cksm.o",
+ "crypto/des/cbc_enc.o",
+ "crypto/des/cfb64ede.o",
+ "crypto/des/cfb64enc.o",
+ "crypto/des/cfb_enc.o",
+ "crypto/des/des_enc.o",
+ "crypto/des/ecb3_enc.o",
+ "crypto/des/ecb_enc.o",
+ "crypto/des/fcrypt.o",
+ "crypto/des/fcrypt_b.o",
+ "crypto/des/ofb64ede.o",
+ "crypto/des/ofb64enc.o",
+ "crypto/des/ofb_enc.o",
+ "crypto/des/pcbc_enc.o",
+ "crypto/des/qud_cksm.o",
+ "crypto/des/rand_key.o",
+ "crypto/des/set_key.o",
+ "crypto/des/str2key.o",
+ "crypto/des/xcbc_enc.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/dh" =>
+ {
+ "deps" =>
+ [
+ "crypto/dh/dh_ameth.o",
+ "crypto/dh/dh_asn1.o",
+ "crypto/dh/dh_check.o",
+ "crypto/dh/dh_depr.o",
+ "crypto/dh/dh_err.o",
+ "crypto/dh/dh_gen.o",
+ "crypto/dh/dh_kdf.o",
+ "crypto/dh/dh_key.o",
+ "crypto/dh/dh_lib.o",
+ "crypto/dh/dh_meth.o",
+ "crypto/dh/dh_pmeth.o",
+ "crypto/dh/dh_prn.o",
+ "crypto/dh/dh_rfc5114.o",
+ "crypto/dh/dh_rfc7919.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/dsa" =>
+ {
+ "deps" =>
+ [
+ "crypto/dsa/dsa_ameth.o",
+ "crypto/dsa/dsa_asn1.o",
+ "crypto/dsa/dsa_depr.o",
+ "crypto/dsa/dsa_err.o",
+ "crypto/dsa/dsa_gen.o",
+ "crypto/dsa/dsa_key.o",
+ "crypto/dsa/dsa_lib.o",
+ "crypto/dsa/dsa_meth.o",
+ "crypto/dsa/dsa_ossl.o",
+ "crypto/dsa/dsa_pmeth.o",
+ "crypto/dsa/dsa_prn.o",
+ "crypto/dsa/dsa_sign.o",
+ "crypto/dsa/dsa_vrf.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/dso" =>
+ {
+ "deps" =>
+ [
+ "crypto/dso/dso_dl.o",
+ "crypto/dso/dso_dlfcn.o",
+ "crypto/dso/dso_err.o",
+ "crypto/dso/dso_lib.o",
+ "crypto/dso/dso_openssl.o",
+ "crypto/dso/dso_vms.o",
+ "crypto/dso/dso_win32.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ec" =>
+ {
+ "deps" =>
+ [
+ "crypto/ec/curve25519.o",
+ "crypto/ec/ec2_oct.o",
+ "crypto/ec/ec2_smpl.o",
+ "crypto/ec/ec_ameth.o",
+ "crypto/ec/ec_asn1.o",
+ "crypto/ec/ec_check.o",
+ "crypto/ec/ec_curve.o",
+ "crypto/ec/ec_cvt.o",
+ "crypto/ec/ec_err.o",
+ "crypto/ec/ec_key.o",
+ "crypto/ec/ec_kmeth.o",
+ "crypto/ec/ec_lib.o",
+ "crypto/ec/ec_mult.o",
+ "crypto/ec/ec_oct.o",
+ "crypto/ec/ec_pmeth.o",
+ "crypto/ec/ec_print.o",
+ "crypto/ec/ecdh_kdf.o",
+ "crypto/ec/ecdh_ossl.o",
+ "crypto/ec/ecdsa_ossl.o",
+ "crypto/ec/ecdsa_sign.o",
+ "crypto/ec/ecdsa_vrf.o",
+ "crypto/ec/eck_prn.o",
+ "crypto/ec/ecp_mont.o",
+ "crypto/ec/ecp_nist.o",
+ "crypto/ec/ecp_nistp224.o",
+ "crypto/ec/ecp_nistp256.o",
+ "crypto/ec/ecp_nistp521.o",
+ "crypto/ec/ecp_nistputil.o",
+ "crypto/ec/ecp_oct.o",
+ "crypto/ec/ecp_smpl.o",
+ "crypto/ec/ecx_meth.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ec/curve448" =>
+ {
+ "deps" =>
+ [
+ "crypto/ec/curve448/curve448.o",
+ "crypto/ec/curve448/curve448_tables.o",
+ "crypto/ec/curve448/eddsa.o",
+ "crypto/ec/curve448/f_generic.o",
+ "crypto/ec/curve448/scalar.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ec/curve448/arch_32" =>
+ {
+ "deps" =>
+ [
+ "crypto/ec/curve448/arch_32/f_impl.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/engine" =>
+ {
+ "deps" =>
+ [
+ "crypto/engine/eng_all.o",
+ "crypto/engine/eng_cnf.o",
+ "crypto/engine/eng_ctrl.o",
+ "crypto/engine/eng_dyn.o",
+ "crypto/engine/eng_err.o",
+ "crypto/engine/eng_fat.o",
+ "crypto/engine/eng_init.o",
+ "crypto/engine/eng_lib.o",
+ "crypto/engine/eng_list.o",
+ "crypto/engine/eng_openssl.o",
+ "crypto/engine/eng_pkey.o",
+ "crypto/engine/eng_rdrand.o",
+ "crypto/engine/eng_table.o",
+ "crypto/engine/tb_asnmth.o",
+ "crypto/engine/tb_cipher.o",
+ "crypto/engine/tb_dh.o",
+ "crypto/engine/tb_digest.o",
+ "crypto/engine/tb_dsa.o",
+ "crypto/engine/tb_eckey.o",
+ "crypto/engine/tb_pkmeth.o",
+ "crypto/engine/tb_rand.o",
+ "crypto/engine/tb_rsa.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/err" =>
+ {
+ "deps" =>
+ [
+ "crypto/err/err.o",
+ "crypto/err/err_all.o",
+ "crypto/err/err_prn.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/evp" =>
+ {
+ "deps" =>
+ [
+ "crypto/evp/bio_b64.o",
+ "crypto/evp/bio_enc.o",
+ "crypto/evp/bio_md.o",
+ "crypto/evp/bio_ok.o",
+ "crypto/evp/c_allc.o",
+ "crypto/evp/c_alld.o",
+ "crypto/evp/cmeth_lib.o",
+ "crypto/evp/digest.o",
+ "crypto/evp/e_aes.o",
+ "crypto/evp/e_aes_cbc_hmac_sha1.o",
+ "crypto/evp/e_aes_cbc_hmac_sha256.o",
+ "crypto/evp/e_aria.o",
+ "crypto/evp/e_bf.o",
+ "crypto/evp/e_camellia.o",
+ "crypto/evp/e_cast.o",
+ "crypto/evp/e_chacha20_poly1305.o",
+ "crypto/evp/e_des.o",
+ "crypto/evp/e_des3.o",
+ "crypto/evp/e_idea.o",
+ "crypto/evp/e_null.o",
+ "crypto/evp/e_old.o",
+ "crypto/evp/e_rc2.o",
+ "crypto/evp/e_rc4.o",
+ "crypto/evp/e_rc4_hmac_md5.o",
+ "crypto/evp/e_rc5.o",
+ "crypto/evp/e_seed.o",
+ "crypto/evp/e_sm4.o",
+ "crypto/evp/e_xcbc_d.o",
+ "crypto/evp/encode.o",
+ "crypto/evp/evp_cnf.o",
+ "crypto/evp/evp_enc.o",
+ "crypto/evp/evp_err.o",
+ "crypto/evp/evp_key.o",
+ "crypto/evp/evp_lib.o",
+ "crypto/evp/evp_pbe.o",
+ "crypto/evp/evp_pkey.o",
+ "crypto/evp/m_md2.o",
+ "crypto/evp/m_md4.o",
+ "crypto/evp/m_md5.o",
+ "crypto/evp/m_md5_sha1.o",
+ "crypto/evp/m_mdc2.o",
+ "crypto/evp/m_null.o",
+ "crypto/evp/m_ripemd.o",
+ "crypto/evp/m_sha1.o",
+ "crypto/evp/m_sha3.o",
+ "crypto/evp/m_sigver.o",
+ "crypto/evp/m_wp.o",
+ "crypto/evp/names.o",
+ "crypto/evp/p5_crpt.o",
+ "crypto/evp/p5_crpt2.o",
+ "crypto/evp/p_dec.o",
+ "crypto/evp/p_enc.o",
+ "crypto/evp/p_lib.o",
+ "crypto/evp/p_open.o",
+ "crypto/evp/p_seal.o",
+ "crypto/evp/p_sign.o",
+ "crypto/evp/p_verify.o",
+ "crypto/evp/pbe_scrypt.o",
+ "crypto/evp/pmeth_fn.o",
+ "crypto/evp/pmeth_gn.o",
+ "crypto/evp/pmeth_lib.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/hmac" =>
+ {
+ "deps" =>
+ [
+ "crypto/hmac/hm_ameth.o",
+ "crypto/hmac/hm_pmeth.o",
+ "crypto/hmac/hmac.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/idea" =>
+ {
+ "deps" =>
+ [
+ "crypto/idea/i_cbc.o",
+ "crypto/idea/i_cfb64.o",
+ "crypto/idea/i_ecb.o",
+ "crypto/idea/i_ofb64.o",
+ "crypto/idea/i_skey.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/kdf" =>
+ {
+ "deps" =>
+ [
+ "crypto/kdf/hkdf.o",
+ "crypto/kdf/kdf_err.o",
+ "crypto/kdf/scrypt.o",
+ "crypto/kdf/tls1_prf.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/lhash" =>
+ {
+ "deps" =>
+ [
+ "crypto/lhash/lh_stats.o",
+ "crypto/lhash/lhash.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/md4" =>
+ {
+ "deps" =>
+ [
+ "crypto/md4/md4_dgst.o",
+ "crypto/md4/md4_one.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/md5" =>
+ {
+ "deps" =>
+ [
+ "crypto/md5/md5_dgst.o",
+ "crypto/md5/md5_one.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/mdc2" =>
+ {
+ "deps" =>
+ [
+ "crypto/mdc2/mdc2_one.o",
+ "crypto/mdc2/mdc2dgst.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/modes" =>
+ {
+ "deps" =>
+ [
+ "crypto/modes/cbc128.o",
+ "crypto/modes/ccm128.o",
+ "crypto/modes/cfb128.o",
+ "crypto/modes/ctr128.o",
+ "crypto/modes/cts128.o",
+ "crypto/modes/gcm128.o",
+ "crypto/modes/ocb128.o",
+ "crypto/modes/ofb128.o",
+ "crypto/modes/wrap128.o",
+ "crypto/modes/xts128.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/objects" =>
+ {
+ "deps" =>
+ [
+ "crypto/objects/o_names.o",
+ "crypto/objects/obj_dat.o",
+ "crypto/objects/obj_err.o",
+ "crypto/objects/obj_lib.o",
+ "crypto/objects/obj_xref.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ocsp" =>
+ {
+ "deps" =>
+ [
+ "crypto/ocsp/ocsp_asn.o",
+ "crypto/ocsp/ocsp_cl.o",
+ "crypto/ocsp/ocsp_err.o",
+ "crypto/ocsp/ocsp_ext.o",
+ "crypto/ocsp/ocsp_ht.o",
+ "crypto/ocsp/ocsp_lib.o",
+ "crypto/ocsp/ocsp_prn.o",
+ "crypto/ocsp/ocsp_srv.o",
+ "crypto/ocsp/ocsp_vfy.o",
+ "crypto/ocsp/v3_ocsp.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/pem" =>
+ {
+ "deps" =>
+ [
+ "crypto/pem/pem_all.o",
+ "crypto/pem/pem_err.o",
+ "crypto/pem/pem_info.o",
+ "crypto/pem/pem_lib.o",
+ "crypto/pem/pem_oth.o",
+ "crypto/pem/pem_pk8.o",
+ "crypto/pem/pem_pkey.o",
+ "crypto/pem/pem_sign.o",
+ "crypto/pem/pem_x509.o",
+ "crypto/pem/pem_xaux.o",
+ "crypto/pem/pvkfmt.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/pkcs12" =>
+ {
+ "deps" =>
+ [
+ "crypto/pkcs12/p12_add.o",
+ "crypto/pkcs12/p12_asn.o",
+ "crypto/pkcs12/p12_attr.o",
+ "crypto/pkcs12/p12_crpt.o",
+ "crypto/pkcs12/p12_crt.o",
+ "crypto/pkcs12/p12_decr.o",
+ "crypto/pkcs12/p12_init.o",
+ "crypto/pkcs12/p12_key.o",
+ "crypto/pkcs12/p12_kiss.o",
+ "crypto/pkcs12/p12_mutl.o",
+ "crypto/pkcs12/p12_npas.o",
+ "crypto/pkcs12/p12_p8d.o",
+ "crypto/pkcs12/p12_p8e.o",
+ "crypto/pkcs12/p12_sbag.o",
+ "crypto/pkcs12/p12_utl.o",
+ "crypto/pkcs12/pk12err.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/pkcs7" =>
+ {
+ "deps" =>
+ [
+ "crypto/pkcs7/bio_pk7.o",
+ "crypto/pkcs7/pk7_asn1.o",
+ "crypto/pkcs7/pk7_attr.o",
+ "crypto/pkcs7/pk7_doit.o",
+ "crypto/pkcs7/pk7_lib.o",
+ "crypto/pkcs7/pk7_mime.o",
+ "crypto/pkcs7/pk7_smime.o",
+ "crypto/pkcs7/pkcs7err.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/poly1305" =>
+ {
+ "deps" =>
+ [
+ "crypto/poly1305/poly1305-mips.o",
+ "crypto/poly1305/poly1305.o",
+ "crypto/poly1305/poly1305_ameth.o",
+ "crypto/poly1305/poly1305_pmeth.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/rand" =>
+ {
+ "deps" =>
+ [
+ "crypto/rand/drbg_ctr.o",
+ "crypto/rand/drbg_lib.o",
+ "crypto/rand/rand_egd.o",
+ "crypto/rand/rand_err.o",
+ "crypto/rand/rand_lib.o",
+ "crypto/rand/rand_unix.o",
+ "crypto/rand/rand_vms.o",
+ "crypto/rand/rand_win.o",
+ "crypto/rand/randfile.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/rc2" =>
+ {
+ "deps" =>
+ [
+ "crypto/rc2/rc2_cbc.o",
+ "crypto/rc2/rc2_ecb.o",
+ "crypto/rc2/rc2_skey.o",
+ "crypto/rc2/rc2cfb64.o",
+ "crypto/rc2/rc2ofb64.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/rc4" =>
+ {
+ "deps" =>
+ [
+ "crypto/rc4/rc4_enc.o",
+ "crypto/rc4/rc4_skey.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ripemd" =>
+ {
+ "deps" =>
+ [
+ "crypto/ripemd/rmd_dgst.o",
+ "crypto/ripemd/rmd_one.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/rsa" =>
+ {
+ "deps" =>
+ [
+ "crypto/rsa/rsa_ameth.o",
+ "crypto/rsa/rsa_asn1.o",
+ "crypto/rsa/rsa_chk.o",
+ "crypto/rsa/rsa_crpt.o",
+ "crypto/rsa/rsa_depr.o",
+ "crypto/rsa/rsa_err.o",
+ "crypto/rsa/rsa_gen.o",
+ "crypto/rsa/rsa_lib.o",
+ "crypto/rsa/rsa_meth.o",
+ "crypto/rsa/rsa_mp.o",
+ "crypto/rsa/rsa_none.o",
+ "crypto/rsa/rsa_oaep.o",
+ "crypto/rsa/rsa_ossl.o",
+ "crypto/rsa/rsa_pk1.o",
+ "crypto/rsa/rsa_pmeth.o",
+ "crypto/rsa/rsa_prn.o",
+ "crypto/rsa/rsa_pss.o",
+ "crypto/rsa/rsa_saos.o",
+ "crypto/rsa/rsa_sign.o",
+ "crypto/rsa/rsa_ssl.o",
+ "crypto/rsa/rsa_x931.o",
+ "crypto/rsa/rsa_x931g.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/seed" =>
+ {
+ "deps" =>
+ [
+ "crypto/seed/seed.o",
+ "crypto/seed/seed_cbc.o",
+ "crypto/seed/seed_cfb.o",
+ "crypto/seed/seed_ecb.o",
+ "crypto/seed/seed_ofb.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/sha" =>
+ {
+ "deps" =>
+ [
+ "crypto/sha/keccak1600.o",
+ "crypto/sha/sha1-mips.o",
+ "crypto/sha/sha1_one.o",
+ "crypto/sha/sha1dgst.o",
+ "crypto/sha/sha256-mips.o",
+ "crypto/sha/sha256.o",
+ "crypto/sha/sha512-mips.o",
+ "crypto/sha/sha512.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/siphash" =>
+ {
+ "deps" =>
+ [
+ "crypto/siphash/siphash.o",
+ "crypto/siphash/siphash_ameth.o",
+ "crypto/siphash/siphash_pmeth.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/sm2" =>
+ {
+ "deps" =>
+ [
+ "crypto/sm2/sm2_crypt.o",
+ "crypto/sm2/sm2_err.o",
+ "crypto/sm2/sm2_pmeth.o",
+ "crypto/sm2/sm2_sign.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/sm3" =>
+ {
+ "deps" =>
+ [
+ "crypto/sm3/m_sm3.o",
+ "crypto/sm3/sm3.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/sm4" =>
+ {
+ "deps" =>
+ [
+ "crypto/sm4/sm4.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/srp" =>
+ {
+ "deps" =>
+ [
+ "crypto/srp/srp_lib.o",
+ "crypto/srp/srp_vfy.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/stack" =>
+ {
+ "deps" =>
+ [
+ "crypto/stack/stack.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/store" =>
+ {
+ "deps" =>
+ [
+ "crypto/store/loader_file.o",
+ "crypto/store/store_err.o",
+ "crypto/store/store_init.o",
+ "crypto/store/store_lib.o",
+ "crypto/store/store_register.o",
+ "crypto/store/store_strings.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ts" =>
+ {
+ "deps" =>
+ [
+ "crypto/ts/ts_asn1.o",
+ "crypto/ts/ts_conf.o",
+ "crypto/ts/ts_err.o",
+ "crypto/ts/ts_lib.o",
+ "crypto/ts/ts_req_print.o",
+ "crypto/ts/ts_req_utils.o",
+ "crypto/ts/ts_rsp_print.o",
+ "crypto/ts/ts_rsp_sign.o",
+ "crypto/ts/ts_rsp_utils.o",
+ "crypto/ts/ts_rsp_verify.o",
+ "crypto/ts/ts_verify_ctx.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/txt_db" =>
+ {
+ "deps" =>
+ [
+ "crypto/txt_db/txt_db.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/ui" =>
+ {
+ "deps" =>
+ [
+ "crypto/ui/ui_err.o",
+ "crypto/ui/ui_lib.o",
+ "crypto/ui/ui_null.o",
+ "crypto/ui/ui_openssl.o",
+ "crypto/ui/ui_util.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/whrlpool" =>
+ {
+ "deps" =>
+ [
+ "crypto/whrlpool/wp_block.o",
+ "crypto/whrlpool/wp_dgst.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/x509" =>
+ {
+ "deps" =>
+ [
+ "crypto/x509/by_dir.o",
+ "crypto/x509/by_file.o",
+ "crypto/x509/t_crl.o",
+ "crypto/x509/t_req.o",
+ "crypto/x509/t_x509.o",
+ "crypto/x509/x509_att.o",
+ "crypto/x509/x509_cmp.o",
+ "crypto/x509/x509_d2.o",
+ "crypto/x509/x509_def.o",
+ "crypto/x509/x509_err.o",
+ "crypto/x509/x509_ext.o",
+ "crypto/x509/x509_lu.o",
+ "crypto/x509/x509_meth.o",
+ "crypto/x509/x509_obj.o",
+ "crypto/x509/x509_r2x.o",
+ "crypto/x509/x509_req.o",
+ "crypto/x509/x509_set.o",
+ "crypto/x509/x509_trs.o",
+ "crypto/x509/x509_txt.o",
+ "crypto/x509/x509_v3.o",
+ "crypto/x509/x509_vfy.o",
+ "crypto/x509/x509_vpm.o",
+ "crypto/x509/x509cset.o",
+ "crypto/x509/x509name.o",
+ "crypto/x509/x509rset.o",
+ "crypto/x509/x509spki.o",
+ "crypto/x509/x509type.o",
+ "crypto/x509/x_all.o",
+ "crypto/x509/x_attrib.o",
+ "crypto/x509/x_crl.o",
+ "crypto/x509/x_exten.o",
+ "crypto/x509/x_name.o",
+ "crypto/x509/x_pubkey.o",
+ "crypto/x509/x_req.o",
+ "crypto/x509/x_x509.o",
+ "crypto/x509/x_x509a.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "crypto/x509v3" =>
+ {
+ "deps" =>
+ [
+ "crypto/x509v3/pcy_cache.o",
+ "crypto/x509v3/pcy_data.o",
+ "crypto/x509v3/pcy_lib.o",
+ "crypto/x509v3/pcy_map.o",
+ "crypto/x509v3/pcy_node.o",
+ "crypto/x509v3/pcy_tree.o",
+ "crypto/x509v3/v3_addr.o",
+ "crypto/x509v3/v3_admis.o",
+ "crypto/x509v3/v3_akey.o",
+ "crypto/x509v3/v3_akeya.o",
+ "crypto/x509v3/v3_alt.o",
+ "crypto/x509v3/v3_asid.o",
+ "crypto/x509v3/v3_bcons.o",
+ "crypto/x509v3/v3_bitst.o",
+ "crypto/x509v3/v3_conf.o",
+ "crypto/x509v3/v3_cpols.o",
+ "crypto/x509v3/v3_crld.o",
+ "crypto/x509v3/v3_enum.o",
+ "crypto/x509v3/v3_extku.o",
+ "crypto/x509v3/v3_genn.o",
+ "crypto/x509v3/v3_ia5.o",
+ "crypto/x509v3/v3_info.o",
+ "crypto/x509v3/v3_int.o",
+ "crypto/x509v3/v3_lib.o",
+ "crypto/x509v3/v3_ncons.o",
+ "crypto/x509v3/v3_pci.o",
+ "crypto/x509v3/v3_pcia.o",
+ "crypto/x509v3/v3_pcons.o",
+ "crypto/x509v3/v3_pku.o",
+ "crypto/x509v3/v3_pmaps.o",
+ "crypto/x509v3/v3_prn.o",
+ "crypto/x509v3/v3_purp.o",
+ "crypto/x509v3/v3_skey.o",
+ "crypto/x509v3/v3_sxnet.o",
+ "crypto/x509v3/v3_tlsf.o",
+ "crypto/x509v3/v3_utl.o",
+ "crypto/x509v3/v3err.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "engines" =>
+ {
+ "deps" =>
+ [
+ "engines/e_capi.o",
+ "engines/e_padlock.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libcrypto",
+ ],
+ },
+ },
+ "fuzz" =>
+ {
+ "products" =>
+ {
+ "bin" =>
+ [
+ "fuzz/asn1-test",
+ "fuzz/asn1parse-test",
+ "fuzz/bignum-test",
+ "fuzz/bndiv-test",
+ "fuzz/client-test",
+ "fuzz/cms-test",
+ "fuzz/conf-test",
+ "fuzz/crl-test",
+ "fuzz/ct-test",
+ "fuzz/server-test",
+ "fuzz/x509-test",
+ ],
+ },
+ },
+ "ssl" =>
+ {
+ "deps" =>
+ [
+ "ssl/bio_ssl.o",
+ "ssl/d1_lib.o",
+ "ssl/d1_msg.o",
+ "ssl/d1_srtp.o",
+ "ssl/methods.o",
+ "ssl/packet.o",
+ "ssl/pqueue.o",
+ "ssl/s3_cbc.o",
+ "ssl/s3_enc.o",
+ "ssl/s3_lib.o",
+ "ssl/s3_msg.o",
+ "ssl/ssl_asn1.o",
+ "ssl/ssl_cert.o",
+ "ssl/ssl_ciph.o",
+ "ssl/ssl_conf.o",
+ "ssl/ssl_err.o",
+ "ssl/ssl_init.o",
+ "ssl/ssl_lib.o",
+ "ssl/ssl_mcnf.o",
+ "ssl/ssl_rsa.o",
+ "ssl/ssl_sess.o",
+ "ssl/ssl_stat.o",
+ "ssl/ssl_txt.o",
+ "ssl/ssl_utst.o",
+ "ssl/t1_enc.o",
+ "ssl/t1_lib.o",
+ "ssl/t1_trce.o",
+ "ssl/tls13_enc.o",
+ "ssl/tls_srp.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libssl",
+ ],
+ },
+ },
+ "ssl/record" =>
+ {
+ "deps" =>
+ [
+ "ssl/record/dtls1_bitmap.o",
+ "ssl/record/rec_layer_d1.o",
+ "ssl/record/rec_layer_s3.o",
+ "ssl/record/ssl3_buffer.o",
+ "ssl/record/ssl3_record.o",
+ "ssl/record/ssl3_record_tls13.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libssl",
+ ],
+ },
+ },
+ "ssl/statem" =>
+ {
+ "deps" =>
+ [
+ "ssl/statem/extensions.o",
+ "ssl/statem/extensions_clnt.o",
+ "ssl/statem/extensions_cust.o",
+ "ssl/statem/extensions_srvr.o",
+ "ssl/statem/statem.o",
+ "ssl/statem/statem_clnt.o",
+ "ssl/statem/statem_dtls.o",
+ "ssl/statem/statem_lib.o",
+ "ssl/statem/statem_srvr.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "libssl",
+ ],
+ },
+ },
+ "test/testutil" =>
+ {
+ "deps" =>
+ [
+ "test/testutil/basic_output.o",
+ "test/testutil/cb.o",
+ "test/testutil/driver.o",
+ "test/testutil/format_output.o",
+ "test/testutil/init.o",
+ "test/testutil/main.o",
+ "test/testutil/output_helpers.o",
+ "test/testutil/random.o",
+ "test/testutil/stanza.o",
+ "test/testutil/tap_bio.o",
+ "test/testutil/test_cleanup.o",
+ "test/testutil/tests.o",
+ ],
+ "products" =>
+ {
+ "lib" =>
+ [
+ "test/libtestutil.a",
+ ],
+ },
+ },
+ "tools" =>
+ {
+ "products" =>
+ {
+ "script" =>
+ [
+ "tools/c_rehash",
+ ],
+ },
+ },
+ "util" =>
+ {
+ "products" =>
+ {
+ "script" =>
+ [
+ "util/shlib_wrap.sh",
+ ],
+ },
+ },
+ },
+ "engines" =>
+ [
+ ],
+ "extra" =>
+ [
+ "crypto/alphacpuid.pl",
+ "crypto/arm64cpuid.pl",
+ "crypto/armv4cpuid.pl",
+ "crypto/ia64cpuid.S",
+ "crypto/pariscid.pl",
+ "crypto/ppccpuid.pl",
+ "crypto/x86_64cpuid.pl",
+ "crypto/x86cpuid.pl",
+ "ms/applink.c",
+ "ms/uplink-x86.pl",
+ "ms/uplink.c",
+ ],
+ "generate" =>
+ {
+ "apps/progs.h" =>
+ [
+ "apps/progs.pl",
+ "\$(APPS_OPENSSL)",
+ ],
+ "crypto/aes/aes-586.s" =>
+ [
+ "crypto/aes/asm/aes-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/aes/aes-armv4.S" =>
+ [
+ "crypto/aes/asm/aes-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aes-ia64.s" =>
+ [
+ "crypto/aes/asm/aes-ia64.S",
+ ],
+ "crypto/aes/aes-mips.S" =>
+ [
+ "crypto/aes/asm/aes-mips.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aes-parisc.s" =>
+ [
+ "crypto/aes/asm/aes-parisc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aes-ppc.s" =>
+ [
+ "crypto/aes/asm/aes-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aes-s390x.S" =>
+ [
+ "crypto/aes/asm/aes-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aes-sparcv9.S" =>
+ [
+ "crypto/aes/asm/aes-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aes-x86_64.s" =>
+ [
+ "crypto/aes/asm/aes-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aesfx-sparcv9.S" =>
+ [
+ "crypto/aes/asm/aesfx-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aesni-mb-x86_64.s" =>
+ [
+ "crypto/aes/asm/aesni-mb-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aesni-sha1-x86_64.s" =>
+ [
+ "crypto/aes/asm/aesni-sha1-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aesni-sha256-x86_64.s" =>
+ [
+ "crypto/aes/asm/aesni-sha256-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aesni-x86.s" =>
+ [
+ "crypto/aes/asm/aesni-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/aes/aesni-x86_64.s" =>
+ [
+ "crypto/aes/asm/aesni-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aesp8-ppc.s" =>
+ [
+ "crypto/aes/asm/aesp8-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aest4-sparcv9.S" =>
+ [
+ "crypto/aes/asm/aest4-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/aesv8-armx.S" =>
+ [
+ "crypto/aes/asm/aesv8-armx.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/bsaes-armv7.S" =>
+ [
+ "crypto/aes/asm/bsaes-armv7.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/bsaes-x86_64.s" =>
+ [
+ "crypto/aes/asm/bsaes-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/vpaes-armv8.S" =>
+ [
+ "crypto/aes/asm/vpaes-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/vpaes-ppc.s" =>
+ [
+ "crypto/aes/asm/vpaes-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/aes/vpaes-x86.s" =>
+ [
+ "crypto/aes/asm/vpaes-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/aes/vpaes-x86_64.s" =>
+ [
+ "crypto/aes/asm/vpaes-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/alphacpuid.s" =>
+ [
+ "crypto/alphacpuid.pl",
+ ],
+ "crypto/arm64cpuid.S" =>
+ [
+ "crypto/arm64cpuid.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/armv4cpuid.S" =>
+ [
+ "crypto/armv4cpuid.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bf/bf-586.s" =>
+ [
+ "crypto/bf/asm/bf-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/bn/alpha-mont.S" =>
+ [
+ "crypto/bn/asm/alpha-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/armv4-gf2m.S" =>
+ [
+ "crypto/bn/asm/armv4-gf2m.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/armv4-mont.S" =>
+ [
+ "crypto/bn/asm/armv4-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/armv8-mont.S" =>
+ [
+ "crypto/bn/asm/armv8-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/bn-586.s" =>
+ [
+ "crypto/bn/asm/bn-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/bn/bn-ia64.s" =>
+ [
+ "crypto/bn/asm/ia64.S",
+ ],
+ "crypto/bn/bn-mips.S" =>
+ [
+ "crypto/bn/asm/mips.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/bn-ppc.s" =>
+ [
+ "crypto/bn/asm/ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/co-586.s" =>
+ [
+ "crypto/bn/asm/co-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/bn/ia64-mont.s" =>
+ [
+ "crypto/bn/asm/ia64-mont.pl",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/bn/mips-mont.S" =>
+ [
+ "crypto/bn/asm/mips-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/parisc-mont.s" =>
+ [
+ "crypto/bn/asm/parisc-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/ppc-mont.s" =>
+ [
+ "crypto/bn/asm/ppc-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/ppc64-mont.s" =>
+ [
+ "crypto/bn/asm/ppc64-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/rsaz-avx2.s" =>
+ [
+ "crypto/bn/asm/rsaz-avx2.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/rsaz-x86_64.s" =>
+ [
+ "crypto/bn/asm/rsaz-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/s390x-gf2m.s" =>
+ [
+ "crypto/bn/asm/s390x-gf2m.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/s390x-mont.S" =>
+ [
+ "crypto/bn/asm/s390x-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/sparct4-mont.S" =>
+ [
+ "crypto/bn/asm/sparct4-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/sparcv9-gf2m.S" =>
+ [
+ "crypto/bn/asm/sparcv9-gf2m.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/sparcv9-mont.S" =>
+ [
+ "crypto/bn/asm/sparcv9-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/sparcv9a-mont.S" =>
+ [
+ "crypto/bn/asm/sparcv9a-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/vis3-mont.S" =>
+ [
+ "crypto/bn/asm/vis3-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/x86-gf2m.s" =>
+ [
+ "crypto/bn/asm/x86-gf2m.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/bn/x86-mont.s" =>
+ [
+ "crypto/bn/asm/x86-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/bn/x86_64-gf2m.s" =>
+ [
+ "crypto/bn/asm/x86_64-gf2m.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/x86_64-mont.s" =>
+ [
+ "crypto/bn/asm/x86_64-mont.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/bn/x86_64-mont5.s" =>
+ [
+ "crypto/bn/asm/x86_64-mont5.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/buildinf.h" =>
+ [
+ "util/mkbuildinf.pl",
+ "\"\$(CC)",
+ "\$(LIB_CFLAGS)",
+ "\$(CPPFLAGS_Q)\"",
+ "\"\$(PLATFORM)\"",
+ ],
+ "crypto/camellia/cmll-x86.s" =>
+ [
+ "crypto/camellia/asm/cmll-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/camellia/cmll-x86_64.s" =>
+ [
+ "crypto/camellia/asm/cmll-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/camellia/cmllt4-sparcv9.S" =>
+ [
+ "crypto/camellia/asm/cmllt4-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/cast/cast-586.s" =>
+ [
+ "crypto/cast/asm/cast-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/chacha/chacha-armv4.S" =>
+ [
+ "crypto/chacha/asm/chacha-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/chacha/chacha-armv8.S" =>
+ [
+ "crypto/chacha/asm/chacha-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/chacha/chacha-ppc.s" =>
+ [
+ "crypto/chacha/asm/chacha-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/chacha/chacha-s390x.S" =>
+ [
+ "crypto/chacha/asm/chacha-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/chacha/chacha-x86.s" =>
+ [
+ "crypto/chacha/asm/chacha-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/chacha/chacha-x86_64.s" =>
+ [
+ "crypto/chacha/asm/chacha-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/des/crypt586.s" =>
+ [
+ "crypto/des/asm/crypt586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/des/des-586.s" =>
+ [
+ "crypto/des/asm/des-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/des/des_enc-sparc.S" =>
+ [
+ "crypto/des/asm/des_enc.m4",
+ ],
+ "crypto/des/dest4-sparcv9.S" =>
+ [
+ "crypto/des/asm/dest4-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/ecp_nistz256-armv4.S" =>
+ [
+ "crypto/ec/asm/ecp_nistz256-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/ecp_nistz256-armv8.S" =>
+ [
+ "crypto/ec/asm/ecp_nistz256-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/ecp_nistz256-avx2.s" =>
+ [
+ "crypto/ec/asm/ecp_nistz256-avx2.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/ecp_nistz256-ppc64.s" =>
+ [
+ "crypto/ec/asm/ecp_nistz256-ppc64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/ecp_nistz256-sparcv9.S" =>
+ [
+ "crypto/ec/asm/ecp_nistz256-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/ecp_nistz256-x86.s" =>
+ [
+ "crypto/ec/asm/ecp_nistz256-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/ec/ecp_nistz256-x86_64.s" =>
+ [
+ "crypto/ec/asm/ecp_nistz256-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/x25519-ppc64.s" =>
+ [
+ "crypto/ec/asm/x25519-ppc64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ec/x25519-x86_64.s" =>
+ [
+ "crypto/ec/asm/x25519-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ia64cpuid.s" =>
+ [
+ "crypto/ia64cpuid.S",
+ ],
+ "crypto/include/internal/bn_conf.h" =>
+ [
+ "crypto/include/internal/bn_conf.h.in",
+ ],
+ "crypto/include/internal/dso_conf.h" =>
+ [
+ "crypto/include/internal/dso_conf.h.in",
+ ],
+ "crypto/md5/md5-586.s" =>
+ [
+ "crypto/md5/asm/md5-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/md5/md5-sparcv9.S" =>
+ [
+ "crypto/md5/asm/md5-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/md5/md5-x86_64.s" =>
+ [
+ "crypto/md5/asm/md5-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/aesni-gcm-x86_64.s" =>
+ [
+ "crypto/modes/asm/aesni-gcm-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghash-alpha.S" =>
+ [
+ "crypto/modes/asm/ghash-alpha.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghash-armv4.S" =>
+ [
+ "crypto/modes/asm/ghash-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghash-ia64.s" =>
+ [
+ "crypto/modes/asm/ghash-ia64.pl",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/modes/ghash-parisc.s" =>
+ [
+ "crypto/modes/asm/ghash-parisc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghash-s390x.S" =>
+ [
+ "crypto/modes/asm/ghash-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghash-sparcv9.S" =>
+ [
+ "crypto/modes/asm/ghash-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghash-x86.s" =>
+ [
+ "crypto/modes/asm/ghash-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/modes/ghash-x86_64.s" =>
+ [
+ "crypto/modes/asm/ghash-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghashp8-ppc.s" =>
+ [
+ "crypto/modes/asm/ghashp8-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/modes/ghashv8-armx.S" =>
+ [
+ "crypto/modes/asm/ghashv8-armx.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/pariscid.s" =>
+ [
+ "crypto/pariscid.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-armv4.S" =>
+ [
+ "crypto/poly1305/asm/poly1305-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-armv8.S" =>
+ [
+ "crypto/poly1305/asm/poly1305-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-mips.S" =>
+ [
+ "crypto/poly1305/asm/poly1305-mips.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-ppc.s" =>
+ [
+ "crypto/poly1305/asm/poly1305-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-ppcfp.s" =>
+ [
+ "crypto/poly1305/asm/poly1305-ppcfp.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-s390x.S" =>
+ [
+ "crypto/poly1305/asm/poly1305-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-sparcv9.S" =>
+ [
+ "crypto/poly1305/asm/poly1305-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/poly1305/poly1305-x86.s" =>
+ [
+ "crypto/poly1305/asm/poly1305-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/poly1305/poly1305-x86_64.s" =>
+ [
+ "crypto/poly1305/asm/poly1305-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ppccpuid.s" =>
+ [
+ "crypto/ppccpuid.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/rc4/rc4-586.s" =>
+ [
+ "crypto/rc4/asm/rc4-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/rc4/rc4-md5-x86_64.s" =>
+ [
+ "crypto/rc4/asm/rc4-md5-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/rc4/rc4-parisc.s" =>
+ [
+ "crypto/rc4/asm/rc4-parisc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/rc4/rc4-s390x.s" =>
+ [
+ "crypto/rc4/asm/rc4-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/rc4/rc4-x86_64.s" =>
+ [
+ "crypto/rc4/asm/rc4-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/ripemd/rmd-586.s" =>
+ [
+ "crypto/ripemd/asm/rmd-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/s390xcpuid.S" =>
+ [
+ "crypto/s390xcpuid.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/keccak1600-armv4.S" =>
+ [
+ "crypto/sha/asm/keccak1600-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/keccak1600-armv8.S" =>
+ [
+ "crypto/sha/asm/keccak1600-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/keccak1600-ppc64.s" =>
+ [
+ "crypto/sha/asm/keccak1600-ppc64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/keccak1600-s390x.S" =>
+ [
+ "crypto/sha/asm/keccak1600-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/keccak1600-x86_64.s" =>
+ [
+ "crypto/sha/asm/keccak1600-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-586.s" =>
+ [
+ "crypto/sha/asm/sha1-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/sha/sha1-alpha.S" =>
+ [
+ "crypto/sha/asm/sha1-alpha.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-armv4-large.S" =>
+ [
+ "crypto/sha/asm/sha1-armv4-large.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-armv8.S" =>
+ [
+ "crypto/sha/asm/sha1-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-ia64.s" =>
+ [
+ "crypto/sha/asm/sha1-ia64.pl",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/sha/sha1-mb-x86_64.s" =>
+ [
+ "crypto/sha/asm/sha1-mb-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-mips.S" =>
+ [
+ "crypto/sha/asm/sha1-mips.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-parisc.s" =>
+ [
+ "crypto/sha/asm/sha1-parisc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-ppc.s" =>
+ [
+ "crypto/sha/asm/sha1-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-s390x.S" =>
+ [
+ "crypto/sha/asm/sha1-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-sparcv9.S" =>
+ [
+ "crypto/sha/asm/sha1-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha1-x86_64.s" =>
+ [
+ "crypto/sha/asm/sha1-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-586.s" =>
+ [
+ "crypto/sha/asm/sha256-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/sha/sha256-armv4.S" =>
+ [
+ "crypto/sha/asm/sha256-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-armv8.S" =>
+ [
+ "crypto/sha/asm/sha512-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-ia64.s" =>
+ [
+ "crypto/sha/asm/sha512-ia64.pl",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/sha/sha256-mb-x86_64.s" =>
+ [
+ "crypto/sha/asm/sha256-mb-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-mips.S" =>
+ [
+ "crypto/sha/asm/sha512-mips.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-parisc.s" =>
+ [
+ "crypto/sha/asm/sha512-parisc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-ppc.s" =>
+ [
+ "crypto/sha/asm/sha512-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-s390x.S" =>
+ [
+ "crypto/sha/asm/sha512-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-sparcv9.S" =>
+ [
+ "crypto/sha/asm/sha512-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256-x86_64.s" =>
+ [
+ "crypto/sha/asm/sha512-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha256p8-ppc.s" =>
+ [
+ "crypto/sha/asm/sha512p8-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-586.s" =>
+ [
+ "crypto/sha/asm/sha512-586.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/sha/sha512-armv4.S" =>
+ [
+ "crypto/sha/asm/sha512-armv4.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-armv8.S" =>
+ [
+ "crypto/sha/asm/sha512-armv8.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-ia64.s" =>
+ [
+ "crypto/sha/asm/sha512-ia64.pl",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ ],
+ "crypto/sha/sha512-mips.S" =>
+ [
+ "crypto/sha/asm/sha512-mips.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-parisc.s" =>
+ [
+ "crypto/sha/asm/sha512-parisc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-ppc.s" =>
+ [
+ "crypto/sha/asm/sha512-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-s390x.S" =>
+ [
+ "crypto/sha/asm/sha512-s390x.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-sparcv9.S" =>
+ [
+ "crypto/sha/asm/sha512-sparcv9.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512-x86_64.s" =>
+ [
+ "crypto/sha/asm/sha512-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/sha/sha512p8-ppc.s" =>
+ [
+ "crypto/sha/asm/sha512p8-ppc.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/uplink-ia64.s" =>
+ [
+ "ms/uplink-ia64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/uplink-x86.s" =>
+ [
+ "ms/uplink-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/uplink-x86_64.s" =>
+ [
+ "ms/uplink-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/whrlpool/wp-mmx.s" =>
+ [
+ "crypto/whrlpool/asm/wp-mmx.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "crypto/whrlpool/wp-x86_64.s" =>
+ [
+ "crypto/whrlpool/asm/wp-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/x86_64cpuid.s" =>
+ [
+ "crypto/x86_64cpuid.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "crypto/x86cpuid.s" =>
+ [
+ "crypto/x86cpuid.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "engines/e_padlock-x86.s" =>
+ [
+ "engines/asm/e_padlock-x86.pl",
+ "\$(PERLASM_SCHEME)",
+ "\$(LIB_CFLAGS)",
+ "\$(LIB_CPPFLAGS)",
+ "\$(PROCESSOR)",
+ ],
+ "engines/e_padlock-x86_64.s" =>
+ [
+ "engines/asm/e_padlock-x86_64.pl",
+ "\$(PERLASM_SCHEME)",
+ ],
+ "include/openssl/opensslconf.h" =>
+ [
+ "include/openssl/opensslconf.h.in",
+ ],
+ "libcrypto.map" =>
+ [
+ "util/mkdef.pl",
+ "crypto",
+ "linux",
+ ],
+ "libssl.map" =>
+ [
+ "util/mkdef.pl",
+ "ssl",
+ "linux",
+ ],
+ "test/buildtest_aes.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "aes",
+ ],
+ "test/buildtest_asn1.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "asn1",
+ ],
+ "test/buildtest_asn1t.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "asn1t",
+ ],
+ "test/buildtest_async.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "async",
+ ],
+ "test/buildtest_bio.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "bio",
+ ],
+ "test/buildtest_blowfish.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "blowfish",
+ ],
+ "test/buildtest_bn.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "bn",
+ ],
+ "test/buildtest_buffer.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "buffer",
+ ],
+ "test/buildtest_camellia.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "camellia",
+ ],
+ "test/buildtest_cast.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "cast",
+ ],
+ "test/buildtest_cmac.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "cmac",
+ ],
+ "test/buildtest_cms.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "cms",
+ ],
+ "test/buildtest_conf.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "conf",
+ ],
+ "test/buildtest_conf_api.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "conf_api",
+ ],
+ "test/buildtest_crypto.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "crypto",
+ ],
+ "test/buildtest_ct.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ct",
+ ],
+ "test/buildtest_des.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "des",
+ ],
+ "test/buildtest_dh.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "dh",
+ ],
+ "test/buildtest_dsa.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "dsa",
+ ],
+ "test/buildtest_dtls1.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "dtls1",
+ ],
+ "test/buildtest_e_os2.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "e_os2",
+ ],
+ "test/buildtest_ebcdic.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ebcdic",
+ ],
+ "test/buildtest_ec.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ec",
+ ],
+ "test/buildtest_ecdh.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ecdh",
+ ],
+ "test/buildtest_ecdsa.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ecdsa",
+ ],
+ "test/buildtest_engine.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "engine",
+ ],
+ "test/buildtest_evp.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "evp",
+ ],
+ "test/buildtest_hmac.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "hmac",
+ ],
+ "test/buildtest_idea.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "idea",
+ ],
+ "test/buildtest_kdf.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "kdf",
+ ],
+ "test/buildtest_lhash.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "lhash",
+ ],
+ "test/buildtest_md4.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "md4",
+ ],
+ "test/buildtest_md5.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "md5",
+ ],
+ "test/buildtest_mdc2.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "mdc2",
+ ],
+ "test/buildtest_modes.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "modes",
+ ],
+ "test/buildtest_obj_mac.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "obj_mac",
+ ],
+ "test/buildtest_objects.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "objects",
+ ],
+ "test/buildtest_ocsp.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ocsp",
+ ],
+ "test/buildtest_opensslv.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "opensslv",
+ ],
+ "test/buildtest_ossl_typ.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ossl_typ",
+ ],
+ "test/buildtest_pem.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "pem",
+ ],
+ "test/buildtest_pem2.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "pem2",
+ ],
+ "test/buildtest_pkcs12.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "pkcs12",
+ ],
+ "test/buildtest_pkcs7.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "pkcs7",
+ ],
+ "test/buildtest_rand.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "rand",
+ ],
+ "test/buildtest_rand_drbg.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "rand_drbg",
+ ],
+ "test/buildtest_rc2.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "rc2",
+ ],
+ "test/buildtest_rc4.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "rc4",
+ ],
+ "test/buildtest_ripemd.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ripemd",
+ ],
+ "test/buildtest_rsa.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "rsa",
+ ],
+ "test/buildtest_safestack.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "safestack",
+ ],
+ "test/buildtest_seed.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "seed",
+ ],
+ "test/buildtest_sha.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "sha",
+ ],
+ "test/buildtest_srp.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "srp",
+ ],
+ "test/buildtest_srtp.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "srtp",
+ ],
+ "test/buildtest_ssl.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ssl",
+ ],
+ "test/buildtest_ssl2.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ssl2",
+ ],
+ "test/buildtest_stack.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "stack",
+ ],
+ "test/buildtest_store.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "store",
+ ],
+ "test/buildtest_symhacks.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "symhacks",
+ ],
+ "test/buildtest_tls1.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "tls1",
+ ],
+ "test/buildtest_ts.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ts",
+ ],
+ "test/buildtest_txt_db.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "txt_db",
+ ],
+ "test/buildtest_ui.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "ui",
+ ],
+ "test/buildtest_whrlpool.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "whrlpool",
+ ],
+ "test/buildtest_x509.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "x509",
+ ],
+ "test/buildtest_x509_vfy.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "x509_vfy",
+ ],
+ "test/buildtest_x509v3.c" =>
+ [
+ "test/generate_buildtest.pl",
+ "x509v3",
+ ],
+ },
+ "includes" =>
+ {
+ "apps/app_rand.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "apps/apps.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "apps/asn1pars.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/bf_prefix.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "apps/ca.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/ciphers.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/cms.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/crl.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/crl2p7.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/dgst.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/dhparam.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/dsa.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/dsaparam.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/ec.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/ecparam.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/enc.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/engine.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/errstr.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/gendsa.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/genpkey.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/genrsa.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/nseq.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/ocsp.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/openssl.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/opt.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "apps/passwd.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/pkcs12.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/pkcs7.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/pkcs8.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/pkey.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/pkeyparam.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/pkeyutl.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/prime.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/progs.h" =>
+ [
+ ".",
+ ],
+ "apps/rand.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/rehash.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/req.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/rsa.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/rsautl.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/s_cb.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "apps/s_client.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/s_server.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/s_socket.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "apps/s_time.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/sess_id.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/smime.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/speed.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/spkac.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/srp.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/storeutl.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/ts.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/verify.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/version.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "apps/x509.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "crypto/aes/aes-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/aes/aes-mips.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/aes/aes-s390x.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/aes/aes-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/aes/aes_cfb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/aes/aes_ecb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/aes/aes_ige.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/aes/aes_misc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/aes/aes_ofb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/aes/aes_wrap.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/aes/aesfx-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/aes/aest4-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/aes/aesv8-armx.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/aes/bsaes-armv7.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/aria/aria.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/arm64cpuid.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/armv4cpuid.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/asn1/a_bitstr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_d2i_fp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_digest.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_dup.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_gentm.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_i2d_fp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_int.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_mbstr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_object.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_octet.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_print.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_strex.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_strnid.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_time.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_type.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_utctm.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_utf8.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/a_verify.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/ameth_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn1_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn1_gen.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn1_item_list.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn1_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn1_par.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn_mime.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn_moid.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn_mstbl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/asn_pack.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/bio_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/bio_ndef.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/d2i_pr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/d2i_pu.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/evp_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/f_int.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/f_string.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/i2d_pr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/i2d_pu.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/n_pkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/nsseq.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/p5_pbe.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/p5_pbev2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/p5_scrypt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/p8_pkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/t_bitst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/t_pkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/t_spki.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_dec.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_fre.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_new.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_scn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_typ.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/tasn_utl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_algor.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_bignum.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_info.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_int64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_long.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_pkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_sig.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_spki.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/asn1/x_val.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/async/arch/async_null.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/async/arch/async_posix.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/async/arch/async_win.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/async/async.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/async/async_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/async/async_wait.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bf/bf_cfb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bf/bf_ecb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bf/bf_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bf/bf_ofb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bf/bf_skey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/b_addr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/b_dump.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/b_print.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/b_sock.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/b_sock2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bf_buff.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bf_lbuf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bf_nbio.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bf_null.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bio_cb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bio_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bio_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bio_meth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_acpt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_bio.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_conn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_dgram.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_fd.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_file.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_log.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_mem.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_null.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bio/bss_sock.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/blake2/blake2b.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/blake2/blake2s.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/blake2/m_blake2b.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/blake2/m_blake2s.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/armv4-gf2m.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/bn/armv4-mont.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/bn/bn-mips.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/bn/bn_add.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_blind.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_const.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_ctx.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_depr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_dh.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_div.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_exp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/bn/bn_exp2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_gcd.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_gf2m.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_intern.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_kron.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_mod.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_mont.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_mpi.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_mul.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_nist.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_prime.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_print.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_rand.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_recp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_shift.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_sqr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_sqrt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_srp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_word.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/bn_x931p.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/bn/mips-mont.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/bn/sparct4-mont.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/bn/sparcv9-gf2m.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/bn/sparcv9-mont.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/bn/sparcv9a-mont.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/bn/vis3-mont.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/buffer/buf_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/buffer/buffer.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/buildinf.h" =>
+ [
+ ".",
+ ],
+ "crypto/camellia/camellia.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/camellia/cmll_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/camellia/cmll_cfb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/camellia/cmll_ctr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/camellia/cmll_ecb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/camellia/cmll_misc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/camellia/cmll_ofb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/camellia/cmllt4-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/cast/c_cfb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cast/c_ecb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cast/c_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cast/c_ofb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cast/c_skey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/chacha/chacha-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/chacha/chacha-armv8.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/chacha/chacha-s390x.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/chacha/chacha_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cmac/cm_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cmac/cm_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cmac/cmac.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_att.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_cd.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_dd.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_env.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_ess.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_io.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_kari.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_pwri.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_sd.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cms/cms_smime.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_api.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_def.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_mall.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_mod.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_sap.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/conf/conf_ssl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cpt_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cryptlib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_b64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_log.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_oct.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_policy.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_sct.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_sct_ctx.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_vfy.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ct/ct_x509v3.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ctype.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/cversion.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/des/cbc_cksm.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/cbc_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/cfb64ede.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/cfb64enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/cfb_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/des_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/dest4-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/des/ecb3_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/ecb_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/fcrypt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/fcrypt_b.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/ofb64ede.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/ofb64enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/ofb_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/pcbc_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/qud_cksm.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/rand_key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/set_key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/str2key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/des/xcbc_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_check.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_depr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_gen.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_kdf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_meth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_rfc5114.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dh/dh_rfc7919.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_depr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_gen.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_meth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_ossl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dsa/dsa_vrf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dso/dso_dl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dso/dso_dlfcn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dso/dso_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dso/dso_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dso/dso_openssl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dso/dso_vms.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/dso/dso_win32.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ebcdic.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/curve25519.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/curve448/arch_32/f_impl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/ec/curve448/arch_32",
+ "crypto/ec/curve448",
+ ],
+ "crypto/ec/curve448/curve448.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/ec/curve448/arch_32",
+ "crypto/ec/curve448",
+ ],
+ "crypto/ec/curve448/curve448_tables.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/ec/curve448/arch_32",
+ "crypto/ec/curve448",
+ ],
+ "crypto/ec/curve448/eddsa.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/ec/curve448/arch_32",
+ "crypto/ec/curve448",
+ ],
+ "crypto/ec/curve448/f_generic.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/ec/curve448/arch_32",
+ "crypto/ec/curve448",
+ ],
+ "crypto/ec/curve448/scalar.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/ec/curve448/arch_32",
+ "crypto/ec/curve448",
+ ],
+ "crypto/ec/ec2_oct.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec2_smpl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_check.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_curve.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_cvt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_kmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_mult.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_oct.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ec_print.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecdh_kdf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecdh_ossl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecdsa_ossl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecdsa_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecdsa_vrf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/eck_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_mont.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_nist.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_nistp224.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_nistp256.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_nistp521.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_nistputil.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_nistz256-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/ec/ecp_nistz256-armv8.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/ec/ecp_nistz256-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/ec/ecp_oct.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecp_smpl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ec/ecx_meth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_all.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_cnf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_ctrl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_dyn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_fat.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_init.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_list.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_openssl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_pkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_rdrand.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/eng_table.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_asnmth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_cipher.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_dh.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_digest.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_dsa.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_eckey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_pkmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_rand.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/engine/tb_rsa.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/err/err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/err/err_all.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/err/err_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/bio_b64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/bio_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/bio_md.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/bio_ok.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/c_allc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/c_alld.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/cmeth_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/digest.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_aes.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ "crypto/modes",
+ ],
+ "crypto/evp/e_aes_cbc_hmac_sha1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/modes",
+ ],
+ "crypto/evp/e_aes_cbc_hmac_sha256.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto/modes",
+ ],
+ "crypto/evp/e_aria.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ "crypto/modes",
+ ],
+ "crypto/evp/e_bf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_camellia.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ "crypto/modes",
+ ],
+ "crypto/evp/e_cast.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_chacha20_poly1305.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_des.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/evp/e_des3.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/evp/e_idea.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_null.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_old.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_rc2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_rc4.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_rc4_hmac_md5.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_rc5.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_seed.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/e_sm4.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ "crypto/modes",
+ ],
+ "crypto/evp/e_xcbc_d.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/encode.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/evp_cnf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/evp_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/evp_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/evp_key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/evp_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/evp_pbe.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/evp_pkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_md2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_md4.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_md5.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_md5_sha1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_mdc2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_null.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_ripemd.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_sha1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_sha3.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/evp/m_sigver.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/m_wp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/names.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p5_crpt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p5_crpt2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p_dec.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p_open.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p_seal.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/p_verify.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/pbe_scrypt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/pmeth_fn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/pmeth_gn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/evp/pmeth_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ex_data.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/getenv.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/hmac/hm_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/hmac/hm_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/hmac/hmac.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/idea/i_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/idea/i_cfb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/idea/i_ecb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/idea/i_ofb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/idea/i_skey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/include/internal/bn_conf.h" =>
+ [
+ ".",
+ ],
+ "crypto/include/internal/dso_conf.h" =>
+ [
+ ".",
+ ],
+ "crypto/init.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/kdf/hkdf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/kdf/kdf_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/kdf/scrypt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/kdf/tls1_prf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/lhash/lh_stats.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/lhash/lhash.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/md4/md4_dgst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/md4/md4_one.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/md5/md5-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/md5/md5_dgst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/md5/md5_one.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/mdc2/mdc2_one.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/mdc2/mdc2dgst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/mem.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/mem_clr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/mem_dbg.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/mem_sec.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/cbc128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/ccm128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/cfb128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/ctr128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/cts128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/gcm128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/modes/ghash-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/modes/ghash-s390x.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/modes/ghash-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/modes/ghashv8-armx.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/modes/ocb128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/ofb128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/wrap128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/modes/xts128.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/o_dir.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/o_fips.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/o_fopen.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/o_init.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/o_str.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/o_time.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/objects/o_names.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/objects/obj_dat.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/objects/obj_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/objects/obj_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/objects/obj_xref.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_asn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_cl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_ext.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_ht.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_srv.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/ocsp_vfy.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ocsp/v3_ocsp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_all.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_info.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_oth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_pk8.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_pkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_x509.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pem_xaux.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pem/pvkfmt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_add.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_asn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_attr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_crpt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_crt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_decr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_init.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_key.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_kiss.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_mutl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_npas.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_p8d.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_p8e.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_sbag.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/p12_utl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs12/pk12err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/bio_pk7.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/pk7_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/pk7_attr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/pk7_doit.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/pk7_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/pk7_mime.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/pk7_smime.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/pkcs7/pkcs7err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/poly1305/poly1305-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/poly1305/poly1305-armv8.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/poly1305/poly1305-mips.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/poly1305/poly1305-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/poly1305/poly1305.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/poly1305/poly1305_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/poly1305/poly1305_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/drbg_ctr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/drbg_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/rand_egd.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/rand_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/rand_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/rand_unix.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/rand_vms.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/rand_win.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rand/randfile.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rc2/rc2_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rc2/rc2_ecb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rc2/rc2_skey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rc2/rc2cfb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rc2/rc2ofb64.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rc4/rc4_enc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rc4/rc4_skey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ripemd/rmd_dgst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ripemd/rmd_one.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_chk.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_crpt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_depr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_gen.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_meth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_mp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_none.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_oaep.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_ossl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_pk1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_pss.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_saos.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_ssl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_x931.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/rsa/rsa_x931g.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/s390xcpuid.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/seed/seed.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/seed/seed_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/seed/seed_cfb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/seed/seed_ecb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/seed/seed_ofb.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sha/keccak1600-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/keccak1600.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sha/sha1-armv4-large.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha1-armv8.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha1-mips.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/sha/sha1-s390x.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha1-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha1_one.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sha/sha1dgst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sha/sha256-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha256-armv8.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha256-mips.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/sha/sha256-s390x.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha256-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha256.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sha/sha512-armv4.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha512-armv8.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha512-mips.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ "crypto",
+ ],
+ "crypto/sha/sha512-s390x.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha512-sparcv9.o" =>
+ [
+ "crypto",
+ ],
+ "crypto/sha/sha512.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/siphash/siphash.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/siphash/siphash_ameth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/siphash/siphash_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sm2/sm2_crypt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sm2/sm2_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sm2/sm2_pmeth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sm2/sm2_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sm3/m_sm3.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sm3/sm3.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/sm4/sm4.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/srp/srp_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/srp/srp_vfy.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/stack/stack.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/store/loader_file.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/store/store_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/store/store_init.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/store/store_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/store/store_register.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/store/store_strings.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/threads_none.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/threads_pthread.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/threads_win.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_asn1.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_conf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_req_print.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_req_utils.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_rsp_print.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_rsp_sign.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_rsp_utils.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_rsp_verify.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ts/ts_verify_ctx.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/txt_db/txt_db.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ui/ui_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ui/ui_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ui/ui_null.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ui/ui_openssl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/ui/ui_util.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/uid.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/whrlpool/wp_block.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/whrlpool/wp_dgst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/by_dir.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/by_file.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/t_crl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/t_req.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/t_x509.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_att.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_cmp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_d2.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_def.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_ext.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_lu.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_meth.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_obj.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_r2x.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_req.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_set.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_trs.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_txt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_v3.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_vfy.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509_vpm.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509cset.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509name.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509rset.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509spki.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x509type.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_all.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_attrib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_crl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_exten.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_name.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_pubkey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_req.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_x509.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509/x_x509a.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/pcy_cache.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/pcy_data.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/pcy_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/pcy_map.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/pcy_node.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/pcy_tree.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_addr.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_admis.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_akey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_akeya.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_alt.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_asid.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_bcons.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_bitst.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_conf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_cpols.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_crld.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_enum.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_extku.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_genn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_ia5.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_info.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_int.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_lib.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_ncons.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_pci.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_pcia.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_pcons.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_pku.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_pmaps.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_prn.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_purp.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_skey.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_sxnet.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_tlsf.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3_utl.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "crypto/x509v3/v3err.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "engines/e_capi.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "engines/e_padlock.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "fuzz/asn1.o" =>
+ [
+ "include",
+ ],
+ "fuzz/asn1parse.o" =>
+ [
+ "include",
+ ],
+ "fuzz/bignum.o" =>
+ [
+ "include",
+ ],
+ "fuzz/bndiv.o" =>
+ [
+ "include",
+ ],
+ "fuzz/client.o" =>
+ [
+ "include",
+ ],
+ "fuzz/cms.o" =>
+ [
+ "include",
+ ],
+ "fuzz/conf.o" =>
+ [
+ "include",
+ ],
+ "fuzz/crl.o" =>
+ [
+ "include",
+ ],
+ "fuzz/ct.o" =>
+ [
+ "include",
+ ],
+ "fuzz/server.o" =>
+ [
+ "include",
+ ],
+ "fuzz/test-corpus.o" =>
+ [
+ "include",
+ ],
+ "fuzz/x509.o" =>
+ [
+ "include",
+ ],
+ "include/openssl/opensslconf.h" =>
+ [
+ ".",
+ ],
+ "ssl/bio_ssl.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/d1_lib.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/d1_msg.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/d1_srtp.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/methods.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/packet.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/pqueue.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/record/dtls1_bitmap.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/record/rec_layer_d1.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/record/rec_layer_s3.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/record/ssl3_buffer.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/record/ssl3_record.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/record/ssl3_record_tls13.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/s3_cbc.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/s3_enc.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/s3_lib.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/s3_msg.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_asn1.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_cert.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_ciph.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_conf.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_err.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_init.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_lib.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_mcnf.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_rsa.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_sess.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_stat.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_txt.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/ssl_utst.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/extensions.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/extensions_clnt.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/extensions_cust.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/extensions_srvr.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/statem.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/statem_clnt.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/statem_dtls.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/statem_lib.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/statem/statem_srvr.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/t1_enc.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/t1_lib.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/t1_trce.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/tls13_enc.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "ssl/tls_srp.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/aborttest.o" =>
+ [
+ "include",
+ ],
+ "test/afalgtest.o" =>
+ [
+ "include",
+ ],
+ "test/asn1_decode_test.o" =>
+ [
+ "include",
+ ],
+ "test/asn1_encode_test.o" =>
+ [
+ "include",
+ ],
+ "test/asn1_internal_test.o" =>
+ [
+ ".",
+ "include",
+ "crypto/include",
+ ],
+ "test/asn1_string_table_test.o" =>
+ [
+ "include",
+ ],
+ "test/asn1_time_test.o" =>
+ [
+ "include",
+ ],
+ "test/asynciotest.o" =>
+ [
+ "include",
+ ],
+ "test/asynctest.o" =>
+ [
+ "include",
+ ],
+ "test/bad_dtls_test.o" =>
+ [
+ "include",
+ ],
+ "test/bftest.o" =>
+ [
+ "include",
+ ],
+ "test/bio_callback_test.o" =>
+ [
+ "include",
+ ],
+ "test/bio_enc_test.o" =>
+ [
+ "include",
+ ],
+ "test/bio_memleak_test.o" =>
+ [
+ "include",
+ ],
+ "test/bioprinttest.o" =>
+ [
+ "include",
+ ],
+ "test/bntest.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_aes.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_asn1.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_asn1t.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_async.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_bio.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_blowfish.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_bn.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_buffer.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_camellia.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_cast.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_cmac.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_cms.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_conf.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_conf_api.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_crypto.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ct.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_des.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_dh.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_dsa.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_dtls1.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_e_os2.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ebcdic.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ec.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ecdh.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ecdsa.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_engine.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_evp.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_hmac.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_idea.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_kdf.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_lhash.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_md4.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_md5.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_mdc2.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_modes.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_obj_mac.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_objects.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ocsp.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_opensslv.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ossl_typ.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_pem.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_pem2.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_pkcs12.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_pkcs7.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_rand.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_rand_drbg.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_rc2.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_rc4.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ripemd.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_rsa.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_safestack.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_seed.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_sha.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_srp.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_srtp.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ssl.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ssl2.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_stack.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_store.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_symhacks.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_tls1.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ts.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_txt_db.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_ui.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_whrlpool.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_x509.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_x509_vfy.o" =>
+ [
+ "include",
+ ],
+ "test/buildtest_x509v3.o" =>
+ [
+ "include",
+ ],
+ "test/casttest.o" =>
+ [
+ "include",
+ ],
+ "test/chacha_internal_test.o" =>
+ [
+ ".",
+ "include",
+ "crypto/include",
+ ],
+ "test/cipher_overhead_test.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/cipherbytes_test.o" =>
+ [
+ "include",
+ ],
+ "test/cipherlist_test.o" =>
+ [
+ "include",
+ ],
+ "test/ciphername_test.o" =>
+ [
+ "include",
+ ],
+ "test/clienthellotest.o" =>
+ [
+ "include",
+ ],
+ "test/cmsapitest.o" =>
+ [
+ "include",
+ ],
+ "test/conf_include_test.o" =>
+ [
+ "include",
+ ],
+ "test/constant_time_test.o" =>
+ [
+ "include",
+ ],
+ "test/crltest.o" =>
+ [
+ "include",
+ ],
+ "test/ct_test.o" =>
+ [
+ "include",
+ ],
+ "test/ctype_internal_test.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
+ "test/curve448_internal_test.o" =>
+ [
+ ".",
+ "include",
+ "crypto/ec/curve448",
+ ],
+ "test/d2i_test.o" =>
+ [
+ "include",
+ ],
+ "test/danetest.o" =>
+ [
+ "include",
+ ],
+ "test/destest.o" =>
+ [
+ "include",
+ ],
+ "test/dhtest.o" =>
+ [
+ "include",
+ ],
+ "test/drbg_cavs_data.o" =>
+ [
+ "include",
+ "test",
+ ".",
+ ],
+ "test/drbg_cavs_test.o" =>
+ [
+ "include",
+ "test",
+ ".",
+ ],
+ "test/drbgtest.o" =>
+ [
+ "include",
+ ],
+ "test/dsa_no_digest_size_test.o" =>
+ [
+ "include",
+ ],
+ "test/dsatest.o" =>
+ [
+ "include",
+ ],
+ "test/dtls_mtu_test.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/dtlstest.o" =>
+ [
+ "include",
+ ],
+ "test/dtlsv1listentest.o" =>
+ [
+ "include",
+ ],
+ "test/ec_internal_test.o" =>
+ [
+ "include",
+ "crypto/ec",
+ "crypto/include",
+ ],
+ "test/ecdsatest.o" =>
+ [
+ "include",
+ ],
+ "test/ecstresstest.o" =>
+ [
+ "include",
+ ],
+ "test/ectest.o" =>
+ [
+ "include",
+ ],
+ "test/enginetest.o" =>
+ [
+ "include",
+ ],
+ "test/errtest.o" =>
+ [
+ "include",
+ ],
+ "test/evp_extra_test.o" =>
+ [
+ "include",
+ "crypto/include",
+ ],
+ "test/evp_test.o" =>
+ [
+ "include",
+ ],
+ "test/exdatatest.o" =>
+ [
+ "include",
+ ],
+ "test/exptest.o" =>
+ [
+ "include",
+ ],
+ "test/fatalerrtest.o" =>
+ [
+ "include",
+ ],
+ "test/gmdifftest.o" =>
+ [
+ "include",
+ ],
+ "test/gosttest.o" =>
+ [
+ "include",
+ ".",
+ ],
+ "test/handshake_helper.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/hmactest.o" =>
+ [
+ "include",
+ ],
+ "test/ideatest.o" =>
+ [
+ "include",
+ ],
+ "test/igetest.o" =>
+ [
+ "include",
+ ],
+ "test/lhash_test.o" =>
+ [
+ "include",
+ ],
+ "test/md2test.o" =>
+ [
+ "include",
+ ],
+ "test/mdc2_internal_test.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/mdc2test.o" =>
+ [
+ "include",
+ ],
+ "test/memleaktest.o" =>
+ [
+ "include",
+ ],
+ "test/modes_internal_test.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/ocspapitest.o" =>
+ [
+ "include",
+ ],
+ "test/packettest.o" =>
+ [
+ "include",
+ ],
+ "test/pbelutest.o" =>
+ [
+ "include",
+ ],
+ "test/pemtest.o" =>
+ [
+ "include",
+ ],
+ "test/pkey_meth_kdf_test.o" =>
+ [
+ "include",
+ ],
+ "test/pkey_meth_test.o" =>
+ [
+ "include",
+ ],
+ "test/poly1305_internal_test.o" =>
+ [
+ ".",
+ "include",
+ "crypto/include",
+ ],
+ "test/rc2test.o" =>
+ [
+ "include",
+ ],
+ "test/rc4test.o" =>
+ [
+ "include",
+ ],
+ "test/rc5test.o" =>
+ [
+ "include",
+ ],
+ "test/rdrand_sanitytest.o" =>
+ [
+ "include",
+ ],
+ "test/recordlentest.o" =>
+ [
+ "include",
+ ],
+ "test/rsa_complex.o" =>
+ [
+ "include",
+ ],
+ "test/rsa_mp_test.o" =>
+ [
+ "include",
+ ],
+ "test/rsa_test.o" =>
+ [
+ "include",
+ ],
+ "test/sanitytest.o" =>
+ [
+ "include",
+ ],
+ "test/secmemtest.o" =>
+ [
+ "include",
+ ],
+ "test/servername_test.o" =>
+ [
+ "include",
+ ],
+ "test/siphash_internal_test.o" =>
+ [
+ ".",
+ "include",
+ "crypto/include",
+ ],
+ "test/sm2_internal_test.o" =>
+ [
+ "include",
+ "crypto/include",
+ ],
+ "test/sm4_internal_test.o" =>
+ [
+ ".",
+ "include",
+ "crypto/include",
+ ],
+ "test/srptest.o" =>
+ [
+ "include",
+ ],
+ "test/ssl_cert_table_internal_test.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/ssl_test.o" =>
+ [
+ "include",
+ ],
+ "test/ssl_test_ctx.o" =>
+ [
+ "include",
+ ],
+ "test/ssl_test_ctx_test.o" =>
+ [
+ "include",
+ ],
+ "test/sslapitest.o" =>
+ [
+ "include",
+ ".",
+ ],
+ "test/sslbuffertest.o" =>
+ [
+ "include",
+ ],
+ "test/sslcorrupttest.o" =>
+ [
+ "include",
+ ],
+ "test/ssltest_old.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/ssltestlib.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/stack_test.o" =>
+ [
+ "include",
+ ],
+ "test/sysdefaulttest.o" =>
+ [
+ "include",
+ ],
+ "test/test_test.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/basic_output.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/cb.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/driver.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/format_output.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/init.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/main.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/output_helpers.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/stanza.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/tap_bio.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/test_cleanup.o" =>
+ [
+ "include",
+ ],
+ "test/testutil/tests.o" =>
+ [
+ "include",
+ ],
+ "test/threadstest.o" =>
+ [
+ "include",
+ ],
+ "test/time_offset_test.o" =>
+ [
+ "include",
+ ],
+ "test/tls13ccstest.o" =>
+ [
+ "include",
+ ],
+ "test/tls13encryptiontest.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/uitest.o" =>
+ [
+ ".",
+ "include",
+ "apps",
+ ],
+ "test/v3ext.o" =>
+ [
+ "include",
+ ],
+ "test/v3nametest.o" =>
+ [
+ "include",
+ ],
+ "test/verify_extra_test.o" =>
+ [
+ "include",
+ ],
+ "test/versions.o" =>
+ [
+ "include",
+ ],
+ "test/wpackettest.o" =>
+ [
+ "include",
+ ],
+ "test/x509_check_cert_pkey_test.o" =>
+ [
+ "include",
+ ],
+ "test/x509_dup_cert_test.o" =>
+ [
+ "include",
+ ],
+ "test/x509_internal_test.o" =>
+ [
+ ".",
+ "include",
+ ],
+ "test/x509_time_test.o" =>
+ [
+ "include",
+ ],
+ "test/x509aux.o" =>
+ [
+ "include",
+ ],
+ },
+ "install" =>
+ {
+ "libraries" =>
+ [
+ "libcrypto",
+ "libssl",
+ ],
+ "programs" =>
+ [
+ "apps/openssl",
+ ],
+ "scripts" =>
+ [
+ "apps/CA.pl",
+ "apps/tsget.pl",
+ "tools/c_rehash",
+ ],
+ },
+ "ldadd" =>
+ {
+ },
+ "libraries" =>
+ [
+ "apps/libapps.a",
+ "libcrypto",
+ "libssl",
+ "test/libtestutil.a",
+ ],
+ "overrides" =>
+ [
+ ],
+ "programs" =>
+ [
+ "apps/openssl",
+ "fuzz/asn1-test",
+ "fuzz/asn1parse-test",
+ "fuzz/bignum-test",
+ "fuzz/bndiv-test",
+ "fuzz/client-test",
+ "fuzz/cms-test",
+ "fuzz/conf-test",
+ "fuzz/crl-test",
+ "fuzz/ct-test",
+ "fuzz/server-test",
+ "fuzz/x509-test",
+ "test/aborttest",
+ "test/afalgtest",
+ "test/asn1_decode_test",
+ "test/asn1_encode_test",
+ "test/asn1_internal_test",
+ "test/asn1_string_table_test",
+ "test/asn1_time_test",
+ "test/asynciotest",
+ "test/asynctest",
+ "test/bad_dtls_test",
+ "test/bftest",
+ "test/bio_callback_test",
+ "test/bio_enc_test",
+ "test/bio_memleak_test",
+ "test/bioprinttest",
+ "test/bntest",
+ "test/buildtest_c_aes",
+ "test/buildtest_c_asn1",
+ "test/buildtest_c_asn1t",
+ "test/buildtest_c_async",
+ "test/buildtest_c_bio",
+ "test/buildtest_c_blowfish",
+ "test/buildtest_c_bn",
+ "test/buildtest_c_buffer",
+ "test/buildtest_c_camellia",
+ "test/buildtest_c_cast",
+ "test/buildtest_c_cmac",
+ "test/buildtest_c_cms",
+ "test/buildtest_c_conf",
+ "test/buildtest_c_conf_api",
+ "test/buildtest_c_crypto",
+ "test/buildtest_c_ct",
+ "test/buildtest_c_des",
+ "test/buildtest_c_dh",
+ "test/buildtest_c_dsa",
+ "test/buildtest_c_dtls1",
+ "test/buildtest_c_e_os2",
+ "test/buildtest_c_ebcdic",
+ "test/buildtest_c_ec",
+ "test/buildtest_c_ecdh",
+ "test/buildtest_c_ecdsa",
+ "test/buildtest_c_engine",
+ "test/buildtest_c_evp",
+ "test/buildtest_c_hmac",
+ "test/buildtest_c_idea",
+ "test/buildtest_c_kdf",
+ "test/buildtest_c_lhash",
+ "test/buildtest_c_md4",
+ "test/buildtest_c_md5",
+ "test/buildtest_c_mdc2",
+ "test/buildtest_c_modes",
+ "test/buildtest_c_obj_mac",
+ "test/buildtest_c_objects",
+ "test/buildtest_c_ocsp",
+ "test/buildtest_c_opensslv",
+ "test/buildtest_c_ossl_typ",
+ "test/buildtest_c_pem",
+ "test/buildtest_c_pem2",
+ "test/buildtest_c_pkcs12",
+ "test/buildtest_c_pkcs7",
+ "test/buildtest_c_rand",
+ "test/buildtest_c_rand_drbg",
+ "test/buildtest_c_rc2",
+ "test/buildtest_c_rc4",
+ "test/buildtest_c_ripemd",
+ "test/buildtest_c_rsa",
+ "test/buildtest_c_safestack",
+ "test/buildtest_c_seed",
+ "test/buildtest_c_sha",
+ "test/buildtest_c_srp",
+ "test/buildtest_c_srtp",
+ "test/buildtest_c_ssl",
+ "test/buildtest_c_ssl2",
+ "test/buildtest_c_stack",
+ "test/buildtest_c_store",
+ "test/buildtest_c_symhacks",
+ "test/buildtest_c_tls1",
+ "test/buildtest_c_ts",
+ "test/buildtest_c_txt_db",
+ "test/buildtest_c_ui",
+ "test/buildtest_c_whrlpool",
+ "test/buildtest_c_x509",
+ "test/buildtest_c_x509_vfy",
+ "test/buildtest_c_x509v3",
+ "test/casttest",
+ "test/chacha_internal_test",
+ "test/cipher_overhead_test",
+ "test/cipherbytes_test",
+ "test/cipherlist_test",
+ "test/ciphername_test",
+ "test/clienthellotest",
+ "test/cmsapitest",
+ "test/conf_include_test",
+ "test/constant_time_test",
+ "test/crltest",
+ "test/ct_test",
+ "test/ctype_internal_test",
+ "test/curve448_internal_test",
+ "test/d2i_test",
+ "test/danetest",
+ "test/destest",
+ "test/dhtest",
+ "test/drbg_cavs_test",
+ "test/drbgtest",
+ "test/dsa_no_digest_size_test",
+ "test/dsatest",
+ "test/dtls_mtu_test",
+ "test/dtlstest",
+ "test/dtlsv1listentest",
+ "test/ec_internal_test",
+ "test/ecdsatest",
+ "test/ecstresstest",
+ "test/ectest",
+ "test/enginetest",
+ "test/errtest",
+ "test/evp_extra_test",
+ "test/evp_test",
+ "test/exdatatest",
+ "test/exptest",
+ "test/fatalerrtest",
+ "test/gmdifftest",
+ "test/gosttest",
+ "test/hmactest",
+ "test/ideatest",
+ "test/igetest",
+ "test/lhash_test",
+ "test/md2test",
+ "test/mdc2_internal_test",
+ "test/mdc2test",
+ "test/memleaktest",
+ "test/modes_internal_test",
+ "test/ocspapitest",
+ "test/packettest",
+ "test/pbelutest",
+ "test/pemtest",
+ "test/pkey_meth_kdf_test",
+ "test/pkey_meth_test",
+ "test/poly1305_internal_test",
+ "test/rc2test",
+ "test/rc4test",
+ "test/rc5test",
+ "test/rdrand_sanitytest",
+ "test/recordlentest",
+ "test/rsa_complex",
+ "test/rsa_mp_test",
+ "test/rsa_test",
+ "test/sanitytest",
+ "test/secmemtest",
+ "test/servername_test",
+ "test/siphash_internal_test",
+ "test/sm2_internal_test",
+ "test/sm4_internal_test",
+ "test/srptest",
+ "test/ssl_cert_table_internal_test",
+ "test/ssl_test",
+ "test/ssl_test_ctx_test",
+ "test/sslapitest",
+ "test/sslbuffertest",
+ "test/sslcorrupttest",
+ "test/ssltest_old",
+ "test/stack_test",
+ "test/sysdefaulttest",
+ "test/test_test",
+ "test/threadstest",
+ "test/time_offset_test",
+ "test/tls13ccstest",
+ "test/tls13encryptiontest",
+ "test/uitest",
+ "test/v3ext",
+ "test/v3nametest",
+ "test/verify_extra_test",
+ "test/versions",
+ "test/wpackettest",
+ "test/x509_check_cert_pkey_test",
+ "test/x509_dup_cert_test",
+ "test/x509_internal_test",
+ "test/x509_time_test",
+ "test/x509aux",
+ ],
+ "rawlines" =>
+ [
+ "##### SHA assembler implementations",
+ "",
+ "# GNU make \"catch all\"",
+ "crypto/sha/sha1-%.S: crypto/sha/asm/sha1-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "crypto/sha/sha256-%.S: crypto/sha/asm/sha512-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "crypto/sha/sha512-%.S: crypto/sha/asm/sha512-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "crypto/poly1305/poly1305-%.S: crypto/poly1305/asm/poly1305-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "##### AES assembler implementations",
+ "",
+ "# GNU make \"catch all\"",
+ "crypto/aes/aes-%.S: crypto/aes/asm/aes-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "crypto/aes/bsaes-%.S: crypto/aes/asm/bsaes-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "",
+ "# GNU make \"catch all\"",
+ "crypto/rc4/rc4-%.s: crypto/rc4/asm/rc4-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "##### CHACHA assembler implementations",
+ "",
+ "crypto/chacha/chacha-%.S: crypto/chacha/asm/chacha-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "# GNU make \"catch all\"",
+ "crypto/modes/ghash-%.S: crypto/modes/asm/ghash-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ "crypto/ec/ecp_nistz256-%.S: crypto/ec/asm/ecp_nistz256-%.pl",
+ " CC=\"\$(CC)\" \$(PERL) \$< \$(PERLASM_SCHEME) \$\@",
+ ],
+ "rename" =>
+ {
+ },
+ "scripts" =>
+ [
+ "apps/CA.pl",
+ "apps/tsget.pl",
+ "tools/c_rehash",
+ "util/shlib_wrap.sh",
+ ],
+ "shared_sources" =>
+ {
+ },
+ "sources" =>
+ {
+ "apps/CA.pl" =>
+ [
+ "apps/CA.pl.in",
+ ],
+ "apps/app_rand.o" =>
+ [
+ "apps/app_rand.c",
+ ],
+ "apps/apps.o" =>
+ [
+ "apps/apps.c",
+ ],
+ "apps/asn1pars.o" =>
+ [
+ "apps/asn1pars.c",
+ ],
+ "apps/bf_prefix.o" =>
+ [
+ "apps/bf_prefix.c",
+ ],
+ "apps/ca.o" =>
+ [
+ "apps/ca.c",
+ ],
+ "apps/ciphers.o" =>
+ [
+ "apps/ciphers.c",
+ ],
+ "apps/cms.o" =>
+ [
+ "apps/cms.c",
+ ],
+ "apps/crl.o" =>
+ [
+ "apps/crl.c",
+ ],
+ "apps/crl2p7.o" =>
+ [
+ "apps/crl2p7.c",
+ ],
+ "apps/dgst.o" =>
+ [
+ "apps/dgst.c",
+ ],
+ "apps/dhparam.o" =>
+ [
+ "apps/dhparam.c",
+ ],
+ "apps/dsa.o" =>
+ [
+ "apps/dsa.c",
+ ],
+ "apps/dsaparam.o" =>
+ [
+ "apps/dsaparam.c",
+ ],
+ "apps/ec.o" =>
+ [
+ "apps/ec.c",
+ ],
+ "apps/ecparam.o" =>
+ [
+ "apps/ecparam.c",
+ ],
+ "apps/enc.o" =>
+ [
+ "apps/enc.c",
+ ],
+ "apps/engine.o" =>
+ [
+ "apps/engine.c",
+ ],
+ "apps/errstr.o" =>
+ [
+ "apps/errstr.c",
+ ],
+ "apps/gendsa.o" =>
+ [
+ "apps/gendsa.c",
+ ],
+ "apps/genpkey.o" =>
+ [
+ "apps/genpkey.c",
+ ],
+ "apps/genrsa.o" =>
+ [
+ "apps/genrsa.c",
+ ],
+ "apps/libapps.a" =>
+ [
+ "apps/app_rand.o",
+ "apps/apps.o",
+ "apps/bf_prefix.o",
+ "apps/opt.o",
+ "apps/s_cb.o",
+ "apps/s_socket.o",
+ ],
+ "apps/nseq.o" =>
+ [
+ "apps/nseq.c",
+ ],
+ "apps/ocsp.o" =>
+ [
+ "apps/ocsp.c",
+ ],
+ "apps/openssl" =>
+ [
+ "apps/asn1pars.o",
+ "apps/ca.o",
+ "apps/ciphers.o",
+ "apps/cms.o",
+ "apps/crl.o",
+ "apps/crl2p7.o",
+ "apps/dgst.o",
+ "apps/dhparam.o",
+ "apps/dsa.o",
+ "apps/dsaparam.o",
+ "apps/ec.o",
+ "apps/ecparam.o",
+ "apps/enc.o",
+ "apps/engine.o",
+ "apps/errstr.o",
+ "apps/gendsa.o",
+ "apps/genpkey.o",
+ "apps/genrsa.o",
+ "apps/nseq.o",
+ "apps/ocsp.o",
+ "apps/openssl.o",
+ "apps/passwd.o",
+ "apps/pkcs12.o",
+ "apps/pkcs7.o",
+ "apps/pkcs8.o",
+ "apps/pkey.o",
+ "apps/pkeyparam.o",
+ "apps/pkeyutl.o",
+ "apps/prime.o",
+ "apps/rand.o",
+ "apps/rehash.o",
+ "apps/req.o",
+ "apps/rsa.o",
+ "apps/rsautl.o",
+ "apps/s_client.o",
+ "apps/s_server.o",
+ "apps/s_time.o",
+ "apps/sess_id.o",
+ "apps/smime.o",
+ "apps/speed.o",
+ "apps/spkac.o",
+ "apps/srp.o",
+ "apps/storeutl.o",
+ "apps/ts.o",
+ "apps/verify.o",
+ "apps/version.o",
+ "apps/x509.o",
+ ],
+ "apps/openssl.o" =>
+ [
+ "apps/openssl.c",
+ ],
+ "apps/opt.o" =>
+ [
+ "apps/opt.c",
+ ],
+ "apps/passwd.o" =>
+ [
+ "apps/passwd.c",
+ ],
+ "apps/pkcs12.o" =>
+ [
+ "apps/pkcs12.c",
+ ],
+ "apps/pkcs7.o" =>
+ [
+ "apps/pkcs7.c",
+ ],
+ "apps/pkcs8.o" =>
+ [
+ "apps/pkcs8.c",
+ ],
+ "apps/pkey.o" =>
+ [
+ "apps/pkey.c",
+ ],
+ "apps/pkeyparam.o" =>
+ [
+ "apps/pkeyparam.c",
+ ],
+ "apps/pkeyutl.o" =>
+ [
+ "apps/pkeyutl.c",
+ ],
+ "apps/prime.o" =>
+ [
+ "apps/prime.c",
+ ],
+ "apps/rand.o" =>
+ [
+ "apps/rand.c",
+ ],
+ "apps/rehash.o" =>
+ [
+ "apps/rehash.c",
+ ],
+ "apps/req.o" =>
+ [
+ "apps/req.c",
+ ],
+ "apps/rsa.o" =>
+ [
+ "apps/rsa.c",
+ ],
+ "apps/rsautl.o" =>
+ [
+ "apps/rsautl.c",
+ ],
+ "apps/s_cb.o" =>
+ [
+ "apps/s_cb.c",
+ ],
+ "apps/s_client.o" =>
+ [
+ "apps/s_client.c",
+ ],
+ "apps/s_server.o" =>
+ [
+ "apps/s_server.c",
+ ],
+ "apps/s_socket.o" =>
+ [
+ "apps/s_socket.c",
+ ],
+ "apps/s_time.o" =>
+ [
+ "apps/s_time.c",
+ ],
+ "apps/sess_id.o" =>
+ [
+ "apps/sess_id.c",
+ ],
+ "apps/smime.o" =>
+ [
+ "apps/smime.c",
+ ],
+ "apps/speed.o" =>
+ [
+ "apps/speed.c",
+ ],
+ "apps/spkac.o" =>
+ [
+ "apps/spkac.c",
+ ],
+ "apps/srp.o" =>
+ [
+ "apps/srp.c",
+ ],
+ "apps/storeutl.o" =>
+ [
+ "apps/storeutl.c",
+ ],
+ "apps/ts.o" =>
+ [
+ "apps/ts.c",
+ ],
+ "apps/tsget.pl" =>
+ [
+ "apps/tsget.in",
+ ],
+ "apps/verify.o" =>
+ [
+ "apps/verify.c",
+ ],
+ "apps/version.o" =>
+ [
+ "apps/version.c",
+ ],
+ "apps/x509.o" =>
+ [
+ "apps/x509.c",
+ ],
+ "crypto/aes/aes-mips.o" =>
+ [
+ "crypto/aes/aes-mips.S",
+ ],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ "crypto/aes/aes_cbc.c",
+ ],
+ "crypto/aes/aes_cfb.o" =>
+ [
+ "crypto/aes/aes_cfb.c",
+ ],
+ "crypto/aes/aes_ecb.o" =>
+ [
+ "crypto/aes/aes_ecb.c",
+ ],
+ "crypto/aes/aes_ige.o" =>
+ [
+ "crypto/aes/aes_ige.c",
+ ],
+ "crypto/aes/aes_misc.o" =>
+ [
+ "crypto/aes/aes_misc.c",
+ ],
+ "crypto/aes/aes_ofb.o" =>
+ [
+ "crypto/aes/aes_ofb.c",
+ ],
+ "crypto/aes/aes_wrap.o" =>
+ [
+ "crypto/aes/aes_wrap.c",
+ ],
+ "crypto/aria/aria.o" =>
+ [
+ "crypto/aria/aria.c",
+ ],
+ "crypto/asn1/a_bitstr.o" =>
+ [
+ "crypto/asn1/a_bitstr.c",
+ ],
+ "crypto/asn1/a_d2i_fp.o" =>
+ [
+ "crypto/asn1/a_d2i_fp.c",
+ ],
+ "crypto/asn1/a_digest.o" =>
+ [
+ "crypto/asn1/a_digest.c",
+ ],
+ "crypto/asn1/a_dup.o" =>
+ [
+ "crypto/asn1/a_dup.c",
+ ],
+ "crypto/asn1/a_gentm.o" =>
+ [
+ "crypto/asn1/a_gentm.c",
+ ],
+ "crypto/asn1/a_i2d_fp.o" =>
+ [
+ "crypto/asn1/a_i2d_fp.c",
+ ],
+ "crypto/asn1/a_int.o" =>
+ [
+ "crypto/asn1/a_int.c",
+ ],
+ "crypto/asn1/a_mbstr.o" =>
+ [
+ "crypto/asn1/a_mbstr.c",
+ ],
+ "crypto/asn1/a_object.o" =>
+ [
+ "crypto/asn1/a_object.c",
+ ],
+ "crypto/asn1/a_octet.o" =>
+ [
+ "crypto/asn1/a_octet.c",
+ ],
+ "crypto/asn1/a_print.o" =>
+ [
+ "crypto/asn1/a_print.c",
+ ],
+ "crypto/asn1/a_sign.o" =>
+ [
+ "crypto/asn1/a_sign.c",
+ ],
+ "crypto/asn1/a_strex.o" =>
+ [
+ "crypto/asn1/a_strex.c",
+ ],
+ "crypto/asn1/a_strnid.o" =>
+ [
+ "crypto/asn1/a_strnid.c",
+ ],
+ "crypto/asn1/a_time.o" =>
+ [
+ "crypto/asn1/a_time.c",
+ ],
+ "crypto/asn1/a_type.o" =>
+ [
+ "crypto/asn1/a_type.c",
+ ],
+ "crypto/asn1/a_utctm.o" =>
+ [
+ "crypto/asn1/a_utctm.c",
+ ],
+ "crypto/asn1/a_utf8.o" =>
+ [
+ "crypto/asn1/a_utf8.c",
+ ],
+ "crypto/asn1/a_verify.o" =>
+ [
+ "crypto/asn1/a_verify.c",
+ ],
+ "crypto/asn1/ameth_lib.o" =>
+ [
+ "crypto/asn1/ameth_lib.c",
+ ],
+ "crypto/asn1/asn1_err.o" =>
+ [
+ "crypto/asn1/asn1_err.c",
+ ],
+ "crypto/asn1/asn1_gen.o" =>
+ [
+ "crypto/asn1/asn1_gen.c",
+ ],
+ "crypto/asn1/asn1_item_list.o" =>
+ [
+ "crypto/asn1/asn1_item_list.c",
+ ],
+ "crypto/asn1/asn1_lib.o" =>
+ [
+ "crypto/asn1/asn1_lib.c",
+ ],
+ "crypto/asn1/asn1_par.o" =>
+ [
+ "crypto/asn1/asn1_par.c",
+ ],
+ "crypto/asn1/asn_mime.o" =>
+ [
+ "crypto/asn1/asn_mime.c",
+ ],
+ "crypto/asn1/asn_moid.o" =>
+ [
+ "crypto/asn1/asn_moid.c",
+ ],
+ "crypto/asn1/asn_mstbl.o" =>
+ [
+ "crypto/asn1/asn_mstbl.c",
+ ],
+ "crypto/asn1/asn_pack.o" =>
+ [
+ "crypto/asn1/asn_pack.c",
+ ],
+ "crypto/asn1/bio_asn1.o" =>
+ [
+ "crypto/asn1/bio_asn1.c",
+ ],
+ "crypto/asn1/bio_ndef.o" =>
+ [
+ "crypto/asn1/bio_ndef.c",
+ ],
+ "crypto/asn1/d2i_pr.o" =>
+ [
+ "crypto/asn1/d2i_pr.c",
+ ],
+ "crypto/asn1/d2i_pu.o" =>
+ [
+ "crypto/asn1/d2i_pu.c",
+ ],
+ "crypto/asn1/evp_asn1.o" =>
+ [
+ "crypto/asn1/evp_asn1.c",
+ ],
+ "crypto/asn1/f_int.o" =>
+ [
+ "crypto/asn1/f_int.c",
+ ],
+ "crypto/asn1/f_string.o" =>
+ [
+ "crypto/asn1/f_string.c",
+ ],
+ "crypto/asn1/i2d_pr.o" =>
+ [
+ "crypto/asn1/i2d_pr.c",
+ ],
+ "crypto/asn1/i2d_pu.o" =>
+ [
+ "crypto/asn1/i2d_pu.c",
+ ],
+ "crypto/asn1/n_pkey.o" =>
+ [
+ "crypto/asn1/n_pkey.c",
+ ],
+ "crypto/asn1/nsseq.o" =>
+ [
+ "crypto/asn1/nsseq.c",
+ ],
+ "crypto/asn1/p5_pbe.o" =>
+ [
+ "crypto/asn1/p5_pbe.c",
+ ],
+ "crypto/asn1/p5_pbev2.o" =>
+ [
+ "crypto/asn1/p5_pbev2.c",
+ ],
+ "crypto/asn1/p5_scrypt.o" =>
+ [
+ "crypto/asn1/p5_scrypt.c",
+ ],
+ "crypto/asn1/p8_pkey.o" =>
+ [
+ "crypto/asn1/p8_pkey.c",
+ ],
+ "crypto/asn1/t_bitst.o" =>
+ [
+ "crypto/asn1/t_bitst.c",
+ ],
+ "crypto/asn1/t_pkey.o" =>
+ [
+ "crypto/asn1/t_pkey.c",
+ ],
+ "crypto/asn1/t_spki.o" =>
+ [
+ "crypto/asn1/t_spki.c",
+ ],
+ "crypto/asn1/tasn_dec.o" =>
+ [
+ "crypto/asn1/tasn_dec.c",
+ ],
+ "crypto/asn1/tasn_enc.o" =>
+ [
+ "crypto/asn1/tasn_enc.c",
+ ],
+ "crypto/asn1/tasn_fre.o" =>
+ [
+ "crypto/asn1/tasn_fre.c",
+ ],
+ "crypto/asn1/tasn_new.o" =>
+ [
+ "crypto/asn1/tasn_new.c",
+ ],
+ "crypto/asn1/tasn_prn.o" =>
+ [
+ "crypto/asn1/tasn_prn.c",
+ ],
+ "crypto/asn1/tasn_scn.o" =>
+ [
+ "crypto/asn1/tasn_scn.c",
+ ],
+ "crypto/asn1/tasn_typ.o" =>
+ [
+ "crypto/asn1/tasn_typ.c",
+ ],
+ "crypto/asn1/tasn_utl.o" =>
+ [
+ "crypto/asn1/tasn_utl.c",
+ ],
+ "crypto/asn1/x_algor.o" =>
+ [
+ "crypto/asn1/x_algor.c",
+ ],
+ "crypto/asn1/x_bignum.o" =>
+ [
+ "crypto/asn1/x_bignum.c",
+ ],
+ "crypto/asn1/x_info.o" =>
+ [
+ "crypto/asn1/x_info.c",
+ ],
+ "crypto/asn1/x_int64.o" =>
+ [
+ "crypto/asn1/x_int64.c",
+ ],
+ "crypto/asn1/x_long.o" =>
+ [
+ "crypto/asn1/x_long.c",
+ ],
+ "crypto/asn1/x_pkey.o" =>
+ [
+ "crypto/asn1/x_pkey.c",
+ ],
+ "crypto/asn1/x_sig.o" =>
+ [
+ "crypto/asn1/x_sig.c",
+ ],
+ "crypto/asn1/x_spki.o" =>
+ [
+ "crypto/asn1/x_spki.c",
+ ],
+ "crypto/asn1/x_val.o" =>
+ [
+ "crypto/asn1/x_val.c",
+ ],
+ "crypto/async/arch/async_null.o" =>
+ [
+ "crypto/async/arch/async_null.c",
+ ],
+ "crypto/async/arch/async_posix.o" =>
+ [
+ "crypto/async/arch/async_posix.c",
+ ],
+ "crypto/async/arch/async_win.o" =>
+ [
+ "crypto/async/arch/async_win.c",
+ ],
+ "crypto/async/async.o" =>
+ [
+ "crypto/async/async.c",
+ ],
+ "crypto/async/async_err.o" =>
+ [
+ "crypto/async/async_err.c",
+ ],
+ "crypto/async/async_wait.o" =>
+ [
+ "crypto/async/async_wait.c",
+ ],
+ "crypto/bf/bf_cfb64.o" =>
+ [
+ "crypto/bf/bf_cfb64.c",
+ ],
+ "crypto/bf/bf_ecb.o" =>
+ [
+ "crypto/bf/bf_ecb.c",
+ ],
+ "crypto/bf/bf_enc.o" =>
+ [
+ "crypto/bf/bf_enc.c",
+ ],
+ "crypto/bf/bf_ofb64.o" =>
+ [
+ "crypto/bf/bf_ofb64.c",
+ ],
+ "crypto/bf/bf_skey.o" =>
+ [
+ "crypto/bf/bf_skey.c",
+ ],
+ "crypto/bio/b_addr.o" =>
+ [
+ "crypto/bio/b_addr.c",
+ ],
+ "crypto/bio/b_dump.o" =>
+ [
+ "crypto/bio/b_dump.c",
+ ],
+ "crypto/bio/b_print.o" =>
+ [
+ "crypto/bio/b_print.c",
+ ],
+ "crypto/bio/b_sock.o" =>
+ [
+ "crypto/bio/b_sock.c",
+ ],
+ "crypto/bio/b_sock2.o" =>
+ [
+ "crypto/bio/b_sock2.c",
+ ],
+ "crypto/bio/bf_buff.o" =>
+ [
+ "crypto/bio/bf_buff.c",
+ ],
+ "crypto/bio/bf_lbuf.o" =>
+ [
+ "crypto/bio/bf_lbuf.c",
+ ],
+ "crypto/bio/bf_nbio.o" =>
+ [
+ "crypto/bio/bf_nbio.c",
+ ],
+ "crypto/bio/bf_null.o" =>
+ [
+ "crypto/bio/bf_null.c",
+ ],
+ "crypto/bio/bio_cb.o" =>
+ [
+ "crypto/bio/bio_cb.c",
+ ],
+ "crypto/bio/bio_err.o" =>
+ [
+ "crypto/bio/bio_err.c",
+ ],
+ "crypto/bio/bio_lib.o" =>
+ [
+ "crypto/bio/bio_lib.c",
+ ],
+ "crypto/bio/bio_meth.o" =>
+ [
+ "crypto/bio/bio_meth.c",
+ ],
+ "crypto/bio/bss_acpt.o" =>
+ [
+ "crypto/bio/bss_acpt.c",
+ ],
+ "crypto/bio/bss_bio.o" =>
+ [
+ "crypto/bio/bss_bio.c",
+ ],
+ "crypto/bio/bss_conn.o" =>
+ [
+ "crypto/bio/bss_conn.c",
+ ],
+ "crypto/bio/bss_dgram.o" =>
+ [
+ "crypto/bio/bss_dgram.c",
+ ],
+ "crypto/bio/bss_fd.o" =>
+ [
+ "crypto/bio/bss_fd.c",
+ ],
+ "crypto/bio/bss_file.o" =>
+ [
+ "crypto/bio/bss_file.c",
+ ],
+ "crypto/bio/bss_log.o" =>
+ [
+ "crypto/bio/bss_log.c",
+ ],
+ "crypto/bio/bss_mem.o" =>
+ [
+ "crypto/bio/bss_mem.c",
+ ],
+ "crypto/bio/bss_null.o" =>
+ [
+ "crypto/bio/bss_null.c",
+ ],
+ "crypto/bio/bss_sock.o" =>
+ [
+ "crypto/bio/bss_sock.c",
+ ],
+ "crypto/blake2/blake2b.o" =>
+ [
+ "crypto/blake2/blake2b.c",
+ ],
+ "crypto/blake2/blake2s.o" =>
+ [
+ "crypto/blake2/blake2s.c",
+ ],
+ "crypto/blake2/m_blake2b.o" =>
+ [
+ "crypto/blake2/m_blake2b.c",
+ ],
+ "crypto/blake2/m_blake2s.o" =>
+ [
+ "crypto/blake2/m_blake2s.c",
+ ],
+ "crypto/bn/bn-mips.o" =>
+ [
+ "crypto/bn/bn-mips.S",
+ ],
+ "crypto/bn/bn_add.o" =>
+ [
+ "crypto/bn/bn_add.c",
+ ],
+ "crypto/bn/bn_blind.o" =>
+ [
+ "crypto/bn/bn_blind.c",
+ ],
+ "crypto/bn/bn_const.o" =>
+ [
+ "crypto/bn/bn_const.c",
+ ],
+ "crypto/bn/bn_ctx.o" =>
+ [
+ "crypto/bn/bn_ctx.c",
+ ],
+ "crypto/bn/bn_depr.o" =>
+ [
+ "crypto/bn/bn_depr.c",
+ ],
+ "crypto/bn/bn_dh.o" =>
+ [
+ "crypto/bn/bn_dh.c",
+ ],
+ "crypto/bn/bn_div.o" =>
+ [
+ "crypto/bn/bn_div.c",
+ ],
+ "crypto/bn/bn_err.o" =>
+ [
+ "crypto/bn/bn_err.c",
+ ],
+ "crypto/bn/bn_exp.o" =>
+ [
+ "crypto/bn/bn_exp.c",
+ ],
+ "crypto/bn/bn_exp2.o" =>
+ [
+ "crypto/bn/bn_exp2.c",
+ ],
+ "crypto/bn/bn_gcd.o" =>
+ [
+ "crypto/bn/bn_gcd.c",
+ ],
+ "crypto/bn/bn_gf2m.o" =>
+ [
+ "crypto/bn/bn_gf2m.c",
+ ],
+ "crypto/bn/bn_intern.o" =>
+ [
+ "crypto/bn/bn_intern.c",
+ ],
+ "crypto/bn/bn_kron.o" =>
+ [
+ "crypto/bn/bn_kron.c",
+ ],
+ "crypto/bn/bn_lib.o" =>
+ [
+ "crypto/bn/bn_lib.c",
+ ],
+ "crypto/bn/bn_mod.o" =>
+ [
+ "crypto/bn/bn_mod.c",
+ ],
+ "crypto/bn/bn_mont.o" =>
+ [
+ "crypto/bn/bn_mont.c",
+ ],
+ "crypto/bn/bn_mpi.o" =>
+ [
+ "crypto/bn/bn_mpi.c",
+ ],
+ "crypto/bn/bn_mul.o" =>
+ [
+ "crypto/bn/bn_mul.c",
+ ],
+ "crypto/bn/bn_nist.o" =>
+ [
+ "crypto/bn/bn_nist.c",
+ ],
+ "crypto/bn/bn_prime.o" =>
+ [
+ "crypto/bn/bn_prime.c",
+ ],
+ "crypto/bn/bn_print.o" =>
+ [
+ "crypto/bn/bn_print.c",
+ ],
+ "crypto/bn/bn_rand.o" =>
+ [
+ "crypto/bn/bn_rand.c",
+ ],
+ "crypto/bn/bn_recp.o" =>
+ [
+ "crypto/bn/bn_recp.c",
+ ],
+ "crypto/bn/bn_shift.o" =>
+ [
+ "crypto/bn/bn_shift.c",
+ ],
+ "crypto/bn/bn_sqr.o" =>
+ [
+ "crypto/bn/bn_sqr.c",
+ ],
+ "crypto/bn/bn_sqrt.o" =>
+ [
+ "crypto/bn/bn_sqrt.c",
+ ],
+ "crypto/bn/bn_srp.o" =>
+ [
+ "crypto/bn/bn_srp.c",
+ ],
+ "crypto/bn/bn_word.o" =>
+ [
+ "crypto/bn/bn_word.c",
+ ],
+ "crypto/bn/bn_x931p.o" =>
+ [
+ "crypto/bn/bn_x931p.c",
+ ],
+ "crypto/bn/mips-mont.o" =>
+ [
+ "crypto/bn/mips-mont.S",
+ ],
+ "crypto/buffer/buf_err.o" =>
+ [
+ "crypto/buffer/buf_err.c",
+ ],
+ "crypto/buffer/buffer.o" =>
+ [
+ "crypto/buffer/buffer.c",
+ ],
+ "crypto/camellia/camellia.o" =>
+ [
+ "crypto/camellia/camellia.c",
+ ],
+ "crypto/camellia/cmll_cbc.o" =>
+ [
+ "crypto/camellia/cmll_cbc.c",
+ ],
+ "crypto/camellia/cmll_cfb.o" =>
+ [
+ "crypto/camellia/cmll_cfb.c",
+ ],
+ "crypto/camellia/cmll_ctr.o" =>
+ [
+ "crypto/camellia/cmll_ctr.c",
+ ],
+ "crypto/camellia/cmll_ecb.o" =>
+ [
+ "crypto/camellia/cmll_ecb.c",
+ ],
+ "crypto/camellia/cmll_misc.o" =>
+ [
+ "crypto/camellia/cmll_misc.c",
+ ],
+ "crypto/camellia/cmll_ofb.o" =>
+ [
+ "crypto/camellia/cmll_ofb.c",
+ ],
+ "crypto/cast/c_cfb64.o" =>
+ [
+ "crypto/cast/c_cfb64.c",
+ ],
+ "crypto/cast/c_ecb.o" =>
+ [
+ "crypto/cast/c_ecb.c",
+ ],
+ "crypto/cast/c_enc.o" =>
+ [
+ "crypto/cast/c_enc.c",
+ ],
+ "crypto/cast/c_ofb64.o" =>
+ [
+ "crypto/cast/c_ofb64.c",
+ ],
+ "crypto/cast/c_skey.o" =>
+ [
+ "crypto/cast/c_skey.c",
+ ],
+ "crypto/chacha/chacha_enc.o" =>
+ [
+ "crypto/chacha/chacha_enc.c",
+ ],
+ "crypto/cmac/cm_ameth.o" =>
+ [
+ "crypto/cmac/cm_ameth.c",
+ ],
+ "crypto/cmac/cm_pmeth.o" =>
+ [
+ "crypto/cmac/cm_pmeth.c",
+ ],
+ "crypto/cmac/cmac.o" =>
+ [
+ "crypto/cmac/cmac.c",
+ ],
+ "crypto/cms/cms_asn1.o" =>
+ [
+ "crypto/cms/cms_asn1.c",
+ ],
+ "crypto/cms/cms_att.o" =>
+ [
+ "crypto/cms/cms_att.c",
+ ],
+ "crypto/cms/cms_cd.o" =>
+ [
+ "crypto/cms/cms_cd.c",
+ ],
+ "crypto/cms/cms_dd.o" =>
+ [
+ "crypto/cms/cms_dd.c",
+ ],
+ "crypto/cms/cms_enc.o" =>
+ [
+ "crypto/cms/cms_enc.c",
+ ],
+ "crypto/cms/cms_env.o" =>
+ [
+ "crypto/cms/cms_env.c",
+ ],
+ "crypto/cms/cms_err.o" =>
+ [
+ "crypto/cms/cms_err.c",
+ ],
+ "crypto/cms/cms_ess.o" =>
+ [
+ "crypto/cms/cms_ess.c",
+ ],
+ "crypto/cms/cms_io.o" =>
+ [
+ "crypto/cms/cms_io.c",
+ ],
+ "crypto/cms/cms_kari.o" =>
+ [
+ "crypto/cms/cms_kari.c",
+ ],
+ "crypto/cms/cms_lib.o" =>
+ [
+ "crypto/cms/cms_lib.c",
+ ],
+ "crypto/cms/cms_pwri.o" =>
+ [
+ "crypto/cms/cms_pwri.c",
+ ],
+ "crypto/cms/cms_sd.o" =>
+ [
+ "crypto/cms/cms_sd.c",
+ ],
+ "crypto/cms/cms_smime.o" =>
+ [
+ "crypto/cms/cms_smime.c",
+ ],
+ "crypto/conf/conf_api.o" =>
+ [
+ "crypto/conf/conf_api.c",
+ ],
+ "crypto/conf/conf_def.o" =>
+ [
+ "crypto/conf/conf_def.c",
+ ],
+ "crypto/conf/conf_err.o" =>
+ [
+ "crypto/conf/conf_err.c",
+ ],
+ "crypto/conf/conf_lib.o" =>
+ [
+ "crypto/conf/conf_lib.c",
+ ],
+ "crypto/conf/conf_mall.o" =>
+ [
+ "crypto/conf/conf_mall.c",
+ ],
+ "crypto/conf/conf_mod.o" =>
+ [
+ "crypto/conf/conf_mod.c",
+ ],
+ "crypto/conf/conf_sap.o" =>
+ [
+ "crypto/conf/conf_sap.c",
+ ],
+ "crypto/conf/conf_ssl.o" =>
+ [
+ "crypto/conf/conf_ssl.c",
+ ],
+ "crypto/cpt_err.o" =>
+ [
+ "crypto/cpt_err.c",
+ ],
+ "crypto/cryptlib.o" =>
+ [
+ "crypto/cryptlib.c",
+ ],
+ "crypto/ct/ct_b64.o" =>
+ [
+ "crypto/ct/ct_b64.c",
+ ],
+ "crypto/ct/ct_err.o" =>
+ [
+ "crypto/ct/ct_err.c",
+ ],
+ "crypto/ct/ct_log.o" =>
+ [
+ "crypto/ct/ct_log.c",
+ ],
+ "crypto/ct/ct_oct.o" =>
+ [
+ "crypto/ct/ct_oct.c",
+ ],
+ "crypto/ct/ct_policy.o" =>
+ [
+ "crypto/ct/ct_policy.c",
+ ],
+ "crypto/ct/ct_prn.o" =>
+ [
+ "crypto/ct/ct_prn.c",
+ ],
+ "crypto/ct/ct_sct.o" =>
+ [
+ "crypto/ct/ct_sct.c",
+ ],
+ "crypto/ct/ct_sct_ctx.o" =>
+ [
+ "crypto/ct/ct_sct_ctx.c",
+ ],
+ "crypto/ct/ct_vfy.o" =>
+ [
+ "crypto/ct/ct_vfy.c",
+ ],
+ "crypto/ct/ct_x509v3.o" =>
+ [
+ "crypto/ct/ct_x509v3.c",
+ ],
+ "crypto/ctype.o" =>
+ [
+ "crypto/ctype.c",
+ ],
+ "crypto/cversion.o" =>
+ [
+ "crypto/cversion.c",
+ ],
+ "crypto/des/cbc_cksm.o" =>
+ [
+ "crypto/des/cbc_cksm.c",
+ ],
+ "crypto/des/cbc_enc.o" =>
+ [
+ "crypto/des/cbc_enc.c",
+ ],
+ "crypto/des/cfb64ede.o" =>
+ [
+ "crypto/des/cfb64ede.c",
+ ],
+ "crypto/des/cfb64enc.o" =>
+ [
+ "crypto/des/cfb64enc.c",
+ ],
+ "crypto/des/cfb_enc.o" =>
+ [
+ "crypto/des/cfb_enc.c",
+ ],
+ "crypto/des/des_enc.o" =>
+ [
+ "crypto/des/des_enc.c",
+ ],
+ "crypto/des/ecb3_enc.o" =>
+ [
+ "crypto/des/ecb3_enc.c",
+ ],
+ "crypto/des/ecb_enc.o" =>
+ [
+ "crypto/des/ecb_enc.c",
+ ],
+ "crypto/des/fcrypt.o" =>
+ [
+ "crypto/des/fcrypt.c",
+ ],
+ "crypto/des/fcrypt_b.o" =>
+ [
+ "crypto/des/fcrypt_b.c",
+ ],
+ "crypto/des/ofb64ede.o" =>
+ [
+ "crypto/des/ofb64ede.c",
+ ],
+ "crypto/des/ofb64enc.o" =>
+ [
+ "crypto/des/ofb64enc.c",
+ ],
+ "crypto/des/ofb_enc.o" =>
+ [
+ "crypto/des/ofb_enc.c",
+ ],
+ "crypto/des/pcbc_enc.o" =>
+ [
+ "crypto/des/pcbc_enc.c",
+ ],
+ "crypto/des/qud_cksm.o" =>
+ [
+ "crypto/des/qud_cksm.c",
+ ],
+ "crypto/des/rand_key.o" =>
+ [
+ "crypto/des/rand_key.c",
+ ],
+ "crypto/des/set_key.o" =>
+ [
+ "crypto/des/set_key.c",
+ ],
+ "crypto/des/str2key.o" =>
+ [
+ "crypto/des/str2key.c",
+ ],
+ "crypto/des/xcbc_enc.o" =>
+ [
+ "crypto/des/xcbc_enc.c",
+ ],
+ "crypto/dh/dh_ameth.o" =>
+ [
+ "crypto/dh/dh_ameth.c",
+ ],
+ "crypto/dh/dh_asn1.o" =>
+ [
+ "crypto/dh/dh_asn1.c",
+ ],
+ "crypto/dh/dh_check.o" =>
+ [
+ "crypto/dh/dh_check.c",
+ ],
+ "crypto/dh/dh_depr.o" =>
+ [
+ "crypto/dh/dh_depr.c",
+ ],
+ "crypto/dh/dh_err.o" =>
+ [
+ "crypto/dh/dh_err.c",
+ ],
+ "crypto/dh/dh_gen.o" =>
+ [
+ "crypto/dh/dh_gen.c",
+ ],
+ "crypto/dh/dh_kdf.o" =>
+ [
+ "crypto/dh/dh_kdf.c",
+ ],
+ "crypto/dh/dh_key.o" =>
+ [
+ "crypto/dh/dh_key.c",
+ ],
+ "crypto/dh/dh_lib.o" =>
+ [
+ "crypto/dh/dh_lib.c",
+ ],
+ "crypto/dh/dh_meth.o" =>
+ [
+ "crypto/dh/dh_meth.c",
+ ],
+ "crypto/dh/dh_pmeth.o" =>
+ [
+ "crypto/dh/dh_pmeth.c",
+ ],
+ "crypto/dh/dh_prn.o" =>
+ [
+ "crypto/dh/dh_prn.c",
+ ],
+ "crypto/dh/dh_rfc5114.o" =>
+ [
+ "crypto/dh/dh_rfc5114.c",
+ ],
+ "crypto/dh/dh_rfc7919.o" =>
+ [
+ "crypto/dh/dh_rfc7919.c",
+ ],
+ "crypto/dsa/dsa_ameth.o" =>
+ [
+ "crypto/dsa/dsa_ameth.c",
+ ],
+ "crypto/dsa/dsa_asn1.o" =>
+ [
+ "crypto/dsa/dsa_asn1.c",
+ ],
+ "crypto/dsa/dsa_depr.o" =>
+ [
+ "crypto/dsa/dsa_depr.c",
+ ],
+ "crypto/dsa/dsa_err.o" =>
+ [
+ "crypto/dsa/dsa_err.c",
+ ],
+ "crypto/dsa/dsa_gen.o" =>
+ [
+ "crypto/dsa/dsa_gen.c",
+ ],
+ "crypto/dsa/dsa_key.o" =>
+ [
+ "crypto/dsa/dsa_key.c",
+ ],
+ "crypto/dsa/dsa_lib.o" =>
+ [
+ "crypto/dsa/dsa_lib.c",
+ ],
+ "crypto/dsa/dsa_meth.o" =>
+ [
+ "crypto/dsa/dsa_meth.c",
+ ],
+ "crypto/dsa/dsa_ossl.o" =>
+ [
+ "crypto/dsa/dsa_ossl.c",
+ ],
+ "crypto/dsa/dsa_pmeth.o" =>
+ [
+ "crypto/dsa/dsa_pmeth.c",
+ ],
+ "crypto/dsa/dsa_prn.o" =>
+ [
+ "crypto/dsa/dsa_prn.c",
+ ],
+ "crypto/dsa/dsa_sign.o" =>
+ [
+ "crypto/dsa/dsa_sign.c",
+ ],
+ "crypto/dsa/dsa_vrf.o" =>
+ [
+ "crypto/dsa/dsa_vrf.c",
+ ],
+ "crypto/dso/dso_dl.o" =>
+ [
+ "crypto/dso/dso_dl.c",
+ ],
+ "crypto/dso/dso_dlfcn.o" =>
+ [
+ "crypto/dso/dso_dlfcn.c",
+ ],
+ "crypto/dso/dso_err.o" =>
+ [
+ "crypto/dso/dso_err.c",
+ ],
+ "crypto/dso/dso_lib.o" =>
+ [
+ "crypto/dso/dso_lib.c",
+ ],
+ "crypto/dso/dso_openssl.o" =>
+ [
+ "crypto/dso/dso_openssl.c",
+ ],
+ "crypto/dso/dso_vms.o" =>
+ [
+ "crypto/dso/dso_vms.c",
+ ],
+ "crypto/dso/dso_win32.o" =>
+ [
+ "crypto/dso/dso_win32.c",
+ ],
+ "crypto/ebcdic.o" =>
+ [
+ "crypto/ebcdic.c",
+ ],
+ "crypto/ec/curve25519.o" =>
+ [
+ "crypto/ec/curve25519.c",
+ ],
+ "crypto/ec/curve448/arch_32/f_impl.o" =>
+ [
+ "crypto/ec/curve448/arch_32/f_impl.c",
+ ],
+ "crypto/ec/curve448/curve448.o" =>
+ [
+ "crypto/ec/curve448/curve448.c",
+ ],
+ "crypto/ec/curve448/curve448_tables.o" =>
+ [
+ "crypto/ec/curve448/curve448_tables.c",
+ ],
+ "crypto/ec/curve448/eddsa.o" =>
+ [
+ "crypto/ec/curve448/eddsa.c",
+ ],
+ "crypto/ec/curve448/f_generic.o" =>
+ [
+ "crypto/ec/curve448/f_generic.c",
+ ],
+ "crypto/ec/curve448/scalar.o" =>
+ [
+ "crypto/ec/curve448/scalar.c",
+ ],
+ "crypto/ec/ec2_oct.o" =>
+ [
+ "crypto/ec/ec2_oct.c",
+ ],
+ "crypto/ec/ec2_smpl.o" =>
+ [
+ "crypto/ec/ec2_smpl.c",
+ ],
+ "crypto/ec/ec_ameth.o" =>
+ [
+ "crypto/ec/ec_ameth.c",
+ ],
+ "crypto/ec/ec_asn1.o" =>
+ [
+ "crypto/ec/ec_asn1.c",
+ ],
+ "crypto/ec/ec_check.o" =>
+ [
+ "crypto/ec/ec_check.c",
+ ],
+ "crypto/ec/ec_curve.o" =>
+ [
+ "crypto/ec/ec_curve.c",
+ ],
+ "crypto/ec/ec_cvt.o" =>
+ [
+ "crypto/ec/ec_cvt.c",
+ ],
+ "crypto/ec/ec_err.o" =>
+ [
+ "crypto/ec/ec_err.c",
+ ],
+ "crypto/ec/ec_key.o" =>
+ [
+ "crypto/ec/ec_key.c",
+ ],
+ "crypto/ec/ec_kmeth.o" =>
+ [
+ "crypto/ec/ec_kmeth.c",
+ ],
+ "crypto/ec/ec_lib.o" =>
+ [
+ "crypto/ec/ec_lib.c",
+ ],
+ "crypto/ec/ec_mult.o" =>
+ [
+ "crypto/ec/ec_mult.c",
+ ],
+ "crypto/ec/ec_oct.o" =>
+ [
+ "crypto/ec/ec_oct.c",
+ ],
+ "crypto/ec/ec_pmeth.o" =>
+ [
+ "crypto/ec/ec_pmeth.c",
+ ],
+ "crypto/ec/ec_print.o" =>
+ [
+ "crypto/ec/ec_print.c",
+ ],
+ "crypto/ec/ecdh_kdf.o" =>
+ [
+ "crypto/ec/ecdh_kdf.c",
+ ],
+ "crypto/ec/ecdh_ossl.o" =>
+ [
+ "crypto/ec/ecdh_ossl.c",
+ ],
+ "crypto/ec/ecdsa_ossl.o" =>
+ [
+ "crypto/ec/ecdsa_ossl.c",
+ ],
+ "crypto/ec/ecdsa_sign.o" =>
+ [
+ "crypto/ec/ecdsa_sign.c",
+ ],
+ "crypto/ec/ecdsa_vrf.o" =>
+ [
+ "crypto/ec/ecdsa_vrf.c",
+ ],
+ "crypto/ec/eck_prn.o" =>
+ [
+ "crypto/ec/eck_prn.c",
+ ],
+ "crypto/ec/ecp_mont.o" =>
+ [
+ "crypto/ec/ecp_mont.c",
+ ],
+ "crypto/ec/ecp_nist.o" =>
+ [
+ "crypto/ec/ecp_nist.c",
+ ],
+ "crypto/ec/ecp_nistp224.o" =>
+ [
+ "crypto/ec/ecp_nistp224.c",
+ ],
+ "crypto/ec/ecp_nistp256.o" =>
+ [
+ "crypto/ec/ecp_nistp256.c",
+ ],
+ "crypto/ec/ecp_nistp521.o" =>
+ [
+ "crypto/ec/ecp_nistp521.c",
+ ],
+ "crypto/ec/ecp_nistputil.o" =>
+ [
+ "crypto/ec/ecp_nistputil.c",
+ ],
+ "crypto/ec/ecp_oct.o" =>
+ [
+ "crypto/ec/ecp_oct.c",
+ ],
+ "crypto/ec/ecp_smpl.o" =>
+ [
+ "crypto/ec/ecp_smpl.c",
+ ],
+ "crypto/ec/ecx_meth.o" =>
+ [
+ "crypto/ec/ecx_meth.c",
+ ],
+ "crypto/engine/eng_all.o" =>
+ [
+ "crypto/engine/eng_all.c",
+ ],
+ "crypto/engine/eng_cnf.o" =>
+ [
+ "crypto/engine/eng_cnf.c",
+ ],
+ "crypto/engine/eng_ctrl.o" =>
+ [
+ "crypto/engine/eng_ctrl.c",
+ ],
+ "crypto/engine/eng_dyn.o" =>
+ [
+ "crypto/engine/eng_dyn.c",
+ ],
+ "crypto/engine/eng_err.o" =>
+ [
+ "crypto/engine/eng_err.c",
+ ],
+ "crypto/engine/eng_fat.o" =>
+ [
+ "crypto/engine/eng_fat.c",
+ ],
+ "crypto/engine/eng_init.o" =>
+ [
+ "crypto/engine/eng_init.c",
+ ],
+ "crypto/engine/eng_lib.o" =>
+ [
+ "crypto/engine/eng_lib.c",
+ ],
+ "crypto/engine/eng_list.o" =>
+ [
+ "crypto/engine/eng_list.c",
+ ],
+ "crypto/engine/eng_openssl.o" =>
+ [
+ "crypto/engine/eng_openssl.c",
+ ],
+ "crypto/engine/eng_pkey.o" =>
+ [
+ "crypto/engine/eng_pkey.c",
+ ],
+ "crypto/engine/eng_rdrand.o" =>
+ [
+ "crypto/engine/eng_rdrand.c",
+ ],
+ "crypto/engine/eng_table.o" =>
+ [
+ "crypto/engine/eng_table.c",
+ ],
+ "crypto/engine/tb_asnmth.o" =>
+ [
+ "crypto/engine/tb_asnmth.c",
+ ],
+ "crypto/engine/tb_cipher.o" =>
+ [
+ "crypto/engine/tb_cipher.c",
+ ],
+ "crypto/engine/tb_dh.o" =>
+ [
+ "crypto/engine/tb_dh.c",
+ ],
+ "crypto/engine/tb_digest.o" =>
+ [
+ "crypto/engine/tb_digest.c",
+ ],
+ "crypto/engine/tb_dsa.o" =>
+ [
+ "crypto/engine/tb_dsa.c",
+ ],
+ "crypto/engine/tb_eckey.o" =>
+ [
+ "crypto/engine/tb_eckey.c",
+ ],
+ "crypto/engine/tb_pkmeth.o" =>
+ [
+ "crypto/engine/tb_pkmeth.c",
+ ],
+ "crypto/engine/tb_rand.o" =>
+ [
+ "crypto/engine/tb_rand.c",
+ ],
+ "crypto/engine/tb_rsa.o" =>
+ [
+ "crypto/engine/tb_rsa.c",
+ ],
+ "crypto/err/err.o" =>
+ [
+ "crypto/err/err.c",
+ ],
+ "crypto/err/err_all.o" =>
+ [
+ "crypto/err/err_all.c",
+ ],
+ "crypto/err/err_prn.o" =>
+ [
+ "crypto/err/err_prn.c",
+ ],
+ "crypto/evp/bio_b64.o" =>
+ [
+ "crypto/evp/bio_b64.c",
+ ],
+ "crypto/evp/bio_enc.o" =>
+ [
+ "crypto/evp/bio_enc.c",
+ ],
+ "crypto/evp/bio_md.o" =>
+ [
+ "crypto/evp/bio_md.c",
+ ],
+ "crypto/evp/bio_ok.o" =>
+ [
+ "crypto/evp/bio_ok.c",
+ ],
+ "crypto/evp/c_allc.o" =>
+ [
+ "crypto/evp/c_allc.c",
+ ],
+ "crypto/evp/c_alld.o" =>
+ [
+ "crypto/evp/c_alld.c",
+ ],
+ "crypto/evp/cmeth_lib.o" =>
+ [
+ "crypto/evp/cmeth_lib.c",
+ ],
+ "crypto/evp/digest.o" =>
+ [
+ "crypto/evp/digest.c",
+ ],
+ "crypto/evp/e_aes.o" =>
+ [
+ "crypto/evp/e_aes.c",
+ ],
+ "crypto/evp/e_aes_cbc_hmac_sha1.o" =>
+ [
+ "crypto/evp/e_aes_cbc_hmac_sha1.c",
+ ],
+ "crypto/evp/e_aes_cbc_hmac_sha256.o" =>
+ [
+ "crypto/evp/e_aes_cbc_hmac_sha256.c",
+ ],
+ "crypto/evp/e_aria.o" =>
+ [
+ "crypto/evp/e_aria.c",
+ ],
+ "crypto/evp/e_bf.o" =>
+ [
+ "crypto/evp/e_bf.c",
+ ],
+ "crypto/evp/e_camellia.o" =>
+ [
+ "crypto/evp/e_camellia.c",
+ ],
+ "crypto/evp/e_cast.o" =>
+ [
+ "crypto/evp/e_cast.c",
+ ],
+ "crypto/evp/e_chacha20_poly1305.o" =>
+ [
+ "crypto/evp/e_chacha20_poly1305.c",
+ ],
+ "crypto/evp/e_des.o" =>
+ [
+ "crypto/evp/e_des.c",
+ ],
+ "crypto/evp/e_des3.o" =>
+ [
+ "crypto/evp/e_des3.c",
+ ],
+ "crypto/evp/e_idea.o" =>
+ [
+ "crypto/evp/e_idea.c",
+ ],
+ "crypto/evp/e_null.o" =>
+ [
+ "crypto/evp/e_null.c",
+ ],
+ "crypto/evp/e_old.o" =>
+ [
+ "crypto/evp/e_old.c",
+ ],
+ "crypto/evp/e_rc2.o" =>
+ [
+ "crypto/evp/e_rc2.c",
+ ],
+ "crypto/evp/e_rc4.o" =>
+ [
+ "crypto/evp/e_rc4.c",
+ ],
+ "crypto/evp/e_rc4_hmac_md5.o" =>
+ [
+ "crypto/evp/e_rc4_hmac_md5.c",
+ ],
+ "crypto/evp/e_rc5.o" =>
+ [
+ "crypto/evp/e_rc5.c",
+ ],
+ "crypto/evp/e_seed.o" =>
+ [
+ "crypto/evp/e_seed.c",
+ ],
+ "crypto/evp/e_sm4.o" =>
+ [
+ "crypto/evp/e_sm4.c",
+ ],
+ "crypto/evp/e_xcbc_d.o" =>
+ [
+ "crypto/evp/e_xcbc_d.c",
+ ],
+ "crypto/evp/encode.o" =>
+ [
+ "crypto/evp/encode.c",
+ ],
+ "crypto/evp/evp_cnf.o" =>
+ [
+ "crypto/evp/evp_cnf.c",
+ ],
+ "crypto/evp/evp_enc.o" =>
+ [
+ "crypto/evp/evp_enc.c",
+ ],
+ "crypto/evp/evp_err.o" =>
+ [
+ "crypto/evp/evp_err.c",
+ ],
+ "crypto/evp/evp_key.o" =>
+ [
+ "crypto/evp/evp_key.c",
+ ],
+ "crypto/evp/evp_lib.o" =>
+ [
+ "crypto/evp/evp_lib.c",
+ ],
+ "crypto/evp/evp_pbe.o" =>
+ [
+ "crypto/evp/evp_pbe.c",
+ ],
+ "crypto/evp/evp_pkey.o" =>
+ [
+ "crypto/evp/evp_pkey.c",
+ ],
+ "crypto/evp/m_md2.o" =>
+ [
+ "crypto/evp/m_md2.c",
+ ],
+ "crypto/evp/m_md4.o" =>
+ [
+ "crypto/evp/m_md4.c",
+ ],
+ "crypto/evp/m_md5.o" =>
+ [
+ "crypto/evp/m_md5.c",
+ ],
+ "crypto/evp/m_md5_sha1.o" =>
+ [
+ "crypto/evp/m_md5_sha1.c",
+ ],
+ "crypto/evp/m_mdc2.o" =>
+ [
+ "crypto/evp/m_mdc2.c",
+ ],
+ "crypto/evp/m_null.o" =>
+ [
+ "crypto/evp/m_null.c",
+ ],
+ "crypto/evp/m_ripemd.o" =>
+ [
+ "crypto/evp/m_ripemd.c",
+ ],
+ "crypto/evp/m_sha1.o" =>
+ [
+ "crypto/evp/m_sha1.c",
+ ],
+ "crypto/evp/m_sha3.o" =>
+ [
+ "crypto/evp/m_sha3.c",
+ ],
+ "crypto/evp/m_sigver.o" =>
+ [
+ "crypto/evp/m_sigver.c",
+ ],
+ "crypto/evp/m_wp.o" =>
+ [
+ "crypto/evp/m_wp.c",
+ ],
+ "crypto/evp/names.o" =>
+ [
+ "crypto/evp/names.c",
+ ],
+ "crypto/evp/p5_crpt.o" =>
+ [
+ "crypto/evp/p5_crpt.c",
+ ],
+ "crypto/evp/p5_crpt2.o" =>
+ [
+ "crypto/evp/p5_crpt2.c",
+ ],
+ "crypto/evp/p_dec.o" =>
+ [
+ "crypto/evp/p_dec.c",
+ ],
+ "crypto/evp/p_enc.o" =>
+ [
+ "crypto/evp/p_enc.c",
+ ],
+ "crypto/evp/p_lib.o" =>
+ [
+ "crypto/evp/p_lib.c",
+ ],
+ "crypto/evp/p_open.o" =>
+ [
+ "crypto/evp/p_open.c",
+ ],
+ "crypto/evp/p_seal.o" =>
+ [
+ "crypto/evp/p_seal.c",
+ ],
+ "crypto/evp/p_sign.o" =>
+ [
+ "crypto/evp/p_sign.c",
+ ],
+ "crypto/evp/p_verify.o" =>
+ [
+ "crypto/evp/p_verify.c",
+ ],
+ "crypto/evp/pbe_scrypt.o" =>
+ [
+ "crypto/evp/pbe_scrypt.c",
+ ],
+ "crypto/evp/pmeth_fn.o" =>
+ [
+ "crypto/evp/pmeth_fn.c",
+ ],
+ "crypto/evp/pmeth_gn.o" =>
+ [
+ "crypto/evp/pmeth_gn.c",
+ ],
+ "crypto/evp/pmeth_lib.o" =>
+ [
+ "crypto/evp/pmeth_lib.c",
+ ],
+ "crypto/ex_data.o" =>
+ [
+ "crypto/ex_data.c",
+ ],
+ "crypto/getenv.o" =>
+ [
+ "crypto/getenv.c",
+ ],
+ "crypto/hmac/hm_ameth.o" =>
+ [
+ "crypto/hmac/hm_ameth.c",
+ ],
+ "crypto/hmac/hm_pmeth.o" =>
+ [
+ "crypto/hmac/hm_pmeth.c",
+ ],
+ "crypto/hmac/hmac.o" =>
+ [
+ "crypto/hmac/hmac.c",
+ ],
+ "crypto/idea/i_cbc.o" =>
+ [
+ "crypto/idea/i_cbc.c",
+ ],
+ "crypto/idea/i_cfb64.o" =>
+ [
+ "crypto/idea/i_cfb64.c",
+ ],
+ "crypto/idea/i_ecb.o" =>
+ [
+ "crypto/idea/i_ecb.c",
+ ],
+ "crypto/idea/i_ofb64.o" =>
+ [
+ "crypto/idea/i_ofb64.c",
+ ],
+ "crypto/idea/i_skey.o" =>
+ [
+ "crypto/idea/i_skey.c",
+ ],
+ "crypto/init.o" =>
+ [
+ "crypto/init.c",
+ ],
+ "crypto/kdf/hkdf.o" =>
+ [
+ "crypto/kdf/hkdf.c",
+ ],
+ "crypto/kdf/kdf_err.o" =>
+ [
+ "crypto/kdf/kdf_err.c",
+ ],
+ "crypto/kdf/scrypt.o" =>
+ [
+ "crypto/kdf/scrypt.c",
+ ],
+ "crypto/kdf/tls1_prf.o" =>
+ [
+ "crypto/kdf/tls1_prf.c",
+ ],
+ "crypto/lhash/lh_stats.o" =>
+ [
+ "crypto/lhash/lh_stats.c",
+ ],
+ "crypto/lhash/lhash.o" =>
+ [
+ "crypto/lhash/lhash.c",
+ ],
+ "crypto/md4/md4_dgst.o" =>
+ [
+ "crypto/md4/md4_dgst.c",
+ ],
+ "crypto/md4/md4_one.o" =>
+ [
+ "crypto/md4/md4_one.c",
+ ],
+ "crypto/md5/md5_dgst.o" =>
+ [
+ "crypto/md5/md5_dgst.c",
+ ],
+ "crypto/md5/md5_one.o" =>
+ [
+ "crypto/md5/md5_one.c",
+ ],
+ "crypto/mdc2/mdc2_one.o" =>
+ [
+ "crypto/mdc2/mdc2_one.c",
+ ],
+ "crypto/mdc2/mdc2dgst.o" =>
+ [
+ "crypto/mdc2/mdc2dgst.c",
+ ],
+ "crypto/mem.o" =>
+ [
+ "crypto/mem.c",
+ ],
+ "crypto/mem_clr.o" =>
+ [
+ "crypto/mem_clr.c",
+ ],
+ "crypto/mem_dbg.o" =>
+ [
+ "crypto/mem_dbg.c",
+ ],
+ "crypto/mem_sec.o" =>
+ [
+ "crypto/mem_sec.c",
+ ],
+ "crypto/modes/cbc128.o" =>
+ [
+ "crypto/modes/cbc128.c",
+ ],
+ "crypto/modes/ccm128.o" =>
+ [
+ "crypto/modes/ccm128.c",
+ ],
+ "crypto/modes/cfb128.o" =>
+ [
+ "crypto/modes/cfb128.c",
+ ],
+ "crypto/modes/ctr128.o" =>
+ [
+ "crypto/modes/ctr128.c",
+ ],
+ "crypto/modes/cts128.o" =>
+ [
+ "crypto/modes/cts128.c",
+ ],
+ "crypto/modes/gcm128.o" =>
+ [
+ "crypto/modes/gcm128.c",
+ ],
+ "crypto/modes/ocb128.o" =>
+ [
+ "crypto/modes/ocb128.c",
+ ],
+ "crypto/modes/ofb128.o" =>
+ [
+ "crypto/modes/ofb128.c",
+ ],
+ "crypto/modes/wrap128.o" =>
+ [
+ "crypto/modes/wrap128.c",
+ ],
+ "crypto/modes/xts128.o" =>
+ [
+ "crypto/modes/xts128.c",
+ ],
+ "crypto/o_dir.o" =>
+ [
+ "crypto/o_dir.c",
+ ],
+ "crypto/o_fips.o" =>
+ [
+ "crypto/o_fips.c",
+ ],
+ "crypto/o_fopen.o" =>
+ [
+ "crypto/o_fopen.c",
+ ],
+ "crypto/o_init.o" =>
+ [
+ "crypto/o_init.c",
+ ],
+ "crypto/o_str.o" =>
+ [
+ "crypto/o_str.c",
+ ],
+ "crypto/o_time.o" =>
+ [
+ "crypto/o_time.c",
+ ],
+ "crypto/objects/o_names.o" =>
+ [
+ "crypto/objects/o_names.c",
+ ],
+ "crypto/objects/obj_dat.o" =>
+ [
+ "crypto/objects/obj_dat.c",
+ ],
+ "crypto/objects/obj_err.o" =>
+ [
+ "crypto/objects/obj_err.c",
+ ],
+ "crypto/objects/obj_lib.o" =>
+ [
+ "crypto/objects/obj_lib.c",
+ ],
+ "crypto/objects/obj_xref.o" =>
+ [
+ "crypto/objects/obj_xref.c",
+ ],
+ "crypto/ocsp/ocsp_asn.o" =>
+ [
+ "crypto/ocsp/ocsp_asn.c",
+ ],
+ "crypto/ocsp/ocsp_cl.o" =>
+ [
+ "crypto/ocsp/ocsp_cl.c",
+ ],
+ "crypto/ocsp/ocsp_err.o" =>
+ [
+ "crypto/ocsp/ocsp_err.c",
+ ],
+ "crypto/ocsp/ocsp_ext.o" =>
+ [
+ "crypto/ocsp/ocsp_ext.c",
+ ],
+ "crypto/ocsp/ocsp_ht.o" =>
+ [
+ "crypto/ocsp/ocsp_ht.c",
+ ],
+ "crypto/ocsp/ocsp_lib.o" =>
+ [
+ "crypto/ocsp/ocsp_lib.c",
+ ],
+ "crypto/ocsp/ocsp_prn.o" =>
+ [
+ "crypto/ocsp/ocsp_prn.c",
+ ],
+ "crypto/ocsp/ocsp_srv.o" =>
+ [
+ "crypto/ocsp/ocsp_srv.c",
+ ],
+ "crypto/ocsp/ocsp_vfy.o" =>
+ [
+ "crypto/ocsp/ocsp_vfy.c",
+ ],
+ "crypto/ocsp/v3_ocsp.o" =>
+ [
+ "crypto/ocsp/v3_ocsp.c",
+ ],
+ "crypto/pem/pem_all.o" =>
+ [
+ "crypto/pem/pem_all.c",
+ ],
+ "crypto/pem/pem_err.o" =>
+ [
+ "crypto/pem/pem_err.c",
+ ],
+ "crypto/pem/pem_info.o" =>
+ [
+ "crypto/pem/pem_info.c",
+ ],
+ "crypto/pem/pem_lib.o" =>
+ [
+ "crypto/pem/pem_lib.c",
+ ],
+ "crypto/pem/pem_oth.o" =>
+ [
+ "crypto/pem/pem_oth.c",
+ ],
+ "crypto/pem/pem_pk8.o" =>
+ [
+ "crypto/pem/pem_pk8.c",
+ ],
+ "crypto/pem/pem_pkey.o" =>
+ [
+ "crypto/pem/pem_pkey.c",
+ ],
+ "crypto/pem/pem_sign.o" =>
+ [
+ "crypto/pem/pem_sign.c",
+ ],
+ "crypto/pem/pem_x509.o" =>
+ [
+ "crypto/pem/pem_x509.c",
+ ],
+ "crypto/pem/pem_xaux.o" =>
+ [
+ "crypto/pem/pem_xaux.c",
+ ],
+ "crypto/pem/pvkfmt.o" =>
+ [
+ "crypto/pem/pvkfmt.c",
+ ],
+ "crypto/pkcs12/p12_add.o" =>
+ [
+ "crypto/pkcs12/p12_add.c",
+ ],
+ "crypto/pkcs12/p12_asn.o" =>
+ [
+ "crypto/pkcs12/p12_asn.c",
+ ],
+ "crypto/pkcs12/p12_attr.o" =>
+ [
+ "crypto/pkcs12/p12_attr.c",
+ ],
+ "crypto/pkcs12/p12_crpt.o" =>
+ [
+ "crypto/pkcs12/p12_crpt.c",
+ ],
+ "crypto/pkcs12/p12_crt.o" =>
+ [
+ "crypto/pkcs12/p12_crt.c",
+ ],
+ "crypto/pkcs12/p12_decr.o" =>
+ [
+ "crypto/pkcs12/p12_decr.c",
+ ],
+ "crypto/pkcs12/p12_init.o" =>
+ [
+ "crypto/pkcs12/p12_init.c",
+ ],
+ "crypto/pkcs12/p12_key.o" =>
+ [
+ "crypto/pkcs12/p12_key.c",
+ ],
+ "crypto/pkcs12/p12_kiss.o" =>
+ [
+ "crypto/pkcs12/p12_kiss.c",
+ ],
+ "crypto/pkcs12/p12_mutl.o" =>
+ [
+ "crypto/pkcs12/p12_mutl.c",
+ ],
+ "crypto/pkcs12/p12_npas.o" =>
+ [
+ "crypto/pkcs12/p12_npas.c",
+ ],
+ "crypto/pkcs12/p12_p8d.o" =>
+ [
+ "crypto/pkcs12/p12_p8d.c",
+ ],
+ "crypto/pkcs12/p12_p8e.o" =>
+ [
+ "crypto/pkcs12/p12_p8e.c",
+ ],
+ "crypto/pkcs12/p12_sbag.o" =>
+ [
+ "crypto/pkcs12/p12_sbag.c",
+ ],
+ "crypto/pkcs12/p12_utl.o" =>
+ [
+ "crypto/pkcs12/p12_utl.c",
+ ],
+ "crypto/pkcs12/pk12err.o" =>
+ [
+ "crypto/pkcs12/pk12err.c",
+ ],
+ "crypto/pkcs7/bio_pk7.o" =>
+ [
+ "crypto/pkcs7/bio_pk7.c",
+ ],
+ "crypto/pkcs7/pk7_asn1.o" =>
+ [
+ "crypto/pkcs7/pk7_asn1.c",
+ ],
+ "crypto/pkcs7/pk7_attr.o" =>
+ [
+ "crypto/pkcs7/pk7_attr.c",
+ ],
+ "crypto/pkcs7/pk7_doit.o" =>
+ [
+ "crypto/pkcs7/pk7_doit.c",
+ ],
+ "crypto/pkcs7/pk7_lib.o" =>
+ [
+ "crypto/pkcs7/pk7_lib.c",
+ ],
+ "crypto/pkcs7/pk7_mime.o" =>
+ [
+ "crypto/pkcs7/pk7_mime.c",
+ ],
+ "crypto/pkcs7/pk7_smime.o" =>
+ [
+ "crypto/pkcs7/pk7_smime.c",
+ ],
+ "crypto/pkcs7/pkcs7err.o" =>
+ [
+ "crypto/pkcs7/pkcs7err.c",
+ ],
+ "crypto/poly1305/poly1305-mips.o" =>
+ [
+ "crypto/poly1305/poly1305-mips.S",
+ ],
+ "crypto/poly1305/poly1305.o" =>
+ [
+ "crypto/poly1305/poly1305.c",
+ ],
+ "crypto/poly1305/poly1305_ameth.o" =>
+ [
+ "crypto/poly1305/poly1305_ameth.c",
+ ],
+ "crypto/poly1305/poly1305_pmeth.o" =>
+ [
+ "crypto/poly1305/poly1305_pmeth.c",
+ ],
+ "crypto/rand/drbg_ctr.o" =>
+ [
+ "crypto/rand/drbg_ctr.c",
+ ],
+ "crypto/rand/drbg_lib.o" =>
+ [
+ "crypto/rand/drbg_lib.c",
+ ],
+ "crypto/rand/rand_egd.o" =>
+ [
+ "crypto/rand/rand_egd.c",
+ ],
+ "crypto/rand/rand_err.o" =>
+ [
+ "crypto/rand/rand_err.c",
+ ],
+ "crypto/rand/rand_lib.o" =>
+ [
+ "crypto/rand/rand_lib.c",
+ ],
+ "crypto/rand/rand_unix.o" =>
+ [
+ "crypto/rand/rand_unix.c",
+ ],
+ "crypto/rand/rand_vms.o" =>
+ [
+ "crypto/rand/rand_vms.c",
+ ],
+ "crypto/rand/rand_win.o" =>
+ [
+ "crypto/rand/rand_win.c",
+ ],
+ "crypto/rand/randfile.o" =>
+ [
+ "crypto/rand/randfile.c",
+ ],
+ "crypto/rc2/rc2_cbc.o" =>
+ [
+ "crypto/rc2/rc2_cbc.c",
+ ],
+ "crypto/rc2/rc2_ecb.o" =>
+ [
+ "crypto/rc2/rc2_ecb.c",
+ ],
+ "crypto/rc2/rc2_skey.o" =>
+ [
+ "crypto/rc2/rc2_skey.c",
+ ],
+ "crypto/rc2/rc2cfb64.o" =>
+ [
+ "crypto/rc2/rc2cfb64.c",
+ ],
+ "crypto/rc2/rc2ofb64.o" =>
+ [
+ "crypto/rc2/rc2ofb64.c",
+ ],
+ "crypto/rc4/rc4_enc.o" =>
+ [
+ "crypto/rc4/rc4_enc.c",
+ ],
+ "crypto/rc4/rc4_skey.o" =>
+ [
+ "crypto/rc4/rc4_skey.c",
+ ],
+ "crypto/ripemd/rmd_dgst.o" =>
+ [
+ "crypto/ripemd/rmd_dgst.c",
+ ],
+ "crypto/ripemd/rmd_one.o" =>
+ [
+ "crypto/ripemd/rmd_one.c",
+ ],
+ "crypto/rsa/rsa_ameth.o" =>
+ [
+ "crypto/rsa/rsa_ameth.c",
+ ],
+ "crypto/rsa/rsa_asn1.o" =>
+ [
+ "crypto/rsa/rsa_asn1.c",
+ ],
+ "crypto/rsa/rsa_chk.o" =>
+ [
+ "crypto/rsa/rsa_chk.c",
+ ],
+ "crypto/rsa/rsa_crpt.o" =>
+ [
+ "crypto/rsa/rsa_crpt.c",
+ ],
+ "crypto/rsa/rsa_depr.o" =>
+ [
+ "crypto/rsa/rsa_depr.c",
+ ],
+ "crypto/rsa/rsa_err.o" =>
+ [
+ "crypto/rsa/rsa_err.c",
+ ],
+ "crypto/rsa/rsa_gen.o" =>
+ [
+ "crypto/rsa/rsa_gen.c",
+ ],
+ "crypto/rsa/rsa_lib.o" =>
+ [
+ "crypto/rsa/rsa_lib.c",
+ ],
+ "crypto/rsa/rsa_meth.o" =>
+ [
+ "crypto/rsa/rsa_meth.c",
+ ],
+ "crypto/rsa/rsa_mp.o" =>
+ [
+ "crypto/rsa/rsa_mp.c",
+ ],
+ "crypto/rsa/rsa_none.o" =>
+ [
+ "crypto/rsa/rsa_none.c",
+ ],
+ "crypto/rsa/rsa_oaep.o" =>
+ [
+ "crypto/rsa/rsa_oaep.c",
+ ],
+ "crypto/rsa/rsa_ossl.o" =>
+ [
+ "crypto/rsa/rsa_ossl.c",
+ ],
+ "crypto/rsa/rsa_pk1.o" =>
+ [
+ "crypto/rsa/rsa_pk1.c",
+ ],
+ "crypto/rsa/rsa_pmeth.o" =>
+ [
+ "crypto/rsa/rsa_pmeth.c",
+ ],
+ "crypto/rsa/rsa_prn.o" =>
+ [
+ "crypto/rsa/rsa_prn.c",
+ ],
+ "crypto/rsa/rsa_pss.o" =>
+ [
+ "crypto/rsa/rsa_pss.c",
+ ],
+ "crypto/rsa/rsa_saos.o" =>
+ [
+ "crypto/rsa/rsa_saos.c",
+ ],
+ "crypto/rsa/rsa_sign.o" =>
+ [
+ "crypto/rsa/rsa_sign.c",
+ ],
+ "crypto/rsa/rsa_ssl.o" =>
+ [
+ "crypto/rsa/rsa_ssl.c",
+ ],
+ "crypto/rsa/rsa_x931.o" =>
+ [
+ "crypto/rsa/rsa_x931.c",
+ ],
+ "crypto/rsa/rsa_x931g.o" =>
+ [
+ "crypto/rsa/rsa_x931g.c",
+ ],
+ "crypto/seed/seed.o" =>
+ [
+ "crypto/seed/seed.c",
+ ],
+ "crypto/seed/seed_cbc.o" =>
+ [
+ "crypto/seed/seed_cbc.c",
+ ],
+ "crypto/seed/seed_cfb.o" =>
+ [
+ "crypto/seed/seed_cfb.c",
+ ],
+ "crypto/seed/seed_ecb.o" =>
+ [
+ "crypto/seed/seed_ecb.c",
+ ],
+ "crypto/seed/seed_ofb.o" =>
+ [
+ "crypto/seed/seed_ofb.c",
+ ],
+ "crypto/sha/keccak1600.o" =>
+ [
+ "crypto/sha/keccak1600.c",
+ ],
+ "crypto/sha/sha1-mips.o" =>
+ [
+ "crypto/sha/sha1-mips.S",
+ ],
+ "crypto/sha/sha1_one.o" =>
+ [
+ "crypto/sha/sha1_one.c",
+ ],
+ "crypto/sha/sha1dgst.o" =>
+ [
+ "crypto/sha/sha1dgst.c",
+ ],
+ "crypto/sha/sha256-mips.o" =>
+ [
+ "crypto/sha/sha256-mips.S",
+ ],
+ "crypto/sha/sha256.o" =>
+ [
+ "crypto/sha/sha256.c",
+ ],
+ "crypto/sha/sha512-mips.o" =>
+ [
+ "crypto/sha/sha512-mips.S",
+ ],
+ "crypto/sha/sha512.o" =>
+ [
+ "crypto/sha/sha512.c",
+ ],
+ "crypto/siphash/siphash.o" =>
+ [
+ "crypto/siphash/siphash.c",
+ ],
+ "crypto/siphash/siphash_ameth.o" =>
+ [
+ "crypto/siphash/siphash_ameth.c",
+ ],
+ "crypto/siphash/siphash_pmeth.o" =>
+ [
+ "crypto/siphash/siphash_pmeth.c",
+ ],
+ "crypto/sm2/sm2_crypt.o" =>
+ [
+ "crypto/sm2/sm2_crypt.c",
+ ],
+ "crypto/sm2/sm2_err.o" =>
+ [
+ "crypto/sm2/sm2_err.c",
+ ],
+ "crypto/sm2/sm2_pmeth.o" =>
+ [
+ "crypto/sm2/sm2_pmeth.c",
+ ],
+ "crypto/sm2/sm2_sign.o" =>
+ [
+ "crypto/sm2/sm2_sign.c",
+ ],
+ "crypto/sm3/m_sm3.o" =>
+ [
+ "crypto/sm3/m_sm3.c",
+ ],
+ "crypto/sm3/sm3.o" =>
+ [
+ "crypto/sm3/sm3.c",
+ ],
+ "crypto/sm4/sm4.o" =>
+ [
+ "crypto/sm4/sm4.c",
+ ],
+ "crypto/srp/srp_lib.o" =>
+ [
+ "crypto/srp/srp_lib.c",
+ ],
+ "crypto/srp/srp_vfy.o" =>
+ [
+ "crypto/srp/srp_vfy.c",
+ ],
+ "crypto/stack/stack.o" =>
+ [
+ "crypto/stack/stack.c",
+ ],
+ "crypto/store/loader_file.o" =>
+ [
+ "crypto/store/loader_file.c",
+ ],
+ "crypto/store/store_err.o" =>
+ [
+ "crypto/store/store_err.c",
+ ],
+ "crypto/store/store_init.o" =>
+ [
+ "crypto/store/store_init.c",
+ ],
+ "crypto/store/store_lib.o" =>
+ [
+ "crypto/store/store_lib.c",
+ ],
+ "crypto/store/store_register.o" =>
+ [
+ "crypto/store/store_register.c",
+ ],
+ "crypto/store/store_strings.o" =>
+ [
+ "crypto/store/store_strings.c",
+ ],
+ "crypto/threads_none.o" =>
+ [
+ "crypto/threads_none.c",
+ ],
+ "crypto/threads_pthread.o" =>
+ [
+ "crypto/threads_pthread.c",
+ ],
+ "crypto/threads_win.o" =>
+ [
+ "crypto/threads_win.c",
+ ],
+ "crypto/ts/ts_asn1.o" =>
+ [
+ "crypto/ts/ts_asn1.c",
+ ],
+ "crypto/ts/ts_conf.o" =>
+ [
+ "crypto/ts/ts_conf.c",
+ ],
+ "crypto/ts/ts_err.o" =>
+ [
+ "crypto/ts/ts_err.c",
+ ],
+ "crypto/ts/ts_lib.o" =>
+ [
+ "crypto/ts/ts_lib.c",
+ ],
+ "crypto/ts/ts_req_print.o" =>
+ [
+ "crypto/ts/ts_req_print.c",
+ ],
+ "crypto/ts/ts_req_utils.o" =>
+ [
+ "crypto/ts/ts_req_utils.c",
+ ],
+ "crypto/ts/ts_rsp_print.o" =>
+ [
+ "crypto/ts/ts_rsp_print.c",
+ ],
+ "crypto/ts/ts_rsp_sign.o" =>
+ [
+ "crypto/ts/ts_rsp_sign.c",
+ ],
+ "crypto/ts/ts_rsp_utils.o" =>
+ [
+ "crypto/ts/ts_rsp_utils.c",
+ ],
+ "crypto/ts/ts_rsp_verify.o" =>
+ [
+ "crypto/ts/ts_rsp_verify.c",
+ ],
+ "crypto/ts/ts_verify_ctx.o" =>
+ [
+ "crypto/ts/ts_verify_ctx.c",
+ ],
+ "crypto/txt_db/txt_db.o" =>
+ [
+ "crypto/txt_db/txt_db.c",
+ ],
+ "crypto/ui/ui_err.o" =>
+ [
+ "crypto/ui/ui_err.c",
+ ],
+ "crypto/ui/ui_lib.o" =>
+ [
+ "crypto/ui/ui_lib.c",
+ ],
+ "crypto/ui/ui_null.o" =>
+ [
+ "crypto/ui/ui_null.c",
+ ],
+ "crypto/ui/ui_openssl.o" =>
+ [
+ "crypto/ui/ui_openssl.c",
+ ],
+ "crypto/ui/ui_util.o" =>
+ [
+ "crypto/ui/ui_util.c",
+ ],
+ "crypto/uid.o" =>
+ [
+ "crypto/uid.c",
+ ],
+ "crypto/whrlpool/wp_block.o" =>
+ [
+ "crypto/whrlpool/wp_block.c",
+ ],
+ "crypto/whrlpool/wp_dgst.o" =>
+ [
+ "crypto/whrlpool/wp_dgst.c",
+ ],
+ "crypto/x509/by_dir.o" =>
+ [
+ "crypto/x509/by_dir.c",
+ ],
+ "crypto/x509/by_file.o" =>
+ [
+ "crypto/x509/by_file.c",
+ ],
+ "crypto/x509/t_crl.o" =>
+ [
+ "crypto/x509/t_crl.c",
+ ],
+ "crypto/x509/t_req.o" =>
+ [
+ "crypto/x509/t_req.c",
+ ],
+ "crypto/x509/t_x509.o" =>
+ [
+ "crypto/x509/t_x509.c",
+ ],
+ "crypto/x509/x509_att.o" =>
+ [
+ "crypto/x509/x509_att.c",
+ ],
+ "crypto/x509/x509_cmp.o" =>
+ [
+ "crypto/x509/x509_cmp.c",
+ ],
+ "crypto/x509/x509_d2.o" =>
+ [
+ "crypto/x509/x509_d2.c",
+ ],
+ "crypto/x509/x509_def.o" =>
+ [
+ "crypto/x509/x509_def.c",
+ ],
+ "crypto/x509/x509_err.o" =>
+ [
+ "crypto/x509/x509_err.c",
+ ],
+ "crypto/x509/x509_ext.o" =>
+ [
+ "crypto/x509/x509_ext.c",
+ ],
+ "crypto/x509/x509_lu.o" =>
+ [
+ "crypto/x509/x509_lu.c",
+ ],
+ "crypto/x509/x509_meth.o" =>
+ [
+ "crypto/x509/x509_meth.c",
+ ],
+ "crypto/x509/x509_obj.o" =>
+ [
+ "crypto/x509/x509_obj.c",
+ ],
+ "crypto/x509/x509_r2x.o" =>
+ [
+ "crypto/x509/x509_r2x.c",
+ ],
+ "crypto/x509/x509_req.o" =>
+ [
+ "crypto/x509/x509_req.c",
+ ],
+ "crypto/x509/x509_set.o" =>
+ [
+ "crypto/x509/x509_set.c",
+ ],
+ "crypto/x509/x509_trs.o" =>
+ [
+ "crypto/x509/x509_trs.c",
+ ],
+ "crypto/x509/x509_txt.o" =>
+ [
+ "crypto/x509/x509_txt.c",
+ ],
+ "crypto/x509/x509_v3.o" =>
+ [
+ "crypto/x509/x509_v3.c",
+ ],
+ "crypto/x509/x509_vfy.o" =>
+ [
+ "crypto/x509/x509_vfy.c",
+ ],
+ "crypto/x509/x509_vpm.o" =>
+ [
+ "crypto/x509/x509_vpm.c",
+ ],
+ "crypto/x509/x509cset.o" =>
+ [
+ "crypto/x509/x509cset.c",
+ ],
+ "crypto/x509/x509name.o" =>
+ [
+ "crypto/x509/x509name.c",
+ ],
+ "crypto/x509/x509rset.o" =>
+ [
+ "crypto/x509/x509rset.c",
+ ],
+ "crypto/x509/x509spki.o" =>
+ [
+ "crypto/x509/x509spki.c",
+ ],
+ "crypto/x509/x509type.o" =>
+ [
+ "crypto/x509/x509type.c",
+ ],
+ "crypto/x509/x_all.o" =>
+ [
+ "crypto/x509/x_all.c",
+ ],
+ "crypto/x509/x_attrib.o" =>
+ [
+ "crypto/x509/x_attrib.c",
+ ],
+ "crypto/x509/x_crl.o" =>
+ [
+ "crypto/x509/x_crl.c",
+ ],
+ "crypto/x509/x_exten.o" =>
+ [
+ "crypto/x509/x_exten.c",
+ ],
+ "crypto/x509/x_name.o" =>
+ [
+ "crypto/x509/x_name.c",
+ ],
+ "crypto/x509/x_pubkey.o" =>
+ [
+ "crypto/x509/x_pubkey.c",
+ ],
+ "crypto/x509/x_req.o" =>
+ [
+ "crypto/x509/x_req.c",
+ ],
+ "crypto/x509/x_x509.o" =>
+ [
+ "crypto/x509/x_x509.c",
+ ],
+ "crypto/x509/x_x509a.o" =>
+ [
+ "crypto/x509/x_x509a.c",
+ ],
+ "crypto/x509v3/pcy_cache.o" =>
+ [
+ "crypto/x509v3/pcy_cache.c",
+ ],
+ "crypto/x509v3/pcy_data.o" =>
+ [
+ "crypto/x509v3/pcy_data.c",
+ ],
+ "crypto/x509v3/pcy_lib.o" =>
+ [
+ "crypto/x509v3/pcy_lib.c",
+ ],
+ "crypto/x509v3/pcy_map.o" =>
+ [
+ "crypto/x509v3/pcy_map.c",
+ ],
+ "crypto/x509v3/pcy_node.o" =>
+ [
+ "crypto/x509v3/pcy_node.c",
+ ],
+ "crypto/x509v3/pcy_tree.o" =>
+ [
+ "crypto/x509v3/pcy_tree.c",
+ ],
+ "crypto/x509v3/v3_addr.o" =>
+ [
+ "crypto/x509v3/v3_addr.c",
+ ],
+ "crypto/x509v3/v3_admis.o" =>
+ [
+ "crypto/x509v3/v3_admis.c",
+ ],
+ "crypto/x509v3/v3_akey.o" =>
+ [
+ "crypto/x509v3/v3_akey.c",
+ ],
+ "crypto/x509v3/v3_akeya.o" =>
+ [
+ "crypto/x509v3/v3_akeya.c",
+ ],
+ "crypto/x509v3/v3_alt.o" =>
+ [
+ "crypto/x509v3/v3_alt.c",
+ ],
+ "crypto/x509v3/v3_asid.o" =>
+ [
+ "crypto/x509v3/v3_asid.c",
+ ],
+ "crypto/x509v3/v3_bcons.o" =>
+ [
+ "crypto/x509v3/v3_bcons.c",
+ ],
+ "crypto/x509v3/v3_bitst.o" =>
+ [
+ "crypto/x509v3/v3_bitst.c",
+ ],
+ "crypto/x509v3/v3_conf.o" =>
+ [
+ "crypto/x509v3/v3_conf.c",
+ ],
+ "crypto/x509v3/v3_cpols.o" =>
+ [
+ "crypto/x509v3/v3_cpols.c",
+ ],
+ "crypto/x509v3/v3_crld.o" =>
+ [
+ "crypto/x509v3/v3_crld.c",
+ ],
+ "crypto/x509v3/v3_enum.o" =>
+ [
+ "crypto/x509v3/v3_enum.c",
+ ],
+ "crypto/x509v3/v3_extku.o" =>
+ [
+ "crypto/x509v3/v3_extku.c",
+ ],
+ "crypto/x509v3/v3_genn.o" =>
+ [
+ "crypto/x509v3/v3_genn.c",
+ ],
+ "crypto/x509v3/v3_ia5.o" =>
+ [
+ "crypto/x509v3/v3_ia5.c",
+ ],
+ "crypto/x509v3/v3_info.o" =>
+ [
+ "crypto/x509v3/v3_info.c",
+ ],
+ "crypto/x509v3/v3_int.o" =>
+ [
+ "crypto/x509v3/v3_int.c",
+ ],
+ "crypto/x509v3/v3_lib.o" =>
+ [
+ "crypto/x509v3/v3_lib.c",
+ ],
+ "crypto/x509v3/v3_ncons.o" =>
+ [
+ "crypto/x509v3/v3_ncons.c",
+ ],
+ "crypto/x509v3/v3_pci.o" =>
+ [
+ "crypto/x509v3/v3_pci.c",
+ ],
+ "crypto/x509v3/v3_pcia.o" =>
+ [
+ "crypto/x509v3/v3_pcia.c",
+ ],
+ "crypto/x509v3/v3_pcons.o" =>
+ [
+ "crypto/x509v3/v3_pcons.c",
+ ],
+ "crypto/x509v3/v3_pku.o" =>
+ [
+ "crypto/x509v3/v3_pku.c",
+ ],
+ "crypto/x509v3/v3_pmaps.o" =>
+ [
+ "crypto/x509v3/v3_pmaps.c",
+ ],
+ "crypto/x509v3/v3_prn.o" =>
+ [
+ "crypto/x509v3/v3_prn.c",
+ ],
+ "crypto/x509v3/v3_purp.o" =>
+ [
+ "crypto/x509v3/v3_purp.c",
+ ],
+ "crypto/x509v3/v3_skey.o" =>
+ [
+ "crypto/x509v3/v3_skey.c",
+ ],
+ "crypto/x509v3/v3_sxnet.o" =>
+ [
+ "crypto/x509v3/v3_sxnet.c",
+ ],
+ "crypto/x509v3/v3_tlsf.o" =>
+ [
+ "crypto/x509v3/v3_tlsf.c",
+ ],
+ "crypto/x509v3/v3_utl.o" =>
+ [
+ "crypto/x509v3/v3_utl.c",
+ ],
+ "crypto/x509v3/v3err.o" =>
+ [
+ "crypto/x509v3/v3err.c",
+ ],
+ "engines/e_capi.o" =>
+ [
+ "engines/e_capi.c",
+ ],
+ "engines/e_padlock.o" =>
+ [
+ "engines/e_padlock.c",
+ ],
+ "fuzz/asn1-test" =>
+ [
+ "fuzz/asn1.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/asn1.o" =>
+ [
+ "fuzz/asn1.c",
+ ],
+ "fuzz/asn1parse-test" =>
+ [
+ "fuzz/asn1parse.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/asn1parse.o" =>
+ [
+ "fuzz/asn1parse.c",
+ ],
+ "fuzz/bignum-test" =>
+ [
+ "fuzz/bignum.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/bignum.o" =>
+ [
+ "fuzz/bignum.c",
+ ],
+ "fuzz/bndiv-test" =>
+ [
+ "fuzz/bndiv.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/bndiv.o" =>
+ [
+ "fuzz/bndiv.c",
+ ],
+ "fuzz/client-test" =>
+ [
+ "fuzz/client.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/client.o" =>
+ [
+ "fuzz/client.c",
+ ],
+ "fuzz/cms-test" =>
+ [
+ "fuzz/cms.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/cms.o" =>
+ [
+ "fuzz/cms.c",
+ ],
+ "fuzz/conf-test" =>
+ [
+ "fuzz/conf.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/conf.o" =>
+ [
+ "fuzz/conf.c",
+ ],
+ "fuzz/crl-test" =>
+ [
+ "fuzz/crl.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/crl.o" =>
+ [
+ "fuzz/crl.c",
+ ],
+ "fuzz/ct-test" =>
+ [
+ "fuzz/ct.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/ct.o" =>
+ [
+ "fuzz/ct.c",
+ ],
+ "fuzz/server-test" =>
+ [
+ "fuzz/server.o",
+ "fuzz/test-corpus.o",
+ ],
+ "fuzz/server.o" =>
+ [
+ "fuzz/server.c",
+ ],
+ "fuzz/test-corpus.o" =>
+ [
+ "fuzz/test-corpus.c",
+ ],
+ "fuzz/x509-test" =>
+ [
+ "fuzz/test-corpus.o",
+ "fuzz/x509.o",
+ ],
+ "fuzz/x509.o" =>
+ [
+ "fuzz/x509.c",
+ ],
+ "libcrypto" =>
+ [
+ "crypto/aes/aes-mips.o",
+ "crypto/aes/aes_cbc.o",
+ "crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_ecb.o",
+ "crypto/aes/aes_ige.o",
+ "crypto/aes/aes_misc.o",
+ "crypto/aes/aes_ofb.o",
+ "crypto/aes/aes_wrap.o",
+ "crypto/aria/aria.o",
+ "crypto/asn1/a_bitstr.o",
+ "crypto/asn1/a_d2i_fp.o",
+ "crypto/asn1/a_digest.o",
+ "crypto/asn1/a_dup.o",
+ "crypto/asn1/a_gentm.o",
+ "crypto/asn1/a_i2d_fp.o",
+ "crypto/asn1/a_int.o",
+ "crypto/asn1/a_mbstr.o",
+ "crypto/asn1/a_object.o",
+ "crypto/asn1/a_octet.o",
+ "crypto/asn1/a_print.o",
+ "crypto/asn1/a_sign.o",
+ "crypto/asn1/a_strex.o",
+ "crypto/asn1/a_strnid.o",
+ "crypto/asn1/a_time.o",
+ "crypto/asn1/a_type.o",
+ "crypto/asn1/a_utctm.o",
+ "crypto/asn1/a_utf8.o",
+ "crypto/asn1/a_verify.o",
+ "crypto/asn1/ameth_lib.o",
+ "crypto/asn1/asn1_err.o",
+ "crypto/asn1/asn1_gen.o",
+ "crypto/asn1/asn1_item_list.o",
+ "crypto/asn1/asn1_lib.o",
+ "crypto/asn1/asn1_par.o",
+ "crypto/asn1/asn_mime.o",
+ "crypto/asn1/asn_moid.o",
+ "crypto/asn1/asn_mstbl.o",
+ "crypto/asn1/asn_pack.o",
+ "crypto/asn1/bio_asn1.o",
+ "crypto/asn1/bio_ndef.o",
+ "crypto/asn1/d2i_pr.o",
+ "crypto/asn1/d2i_pu.o",
+ "crypto/asn1/evp_asn1.o",
+ "crypto/asn1/f_int.o",
+ "crypto/asn1/f_string.o",
+ "crypto/asn1/i2d_pr.o",
+ "crypto/asn1/i2d_pu.o",
+ "crypto/asn1/n_pkey.o",
+ "crypto/asn1/nsseq.o",
+ "crypto/asn1/p5_pbe.o",
+ "crypto/asn1/p5_pbev2.o",
+ "crypto/asn1/p5_scrypt.o",
+ "crypto/asn1/p8_pkey.o",
+ "crypto/asn1/t_bitst.o",
+ "crypto/asn1/t_pkey.o",
+ "crypto/asn1/t_spki.o",
+ "crypto/asn1/tasn_dec.o",
+ "crypto/asn1/tasn_enc.o",
+ "crypto/asn1/tasn_fre.o",
+ "crypto/asn1/tasn_new.o",
+ "crypto/asn1/tasn_prn.o",
+ "crypto/asn1/tasn_scn.o",
+ "crypto/asn1/tasn_typ.o",
+ "crypto/asn1/tasn_utl.o",
+ "crypto/asn1/x_algor.o",
+ "crypto/asn1/x_bignum.o",
+ "crypto/asn1/x_info.o",
+ "crypto/asn1/x_int64.o",
+ "crypto/asn1/x_long.o",
+ "crypto/asn1/x_pkey.o",
+ "crypto/asn1/x_sig.o",
+ "crypto/asn1/x_spki.o",
+ "crypto/asn1/x_val.o",
+ "crypto/async/arch/async_null.o",
+ "crypto/async/arch/async_posix.o",
+ "crypto/async/arch/async_win.o",
+ "crypto/async/async.o",
+ "crypto/async/async_err.o",
+ "crypto/async/async_wait.o",
+ "crypto/bf/bf_cfb64.o",
+ "crypto/bf/bf_ecb.o",
+ "crypto/bf/bf_enc.o",
+ "crypto/bf/bf_ofb64.o",
+ "crypto/bf/bf_skey.o",
+ "crypto/bio/b_addr.o",
+ "crypto/bio/b_dump.o",
+ "crypto/bio/b_print.o",
+ "crypto/bio/b_sock.o",
+ "crypto/bio/b_sock2.o",
+ "crypto/bio/bf_buff.o",
+ "crypto/bio/bf_lbuf.o",
+ "crypto/bio/bf_nbio.o",
+ "crypto/bio/bf_null.o",
+ "crypto/bio/bio_cb.o",
+ "crypto/bio/bio_err.o",
+ "crypto/bio/bio_lib.o",
+ "crypto/bio/bio_meth.o",
+ "crypto/bio/bss_acpt.o",
+ "crypto/bio/bss_bio.o",
+ "crypto/bio/bss_conn.o",
+ "crypto/bio/bss_dgram.o",
+ "crypto/bio/bss_fd.o",
+ "crypto/bio/bss_file.o",
+ "crypto/bio/bss_log.o",
+ "crypto/bio/bss_mem.o",
+ "crypto/bio/bss_null.o",
+ "crypto/bio/bss_sock.o",
+ "crypto/blake2/blake2b.o",
+ "crypto/blake2/blake2s.o",
+ "crypto/blake2/m_blake2b.o",
+ "crypto/blake2/m_blake2s.o",
+ "crypto/bn/bn-mips.o",
+ "crypto/bn/bn_add.o",
+ "crypto/bn/bn_blind.o",
+ "crypto/bn/bn_const.o",
+ "crypto/bn/bn_ctx.o",
+ "crypto/bn/bn_depr.o",
+ "crypto/bn/bn_dh.o",
+ "crypto/bn/bn_div.o",
+ "crypto/bn/bn_err.o",
+ "crypto/bn/bn_exp.o",
+ "crypto/bn/bn_exp2.o",
+ "crypto/bn/bn_gcd.o",
+ "crypto/bn/bn_gf2m.o",
+ "crypto/bn/bn_intern.o",
+ "crypto/bn/bn_kron.o",
+ "crypto/bn/bn_lib.o",
+ "crypto/bn/bn_mod.o",
+ "crypto/bn/bn_mont.o",
+ "crypto/bn/bn_mpi.o",
+ "crypto/bn/bn_mul.o",
+ "crypto/bn/bn_nist.o",
+ "crypto/bn/bn_prime.o",
+ "crypto/bn/bn_print.o",
+ "crypto/bn/bn_rand.o",
+ "crypto/bn/bn_recp.o",
+ "crypto/bn/bn_shift.o",
+ "crypto/bn/bn_sqr.o",
+ "crypto/bn/bn_sqrt.o",
+ "crypto/bn/bn_srp.o",
+ "crypto/bn/bn_word.o",
+ "crypto/bn/bn_x931p.o",
+ "crypto/bn/mips-mont.o",
+ "crypto/buffer/buf_err.o",
+ "crypto/buffer/buffer.o",
+ "crypto/camellia/camellia.o",
+ "crypto/camellia/cmll_cbc.o",
+ "crypto/camellia/cmll_cfb.o",
+ "crypto/camellia/cmll_ctr.o",
+ "crypto/camellia/cmll_ecb.o",
+ "crypto/camellia/cmll_misc.o",
+ "crypto/camellia/cmll_ofb.o",
+ "crypto/cast/c_cfb64.o",
+ "crypto/cast/c_ecb.o",
+ "crypto/cast/c_enc.o",
+ "crypto/cast/c_ofb64.o",
+ "crypto/cast/c_skey.o",
+ "crypto/chacha/chacha_enc.o",
+ "crypto/cmac/cm_ameth.o",
+ "crypto/cmac/cm_pmeth.o",
+ "crypto/cmac/cmac.o",
+ "crypto/cms/cms_asn1.o",
+ "crypto/cms/cms_att.o",
+ "crypto/cms/cms_cd.o",
+ "crypto/cms/cms_dd.o",
+ "crypto/cms/cms_enc.o",
+ "crypto/cms/cms_env.o",
+ "crypto/cms/cms_err.o",
+ "crypto/cms/cms_ess.o",
+ "crypto/cms/cms_io.o",
+ "crypto/cms/cms_kari.o",
+ "crypto/cms/cms_lib.o",
+ "crypto/cms/cms_pwri.o",
+ "crypto/cms/cms_sd.o",
+ "crypto/cms/cms_smime.o",
+ "crypto/conf/conf_api.o",
+ "crypto/conf/conf_def.o",
+ "crypto/conf/conf_err.o",
+ "crypto/conf/conf_lib.o",
+ "crypto/conf/conf_mall.o",
+ "crypto/conf/conf_mod.o",
+ "crypto/conf/conf_sap.o",
+ "crypto/conf/conf_ssl.o",
+ "crypto/cpt_err.o",
+ "crypto/cryptlib.o",
+ "crypto/ct/ct_b64.o",
+ "crypto/ct/ct_err.o",
+ "crypto/ct/ct_log.o",
+ "crypto/ct/ct_oct.o",
+ "crypto/ct/ct_policy.o",
+ "crypto/ct/ct_prn.o",
+ "crypto/ct/ct_sct.o",
+ "crypto/ct/ct_sct_ctx.o",
+ "crypto/ct/ct_vfy.o",
+ "crypto/ct/ct_x509v3.o",
+ "crypto/ctype.o",
+ "crypto/cversion.o",
+ "crypto/des/cbc_cksm.o",
+ "crypto/des/cbc_enc.o",
+ "crypto/des/cfb64ede.o",
+ "crypto/des/cfb64enc.o",
+ "crypto/des/cfb_enc.o",
+ "crypto/des/des_enc.o",
+ "crypto/des/ecb3_enc.o",
+ "crypto/des/ecb_enc.o",
+ "crypto/des/fcrypt.o",
+ "crypto/des/fcrypt_b.o",
+ "crypto/des/ofb64ede.o",
+ "crypto/des/ofb64enc.o",
+ "crypto/des/ofb_enc.o",
+ "crypto/des/pcbc_enc.o",
+ "crypto/des/qud_cksm.o",
+ "crypto/des/rand_key.o",
+ "crypto/des/set_key.o",
+ "crypto/des/str2key.o",
+ "crypto/des/xcbc_enc.o",
+ "crypto/dh/dh_ameth.o",
+ "crypto/dh/dh_asn1.o",
+ "crypto/dh/dh_check.o",
+ "crypto/dh/dh_depr.o",
+ "crypto/dh/dh_err.o",
+ "crypto/dh/dh_gen.o",
+ "crypto/dh/dh_kdf.o",
+ "crypto/dh/dh_key.o",
+ "crypto/dh/dh_lib.o",
+ "crypto/dh/dh_meth.o",
+ "crypto/dh/dh_pmeth.o",
+ "crypto/dh/dh_prn.o",
+ "crypto/dh/dh_rfc5114.o",
+ "crypto/dh/dh_rfc7919.o",
+ "crypto/dsa/dsa_ameth.o",
+ "crypto/dsa/dsa_asn1.o",
+ "crypto/dsa/dsa_depr.o",
+ "crypto/dsa/dsa_err.o",
+ "crypto/dsa/dsa_gen.o",
+ "crypto/dsa/dsa_key.o",
+ "crypto/dsa/dsa_lib.o",
+ "crypto/dsa/dsa_meth.o",
+ "crypto/dsa/dsa_ossl.o",
+ "crypto/dsa/dsa_pmeth.o",
+ "crypto/dsa/dsa_prn.o",
+ "crypto/dsa/dsa_sign.o",
+ "crypto/dsa/dsa_vrf.o",
+ "crypto/dso/dso_dl.o",
+ "crypto/dso/dso_dlfcn.o",
+ "crypto/dso/dso_err.o",
+ "crypto/dso/dso_lib.o",
+ "crypto/dso/dso_openssl.o",
+ "crypto/dso/dso_vms.o",
+ "crypto/dso/dso_win32.o",
+ "crypto/ebcdic.o",
+ "crypto/ec/curve25519.o",
+ "crypto/ec/curve448/arch_32/f_impl.o",
+ "crypto/ec/curve448/curve448.o",
+ "crypto/ec/curve448/curve448_tables.o",
+ "crypto/ec/curve448/eddsa.o",
+ "crypto/ec/curve448/f_generic.o",
+ "crypto/ec/curve448/scalar.o",
+ "crypto/ec/ec2_oct.o",
+ "crypto/ec/ec2_smpl.o",
+ "crypto/ec/ec_ameth.o",
+ "crypto/ec/ec_asn1.o",
+ "crypto/ec/ec_check.o",
+ "crypto/ec/ec_curve.o",
+ "crypto/ec/ec_cvt.o",
+ "crypto/ec/ec_err.o",
+ "crypto/ec/ec_key.o",
+ "crypto/ec/ec_kmeth.o",
+ "crypto/ec/ec_lib.o",
+ "crypto/ec/ec_mult.o",
+ "crypto/ec/ec_oct.o",
+ "crypto/ec/ec_pmeth.o",
+ "crypto/ec/ec_print.o",
+ "crypto/ec/ecdh_kdf.o",
+ "crypto/ec/ecdh_ossl.o",
+ "crypto/ec/ecdsa_ossl.o",
+ "crypto/ec/ecdsa_sign.o",
+ "crypto/ec/ecdsa_vrf.o",
+ "crypto/ec/eck_prn.o",
+ "crypto/ec/ecp_mont.o",
+ "crypto/ec/ecp_nist.o",
+ "crypto/ec/ecp_nistp224.o",
+ "crypto/ec/ecp_nistp256.o",
+ "crypto/ec/ecp_nistp521.o",
+ "crypto/ec/ecp_nistputil.o",
+ "crypto/ec/ecp_oct.o",
+ "crypto/ec/ecp_smpl.o",
+ "crypto/ec/ecx_meth.o",
+ "crypto/engine/eng_all.o",
+ "crypto/engine/eng_cnf.o",
+ "crypto/engine/eng_ctrl.o",
+ "crypto/engine/eng_dyn.o",
+ "crypto/engine/eng_err.o",
+ "crypto/engine/eng_fat.o",
+ "crypto/engine/eng_init.o",
+ "crypto/engine/eng_lib.o",
+ "crypto/engine/eng_list.o",
+ "crypto/engine/eng_openssl.o",
+ "crypto/engine/eng_pkey.o",
+ "crypto/engine/eng_rdrand.o",
+ "crypto/engine/eng_table.o",
+ "crypto/engine/tb_asnmth.o",
+ "crypto/engine/tb_cipher.o",
+ "crypto/engine/tb_dh.o",
+ "crypto/engine/tb_digest.o",
+ "crypto/engine/tb_dsa.o",
+ "crypto/engine/tb_eckey.o",
+ "crypto/engine/tb_pkmeth.o",
+ "crypto/engine/tb_rand.o",
+ "crypto/engine/tb_rsa.o",
+ "crypto/err/err.o",
+ "crypto/err/err_all.o",
+ "crypto/err/err_prn.o",
+ "crypto/evp/bio_b64.o",
+ "crypto/evp/bio_enc.o",
+ "crypto/evp/bio_md.o",
+ "crypto/evp/bio_ok.o",
+ "crypto/evp/c_allc.o",
+ "crypto/evp/c_alld.o",
+ "crypto/evp/cmeth_lib.o",
+ "crypto/evp/digest.o",
+ "crypto/evp/e_aes.o",
+ "crypto/evp/e_aes_cbc_hmac_sha1.o",
+ "crypto/evp/e_aes_cbc_hmac_sha256.o",
+ "crypto/evp/e_aria.o",
+ "crypto/evp/e_bf.o",
+ "crypto/evp/e_camellia.o",
+ "crypto/evp/e_cast.o",
+ "crypto/evp/e_chacha20_poly1305.o",
+ "crypto/evp/e_des.o",
+ "crypto/evp/e_des3.o",
+ "crypto/evp/e_idea.o",
+ "crypto/evp/e_null.o",
+ "crypto/evp/e_old.o",
+ "crypto/evp/e_rc2.o",
+ "crypto/evp/e_rc4.o",
+ "crypto/evp/e_rc4_hmac_md5.o",
+ "crypto/evp/e_rc5.o",
+ "crypto/evp/e_seed.o",
+ "crypto/evp/e_sm4.o",
+ "crypto/evp/e_xcbc_d.o",
+ "crypto/evp/encode.o",
+ "crypto/evp/evp_cnf.o",
+ "crypto/evp/evp_enc.o",
+ "crypto/evp/evp_err.o",
+ "crypto/evp/evp_key.o",
+ "crypto/evp/evp_lib.o",
+ "crypto/evp/evp_pbe.o",
+ "crypto/evp/evp_pkey.o",
+ "crypto/evp/m_md2.o",
+ "crypto/evp/m_md4.o",
+ "crypto/evp/m_md5.o",
+ "crypto/evp/m_md5_sha1.o",
+ "crypto/evp/m_mdc2.o",
+ "crypto/evp/m_null.o",
+ "crypto/evp/m_ripemd.o",
+ "crypto/evp/m_sha1.o",
+ "crypto/evp/m_sha3.o",
+ "crypto/evp/m_sigver.o",
+ "crypto/evp/m_wp.o",
+ "crypto/evp/names.o",
+ "crypto/evp/p5_crpt.o",
+ "crypto/evp/p5_crpt2.o",
+ "crypto/evp/p_dec.o",
+ "crypto/evp/p_enc.o",
+ "crypto/evp/p_lib.o",
+ "crypto/evp/p_open.o",
+ "crypto/evp/p_seal.o",
+ "crypto/evp/p_sign.o",
+ "crypto/evp/p_verify.o",
+ "crypto/evp/pbe_scrypt.o",
+ "crypto/evp/pmeth_fn.o",
+ "crypto/evp/pmeth_gn.o",
+ "crypto/evp/pmeth_lib.o",
+ "crypto/ex_data.o",
+ "crypto/getenv.o",
+ "crypto/hmac/hm_ameth.o",
+ "crypto/hmac/hm_pmeth.o",
+ "crypto/hmac/hmac.o",
+ "crypto/idea/i_cbc.o",
+ "crypto/idea/i_cfb64.o",
+ "crypto/idea/i_ecb.o",
+ "crypto/idea/i_ofb64.o",
+ "crypto/idea/i_skey.o",
+ "crypto/init.o",
+ "crypto/kdf/hkdf.o",
+ "crypto/kdf/kdf_err.o",
+ "crypto/kdf/scrypt.o",
+ "crypto/kdf/tls1_prf.o",
+ "crypto/lhash/lh_stats.o",
+ "crypto/lhash/lhash.o",
+ "crypto/md4/md4_dgst.o",
+ "crypto/md4/md4_one.o",
+ "crypto/md5/md5_dgst.o",
+ "crypto/md5/md5_one.o",
+ "crypto/mdc2/mdc2_one.o",
+ "crypto/mdc2/mdc2dgst.o",
+ "crypto/mem.o",
+ "crypto/mem_clr.o",
+ "crypto/mem_dbg.o",
+ "crypto/mem_sec.o",
+ "crypto/modes/cbc128.o",
+ "crypto/modes/ccm128.o",
+ "crypto/modes/cfb128.o",
+ "crypto/modes/ctr128.o",
+ "crypto/modes/cts128.o",
+ "crypto/modes/gcm128.o",
+ "crypto/modes/ocb128.o",
+ "crypto/modes/ofb128.o",
+ "crypto/modes/wrap128.o",
+ "crypto/modes/xts128.o",
+ "crypto/o_dir.o",
+ "crypto/o_fips.o",
+ "crypto/o_fopen.o",
+ "crypto/o_init.o",
+ "crypto/o_str.o",
+ "crypto/o_time.o",
+ "crypto/objects/o_names.o",
+ "crypto/objects/obj_dat.o",
+ "crypto/objects/obj_err.o",
+ "crypto/objects/obj_lib.o",
+ "crypto/objects/obj_xref.o",
+ "crypto/ocsp/ocsp_asn.o",
+ "crypto/ocsp/ocsp_cl.o",
+ "crypto/ocsp/ocsp_err.o",
+ "crypto/ocsp/ocsp_ext.o",
+ "crypto/ocsp/ocsp_ht.o",
+ "crypto/ocsp/ocsp_lib.o",
+ "crypto/ocsp/ocsp_prn.o",
+ "crypto/ocsp/ocsp_srv.o",
+ "crypto/ocsp/ocsp_vfy.o",
+ "crypto/ocsp/v3_ocsp.o",
+ "crypto/pem/pem_all.o",
+ "crypto/pem/pem_err.o",
+ "crypto/pem/pem_info.o",
+ "crypto/pem/pem_lib.o",
+ "crypto/pem/pem_oth.o",
+ "crypto/pem/pem_pk8.o",
+ "crypto/pem/pem_pkey.o",
+ "crypto/pem/pem_sign.o",
+ "crypto/pem/pem_x509.o",
+ "crypto/pem/pem_xaux.o",
+ "crypto/pem/pvkfmt.o",
+ "crypto/pkcs12/p12_add.o",
+ "crypto/pkcs12/p12_asn.o",
+ "crypto/pkcs12/p12_attr.o",
+ "crypto/pkcs12/p12_crpt.o",
+ "crypto/pkcs12/p12_crt.o",
+ "crypto/pkcs12/p12_decr.o",
+ "crypto/pkcs12/p12_init.o",
+ "crypto/pkcs12/p12_key.o",
+ "crypto/pkcs12/p12_kiss.o",
+ "crypto/pkcs12/p12_mutl.o",
+ "crypto/pkcs12/p12_npas.o",
+ "crypto/pkcs12/p12_p8d.o",
+ "crypto/pkcs12/p12_p8e.o",
+ "crypto/pkcs12/p12_sbag.o",
+ "crypto/pkcs12/p12_utl.o",
+ "crypto/pkcs12/pk12err.o",
+ "crypto/pkcs7/bio_pk7.o",
+ "crypto/pkcs7/pk7_asn1.o",
+ "crypto/pkcs7/pk7_attr.o",
+ "crypto/pkcs7/pk7_doit.o",
+ "crypto/pkcs7/pk7_lib.o",
+ "crypto/pkcs7/pk7_mime.o",
+ "crypto/pkcs7/pk7_smime.o",
+ "crypto/pkcs7/pkcs7err.o",
+ "crypto/poly1305/poly1305-mips.o",
+ "crypto/poly1305/poly1305.o",
+ "crypto/poly1305/poly1305_ameth.o",
+ "crypto/poly1305/poly1305_pmeth.o",
+ "crypto/rand/drbg_ctr.o",
+ "crypto/rand/drbg_lib.o",
+ "crypto/rand/rand_egd.o",
+ "crypto/rand/rand_err.o",
+ "crypto/rand/rand_lib.o",
+ "crypto/rand/rand_unix.o",
+ "crypto/rand/rand_vms.o",
+ "crypto/rand/rand_win.o",
+ "crypto/rand/randfile.o",
+ "crypto/rc2/rc2_cbc.o",
+ "crypto/rc2/rc2_ecb.o",
+ "crypto/rc2/rc2_skey.o",
+ "crypto/rc2/rc2cfb64.o",
+ "crypto/rc2/rc2ofb64.o",
+ "crypto/rc4/rc4_enc.o",
+ "crypto/rc4/rc4_skey.o",
+ "crypto/ripemd/rmd_dgst.o",
+ "crypto/ripemd/rmd_one.o",
+ "crypto/rsa/rsa_ameth.o",
+ "crypto/rsa/rsa_asn1.o",
+ "crypto/rsa/rsa_chk.o",
+ "crypto/rsa/rsa_crpt.o",
+ "crypto/rsa/rsa_depr.o",
+ "crypto/rsa/rsa_err.o",
+ "crypto/rsa/rsa_gen.o",
+ "crypto/rsa/rsa_lib.o",
+ "crypto/rsa/rsa_meth.o",
+ "crypto/rsa/rsa_mp.o",
+ "crypto/rsa/rsa_none.o",
+ "crypto/rsa/rsa_oaep.o",
+ "crypto/rsa/rsa_ossl.o",
+ "crypto/rsa/rsa_pk1.o",
+ "crypto/rsa/rsa_pmeth.o",
+ "crypto/rsa/rsa_prn.o",
+ "crypto/rsa/rsa_pss.o",
+ "crypto/rsa/rsa_saos.o",
+ "crypto/rsa/rsa_sign.o",
+ "crypto/rsa/rsa_ssl.o",
+ "crypto/rsa/rsa_x931.o",
+ "crypto/rsa/rsa_x931g.o",
+ "crypto/seed/seed.o",
+ "crypto/seed/seed_cbc.o",
+ "crypto/seed/seed_cfb.o",
+ "crypto/seed/seed_ecb.o",
+ "crypto/seed/seed_ofb.o",
+ "crypto/sha/keccak1600.o",
+ "crypto/sha/sha1-mips.o",
+ "crypto/sha/sha1_one.o",
+ "crypto/sha/sha1dgst.o",
+ "crypto/sha/sha256-mips.o",
+ "crypto/sha/sha256.o",
+ "crypto/sha/sha512-mips.o",
+ "crypto/sha/sha512.o",
+ "crypto/siphash/siphash.o",
+ "crypto/siphash/siphash_ameth.o",
+ "crypto/siphash/siphash_pmeth.o",
+ "crypto/sm2/sm2_crypt.o",
+ "crypto/sm2/sm2_err.o",
+ "crypto/sm2/sm2_pmeth.o",
+ "crypto/sm2/sm2_sign.o",
+ "crypto/sm3/m_sm3.o",
+ "crypto/sm3/sm3.o",
+ "crypto/sm4/sm4.o",
+ "crypto/srp/srp_lib.o",
+ "crypto/srp/srp_vfy.o",
+ "crypto/stack/stack.o",
+ "crypto/store/loader_file.o",
+ "crypto/store/store_err.o",
+ "crypto/store/store_init.o",
+ "crypto/store/store_lib.o",
+ "crypto/store/store_register.o",
+ "crypto/store/store_strings.o",
+ "crypto/threads_none.o",
+ "crypto/threads_pthread.o",
+ "crypto/threads_win.o",
+ "crypto/ts/ts_asn1.o",
+ "crypto/ts/ts_conf.o",
+ "crypto/ts/ts_err.o",
+ "crypto/ts/ts_lib.o",
+ "crypto/ts/ts_req_print.o",
+ "crypto/ts/ts_req_utils.o",
+ "crypto/ts/ts_rsp_print.o",
+ "crypto/ts/ts_rsp_sign.o",
+ "crypto/ts/ts_rsp_utils.o",
+ "crypto/ts/ts_rsp_verify.o",
+ "crypto/ts/ts_verify_ctx.o",
+ "crypto/txt_db/txt_db.o",
+ "crypto/ui/ui_err.o",
+ "crypto/ui/ui_lib.o",
+ "crypto/ui/ui_null.o",
+ "crypto/ui/ui_openssl.o",
+ "crypto/ui/ui_util.o",
+ "crypto/uid.o",
+ "crypto/whrlpool/wp_block.o",
+ "crypto/whrlpool/wp_dgst.o",
+ "crypto/x509/by_dir.o",
+ "crypto/x509/by_file.o",
+ "crypto/x509/t_crl.o",
+ "crypto/x509/t_req.o",
+ "crypto/x509/t_x509.o",
+ "crypto/x509/x509_att.o",
+ "crypto/x509/x509_cmp.o",
+ "crypto/x509/x509_d2.o",
+ "crypto/x509/x509_def.o",
+ "crypto/x509/x509_err.o",
+ "crypto/x509/x509_ext.o",
+ "crypto/x509/x509_lu.o",
+ "crypto/x509/x509_meth.o",
+ "crypto/x509/x509_obj.o",
+ "crypto/x509/x509_r2x.o",
+ "crypto/x509/x509_req.o",
+ "crypto/x509/x509_set.o",
+ "crypto/x509/x509_trs.o",
+ "crypto/x509/x509_txt.o",
+ "crypto/x509/x509_v3.o",
+ "crypto/x509/x509_vfy.o",
+ "crypto/x509/x509_vpm.o",
+ "crypto/x509/x509cset.o",
+ "crypto/x509/x509name.o",
+ "crypto/x509/x509rset.o",
+ "crypto/x509/x509spki.o",
+ "crypto/x509/x509type.o",
+ "crypto/x509/x_all.o",
+ "crypto/x509/x_attrib.o",
+ "crypto/x509/x_crl.o",
+ "crypto/x509/x_exten.o",
+ "crypto/x509/x_name.o",
+ "crypto/x509/x_pubkey.o",
+ "crypto/x509/x_req.o",
+ "crypto/x509/x_x509.o",
+ "crypto/x509/x_x509a.o",
+ "crypto/x509v3/pcy_cache.o",
+ "crypto/x509v3/pcy_data.o",
+ "crypto/x509v3/pcy_lib.o",
+ "crypto/x509v3/pcy_map.o",
+ "crypto/x509v3/pcy_node.o",
+ "crypto/x509v3/pcy_tree.o",
+ "crypto/x509v3/v3_addr.o",
+ "crypto/x509v3/v3_admis.o",
+ "crypto/x509v3/v3_akey.o",
+ "crypto/x509v3/v3_akeya.o",
+ "crypto/x509v3/v3_alt.o",
+ "crypto/x509v3/v3_asid.o",
+ "crypto/x509v3/v3_bcons.o",
+ "crypto/x509v3/v3_bitst.o",
+ "crypto/x509v3/v3_conf.o",
+ "crypto/x509v3/v3_cpols.o",
+ "crypto/x509v3/v3_crld.o",
+ "crypto/x509v3/v3_enum.o",
+ "crypto/x509v3/v3_extku.o",
+ "crypto/x509v3/v3_genn.o",
+ "crypto/x509v3/v3_ia5.o",
+ "crypto/x509v3/v3_info.o",
+ "crypto/x509v3/v3_int.o",
+ "crypto/x509v3/v3_lib.o",
+ "crypto/x509v3/v3_ncons.o",
+ "crypto/x509v3/v3_pci.o",
+ "crypto/x509v3/v3_pcia.o",
+ "crypto/x509v3/v3_pcons.o",
+ "crypto/x509v3/v3_pku.o",
+ "crypto/x509v3/v3_pmaps.o",
+ "crypto/x509v3/v3_prn.o",
+ "crypto/x509v3/v3_purp.o",
+ "crypto/x509v3/v3_skey.o",
+ "crypto/x509v3/v3_sxnet.o",
+ "crypto/x509v3/v3_tlsf.o",
+ "crypto/x509v3/v3_utl.o",
+ "crypto/x509v3/v3err.o",
+ "engines/e_capi.o",
+ "engines/e_padlock.o",
+ ],
+ "libssl" =>
+ [
+ "ssl/bio_ssl.o",
+ "ssl/d1_lib.o",
+ "ssl/d1_msg.o",
+ "ssl/d1_srtp.o",
+ "ssl/methods.o",
+ "ssl/packet.o",
+ "ssl/pqueue.o",
+ "ssl/record/dtls1_bitmap.o",
+ "ssl/record/rec_layer_d1.o",
+ "ssl/record/rec_layer_s3.o",
+ "ssl/record/ssl3_buffer.o",
+ "ssl/record/ssl3_record.o",
+ "ssl/record/ssl3_record_tls13.o",
+ "ssl/s3_cbc.o",
+ "ssl/s3_enc.o",
+ "ssl/s3_lib.o",
+ "ssl/s3_msg.o",
+ "ssl/ssl_asn1.o",
+ "ssl/ssl_cert.o",
+ "ssl/ssl_ciph.o",
+ "ssl/ssl_conf.o",
+ "ssl/ssl_err.o",
+ "ssl/ssl_init.o",
+ "ssl/ssl_lib.o",
+ "ssl/ssl_mcnf.o",
+ "ssl/ssl_rsa.o",
+ "ssl/ssl_sess.o",
+ "ssl/ssl_stat.o",
+ "ssl/ssl_txt.o",
+ "ssl/ssl_utst.o",
+ "ssl/statem/extensions.o",
+ "ssl/statem/extensions_clnt.o",
+ "ssl/statem/extensions_cust.o",
+ "ssl/statem/extensions_srvr.o",
+ "ssl/statem/statem.o",
+ "ssl/statem/statem_clnt.o",
+ "ssl/statem/statem_dtls.o",
+ "ssl/statem/statem_lib.o",
+ "ssl/statem/statem_srvr.o",
+ "ssl/t1_enc.o",
+ "ssl/t1_lib.o",
+ "ssl/t1_trce.o",
+ "ssl/tls13_enc.o",
+ "ssl/tls_srp.o",
+ ],
+ "ssl/bio_ssl.o" =>
+ [
+ "ssl/bio_ssl.c",
+ ],
+ "ssl/d1_lib.o" =>
+ [
+ "ssl/d1_lib.c",
+ ],
+ "ssl/d1_msg.o" =>
+ [
+ "ssl/d1_msg.c",
+ ],
+ "ssl/d1_srtp.o" =>
+ [
+ "ssl/d1_srtp.c",
+ ],
+ "ssl/methods.o" =>
+ [
+ "ssl/methods.c",
+ ],
+ "ssl/packet.o" =>
+ [
+ "ssl/packet.c",
+ ],
+ "ssl/pqueue.o" =>
+ [
+ "ssl/pqueue.c",
+ ],
+ "ssl/record/dtls1_bitmap.o" =>
+ [
+ "ssl/record/dtls1_bitmap.c",
+ ],
+ "ssl/record/rec_layer_d1.o" =>
+ [
+ "ssl/record/rec_layer_d1.c",
+ ],
+ "ssl/record/rec_layer_s3.o" =>
+ [
+ "ssl/record/rec_layer_s3.c",
+ ],
+ "ssl/record/ssl3_buffer.o" =>
+ [
+ "ssl/record/ssl3_buffer.c",
+ ],
+ "ssl/record/ssl3_record.o" =>
+ [
+ "ssl/record/ssl3_record.c",
+ ],
+ "ssl/record/ssl3_record_tls13.o" =>
+ [
+ "ssl/record/ssl3_record_tls13.c",
+ ],
+ "ssl/s3_cbc.o" =>
+ [
+ "ssl/s3_cbc.c",
+ ],
+ "ssl/s3_enc.o" =>
+ [
+ "ssl/s3_enc.c",
+ ],
+ "ssl/s3_lib.o" =>
+ [
+ "ssl/s3_lib.c",
+ ],
+ "ssl/s3_msg.o" =>
+ [
+ "ssl/s3_msg.c",
+ ],
+ "ssl/ssl_asn1.o" =>
+ [
+ "ssl/ssl_asn1.c",
+ ],
+ "ssl/ssl_cert.o" =>
+ [
+ "ssl/ssl_cert.c",
+ ],
+ "ssl/ssl_ciph.o" =>
+ [
+ "ssl/ssl_ciph.c",
+ ],
+ "ssl/ssl_conf.o" =>
+ [
+ "ssl/ssl_conf.c",
+ ],
+ "ssl/ssl_err.o" =>
+ [
+ "ssl/ssl_err.c",
+ ],
+ "ssl/ssl_init.o" =>
+ [
+ "ssl/ssl_init.c",
+ ],
+ "ssl/ssl_lib.o" =>
+ [
+ "ssl/ssl_lib.c",
+ ],
+ "ssl/ssl_mcnf.o" =>
+ [
+ "ssl/ssl_mcnf.c",
+ ],
+ "ssl/ssl_rsa.o" =>
+ [
+ "ssl/ssl_rsa.c",
+ ],
+ "ssl/ssl_sess.o" =>
+ [
+ "ssl/ssl_sess.c",
+ ],
+ "ssl/ssl_stat.o" =>
+ [
+ "ssl/ssl_stat.c",
+ ],
+ "ssl/ssl_txt.o" =>
+ [
+ "ssl/ssl_txt.c",
+ ],
+ "ssl/ssl_utst.o" =>
+ [
+ "ssl/ssl_utst.c",
+ ],
+ "ssl/statem/extensions.o" =>
+ [
+ "ssl/statem/extensions.c",
+ ],
+ "ssl/statem/extensions_clnt.o" =>
+ [
+ "ssl/statem/extensions_clnt.c",
+ ],
+ "ssl/statem/extensions_cust.o" =>
+ [
+ "ssl/statem/extensions_cust.c",
+ ],
+ "ssl/statem/extensions_srvr.o" =>
+ [
+ "ssl/statem/extensions_srvr.c",
+ ],
+ "ssl/statem/statem.o" =>
+ [
+ "ssl/statem/statem.c",
+ ],
+ "ssl/statem/statem_clnt.o" =>
+ [
+ "ssl/statem/statem_clnt.c",
+ ],
+ "ssl/statem/statem_dtls.o" =>
+ [
+ "ssl/statem/statem_dtls.c",
+ ],
+ "ssl/statem/statem_lib.o" =>
+ [
+ "ssl/statem/statem_lib.c",
+ ],
+ "ssl/statem/statem_srvr.o" =>
+ [
+ "ssl/statem/statem_srvr.c",
+ ],
+ "ssl/t1_enc.o" =>
+ [
+ "ssl/t1_enc.c",
+ ],
+ "ssl/t1_lib.o" =>
+ [
+ "ssl/t1_lib.c",
+ ],
+ "ssl/t1_trce.o" =>
+ [
+ "ssl/t1_trce.c",
+ ],
+ "ssl/tls13_enc.o" =>
+ [
+ "ssl/tls13_enc.c",
+ ],
+ "ssl/tls_srp.o" =>
+ [
+ "ssl/tls_srp.c",
+ ],
+ "test/aborttest" =>
+ [
+ "test/aborttest.o",
+ ],
+ "test/aborttest.o" =>
+ [
+ "test/aborttest.c",
+ ],
+ "test/afalgtest" =>
+ [
+ "test/afalgtest.o",
+ ],
+ "test/afalgtest.o" =>
+ [
+ "test/afalgtest.c",
+ ],
+ "test/asn1_decode_test" =>
+ [
+ "test/asn1_decode_test.o",
+ ],
+ "test/asn1_decode_test.o" =>
+ [
+ "test/asn1_decode_test.c",
+ ],
+ "test/asn1_encode_test" =>
+ [
+ "test/asn1_encode_test.o",
+ ],
+ "test/asn1_encode_test.o" =>
+ [
+ "test/asn1_encode_test.c",
+ ],
+ "test/asn1_internal_test" =>
+ [
+ "test/asn1_internal_test.o",
+ ],
+ "test/asn1_internal_test.o" =>
+ [
+ "test/asn1_internal_test.c",
+ ],
+ "test/asn1_string_table_test" =>
+ [
+ "test/asn1_string_table_test.o",
+ ],
+ "test/asn1_string_table_test.o" =>
+ [
+ "test/asn1_string_table_test.c",
+ ],
+ "test/asn1_time_test" =>
+ [
+ "test/asn1_time_test.o",
+ ],
+ "test/asn1_time_test.o" =>
+ [
+ "test/asn1_time_test.c",
+ ],
+ "test/asynciotest" =>
+ [
+ "test/asynciotest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/asynciotest.o" =>
+ [
+ "test/asynciotest.c",
+ ],
+ "test/asynctest" =>
+ [
+ "test/asynctest.o",
+ ],
+ "test/asynctest.o" =>
+ [
+ "test/asynctest.c",
+ ],
+ "test/bad_dtls_test" =>
+ [
+ "test/bad_dtls_test.o",
+ ],
+ "test/bad_dtls_test.o" =>
+ [
+ "test/bad_dtls_test.c",
+ ],
+ "test/bftest" =>
+ [
+ "test/bftest.o",
+ ],
+ "test/bftest.o" =>
+ [
+ "test/bftest.c",
+ ],
+ "test/bio_callback_test" =>
+ [
+ "test/bio_callback_test.o",
+ ],
+ "test/bio_callback_test.o" =>
+ [
+ "test/bio_callback_test.c",
+ ],
+ "test/bio_enc_test" =>
+ [
+ "test/bio_enc_test.o",
+ ],
+ "test/bio_enc_test.o" =>
+ [
+ "test/bio_enc_test.c",
+ ],
+ "test/bio_memleak_test" =>
+ [
+ "test/bio_memleak_test.o",
+ ],
+ "test/bio_memleak_test.o" =>
+ [
+ "test/bio_memleak_test.c",
+ ],
+ "test/bioprinttest" =>
+ [
+ "test/bioprinttest.o",
+ ],
+ "test/bioprinttest.o" =>
+ [
+ "test/bioprinttest.c",
+ ],
+ "test/bntest" =>
+ [
+ "test/bntest.o",
+ ],
+ "test/bntest.o" =>
+ [
+ "test/bntest.c",
+ ],
+ "test/buildtest_aes.o" =>
+ [
+ "test/buildtest_aes.c",
+ ],
+ "test/buildtest_asn1.o" =>
+ [
+ "test/buildtest_asn1.c",
+ ],
+ "test/buildtest_asn1t.o" =>
+ [
+ "test/buildtest_asn1t.c",
+ ],
+ "test/buildtest_async.o" =>
+ [
+ "test/buildtest_async.c",
+ ],
+ "test/buildtest_bio.o" =>
+ [
+ "test/buildtest_bio.c",
+ ],
+ "test/buildtest_blowfish.o" =>
+ [
+ "test/buildtest_blowfish.c",
+ ],
+ "test/buildtest_bn.o" =>
+ [
+ "test/buildtest_bn.c",
+ ],
+ "test/buildtest_buffer.o" =>
+ [
+ "test/buildtest_buffer.c",
+ ],
+ "test/buildtest_c_aes" =>
+ [
+ "test/buildtest_aes.o",
+ ],
+ "test/buildtest_c_asn1" =>
+ [
+ "test/buildtest_asn1.o",
+ ],
+ "test/buildtest_c_asn1t" =>
+ [
+ "test/buildtest_asn1t.o",
+ ],
+ "test/buildtest_c_async" =>
+ [
+ "test/buildtest_async.o",
+ ],
+ "test/buildtest_c_bio" =>
+ [
+ "test/buildtest_bio.o",
+ ],
+ "test/buildtest_c_blowfish" =>
+ [
+ "test/buildtest_blowfish.o",
+ ],
+ "test/buildtest_c_bn" =>
+ [
+ "test/buildtest_bn.o",
+ ],
+ "test/buildtest_c_buffer" =>
+ [
+ "test/buildtest_buffer.o",
+ ],
+ "test/buildtest_c_camellia" =>
+ [
+ "test/buildtest_camellia.o",
+ ],
+ "test/buildtest_c_cast" =>
+ [
+ "test/buildtest_cast.o",
+ ],
+ "test/buildtest_c_cmac" =>
+ [
+ "test/buildtest_cmac.o",
+ ],
+ "test/buildtest_c_cms" =>
+ [
+ "test/buildtest_cms.o",
+ ],
+ "test/buildtest_c_conf" =>
+ [
+ "test/buildtest_conf.o",
+ ],
+ "test/buildtest_c_conf_api" =>
+ [
+ "test/buildtest_conf_api.o",
+ ],
+ "test/buildtest_c_crypto" =>
+ [
+ "test/buildtest_crypto.o",
+ ],
+ "test/buildtest_c_ct" =>
+ [
+ "test/buildtest_ct.o",
+ ],
+ "test/buildtest_c_des" =>
+ [
+ "test/buildtest_des.o",
+ ],
+ "test/buildtest_c_dh" =>
+ [
+ "test/buildtest_dh.o",
+ ],
+ "test/buildtest_c_dsa" =>
+ [
+ "test/buildtest_dsa.o",
+ ],
+ "test/buildtest_c_dtls1" =>
+ [
+ "test/buildtest_dtls1.o",
+ ],
+ "test/buildtest_c_e_os2" =>
+ [
+ "test/buildtest_e_os2.o",
+ ],
+ "test/buildtest_c_ebcdic" =>
+ [
+ "test/buildtest_ebcdic.o",
+ ],
+ "test/buildtest_c_ec" =>
+ [
+ "test/buildtest_ec.o",
+ ],
+ "test/buildtest_c_ecdh" =>
+ [
+ "test/buildtest_ecdh.o",
+ ],
+ "test/buildtest_c_ecdsa" =>
+ [
+ "test/buildtest_ecdsa.o",
+ ],
+ "test/buildtest_c_engine" =>
+ [
+ "test/buildtest_engine.o",
+ ],
+ "test/buildtest_c_evp" =>
+ [
+ "test/buildtest_evp.o",
+ ],
+ "test/buildtest_c_hmac" =>
+ [
+ "test/buildtest_hmac.o",
+ ],
+ "test/buildtest_c_idea" =>
+ [
+ "test/buildtest_idea.o",
+ ],
+ "test/buildtest_c_kdf" =>
+ [
+ "test/buildtest_kdf.o",
+ ],
+ "test/buildtest_c_lhash" =>
+ [
+ "test/buildtest_lhash.o",
+ ],
+ "test/buildtest_c_md4" =>
+ [
+ "test/buildtest_md4.o",
+ ],
+ "test/buildtest_c_md5" =>
+ [
+ "test/buildtest_md5.o",
+ ],
+ "test/buildtest_c_mdc2" =>
+ [
+ "test/buildtest_mdc2.o",
+ ],
+ "test/buildtest_c_modes" =>
+ [
+ "test/buildtest_modes.o",
+ ],
+ "test/buildtest_c_obj_mac" =>
+ [
+ "test/buildtest_obj_mac.o",
+ ],
+ "test/buildtest_c_objects" =>
+ [
+ "test/buildtest_objects.o",
+ ],
+ "test/buildtest_c_ocsp" =>
+ [
+ "test/buildtest_ocsp.o",
+ ],
+ "test/buildtest_c_opensslv" =>
+ [
+ "test/buildtest_opensslv.o",
+ ],
+ "test/buildtest_c_ossl_typ" =>
+ [
+ "test/buildtest_ossl_typ.o",
+ ],
+ "test/buildtest_c_pem" =>
+ [
+ "test/buildtest_pem.o",
+ ],
+ "test/buildtest_c_pem2" =>
+ [
+ "test/buildtest_pem2.o",
+ ],
+ "test/buildtest_c_pkcs12" =>
+ [
+ "test/buildtest_pkcs12.o",
+ ],
+ "test/buildtest_c_pkcs7" =>
+ [
+ "test/buildtest_pkcs7.o",
+ ],
+ "test/buildtest_c_rand" =>
+ [
+ "test/buildtest_rand.o",
+ ],
+ "test/buildtest_c_rand_drbg" =>
+ [
+ "test/buildtest_rand_drbg.o",
+ ],
+ "test/buildtest_c_rc2" =>
+ [
+ "test/buildtest_rc2.o",
+ ],
+ "test/buildtest_c_rc4" =>
+ [
+ "test/buildtest_rc4.o",
+ ],
+ "test/buildtest_c_ripemd" =>
+ [
+ "test/buildtest_ripemd.o",
+ ],
+ "test/buildtest_c_rsa" =>
+ [
+ "test/buildtest_rsa.o",
+ ],
+ "test/buildtest_c_safestack" =>
+ [
+ "test/buildtest_safestack.o",
+ ],
+ "test/buildtest_c_seed" =>
+ [
+ "test/buildtest_seed.o",
+ ],
+ "test/buildtest_c_sha" =>
+ [
+ "test/buildtest_sha.o",
+ ],
+ "test/buildtest_c_srp" =>
+ [
+ "test/buildtest_srp.o",
+ ],
+ "test/buildtest_c_srtp" =>
+ [
+ "test/buildtest_srtp.o",
+ ],
+ "test/buildtest_c_ssl" =>
+ [
+ "test/buildtest_ssl.o",
+ ],
+ "test/buildtest_c_ssl2" =>
+ [
+ "test/buildtest_ssl2.o",
+ ],
+ "test/buildtest_c_stack" =>
+ [
+ "test/buildtest_stack.o",
+ ],
+ "test/buildtest_c_store" =>
+ [
+ "test/buildtest_store.o",
+ ],
+ "test/buildtest_c_symhacks" =>
+ [
+ "test/buildtest_symhacks.o",
+ ],
+ "test/buildtest_c_tls1" =>
+ [
+ "test/buildtest_tls1.o",
+ ],
+ "test/buildtest_c_ts" =>
+ [
+ "test/buildtest_ts.o",
+ ],
+ "test/buildtest_c_txt_db" =>
+ [
+ "test/buildtest_txt_db.o",
+ ],
+ "test/buildtest_c_ui" =>
+ [
+ "test/buildtest_ui.o",
+ ],
+ "test/buildtest_c_whrlpool" =>
+ [
+ "test/buildtest_whrlpool.o",
+ ],
+ "test/buildtest_c_x509" =>
+ [
+ "test/buildtest_x509.o",
+ ],
+ "test/buildtest_c_x509_vfy" =>
+ [
+ "test/buildtest_x509_vfy.o",
+ ],
+ "test/buildtest_c_x509v3" =>
+ [
+ "test/buildtest_x509v3.o",
+ ],
+ "test/buildtest_camellia.o" =>
+ [
+ "test/buildtest_camellia.c",
+ ],
+ "test/buildtest_cast.o" =>
+ [
+ "test/buildtest_cast.c",
+ ],
+ "test/buildtest_cmac.o" =>
+ [
+ "test/buildtest_cmac.c",
+ ],
+ "test/buildtest_cms.o" =>
+ [
+ "test/buildtest_cms.c",
+ ],
+ "test/buildtest_conf.o" =>
+ [
+ "test/buildtest_conf.c",
+ ],
+ "test/buildtest_conf_api.o" =>
+ [
+ "test/buildtest_conf_api.c",
+ ],
+ "test/buildtest_crypto.o" =>
+ [
+ "test/buildtest_crypto.c",
+ ],
+ "test/buildtest_ct.o" =>
+ [
+ "test/buildtest_ct.c",
+ ],
+ "test/buildtest_des.o" =>
+ [
+ "test/buildtest_des.c",
+ ],
+ "test/buildtest_dh.o" =>
+ [
+ "test/buildtest_dh.c",
+ ],
+ "test/buildtest_dsa.o" =>
+ [
+ "test/buildtest_dsa.c",
+ ],
+ "test/buildtest_dtls1.o" =>
+ [
+ "test/buildtest_dtls1.c",
+ ],
+ "test/buildtest_e_os2.o" =>
+ [
+ "test/buildtest_e_os2.c",
+ ],
+ "test/buildtest_ebcdic.o" =>
+ [
+ "test/buildtest_ebcdic.c",
+ ],
+ "test/buildtest_ec.o" =>
+ [
+ "test/buildtest_ec.c",
+ ],
+ "test/buildtest_ecdh.o" =>
+ [
+ "test/buildtest_ecdh.c",
+ ],
+ "test/buildtest_ecdsa.o" =>
+ [
+ "test/buildtest_ecdsa.c",
+ ],
+ "test/buildtest_engine.o" =>
+ [
+ "test/buildtest_engine.c",
+ ],
+ "test/buildtest_evp.o" =>
+ [
+ "test/buildtest_evp.c",
+ ],
+ "test/buildtest_hmac.o" =>
+ [
+ "test/buildtest_hmac.c",
+ ],
+ "test/buildtest_idea.o" =>
+ [
+ "test/buildtest_idea.c",
+ ],
+ "test/buildtest_kdf.o" =>
+ [
+ "test/buildtest_kdf.c",
+ ],
+ "test/buildtest_lhash.o" =>
+ [
+ "test/buildtest_lhash.c",
+ ],
+ "test/buildtest_md4.o" =>
+ [
+ "test/buildtest_md4.c",
+ ],
+ "test/buildtest_md5.o" =>
+ [
+ "test/buildtest_md5.c",
+ ],
+ "test/buildtest_mdc2.o" =>
+ [
+ "test/buildtest_mdc2.c",
+ ],
+ "test/buildtest_modes.o" =>
+ [
+ "test/buildtest_modes.c",
+ ],
+ "test/buildtest_obj_mac.o" =>
+ [
+ "test/buildtest_obj_mac.c",
+ ],
+ "test/buildtest_objects.o" =>
+ [
+ "test/buildtest_objects.c",
+ ],
+ "test/buildtest_ocsp.o" =>
+ [
+ "test/buildtest_ocsp.c",
+ ],
+ "test/buildtest_opensslv.o" =>
+ [
+ "test/buildtest_opensslv.c",
+ ],
+ "test/buildtest_ossl_typ.o" =>
+ [
+ "test/buildtest_ossl_typ.c",
+ ],
+ "test/buildtest_pem.o" =>
+ [
+ "test/buildtest_pem.c",
+ ],
+ "test/buildtest_pem2.o" =>
+ [
+ "test/buildtest_pem2.c",
+ ],
+ "test/buildtest_pkcs12.o" =>
+ [
+ "test/buildtest_pkcs12.c",
+ ],
+ "test/buildtest_pkcs7.o" =>
+ [
+ "test/buildtest_pkcs7.c",
+ ],
+ "test/buildtest_rand.o" =>
+ [
+ "test/buildtest_rand.c",
+ ],
+ "test/buildtest_rand_drbg.o" =>
+ [
+ "test/buildtest_rand_drbg.c",
+ ],
+ "test/buildtest_rc2.o" =>
+ [
+ "test/buildtest_rc2.c",
+ ],
+ "test/buildtest_rc4.o" =>
+ [
+ "test/buildtest_rc4.c",
+ ],
+ "test/buildtest_ripemd.o" =>
+ [
+ "test/buildtest_ripemd.c",
+ ],
+ "test/buildtest_rsa.o" =>
+ [
+ "test/buildtest_rsa.c",
+ ],
+ "test/buildtest_safestack.o" =>
+ [
+ "test/buildtest_safestack.c",
+ ],
+ "test/buildtest_seed.o" =>
+ [
+ "test/buildtest_seed.c",
+ ],
+ "test/buildtest_sha.o" =>
+ [
+ "test/buildtest_sha.c",
+ ],
+ "test/buildtest_srp.o" =>
+ [
+ "test/buildtest_srp.c",
+ ],
+ "test/buildtest_srtp.o" =>
+ [
+ "test/buildtest_srtp.c",
+ ],
+ "test/buildtest_ssl.o" =>
+ [
+ "test/buildtest_ssl.c",
+ ],
+ "test/buildtest_ssl2.o" =>
+ [
+ "test/buildtest_ssl2.c",
+ ],
+ "test/buildtest_stack.o" =>
+ [
+ "test/buildtest_stack.c",
+ ],
+ "test/buildtest_store.o" =>
+ [
+ "test/buildtest_store.c",
+ ],
+ "test/buildtest_symhacks.o" =>
+ [
+ "test/buildtest_symhacks.c",
+ ],
+ "test/buildtest_tls1.o" =>
+ [
+ "test/buildtest_tls1.c",
+ ],
+ "test/buildtest_ts.o" =>
+ [
+ "test/buildtest_ts.c",
+ ],
+ "test/buildtest_txt_db.o" =>
+ [
+ "test/buildtest_txt_db.c",
+ ],
+ "test/buildtest_ui.o" =>
+ [
+ "test/buildtest_ui.c",
+ ],
+ "test/buildtest_whrlpool.o" =>
+ [
+ "test/buildtest_whrlpool.c",
+ ],
+ "test/buildtest_x509.o" =>
+ [
+ "test/buildtest_x509.c",
+ ],
+ "test/buildtest_x509_vfy.o" =>
+ [
+ "test/buildtest_x509_vfy.c",
+ ],
+ "test/buildtest_x509v3.o" =>
+ [
+ "test/buildtest_x509v3.c",
+ ],
+ "test/casttest" =>
+ [
+ "test/casttest.o",
+ ],
+ "test/casttest.o" =>
+ [
+ "test/casttest.c",
+ ],
+ "test/chacha_internal_test" =>
+ [
+ "test/chacha_internal_test.o",
+ ],
+ "test/chacha_internal_test.o" =>
+ [
+ "test/chacha_internal_test.c",
+ ],
+ "test/cipher_overhead_test" =>
+ [
+ "test/cipher_overhead_test.o",
+ ],
+ "test/cipher_overhead_test.o" =>
+ [
+ "test/cipher_overhead_test.c",
+ ],
+ "test/cipherbytes_test" =>
+ [
+ "test/cipherbytes_test.o",
+ ],
+ "test/cipherbytes_test.o" =>
+ [
+ "test/cipherbytes_test.c",
+ ],
+ "test/cipherlist_test" =>
+ [
+ "test/cipherlist_test.o",
+ ],
+ "test/cipherlist_test.o" =>
+ [
+ "test/cipherlist_test.c",
+ ],
+ "test/ciphername_test" =>
+ [
+ "test/ciphername_test.o",
+ ],
+ "test/ciphername_test.o" =>
+ [
+ "test/ciphername_test.c",
+ ],
+ "test/clienthellotest" =>
+ [
+ "test/clienthellotest.o",
+ ],
+ "test/clienthellotest.o" =>
+ [
+ "test/clienthellotest.c",
+ ],
+ "test/cmsapitest" =>
+ [
+ "test/cmsapitest.o",
+ ],
+ "test/cmsapitest.o" =>
+ [
+ "test/cmsapitest.c",
+ ],
+ "test/conf_include_test" =>
+ [
+ "test/conf_include_test.o",
+ ],
+ "test/conf_include_test.o" =>
+ [
+ "test/conf_include_test.c",
+ ],
+ "test/constant_time_test" =>
+ [
+ "test/constant_time_test.o",
+ ],
+ "test/constant_time_test.o" =>
+ [
+ "test/constant_time_test.c",
+ ],
+ "test/crltest" =>
+ [
+ "test/crltest.o",
+ ],
+ "test/crltest.o" =>
+ [
+ "test/crltest.c",
+ ],
+ "test/ct_test" =>
+ [
+ "test/ct_test.o",
+ ],
+ "test/ct_test.o" =>
+ [
+ "test/ct_test.c",
+ ],
+ "test/ctype_internal_test" =>
+ [
+ "test/ctype_internal_test.o",
+ ],
+ "test/ctype_internal_test.o" =>
+ [
+ "test/ctype_internal_test.c",
+ ],
+ "test/curve448_internal_test" =>
+ [
+ "test/curve448_internal_test.o",
+ ],
+ "test/curve448_internal_test.o" =>
+ [
+ "test/curve448_internal_test.c",
+ ],
+ "test/d2i_test" =>
+ [
+ "test/d2i_test.o",
+ ],
+ "test/d2i_test.o" =>
+ [
+ "test/d2i_test.c",
+ ],
+ "test/danetest" =>
+ [
+ "test/danetest.o",
+ ],
+ "test/danetest.o" =>
+ [
+ "test/danetest.c",
+ ],
+ "test/destest" =>
+ [
+ "test/destest.o",
+ ],
+ "test/destest.o" =>
+ [
+ "test/destest.c",
+ ],
+ "test/dhtest" =>
+ [
+ "test/dhtest.o",
+ ],
+ "test/dhtest.o" =>
+ [
+ "test/dhtest.c",
+ ],
+ "test/drbg_cavs_data.o" =>
+ [
+ "test/drbg_cavs_data.c",
+ ],
+ "test/drbg_cavs_test" =>
+ [
+ "test/drbg_cavs_data.o",
+ "test/drbg_cavs_test.o",
+ ],
+ "test/drbg_cavs_test.o" =>
+ [
+ "test/drbg_cavs_test.c",
+ ],
+ "test/drbgtest" =>
+ [
+ "test/drbgtest.o",
+ ],
+ "test/drbgtest.o" =>
+ [
+ "test/drbgtest.c",
+ ],
+ "test/dsa_no_digest_size_test" =>
+ [
+ "test/dsa_no_digest_size_test.o",
+ ],
+ "test/dsa_no_digest_size_test.o" =>
+ [
+ "test/dsa_no_digest_size_test.c",
+ ],
+ "test/dsatest" =>
+ [
+ "test/dsatest.o",
+ ],
+ "test/dsatest.o" =>
+ [
+ "test/dsatest.c",
+ ],
+ "test/dtls_mtu_test" =>
+ [
+ "test/dtls_mtu_test.o",
+ "test/ssltestlib.o",
+ ],
+ "test/dtls_mtu_test.o" =>
+ [
+ "test/dtls_mtu_test.c",
+ ],
+ "test/dtlstest" =>
+ [
+ "test/dtlstest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/dtlstest.o" =>
+ [
+ "test/dtlstest.c",
+ ],
+ "test/dtlsv1listentest" =>
+ [
+ "test/dtlsv1listentest.o",
+ ],
+ "test/dtlsv1listentest.o" =>
+ [
+ "test/dtlsv1listentest.c",
+ ],
+ "test/ec_internal_test" =>
+ [
+ "test/ec_internal_test.o",
+ ],
+ "test/ec_internal_test.o" =>
+ [
+ "test/ec_internal_test.c",
+ ],
+ "test/ecdsatest" =>
+ [
+ "test/ecdsatest.o",
+ ],
+ "test/ecdsatest.o" =>
+ [
+ "test/ecdsatest.c",
+ ],
+ "test/ecstresstest" =>
+ [
+ "test/ecstresstest.o",
+ ],
+ "test/ecstresstest.o" =>
+ [
+ "test/ecstresstest.c",
+ ],
+ "test/ectest" =>
+ [
+ "test/ectest.o",
+ ],
+ "test/ectest.o" =>
+ [
+ "test/ectest.c",
+ ],
+ "test/enginetest" =>
+ [
+ "test/enginetest.o",
+ ],
+ "test/enginetest.o" =>
+ [
+ "test/enginetest.c",
+ ],
+ "test/errtest" =>
+ [
+ "test/errtest.o",
+ ],
+ "test/errtest.o" =>
+ [
+ "test/errtest.c",
+ ],
+ "test/evp_extra_test" =>
+ [
+ "test/evp_extra_test.o",
+ ],
+ "test/evp_extra_test.o" =>
+ [
+ "test/evp_extra_test.c",
+ ],
+ "test/evp_test" =>
+ [
+ "test/evp_test.o",
+ ],
+ "test/evp_test.o" =>
+ [
+ "test/evp_test.c",
+ ],
+ "test/exdatatest" =>
+ [
+ "test/exdatatest.o",
+ ],
+ "test/exdatatest.o" =>
+ [
+ "test/exdatatest.c",
+ ],
+ "test/exptest" =>
+ [
+ "test/exptest.o",
+ ],
+ "test/exptest.o" =>
+ [
+ "test/exptest.c",
+ ],
+ "test/fatalerrtest" =>
+ [
+ "test/fatalerrtest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/fatalerrtest.o" =>
+ [
+ "test/fatalerrtest.c",
+ ],
+ "test/gmdifftest" =>
+ [
+ "test/gmdifftest.o",
+ ],
+ "test/gmdifftest.o" =>
+ [
+ "test/gmdifftest.c",
+ ],
+ "test/gosttest" =>
+ [
+ "test/gosttest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/gosttest.o" =>
+ [
+ "test/gosttest.c",
+ ],
+ "test/handshake_helper.o" =>
+ [
+ "test/handshake_helper.c",
+ ],
+ "test/hmactest" =>
+ [
+ "test/hmactest.o",
+ ],
+ "test/hmactest.o" =>
+ [
+ "test/hmactest.c",
+ ],
+ "test/ideatest" =>
+ [
+ "test/ideatest.o",
+ ],
+ "test/ideatest.o" =>
+ [
+ "test/ideatest.c",
+ ],
+ "test/igetest" =>
+ [
+ "test/igetest.o",
+ ],
+ "test/igetest.o" =>
+ [
+ "test/igetest.c",
+ ],
+ "test/lhash_test" =>
+ [
+ "test/lhash_test.o",
+ ],
+ "test/lhash_test.o" =>
+ [
+ "test/lhash_test.c",
+ ],
+ "test/libtestutil.a" =>
+ [
+ "test/testutil/basic_output.o",
+ "test/testutil/cb.o",
+ "test/testutil/driver.o",
+ "test/testutil/format_output.o",
+ "test/testutil/init.o",
+ "test/testutil/main.o",
+ "test/testutil/output_helpers.o",
+ "test/testutil/random.o",
+ "test/testutil/stanza.o",
+ "test/testutil/tap_bio.o",
+ "test/testutil/test_cleanup.o",
+ "test/testutil/tests.o",
+ ],
+ "test/md2test" =>
+ [
+ "test/md2test.o",
+ ],
+ "test/md2test.o" =>
+ [
+ "test/md2test.c",
+ ],
+ "test/mdc2_internal_test" =>
+ [
+ "test/mdc2_internal_test.o",
+ ],
+ "test/mdc2_internal_test.o" =>
+ [
+ "test/mdc2_internal_test.c",
+ ],
+ "test/mdc2test" =>
+ [
+ "test/mdc2test.o",
+ ],
+ "test/mdc2test.o" =>
+ [
+ "test/mdc2test.c",
+ ],
+ "test/memleaktest" =>
+ [
+ "test/memleaktest.o",
+ ],
+ "test/memleaktest.o" =>
+ [
+ "test/memleaktest.c",
+ ],
+ "test/modes_internal_test" =>
+ [
+ "test/modes_internal_test.o",
+ ],
+ "test/modes_internal_test.o" =>
+ [
+ "test/modes_internal_test.c",
+ ],
+ "test/ocspapitest" =>
+ [
+ "test/ocspapitest.o",
+ ],
+ "test/ocspapitest.o" =>
+ [
+ "test/ocspapitest.c",
+ ],
+ "test/packettest" =>
+ [
+ "test/packettest.o",
+ ],
+ "test/packettest.o" =>
+ [
+ "test/packettest.c",
+ ],
+ "test/pbelutest" =>
+ [
+ "test/pbelutest.o",
+ ],
+ "test/pbelutest.o" =>
+ [
+ "test/pbelutest.c",
+ ],
+ "test/pemtest" =>
+ [
+ "test/pemtest.o",
+ ],
+ "test/pemtest.o" =>
+ [
+ "test/pemtest.c",
+ ],
+ "test/pkey_meth_kdf_test" =>
+ [
+ "test/pkey_meth_kdf_test.o",
+ ],
+ "test/pkey_meth_kdf_test.o" =>
+ [
+ "test/pkey_meth_kdf_test.c",
+ ],
+ "test/pkey_meth_test" =>
+ [
+ "test/pkey_meth_test.o",
+ ],
+ "test/pkey_meth_test.o" =>
+ [
+ "test/pkey_meth_test.c",
+ ],
+ "test/poly1305_internal_test" =>
+ [
+ "test/poly1305_internal_test.o",
+ ],
+ "test/poly1305_internal_test.o" =>
+ [
+ "test/poly1305_internal_test.c",
+ ],
+ "test/rc2test" =>
+ [
+ "test/rc2test.o",
+ ],
+ "test/rc2test.o" =>
+ [
+ "test/rc2test.c",
+ ],
+ "test/rc4test" =>
+ [
+ "test/rc4test.o",
+ ],
+ "test/rc4test.o" =>
+ [
+ "test/rc4test.c",
+ ],
+ "test/rc5test" =>
+ [
+ "test/rc5test.o",
+ ],
+ "test/rc5test.o" =>
+ [
+ "test/rc5test.c",
+ ],
+ "test/rdrand_sanitytest" =>
+ [
+ "test/rdrand_sanitytest.o",
+ ],
+ "test/rdrand_sanitytest.o" =>
+ [
+ "test/rdrand_sanitytest.c",
+ ],
+ "test/recordlentest" =>
+ [
+ "test/recordlentest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/recordlentest.o" =>
+ [
+ "test/recordlentest.c",
+ ],
+ "test/rsa_complex" =>
+ [
+ "test/rsa_complex.o",
+ ],
+ "test/rsa_complex.o" =>
+ [
+ "test/rsa_complex.c",
+ ],
+ "test/rsa_mp_test" =>
+ [
+ "test/rsa_mp_test.o",
+ ],
+ "test/rsa_mp_test.o" =>
+ [
+ "test/rsa_mp_test.c",
+ ],
+ "test/rsa_test" =>
+ [
+ "test/rsa_test.o",
+ ],
+ "test/rsa_test.o" =>
+ [
+ "test/rsa_test.c",
+ ],
+ "test/sanitytest" =>
+ [
+ "test/sanitytest.o",
+ ],
+ "test/sanitytest.o" =>
+ [
+ "test/sanitytest.c",
+ ],
+ "test/secmemtest" =>
+ [
+ "test/secmemtest.o",
+ ],
+ "test/secmemtest.o" =>
+ [
+ "test/secmemtest.c",
+ ],
+ "test/servername_test" =>
+ [
+ "test/servername_test.o",
+ "test/ssltestlib.o",
+ ],
+ "test/servername_test.o" =>
+ [
+ "test/servername_test.c",
+ ],
+ "test/siphash_internal_test" =>
+ [
+ "test/siphash_internal_test.o",
+ ],
+ "test/siphash_internal_test.o" =>
+ [
+ "test/siphash_internal_test.c",
+ ],
+ "test/sm2_internal_test" =>
+ [
+ "test/sm2_internal_test.o",
+ ],
+ "test/sm2_internal_test.o" =>
+ [
+ "test/sm2_internal_test.c",
+ ],
+ "test/sm4_internal_test" =>
+ [
+ "test/sm4_internal_test.o",
+ ],
+ "test/sm4_internal_test.o" =>
+ [
+ "test/sm4_internal_test.c",
+ ],
+ "test/srptest" =>
+ [
+ "test/srptest.o",
+ ],
+ "test/srptest.o" =>
+ [
+ "test/srptest.c",
+ ],
+ "test/ssl_cert_table_internal_test" =>
+ [
+ "test/ssl_cert_table_internal_test.o",
+ ],
+ "test/ssl_cert_table_internal_test.o" =>
+ [
+ "test/ssl_cert_table_internal_test.c",
+ ],
+ "test/ssl_test" =>
+ [
+ "test/handshake_helper.o",
+ "test/ssl_test.o",
+ "test/ssl_test_ctx.o",
+ ],
+ "test/ssl_test.o" =>
+ [
+ "test/ssl_test.c",
+ ],
+ "test/ssl_test_ctx.o" =>
+ [
+ "test/ssl_test_ctx.c",
+ ],
+ "test/ssl_test_ctx_test" =>
+ [
+ "test/ssl_test_ctx.o",
+ "test/ssl_test_ctx_test.o",
+ ],
+ "test/ssl_test_ctx_test.o" =>
+ [
+ "test/ssl_test_ctx_test.c",
+ ],
+ "test/sslapitest" =>
+ [
+ "test/sslapitest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/sslapitest.o" =>
+ [
+ "test/sslapitest.c",
+ ],
+ "test/sslbuffertest" =>
+ [
+ "test/sslbuffertest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/sslbuffertest.o" =>
+ [
+ "test/sslbuffertest.c",
+ ],
+ "test/sslcorrupttest" =>
+ [
+ "test/sslcorrupttest.o",
+ "test/ssltestlib.o",
+ ],
+ "test/sslcorrupttest.o" =>
+ [
+ "test/sslcorrupttest.c",
+ ],
+ "test/ssltest_old" =>
+ [
+ "test/ssltest_old.o",
+ ],
+ "test/ssltest_old.o" =>
+ [
+ "test/ssltest_old.c",
+ ],
+ "test/ssltestlib.o" =>
+ [
+ "test/ssltestlib.c",
+ ],
+ "test/stack_test" =>
+ [
+ "test/stack_test.o",
+ ],
+ "test/stack_test.o" =>
+ [
+ "test/stack_test.c",
+ ],
+ "test/sysdefaulttest" =>
+ [
+ "test/sysdefaulttest.o",
+ ],
+ "test/sysdefaulttest.o" =>
+ [
+ "test/sysdefaulttest.c",
+ ],
+ "test/test_test" =>
+ [
+ "test/test_test.o",
+ ],
+ "test/test_test.o" =>
+ [
+ "test/test_test.c",
+ ],
+ "test/testutil/basic_output.o" =>
+ [
+ "test/testutil/basic_output.c",
+ ],
+ "test/testutil/cb.o" =>
+ [
+ "test/testutil/cb.c",
+ ],
+ "test/testutil/driver.o" =>
+ [
+ "test/testutil/driver.c",
+ ],
+ "test/testutil/format_output.o" =>
+ [
+ "test/testutil/format_output.c",
+ ],
+ "test/testutil/init.o" =>
+ [
+ "test/testutil/init.c",
+ ],
+ "test/testutil/main.o" =>
+ [
+ "test/testutil/main.c",
+ ],
+ "test/testutil/output_helpers.o" =>
+ [
+ "test/testutil/output_helpers.c",
+ ],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
+ "test/testutil/stanza.o" =>
+ [
+ "test/testutil/stanza.c",
+ ],
+ "test/testutil/tap_bio.o" =>
+ [
+ "test/testutil/tap_bio.c",
+ ],
+ "test/testutil/test_cleanup.o" =>
+ [
+ "test/testutil/test_cleanup.c",
+ ],
+ "test/testutil/tests.o" =>
+ [
+ "test/testutil/tests.c",
+ ],
+ "test/threadstest" =>
+ [
+ "test/threadstest.o",
+ ],
+ "test/threadstest.o" =>
+ [
+ "test/threadstest.c",
+ ],
+ "test/time_offset_test" =>
+ [
+ "test/time_offset_test.o",
+ ],
+ "test/time_offset_test.o" =>
+ [
+ "test/time_offset_test.c",
+ ],
+ "test/tls13ccstest" =>
+ [
+ "test/ssltestlib.o",
+ "test/tls13ccstest.o",
+ ],
+ "test/tls13ccstest.o" =>
+ [
+ "test/tls13ccstest.c",
+ ],
+ "test/tls13encryptiontest" =>
+ [
+ "test/tls13encryptiontest.o",
+ ],
+ "test/tls13encryptiontest.o" =>
+ [
+ "test/tls13encryptiontest.c",
+ ],
+ "test/uitest" =>
+ [
+ "test/uitest.o",
+ ],
+ "test/uitest.o" =>
+ [
+ "test/uitest.c",
+ ],
+ "test/v3ext" =>
+ [
+ "test/v3ext.o",
+ ],
+ "test/v3ext.o" =>
+ [
+ "test/v3ext.c",
+ ],
+ "test/v3nametest" =>
+ [
+ "test/v3nametest.o",
+ ],
+ "test/v3nametest.o" =>
+ [
+ "test/v3nametest.c",
+ ],
+ "test/verify_extra_test" =>
+ [
+ "test/verify_extra_test.o",
+ ],
+ "test/verify_extra_test.o" =>
+ [
+ "test/verify_extra_test.c",
+ ],
+ "test/versions" =>
+ [
+ "test/versions.o",
+ ],
+ "test/versions.o" =>
+ [
+ "test/versions.c",
+ ],
+ "test/wpackettest" =>
+ [
+ "test/wpackettest.o",
+ ],
+ "test/wpackettest.o" =>
+ [
+ "test/wpackettest.c",
+ ],
+ "test/x509_check_cert_pkey_test" =>
+ [
+ "test/x509_check_cert_pkey_test.o",
+ ],
+ "test/x509_check_cert_pkey_test.o" =>
+ [
+ "test/x509_check_cert_pkey_test.c",
+ ],
+ "test/x509_dup_cert_test" =>
+ [
+ "test/x509_dup_cert_test.o",
+ ],
+ "test/x509_dup_cert_test.o" =>
+ [
+ "test/x509_dup_cert_test.c",
+ ],
+ "test/x509_internal_test" =>
+ [
+ "test/x509_internal_test.o",
+ ],
+ "test/x509_internal_test.o" =>
+ [
+ "test/x509_internal_test.c",
+ ],
+ "test/x509_time_test" =>
+ [
+ "test/x509_time_test.o",
+ ],
+ "test/x509_time_test.o" =>
+ [
+ "test/x509_time_test.c",
+ ],
+ "test/x509aux" =>
+ [
+ "test/x509aux.o",
+ ],
+ "test/x509aux.o" =>
+ [
+ "test/x509aux.c",
+ ],
+ "tools/c_rehash" =>
+ [
+ "tools/c_rehash.in",
+ ],
+ "util/shlib_wrap.sh" =>
+ [
+ "util/shlib_wrap.sh.in",
+ ],
+ },
+);
+
+# The following data is only used when this files is use as a script
+my @makevars = (
+ 'AR',
+ 'ARFLAGS',
+ 'AS',
+ 'ASFLAGS',
+ 'CC',
+ 'CFLAGS',
+ 'CPP',
+ 'CPPDEFINES',
+ 'CPPFLAGS',
+ 'CPPINCLUDES',
+ 'CROSS_COMPILE',
+ 'CXX',
+ 'CXXFLAGS',
+ 'HASHBANGPERL',
+ 'LD',
+ 'LDFLAGS',
+ 'LDLIBS',
+ 'MT',
+ 'MTFLAGS',
+ 'PERL',
+ 'RANLIB',
+ 'RC',
+ 'RCFLAGS',
+ 'RM',
+);
+my %disabled_info = (
+ 'afalgeng' => {
+ macro => 'OPENSSL_NO_AFALGENG',
+ },
+ 'asan' => {
+ macro => 'OPENSSL_NO_ASAN',
+ },
+ 'comp' => {
+ macro => 'OPENSSL_NO_COMP',
+ skipped => [ 'crypto/comp' ],
+ },
+ 'crypto-mdebug' => {
+ macro => 'OPENSSL_NO_CRYPTO_MDEBUG',
+ },
+ 'crypto-mdebug-backtrace' => {
+ macro => 'OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE',
+ },
+ 'devcryptoeng' => {
+ macro => 'OPENSSL_NO_DEVCRYPTOENG',
+ },
+ 'ec_nistp_64_gcc_128' => {
+ macro => 'OPENSSL_NO_EC_NISTP_64_GCC_128',
+ },
+ 'egd' => {
+ macro => 'OPENSSL_NO_EGD',
+ },
+ 'external-tests' => {
+ macro => 'OPENSSL_NO_EXTERNAL_TESTS',
+ },
+ 'fuzz-afl' => {
+ macro => 'OPENSSL_NO_FUZZ_AFL',
+ },
+ 'fuzz-libfuzzer' => {
+ macro => 'OPENSSL_NO_FUZZ_LIBFUZZER',
+ },
+ 'heartbeats' => {
+ macro => 'OPENSSL_NO_HEARTBEATS',
+ },
+ 'md2' => {
+ macro => 'OPENSSL_NO_MD2',
+ skipped => [ 'crypto/md2' ],
+ },
+ 'msan' => {
+ macro => 'OPENSSL_NO_MSAN',
+ },
+ 'rc5' => {
+ macro => 'OPENSSL_NO_RC5',
+ skipped => [ 'crypto/rc5' ],
+ },
+ 'sctp' => {
+ macro => 'OPENSSL_NO_SCTP',
+ },
+ 'ssl3' => {
+ macro => 'OPENSSL_NO_SSL3',
+ },
+ 'ssl3-method' => {
+ macro => 'OPENSSL_NO_SSL3_METHOD',
+ },
+ 'ubsan' => {
+ macro => 'OPENSSL_NO_UBSAN',
+ },
+ 'unit-test' => {
+ macro => 'OPENSSL_NO_UNIT_TEST',
+ },
+ 'weak-ssl-ciphers' => {
+ macro => 'OPENSSL_NO_WEAK_SSL_CIPHERS',
+ },
+);
+my @user_crossable = qw( AR AS CC CXX CPP LD MT RANLIB RC );
+# If run directly, we can give some answers, and even reconfigure
+unless (caller) {
+ use Getopt::Long;
+ use File::Spec::Functions;
+ use File::Basename;
+ use Pod::Usage;
+
+ my $here = dirname($0);
+
+ my $dump = undef;
+ my $cmdline = undef;
+ my $options = undef;
+ my $target = undef;
+ my $envvars = undef;
+ my $makevars = undef;
+ my $buildparams = undef;
+ my $reconf = undef;
+ my $verbose = undef;
+ my $help = undef;
+ my $man = undef;
+ GetOptions('dump|d' => \$dump,
+ 'command-line|c' => \$cmdline,
+ 'options|o' => \$options,
+ 'target|t' => \$target,
+ 'environment|e' => \$envvars,
+ 'make-variables|m' => \$makevars,
+ 'build-parameters|b' => \$buildparams,
+ 'reconfigure|reconf|r' => \$reconf,
+ 'verbose|v' => \$verbose,
+ 'help' => \$help,
+ 'man' => \$man)
+ or die "Errors in command line arguments\n";
+
+ unless ($dump || $cmdline || $options || $target || $envvars || $makevars
+ || $buildparams || $reconf || $verbose || $help || $man) {
+ print STDERR <<"_____";
+You must give at least one option.
+For more information, do '$0 --help'
+_____
+ exit(2);
+ }
+
+ if ($help) {
+ pod2usage(-exitval => 0,
+ -verbose => 1);
+ }
+ if ($man) {
+ pod2usage(-exitval => 0,
+ -verbose => 2);
+ }
+ if ($dump || $cmdline) {
+ print "\nCommand line (with current working directory = $here):\n\n";
+ print ' ',join(' ',
+ $config{PERL},
+ catfile($config{sourcedir}, 'Configure'),
+ @{$config{perlargv}}), "\n";
+ print "\nPerl information:\n\n";
+ print ' ',$config{perl_cmd},"\n";
+ print ' ',$config{perl_version},' for ',$config{perl_archname},"\n";
+ }
+ if ($dump || $options) {
+ my $longest = 0;
+ my $longest2 = 0;
+ foreach my $what (@disablables) {
+ $longest = length($what) if $longest < length($what);
+ $longest2 = length($disabled{$what})
+ if $disabled{$what} && $longest2 < length($disabled{$what});
+ }
+ print "\nEnabled features:\n\n";
+ foreach my $what (@disablables) {
+ print " $what\n" unless $disabled{$what};
+ }
+ print "\nDisabled features:\n\n";
+ foreach my $what (@disablables) {
+ if ($disabled{$what}) {
+ print " $what", ' ' x ($longest - length($what) + 1),
+ "[$disabled{$what}]", ' ' x ($longest2 - length($disabled{$what}) + 1);
+ print $disabled_info{$what}->{macro}
+ if $disabled_info{$what}->{macro};
+ print ' (skip ',
+ join(', ', @{$disabled_info{$what}->{skipped}}),
+ ')'
+ if $disabled_info{$what}->{skipped};
+ print "\n";
+ }
+ }
+ }
+ if ($dump || $target) {
+ print "\nConfig target attributes:\n\n";
+ foreach (sort keys %target) {
+ next if $_ =~ m|^_| || $_ eq 'template';
+ my $quotify = sub {
+ map { (my $x = $_) =~ s|([\\\$\@"])|\\$1|g; "\"$x\""} @_;
+ };
+ print ' ', $_, ' => ';
+ if (ref($target{$_}) eq "ARRAY") {
+ print '[ ', join(', ', $quotify->(@{$target{$_}})), " ],\n";
+ } else {
+ print $quotify->($target{$_}), ",\n"
+ }
+ }
+ }
+ if ($dump || $envvars) {
+ print "\nRecorded environment:\n\n";
+ foreach (sort keys %{$config{perlenv}}) {
+ print ' ',$_,' = ',($config{perlenv}->{$_} || ''),"\n";
+ }
+ }
+ if ($dump || $makevars) {
+ print "\nMakevars:\n\n";
+ foreach my $var (@makevars) {
+ my $prefix = '';
+ $prefix = $config{CROSS_COMPILE}
+ if grep { $var eq $_ } @user_crossable;
+ $prefix //= '';
+ print ' ',$var,' ' x (16 - length $var),'= ',
+ (ref $config{$var} eq 'ARRAY'
+ ? join(' ', @{$config{$var}})
+ : $prefix.$config{$var}),
+ "\n"
+ if defined $config{$var};
+ }
+
+ my @buildfile = ($config{builddir}, $config{build_file});
+ unshift @buildfile, $here
+ unless file_name_is_absolute($config{builddir});
+ my $buildfile = canonpath(catdir(@buildfile));
+ print <<"_____";
+
+NOTE: These variables only represent the configuration view. The build file
+template may have processed these variables further, please have a look at the
+build file for more exact data:
+ $buildfile
+_____
+ }
+ if ($dump || $buildparams) {
+ my @buildfile = ($config{builddir}, $config{build_file});
+ unshift @buildfile, $here
+ unless file_name_is_absolute($config{builddir});
+ print "\nbuild file:\n\n";
+ print " ", canonpath(catfile(@buildfile)),"\n";
+
+ print "\nbuild file templates:\n\n";
+ foreach (@{$config{build_file_templates}}) {
+ my @tmpl = ($_);
+ unshift @tmpl, $here
+ unless file_name_is_absolute($config{sourcedir});
+ print ' ',canonpath(catfile(@tmpl)),"\n";
+ }
+ }
+ if ($reconf) {
+ if ($verbose) {
+ print 'Reconfiguring with: ', join(' ',@{$config{perlargv}}), "\n";
+ foreach (sort keys %{$config{perlenv}}) {
+ print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n";
+ }
+ }
+
+ chdir $here;
+ exec $^X,catfile($config{sourcedir}, 'Configure'),'reconf';
+ }
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+configdata.pm - configuration data for OpenSSL builds
+
+=head1 SYNOPSIS
+
+Interactive:
+
+ perl configdata.pm [options]
+
+As data bank module:
+
+ use configdata;
+
+=head1 DESCRIPTION
+
+This module can be used in two modes, interactively and as a module containing
+all the data recorded by OpenSSL's Configure script.
+
+When used interactively, simply run it as any perl script, with at least one
+option, and you will get the information you ask for. See L below.
+
+When loaded as a module, you get a few databanks with useful information to
+perform build related tasks. The databanks are:
+
+ %config Configured things.
+ %target The OpenSSL config target with all inheritances
+ resolved.
+ %disabled The features that are disabled.
+ @disablables The list of features that can be disabled.
+ %withargs All data given through --with-THING options.
+ %unified_info All information that was computed from the build.info
+ files.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--help>
+
+Print a brief help message and exit.
+
+=item B<--man>
+
+Print the manual page and exit.
+
+=item B<--dump> | B<-d>
+
+Print all relevant configuration data. This is equivalent to B<--command-line>
+B<--options> B<--target> B<--environment> B<--make-variables>
+B<--build-parameters>.
+
+=item B<--command-line> | B<-c>
+
+Print the current configuration command line.
+
+=item B<--options> | B<-o>
+
+Print the features, both enabled and disabled, and display defined macro and
+skipped directories where applicable.
+
+=item B<--target> | B<-t>
+
+Print the config attributes for this config target.
+
+=item B<--environment> | B<-e>
+
+Print the environment variables and their values at the time of configuration.
+
+=item B<--make-variables> | B<-m>
+
+Print the main make variables generated in the current configuration
+
+=item B<--build-parameters> | B<-b>
+
+Print the build parameters, i.e. build file and build file templates.
+
+=item B<--reconfigure> | B<--reconf> | B<-r>
+
+Redo the configuration.
+
+=item B<--verbose> | B<-v>
+
+Verbose output.
+
+=back
+
+=cut
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/aes/aes-mips.S b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/aes/aes-mips.S
new file mode 100644
index 00000000000000..3d7852ec2ed23c
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/aes/aes-mips.S
@@ -0,0 +1,1874 @@
+#include "mips_arch.h"
+
+.text
+#if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__))
+.option pic2
+#endif
+.set noat
+.align 5
+.ent _mips_AES_encrypt
+_mips_AES_encrypt:
+ .frame $29,0,$31
+ .set reorder
+ lw $12,0($6)
+ lw $13,4($6)
+ lw $14,8($6)
+ lw $15,12($6)
+ lw $30,240($6)
+ daddu $3,$6,16
+
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+
+ subu $30,1
+#if defined(__mips_smartmips)
+ ext $1,$9,8,8
+.Loop_enc:
+ ext $2,$10,8,8
+ ext $24,$11,8,8
+ ext $25,$8,8,8
+ lwxs $12,$1($7) # Te1[s1>>16]
+ ext $1,$10,16,8
+ lwxs $13,$2($7) # Te1[s2>>16]
+ ext $2,$11,16,8
+ lwxs $14,$24($7) # Te1[s3>>16]
+ ext $24,$8,16,8
+ lwxs $15,$25($7) # Te1[s0>>16]
+ ext $25,$9,16,8
+
+ lwxs $16,$1($7) # Te2[s2>>8]
+ ext $1,$11,24,8
+ lwxs $17,$2($7) # Te2[s3>>8]
+ ext $2,$8,24,8
+ lwxs $18,$24($7) # Te2[s0>>8]
+ ext $24,$9,24,8
+ lwxs $19,$25($7) # Te2[s1>>8]
+ ext $25,$10,24,8
+
+ lwxs $20,$1($7) # Te3[s3]
+ ext $1,$8,0,8
+ lwxs $21,$2($7) # Te3[s0]
+ ext $2,$9,0,8
+ lwxs $22,$24($7) # Te3[s1]
+ ext $24,$10,0,8
+ lwxs $23,$25($7) # Te3[s2]
+ ext $25,$11,0,8
+
+ rotr $12,$12,24
+ rotr $13,$13,24
+ rotr $14,$14,24
+ rotr $15,$15,24
+
+ rotr $16,$16,16
+ rotr $17,$17,16
+ rotr $18,$18,16
+ rotr $19,$19,16
+
+ xor $12,$16
+ lwxs $16,$1($7) # Te0[s0>>24]
+ xor $13,$17
+ lwxs $17,$2($7) # Te0[s1>>24]
+ xor $14,$18
+ lwxs $18,$24($7) # Te0[s2>>24]
+ xor $15,$19
+ lwxs $19,$25($7) # Te0[s3>>24]
+
+ rotr $20,$20,8
+ lw $8,0($3)
+ rotr $21,$21,8
+ lw $9,4($3)
+ rotr $22,$22,8
+ lw $10,8($3)
+ rotr $23,$23,8
+ lw $11,12($3)
+
+ xor $12,$20
+ xor $13,$21
+ xor $14,$22
+ xor $15,$23
+
+ xor $12,$16
+ xor $13,$17
+ xor $14,$18
+ xor $15,$19
+
+ subu $30,1
+ daddu $3,16
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+ .set noreorder
+ bnez $30,.Loop_enc
+ ext $1,$9,8,8
+
+ srl $1,$9,6
+#else
+ srl $1,$9,6
+.Loop_enc:
+ srl $2,$10,6
+ srl $24,$11,6
+ srl $25,$8,6
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ lw $12,0($1) # Te1[s1>>16]
+ srl $1,$10,14
+ lw $13,0($2) # Te1[s2>>16]
+ srl $2,$11,14
+ lw $14,0($24) # Te1[s3>>16]
+ srl $24,$8,14
+ lw $15,0($25) # Te1[s0>>16]
+ srl $25,$9,14
+#else
+ lwl $12,2($1) # Te1[s1>>16]
+ lwl $13,2($2) # Te1[s2>>16]
+ lwl $14,2($24) # Te1[s3>>16]
+ lwl $15,2($25) # Te1[s0>>16]
+ lwr $12,3($1) # Te1[s1>>16]
+ srl $1,$10,14
+ lwr $13,3($2) # Te1[s2>>16]
+ srl $2,$11,14
+ lwr $14,3($24) # Te1[s3>>16]
+ srl $24,$8,14
+ lwr $15,3($25) # Te1[s0>>16]
+ srl $25,$9,14
+#endif
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ rotr $12,$12,24
+ rotr $13,$13,24
+ rotr $14,$14,24
+ rotr $15,$15,24
+# if defined(_MIPSEL)
+ lw $16,0($1) # Te2[s2>>8]
+ srl $1,$11,22
+ lw $17,0($2) # Te2[s3>>8]
+ srl $2,$8,22
+ lw $18,0($24) # Te2[s0>>8]
+ srl $24,$9,22
+ lw $19,0($25) # Te2[s1>>8]
+ srl $25,$10,22
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lw $20,0($1) # Te3[s3]
+ dins $1,$8,2,8
+ lw $21,0($2) # Te3[s0]
+ dins $2,$9,2,8
+ lw $22,0($24) # Te3[s1]
+ dins $24,$10,2,8
+ lw $23,0($25) # Te3[s2]
+ dins $25,$11,2,8
+# else
+ lw $16,0($1) # Te2[s2>>8]
+ dins $1,$11,2,8
+ lw $17,0($2) # Te2[s3>>8]
+ dins $2,$8,2,8
+ lw $18,0($24) # Te2[s0>>8]
+ dins $24,$9,2,8
+ lw $19,0($25) # Te2[s1>>8]
+ dins $25,$10,2,8
+
+ lw $20,0($1) # Te3[s3]
+ sll $1,$8,2
+ lw $21,0($2) # Te3[s0]
+ sll $2,$9,2
+ lw $22,0($24) # Te3[s1]
+ sll $24,$10,2
+ lw $23,0($25) # Te3[s2]
+ sll $25,$11,2
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+# endif
+ rotr $16,$16,16
+ rotr $17,$17,16
+ rotr $18,$18,16
+ rotr $19,$19,16
+
+ rotr $20,$20,8
+ rotr $21,$21,8
+ rotr $22,$22,8
+ rotr $23,$23,8
+#else
+ lwl $16,1($1) # Te2[s2>>8]
+ lwl $17,1($2) # Te2[s3>>8]
+ lwl $18,1($24) # Te2[s0>>8]
+ lwl $19,1($25) # Te2[s1>>8]
+ lwr $16,2($1) # Te2[s2>>8]
+ srl $1,$11,22
+ lwr $17,2($2) # Te2[s3>>8]
+ srl $2,$8,22
+ lwr $18,2($24) # Te2[s0>>8]
+ srl $24,$9,22
+ lwr $19,2($25) # Te2[s1>>8]
+ srl $25,$10,22
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lwl $20,0($1) # Te3[s3]
+ lwl $21,0($2) # Te3[s0]
+ lwl $22,0($24) # Te3[s1]
+ lwl $23,0($25) # Te3[s2]
+ lwr $20,1($1) # Te3[s3]
+ sll $1,$8,2
+ lwr $21,1($2) # Te3[s0]
+ sll $2,$9,2
+ lwr $22,1($24) # Te3[s1]
+ sll $24,$10,2
+ lwr $23,1($25) # Te3[s2]
+ sll $25,$11,2
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#endif
+ xor $12,$16
+ lw $16,0($1) # Te0[s0>>24]
+ xor $13,$17
+ lw $17,0($2) # Te0[s1>>24]
+ xor $14,$18
+ lw $18,0($24) # Te0[s2>>24]
+ xor $15,$19
+ lw $19,0($25) # Te0[s3>>24]
+
+ xor $12,$20
+ lw $8,0($3)
+ xor $13,$21
+ lw $9,4($3)
+ xor $14,$22
+ lw $10,8($3)
+ xor $15,$23
+ lw $11,12($3)
+
+ xor $12,$16
+ xor $13,$17
+ xor $14,$18
+ xor $15,$19
+
+ subu $30,1
+ daddu $3,16
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+ .set noreorder
+ bnez $30,.Loop_enc
+ srl $1,$9,6
+#endif
+
+ .set reorder
+ srl $2,$10,6
+ srl $24,$11,6
+ srl $25,$8,6
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $12,2($1) # Te4[s1>>16]
+ srl $1,$10,14
+ lbu $13,2($2) # Te4[s2>>16]
+ srl $2,$11,14
+ lbu $14,2($24) # Te4[s3>>16]
+ srl $24,$8,14
+ lbu $15,2($25) # Te4[s0>>16]
+ srl $25,$9,14
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+# if defined(_MIPSEL)
+ lbu $16,2($1) # Te4[s2>>8]
+ dins $1,$8,2,8
+ lbu $17,2($2) # Te4[s3>>8]
+ dins $2,$9,2,8
+ lbu $18,2($24) # Te4[s0>>8]
+ dins $24,$10,2,8
+ lbu $19,2($25) # Te4[s1>>8]
+ dins $25,$11,2,8
+
+ lbu $20,2($1) # Te4[s0>>24]
+ srl $1,$11,22
+ lbu $21,2($2) # Te4[s1>>24]
+ srl $2,$8,22
+ lbu $22,2($24) # Te4[s2>>24]
+ srl $24,$9,22
+ lbu $23,2($25) # Te4[s3>>24]
+ srl $25,$10,22
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+# else
+ lbu $16,2($1) # Te4[s2>>8]
+ sll $1,$8,2
+ lbu $17,2($2) # Te4[s3>>8]
+ sll $2,$9,2
+ lbu $18,2($24) # Te4[s0>>8]
+ sll $24,$10,2
+ lbu $19,2($25) # Te4[s1>>8]
+ sll $25,$11,2
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $20,2($1) # Te4[s0>>24]
+ dins $1,$11,2,8
+ lbu $21,2($2) # Te4[s1>>24]
+ dins $2,$8,2,8
+ lbu $22,2($24) # Te4[s2>>24]
+ dins $24,$9,2,8
+ lbu $23,2($25) # Te4[s3>>24]
+ dins $25,$10,2,8
+# endif
+ sll $12,$12,8
+ sll $13,$13,8
+ sll $14,$14,8
+ sll $15,$15,8
+
+ ins $12,$16,16,8
+ lbu $16,2($1) # Te4[s3]
+ ins $13,$17,16,8
+ lbu $17,2($2) # Te4[s0]
+ ins $14,$18,16,8
+ lbu $18,2($24) # Te4[s1]
+ ins $15,$19,16,8
+ lbu $19,2($25) # Te4[s2]
+
+ ins $12,$20,0,8
+ lw $8,0($3)
+ ins $13,$21,0,8
+ lw $9,4($3)
+ ins $14,$22,0,8
+ lw $10,8($3)
+ ins $15,$23,0,8
+ lw $11,12($3)
+
+ ins $12,$16,24,8
+ ins $13,$17,24,8
+ ins $14,$18,24,8
+ ins $15,$19,24,8
+#else
+ lbu $16,2($1) # Te4[s2>>8]
+ sll $1,$8,2
+ lbu $17,2($2) # Te4[s3>>8]
+ sll $2,$9,2
+ lbu $18,2($24) # Te4[s0>>8]
+ sll $24,$10,2
+ lbu $19,2($25) # Te4[s1>>8]
+ sll $25,$11,2
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $20,2($1) # Te4[s0>>24]
+ srl $1,$11,22
+ lbu $21,2($2) # Te4[s1>>24]
+ srl $2,$8,22
+ lbu $22,2($24) # Te4[s2>>24]
+ srl $24,$9,22
+ lbu $23,2($25) # Te4[s3>>24]
+ srl $25,$10,22
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+
+ sll $12,$12,8
+ sll $13,$13,8
+ sll $14,$14,8
+ sll $15,$15,8
+
+ sll $16,$16,16
+ sll $17,$17,16
+ sll $18,$18,16
+ sll $19,$19,16
+
+ xor $12,$16
+ lbu $16,2($1) # Te4[s3]
+ xor $13,$17
+ lbu $17,2($2) # Te4[s0]
+ xor $14,$18
+ lbu $18,2($24) # Te4[s1]
+ xor $15,$19
+ lbu $19,2($25) # Te4[s2]
+
+ #sll $20,$20,0
+ lw $8,0($3)
+ #sll $21,$21,0
+ lw $9,4($3)
+ #sll $22,$22,0
+ lw $10,8($3)
+ #sll $23,$23,0
+ lw $11,12($3)
+
+ xor $12,$20
+ xor $13,$21
+ xor $14,$22
+ xor $15,$23
+
+ sll $16,$16,24
+ sll $17,$17,24
+ sll $18,$18,24
+ sll $19,$19,24
+
+ xor $12,$16
+ xor $13,$17
+ xor $14,$18
+ xor $15,$19
+#endif
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+
+ jr $31
+.end _mips_AES_encrypt
+
+.align 5
+.globl AES_encrypt
+.ent AES_encrypt
+AES_encrypt:
+ .frame $29,128,$31
+ .mask 0xc0ff0000,-8
+ .set noreorder
+ dsubu $29,128
+ sd $31,128-1*8($29)
+ sd $30,128-2*8($29)
+ sd $23,128-3*8($29)
+ sd $22,128-4*8($29)
+ sd $21,128-5*8($29)
+ sd $20,128-6*8($29)
+ sd $19,128-7*8($29)
+ sd $18,128-8*8($29)
+ sd $17,128-9*8($29)
+ sd $16,128-10*8($29)
+ .cplocal $7
+ .cpsetup $25,$0,AES_encrypt
+ .set reorder
+ dla $7,AES_Te # PIC-ified 'load address'
+
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $8,0($4)
+ lw $9,4($4)
+ lw $10,8($4)
+ lw $11,12($4)
+#else
+ lwl $8,0+3($4)
+ lwl $9,4+3($4)
+ lwl $10,8+3($4)
+ lwl $11,12+3($4)
+ lwr $8,0+0($4)
+ lwr $9,4+0($4)
+ lwr $10,8+0($4)
+ lwr $11,12+0($4)
+#endif
+
+ bal _mips_AES_encrypt
+
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ sw $8,0($5)
+ sw $9,4($5)
+ sw $10,8($5)
+ sw $11,12($5)
+#else
+ swr $8,0+0($5)
+ swr $9,4+0($5)
+ swr $10,8+0($5)
+ swr $11,12+0($5)
+ swl $8,0+3($5)
+ swl $9,4+3($5)
+ swl $10,8+3($5)
+ swl $11,12+3($5)
+#endif
+
+ .set noreorder
+ ld $31,128-1*8($29)
+ ld $30,128-2*8($29)
+ ld $23,128-3*8($29)
+ ld $22,128-4*8($29)
+ ld $21,128-5*8($29)
+ ld $20,128-6*8($29)
+ ld $19,128-7*8($29)
+ ld $18,128-8*8($29)
+ ld $17,128-9*8($29)
+ ld $16,128-10*8($29)
+ jr $31
+ daddu $29,128
+.end AES_encrypt
+.align 5
+.ent _mips_AES_decrypt
+_mips_AES_decrypt:
+ .frame $29,0,$31
+ .set reorder
+ lw $12,0($6)
+ lw $13,4($6)
+ lw $14,8($6)
+ lw $15,12($6)
+ lw $30,240($6)
+ daddu $3,$6,16
+
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+
+ subu $30,1
+#if defined(__mips_smartmips)
+ ext $1,$11,8,8
+.Loop_dec:
+ ext $2,$8,8,8
+ ext $24,$9,8,8
+ ext $25,$10,8,8
+ lwxs $12,$1($7) # Td1[s3>>16]
+ ext $1,$10,16,8
+ lwxs $13,$2($7) # Td1[s0>>16]
+ ext $2,$11,16,8
+ lwxs $14,$24($7) # Td1[s1>>16]
+ ext $24,$8,16,8
+ lwxs $15,$25($7) # Td1[s2>>16]
+ ext $25,$9,16,8
+
+ lwxs $16,$1($7) # Td2[s2>>8]
+ ext $1,$9,24,8
+ lwxs $17,$2($7) # Td2[s3>>8]
+ ext $2,$10,24,8
+ lwxs $18,$24($7) # Td2[s0>>8]
+ ext $24,$11,24,8
+ lwxs $19,$25($7) # Td2[s1>>8]
+ ext $25,$8,24,8
+
+ lwxs $20,$1($7) # Td3[s1]
+ ext $1,$8,0,8
+ lwxs $21,$2($7) # Td3[s2]
+ ext $2,$9,0,8
+ lwxs $22,$24($7) # Td3[s3]
+ ext $24,$10,0,8
+ lwxs $23,$25($7) # Td3[s0]
+ ext $25,$11,0,8
+
+ rotr $12,$12,24
+ rotr $13,$13,24
+ rotr $14,$14,24
+ rotr $15,$15,24
+
+ rotr $16,$16,16
+ rotr $17,$17,16
+ rotr $18,$18,16
+ rotr $19,$19,16
+
+ xor $12,$16
+ lwxs $16,$1($7) # Td0[s0>>24]
+ xor $13,$17
+ lwxs $17,$2($7) # Td0[s1>>24]
+ xor $14,$18
+ lwxs $18,$24($7) # Td0[s2>>24]
+ xor $15,$19
+ lwxs $19,$25($7) # Td0[s3>>24]
+
+ rotr $20,$20,8
+ lw $8,0($3)
+ rotr $21,$21,8
+ lw $9,4($3)
+ rotr $22,$22,8
+ lw $10,8($3)
+ rotr $23,$23,8
+ lw $11,12($3)
+
+ xor $12,$20
+ xor $13,$21
+ xor $14,$22
+ xor $15,$23
+
+ xor $12,$16
+ xor $13,$17
+ xor $14,$18
+ xor $15,$19
+
+ subu $30,1
+ daddu $3,16
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+ .set noreorder
+ bnez $30,.Loop_dec
+ ext $1,$11,8,8
+
+ srl $1,$11,6
+#else
+ srl $1,$11,6
+.Loop_dec:
+ srl $2,$8,6
+ srl $24,$9,6
+ srl $25,$10,6
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ lw $12,0($1) # Td1[s3>>16]
+ srl $1,$10,14
+ lw $13,0($2) # Td1[s0>>16]
+ srl $2,$11,14
+ lw $14,0($24) # Td1[s1>>16]
+ srl $24,$8,14
+ lw $15,0($25) # Td1[s2>>16]
+ srl $25,$9,14
+#else
+ lwl $12,2($1) # Td1[s3>>16]
+ lwl $13,2($2) # Td1[s0>>16]
+ lwl $14,2($24) # Td1[s1>>16]
+ lwl $15,2($25) # Td1[s2>>16]
+ lwr $12,3($1) # Td1[s3>>16]
+ srl $1,$10,14
+ lwr $13,3($2) # Td1[s0>>16]
+ srl $2,$11,14
+ lwr $14,3($24) # Td1[s1>>16]
+ srl $24,$8,14
+ lwr $15,3($25) # Td1[s2>>16]
+ srl $25,$9,14
+#endif
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ rotr $12,$12,24
+ rotr $13,$13,24
+ rotr $14,$14,24
+ rotr $15,$15,24
+# if defined(_MIPSEL)
+ lw $16,0($1) # Td2[s2>>8]
+ srl $1,$9,22
+ lw $17,0($2) # Td2[s3>>8]
+ srl $2,$10,22
+ lw $18,0($24) # Td2[s0>>8]
+ srl $24,$11,22
+ lw $19,0($25) # Td2[s1>>8]
+ srl $25,$8,22
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lw $20,0($1) # Td3[s1]
+ dins $1,$8,2,8
+ lw $21,0($2) # Td3[s2]
+ dins $2,$9,2,8
+ lw $22,0($24) # Td3[s3]
+ dins $24,$10,2,8
+ lw $23,0($25) # Td3[s0]
+ dins $25,$11,2,8
+#else
+ lw $16,0($1) # Td2[s2>>8]
+ dins $1,$9,2,8
+ lw $17,0($2) # Td2[s3>>8]
+ dins $2,$10,2,8
+ lw $18,0($24) # Td2[s0>>8]
+ dins $24,$11,2,8
+ lw $19,0($25) # Td2[s1>>8]
+ dins $25,$8,2,8
+
+ lw $20,0($1) # Td3[s1]
+ sll $1,$8,2
+ lw $21,0($2) # Td3[s2]
+ sll $2,$9,2
+ lw $22,0($24) # Td3[s3]
+ sll $24,$10,2
+ lw $23,0($25) # Td3[s0]
+ sll $25,$11,2
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#endif
+ rotr $16,$16,16
+ rotr $17,$17,16
+ rotr $18,$18,16
+ rotr $19,$19,16
+
+ rotr $20,$20,8
+ rotr $21,$21,8
+ rotr $22,$22,8
+ rotr $23,$23,8
+#else
+ lwl $16,1($1) # Td2[s2>>8]
+ lwl $17,1($2) # Td2[s3>>8]
+ lwl $18,1($24) # Td2[s0>>8]
+ lwl $19,1($25) # Td2[s1>>8]
+ lwr $16,2($1) # Td2[s2>>8]
+ srl $1,$9,22
+ lwr $17,2($2) # Td2[s3>>8]
+ srl $2,$10,22
+ lwr $18,2($24) # Td2[s0>>8]
+ srl $24,$11,22
+ lwr $19,2($25) # Td2[s1>>8]
+ srl $25,$8,22
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lwl $20,0($1) # Td3[s1]
+ lwl $21,0($2) # Td3[s2]
+ lwl $22,0($24) # Td3[s3]
+ lwl $23,0($25) # Td3[s0]
+ lwr $20,1($1) # Td3[s1]
+ sll $1,$8,2
+ lwr $21,1($2) # Td3[s2]
+ sll $2,$9,2
+ lwr $22,1($24) # Td3[s3]
+ sll $24,$10,2
+ lwr $23,1($25) # Td3[s0]
+ sll $25,$11,2
+
+ and $1,0x3fc
+ and $2,0x3fc
+ and $24,0x3fc
+ and $25,0x3fc
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#endif
+
+ xor $12,$16
+ lw $16,0($1) # Td0[s0>>24]
+ xor $13,$17
+ lw $17,0($2) # Td0[s1>>24]
+ xor $14,$18
+ lw $18,0($24) # Td0[s2>>24]
+ xor $15,$19
+ lw $19,0($25) # Td0[s3>>24]
+
+ xor $12,$20
+ lw $8,0($3)
+ xor $13,$21
+ lw $9,4($3)
+ xor $14,$22
+ lw $10,8($3)
+ xor $15,$23
+ lw $11,12($3)
+
+ xor $12,$16
+ xor $13,$17
+ xor $14,$18
+ xor $15,$19
+
+ subu $30,1
+ daddu $3,16
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+ .set noreorder
+ bnez $30,.Loop_dec
+ srl $1,$11,6
+#endif
+
+ .set reorder
+ lw $16,1024($7) # prefetch Td4
+ srl $1,$11,8
+ lw $17,1024+32($7)
+ srl $2,$8,8
+ lw $18,1024+64($7)
+ srl $24,$9,8
+ lw $19,1024+96($7)
+ srl $25,$10,8
+ lw $20,1024+128($7)
+ and $1,0xff
+ lw $21,1024+160($7)
+ and $2,0xff
+ lw $22,1024+192($7)
+ and $24,0xff
+ lw $23,1024+224($7)
+ and $25,0xff
+
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $12,1024($1) # Td4[s3>>16]
+ srl $1,$10,16
+ lbu $13,1024($2) # Td4[s0>>16]
+ srl $2,$11,16
+ lbu $14,1024($24) # Td4[s1>>16]
+ srl $24,$8,16
+ lbu $15,1024($25) # Td4[s2>>16]
+ srl $25,$9,16
+
+ and $1,0xff
+ and $2,0xff
+ and $24,0xff
+ and $25,0xff
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+# if defined(_MIPSEL)
+ lbu $16,1024($1) # Td4[s2>>8]
+ dins $1,$8,0,8
+ lbu $17,1024($2) # Td4[s3>>8]
+ dins $2,$9,0,8
+ lbu $18,1024($24) # Td4[s0>>8]
+ dins $24,$10,0,8
+ lbu $19,1024($25) # Td4[s1>>8]
+ dins $25,$11,0,8
+
+ lbu $20,1024($1) # Td4[s0>>24]
+ srl $1,$9,24
+ lbu $21,1024($2) # Td4[s1>>24]
+ srl $2,$10,24
+ lbu $22,1024($24) # Td4[s2>>24]
+ srl $24,$11,24
+ lbu $23,1024($25) # Td4[s3>>24]
+ srl $25,$8,24
+
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+# else
+ lbu $16,1024($1) # Td4[s2>>8]
+ and $1,$8,0xff
+ lbu $17,1024($2) # Td4[s3>>8]
+ and $2,$9,0xff
+ lbu $18,1024($24) # Td4[s0>>8]
+ and $24,$10,0xff
+ lbu $19,1024($25) # Td4[s1>>8]
+ and $25,$11,0xff
+
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $20,1024($1) # Td4[s0>>24]
+ dins $1,$9,0,8
+ lbu $21,1024($2) # Td4[s1>>24]
+ dins $2,$10,0,8
+ lbu $22,1024($24) # Td4[s2>>24]
+ dins $24,$11,0,8
+ lbu $23,1024($25) # Td4[s3>>24]
+ dins $25,$8,0,8
+# endif
+ sll $12,$12,8
+ sll $13,$13,8
+ sll $14,$14,8
+ sll $15,$15,8
+
+ ins $12,$16,16,8
+ lbu $16,1024($1) # Td4[s1]
+ ins $13,$17,16,8
+ lbu $17,1024($2) # Td4[s2]
+ ins $14,$18,16,8
+ lbu $18,1024($24) # Td4[s3]
+ ins $15,$19,16,8
+ lbu $19,1024($25) # Td4[s0]
+
+ ins $12,$20,0,8
+ lw $8,0($3)
+ ins $13,$21,0,8
+ lw $9,4($3)
+ ins $14,$22,0,8
+ lw $10,8($3)
+ ins $15,$23,0,8
+ lw $11,12($3)
+
+ ins $12,$16,24,8
+ ins $13,$17,24,8
+ ins $14,$18,24,8
+ ins $15,$19,24,8
+#else
+ lbu $16,1024($1) # Td4[s2>>8]
+ and $1,$8,0xff
+ lbu $17,1024($2) # Td4[s3>>8]
+ and $2,$9,0xff
+ lbu $18,1024($24) # Td4[s0>>8]
+ and $24,$10,0xff
+ lbu $19,1024($25) # Td4[s1>>8]
+ and $25,$11,0xff
+
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $20,1024($1) # Td4[s0>>24]
+ srl $1,$9,24
+ lbu $21,1024($2) # Td4[s1>>24]
+ srl $2,$10,24
+ lbu $22,1024($24) # Td4[s2>>24]
+ srl $24,$11,24
+ lbu $23,1024($25) # Td4[s3>>24]
+ srl $25,$8,24
+
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+
+ sll $12,$12,8
+ sll $13,$13,8
+ sll $14,$14,8
+ sll $15,$15,8
+
+ sll $16,$16,16
+ sll $17,$17,16
+ sll $18,$18,16
+ sll $19,$19,16
+
+ xor $12,$16
+ lbu $16,1024($1) # Td4[s1]
+ xor $13,$17
+ lbu $17,1024($2) # Td4[s2]
+ xor $14,$18
+ lbu $18,1024($24) # Td4[s3]
+ xor $15,$19
+ lbu $19,1024($25) # Td4[s0]
+
+ #sll $20,$20,0
+ lw $8,0($3)
+ #sll $21,$21,0
+ lw $9,4($3)
+ #sll $22,$22,0
+ lw $10,8($3)
+ #sll $23,$23,0
+ lw $11,12($3)
+
+ xor $12,$20
+ xor $13,$21
+ xor $14,$22
+ xor $15,$23
+
+ sll $16,$16,24
+ sll $17,$17,24
+ sll $18,$18,24
+ sll $19,$19,24
+
+ xor $12,$16
+ xor $13,$17
+ xor $14,$18
+ xor $15,$19
+#endif
+
+ xor $8,$12
+ xor $9,$13
+ xor $10,$14
+ xor $11,$15
+
+ jr $31
+.end _mips_AES_decrypt
+
+.align 5
+.globl AES_decrypt
+.ent AES_decrypt
+AES_decrypt:
+ .frame $29,128,$31
+ .mask 0xc0ff0000,-8
+ .set noreorder
+ dsubu $29,128
+ sd $31,128-1*8($29)
+ sd $30,128-2*8($29)
+ sd $23,128-3*8($29)
+ sd $22,128-4*8($29)
+ sd $21,128-5*8($29)
+ sd $20,128-6*8($29)
+ sd $19,128-7*8($29)
+ sd $18,128-8*8($29)
+ sd $17,128-9*8($29)
+ sd $16,128-10*8($29)
+ .cplocal $7
+ .cpsetup $25,$0,AES_decrypt
+ .set reorder
+ dla $7,AES_Td # PIC-ified 'load address'
+
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $8,0($4)
+ lw $9,4($4)
+ lw $10,8($4)
+ lw $11,12($4)
+#else
+ lwl $8,0+3($4)
+ lwl $9,4+3($4)
+ lwl $10,8+3($4)
+ lwl $11,12+3($4)
+ lwr $8,0+0($4)
+ lwr $9,4+0($4)
+ lwr $10,8+0($4)
+ lwr $11,12+0($4)
+#endif
+
+ bal _mips_AES_decrypt
+
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ sw $8,0($5)
+ sw $9,4($5)
+ sw $10,8($5)
+ sw $11,12($5)
+#else
+ swr $8,0+0($5)
+ swr $9,4+0($5)
+ swr $10,8+0($5)
+ swr $11,12+0($5)
+ swl $8,0+3($5)
+ swl $9,4+3($5)
+ swl $10,8+3($5)
+ swl $11,12+3($5)
+#endif
+
+ .set noreorder
+ ld $31,128-1*8($29)
+ ld $30,128-2*8($29)
+ ld $23,128-3*8($29)
+ ld $22,128-4*8($29)
+ ld $21,128-5*8($29)
+ ld $20,128-6*8($29)
+ ld $19,128-7*8($29)
+ ld $18,128-8*8($29)
+ ld $17,128-9*8($29)
+ ld $16,128-10*8($29)
+ jr $31
+ daddu $29,128
+.end AES_decrypt
+.align 5
+.ent _mips_AES_set_encrypt_key
+_mips_AES_set_encrypt_key:
+ .frame $29,0,$31
+ .set noreorder
+ beqz $4,.Lekey_done
+ li $2,-1
+ beqz $6,.Lekey_done
+ daddu $3,$7,256
+
+ .set reorder
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $8,0($4) # load 128 bits
+ lw $9,4($4)
+ lw $10,8($4)
+ lw $11,12($4)
+#else
+ lwl $8,0+3($4) # load 128 bits
+ lwl $9,4+3($4)
+ lwl $10,8+3($4)
+ lwl $11,12+3($4)
+ lwr $8,0+0($4)
+ lwr $9,4+0($4)
+ lwr $10,8+0($4)
+ lwr $11,12+0($4)
+#endif
+ li $1,128
+ .set noreorder
+ beq $5,$1,.L128bits
+ li $30,10
+
+ .set reorder
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $12,16($4) # load 192 bits
+ lw $13,20($4)
+#else
+ lwl $12,16+3($4) # load 192 bits
+ lwl $13,20+3($4)
+ lwr $12,16+0($4)
+ lwr $13,20+0($4)
+#endif
+ li $1,192
+ .set noreorder
+ beq $5,$1,.L192bits
+ li $30,8
+
+ .set reorder
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $14,24($4) # load 256 bits
+ lw $15,28($4)
+#else
+ lwl $14,24+3($4) # load 256 bits
+ lwl $15,28+3($4)
+ lwr $14,24+0($4)
+ lwr $15,28+0($4)
+#endif
+ li $1,256
+ .set noreorder
+ beq $5,$1,.L256bits
+ li $30,7
+
+ b .Lekey_done
+ li $2,-2
+
+.align 4
+.L128bits:
+ .set reorder
+ srl $1,$11,16
+ srl $2,$11,8
+ and $1,0xff
+ and $2,0xff
+ and $24,$11,0xff
+ srl $25,$11,24
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $1,0($1)
+ lbu $2,0($2)
+ lbu $24,0($24)
+ lbu $25,0($25)
+
+ sw $8,0($6)
+ sw $9,4($6)
+ sw $10,8($6)
+ sw $11,12($6)
+ subu $30,1
+ daddu $6,16
+
+ sll $1,$1,8
+ #sll $2,$2,0
+ sll $24,$24,24
+ sll $25,$25,16
+
+ xor $8,$1
+ lw $1,0($3)
+ xor $8,$2
+ xor $8,$24
+ xor $8,$25
+ xor $8,$1
+
+ xor $9,$8
+ xor $10,$9
+ xor $11,$10
+
+ .set noreorder
+ bnez $30,.L128bits
+ daddu $3,4
+
+ sw $8,0($6)
+ sw $9,4($6)
+ sw $10,8($6)
+ li $30,10
+ sw $11,12($6)
+ li $2,0
+ sw $30,80($6)
+ b .Lekey_done
+ dsubu $6,10*16
+
+.align 4
+.L192bits:
+ .set reorder
+ srl $1,$13,16
+ srl $2,$13,8
+ and $1,0xff
+ and $2,0xff
+ and $24,$13,0xff
+ srl $25,$13,24
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $1,0($1)
+ lbu $2,0($2)
+ lbu $24,0($24)
+ lbu $25,0($25)
+
+ sw $8,0($6)
+ sw $9,4($6)
+ sw $10,8($6)
+ sw $11,12($6)
+ sw $12,16($6)
+ sw $13,20($6)
+ subu $30,1
+ daddu $6,24
+
+ sll $1,$1,8
+ #sll $2,$2,0
+ sll $24,$24,24
+ sll $25,$25,16
+
+ xor $8,$1
+ lw $1,0($3)
+ xor $8,$2
+ xor $8,$24
+ xor $8,$25
+ xor $8,$1
+
+ xor $9,$8
+ xor $10,$9
+ xor $11,$10
+ xor $12,$11
+ xor $13,$12
+
+ .set noreorder
+ bnez $30,.L192bits
+ daddu $3,4
+
+ sw $8,0($6)
+ sw $9,4($6)
+ sw $10,8($6)
+ li $30,12
+ sw $11,12($6)
+ li $2,0
+ sw $30,48($6)
+ b .Lekey_done
+ dsubu $6,12*16
+
+.align 4
+.L256bits:
+ .set reorder
+ srl $1,$15,16
+ srl $2,$15,8
+ and $1,0xff
+ and $2,0xff
+ and $24,$15,0xff
+ srl $25,$15,24
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $1,0($1)
+ lbu $2,0($2)
+ lbu $24,0($24)
+ lbu $25,0($25)
+
+ sw $8,0($6)
+ sw $9,4($6)
+ sw $10,8($6)
+ sw $11,12($6)
+ sw $12,16($6)
+ sw $13,20($6)
+ sw $14,24($6)
+ sw $15,28($6)
+ subu $30,1
+
+ sll $1,$1,8
+ #sll $2,$2,0
+ sll $24,$24,24
+ sll $25,$25,16
+
+ xor $8,$1
+ lw $1,0($3)
+ xor $8,$2
+ xor $8,$24
+ xor $8,$25
+ xor $8,$1
+
+ xor $9,$8
+ xor $10,$9
+ xor $11,$10
+ beqz $30,.L256bits_done
+
+ srl $1,$11,24
+ srl $2,$11,16
+ srl $24,$11,8
+ and $25,$11,0xff
+ and $2,0xff
+ and $24,0xff
+ daddu $1,$7
+ daddu $2,$7
+ daddu $24,$7
+ daddu $25,$7
+ lbu $1,0($1)
+ lbu $2,0($2)
+ lbu $24,0($24)
+ lbu $25,0($25)
+ sll $1,24
+ sll $2,16
+ sll $24,8
+
+ xor $12,$1
+ xor $12,$2
+ xor $12,$24
+ xor $12,$25
+
+ xor $13,$12
+ xor $14,$13
+ xor $15,$14
+
+ daddu $6,32
+ .set noreorder
+ b .L256bits
+ daddu $3,4
+
+.L256bits_done:
+ sw $8,32($6)
+ sw $9,36($6)
+ sw $10,40($6)
+ li $30,14
+ sw $11,44($6)
+ li $2,0
+ sw $30,48($6)
+ dsubu $6,12*16
+
+.Lekey_done:
+ jr $31
+ nop
+.end _mips_AES_set_encrypt_key
+
+.globl AES_set_encrypt_key
+.ent AES_set_encrypt_key
+AES_set_encrypt_key:
+ .frame $29,64,$31
+ .mask 0xc0000000,-8
+ .set noreorder
+ dsubu $29,64
+ sd $31,64-1*8($29)
+ sd $30,64-2*8($29)
+ .cplocal $7
+ .cpsetup $25,$0,AES_set_encrypt_key
+ .set reorder
+ dla $7,AES_Te4 # PIC-ified 'load address'
+
+ bal _mips_AES_set_encrypt_key
+
+ .set noreorder
+ move $4,$2
+ ld $31,64-1*8($29)
+ ld $30,64-2*8($29)
+ jr $31
+ daddu $29,64
+.end AES_set_encrypt_key
+.align 5
+.globl AES_set_decrypt_key
+.ent AES_set_decrypt_key
+AES_set_decrypt_key:
+ .frame $29,64,$31
+ .mask 0xc0000000,-8
+ .set noreorder
+ dsubu $29,64
+ sd $31,64-1*8($29)
+ sd $30,64-2*8($29)
+ .cplocal $7
+ .cpsetup $25,$0,AES_set_decrypt_key
+ .set reorder
+ dla $7,AES_Te4 # PIC-ified 'load address'
+
+ bal _mips_AES_set_encrypt_key
+
+ bltz $2,.Ldkey_done
+
+ sll $1,$30,4
+ daddu $4,$6,0
+ daddu $5,$6,$1
+.align 4
+.Lswap:
+ lw $8,0($4)
+ lw $9,4($4)
+ lw $10,8($4)
+ lw $11,12($4)
+ lw $12,0($5)
+ lw $13,4($5)
+ lw $14,8($5)
+ lw $15,12($5)
+ sw $8,0($5)
+ sw $9,4($5)
+ sw $10,8($5)
+ sw $11,12($5)
+ daddu $4,16
+ dsubu $5,16
+ sw $12,-16($4)
+ sw $13,-12($4)
+ sw $14,-8($4)
+ sw $15,-4($4)
+ bne $4,$5,.Lswap
+
+ lw $8,16($6) # modulo-scheduled
+ lui $2,0x8080
+ subu $30,1
+ or $2,0x8080
+ sll $30,2
+ daddu $6,16
+ lui $25,0x1b1b
+ nor $24,$0,$2
+ or $25,0x1b1b
+.align 4
+.Lmix:
+ and $1,$8,$2
+ and $9,$8,$24
+ srl $10,$1,7
+ addu $9,$9 # tp2<<1
+ subu $1,$10
+ and $1,$25
+ xor $9,$1
+
+ and $1,$9,$2
+ and $10,$9,$24
+ srl $11,$1,7
+ addu $10,$10 # tp4<<1
+ subu $1,$11
+ and $1,$25
+ xor $10,$1
+
+ and $1,$10,$2
+ and $11,$10,$24
+ srl $12,$1,7
+ addu $11,$11 # tp8<<1
+ subu $1,$12
+ and $1,$25
+ xor $11,$1
+
+ xor $12,$11,$8
+ xor $15,$11,$10
+ xor $13,$12,$9
+ xor $14,$12,$10
+
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ rotr $8,$14,16
+ xor $15,$9
+ rotr $9,$12,24
+ xor $15,$8
+ rotr $10,$13,8
+ xor $15,$9
+ lw $8,4($6) # modulo-scheduled
+ xor $15,$10
+#else
+ sll $8,$14,16
+ xor $15,$9
+ srl $9,$14,16
+ xor $15,$8
+ sll $8,$12,8
+ xor $15,$9
+ srl $9,$12,24
+ xor $15,$8
+ sll $8,$13,24
+ xor $15,$9
+ srl $9,$13,8
+ xor $15,$8
+ lw $8,4($6) # modulo-scheduled
+ xor $15,$9
+#endif
+ subu $30,1
+ sw $15,0($6)
+ daddu $6,4
+ bnez $30,.Lmix
+
+ li $2,0
+.Ldkey_done:
+ .set noreorder
+ move $4,$2
+ ld $31,64-1*8($29)
+ ld $30,64-2*8($29)
+ jr $31
+ daddu $29,64
+.end AES_set_decrypt_key
+.rdata
+.align 10
+AES_Te:
+.byte 0xc6,0x63,0x63,0xa5, 0xf8,0x7c,0x7c,0x84 # Te0
+.byte 0xee,0x77,0x77,0x99, 0xf6,0x7b,0x7b,0x8d
+.byte 0xff,0xf2,0xf2,0x0d, 0xd6,0x6b,0x6b,0xbd
+.byte 0xde,0x6f,0x6f,0xb1, 0x91,0xc5,0xc5,0x54
+.byte 0x60,0x30,0x30,0x50, 0x02,0x01,0x01,0x03
+.byte 0xce,0x67,0x67,0xa9, 0x56,0x2b,0x2b,0x7d
+.byte 0xe7,0xfe,0xfe,0x19, 0xb5,0xd7,0xd7,0x62
+.byte 0x4d,0xab,0xab,0xe6, 0xec,0x76,0x76,0x9a
+.byte 0x8f,0xca,0xca,0x45, 0x1f,0x82,0x82,0x9d
+.byte 0x89,0xc9,0xc9,0x40, 0xfa,0x7d,0x7d,0x87
+.byte 0xef,0xfa,0xfa,0x15, 0xb2,0x59,0x59,0xeb
+.byte 0x8e,0x47,0x47,0xc9, 0xfb,0xf0,0xf0,0x0b
+.byte 0x41,0xad,0xad,0xec, 0xb3,0xd4,0xd4,0x67
+.byte 0x5f,0xa2,0xa2,0xfd, 0x45,0xaf,0xaf,0xea
+.byte 0x23,0x9c,0x9c,0xbf, 0x53,0xa4,0xa4,0xf7
+.byte 0xe4,0x72,0x72,0x96, 0x9b,0xc0,0xc0,0x5b
+.byte 0x75,0xb7,0xb7,0xc2, 0xe1,0xfd,0xfd,0x1c
+.byte 0x3d,0x93,0x93,0xae, 0x4c,0x26,0x26,0x6a
+.byte 0x6c,0x36,0x36,0x5a, 0x7e,0x3f,0x3f,0x41
+.byte 0xf5,0xf7,0xf7,0x02, 0x83,0xcc,0xcc,0x4f
+.byte 0x68,0x34,0x34,0x5c, 0x51,0xa5,0xa5,0xf4
+.byte 0xd1,0xe5,0xe5,0x34, 0xf9,0xf1,0xf1,0x08
+.byte 0xe2,0x71,0x71,0x93, 0xab,0xd8,0xd8,0x73
+.byte 0x62,0x31,0x31,0x53, 0x2a,0x15,0x15,0x3f
+.byte 0x08,0x04,0x04,0x0c, 0x95,0xc7,0xc7,0x52
+.byte 0x46,0x23,0x23,0x65, 0x9d,0xc3,0xc3,0x5e
+.byte 0x30,0x18,0x18,0x28, 0x37,0x96,0x96,0xa1
+.byte 0x0a,0x05,0x05,0x0f, 0x2f,0x9a,0x9a,0xb5
+.byte 0x0e,0x07,0x07,0x09, 0x24,0x12,0x12,0x36
+.byte 0x1b,0x80,0x80,0x9b, 0xdf,0xe2,0xe2,0x3d
+.byte 0xcd,0xeb,0xeb,0x26, 0x4e,0x27,0x27,0x69
+.byte 0x7f,0xb2,0xb2,0xcd, 0xea,0x75,0x75,0x9f
+.byte 0x12,0x09,0x09,0x1b, 0x1d,0x83,0x83,0x9e
+.byte 0x58,0x2c,0x2c,0x74, 0x34,0x1a,0x1a,0x2e
+.byte 0x36,0x1b,0x1b,0x2d, 0xdc,0x6e,0x6e,0xb2
+.byte 0xb4,0x5a,0x5a,0xee, 0x5b,0xa0,0xa0,0xfb
+.byte 0xa4,0x52,0x52,0xf6, 0x76,0x3b,0x3b,0x4d
+.byte 0xb7,0xd6,0xd6,0x61, 0x7d,0xb3,0xb3,0xce
+.byte 0x52,0x29,0x29,0x7b, 0xdd,0xe3,0xe3,0x3e
+.byte 0x5e,0x2f,0x2f,0x71, 0x13,0x84,0x84,0x97
+.byte 0xa6,0x53,0x53,0xf5, 0xb9,0xd1,0xd1,0x68
+.byte 0x00,0x00,0x00,0x00, 0xc1,0xed,0xed,0x2c
+.byte 0x40,0x20,0x20,0x60, 0xe3,0xfc,0xfc,0x1f
+.byte 0x79,0xb1,0xb1,0xc8, 0xb6,0x5b,0x5b,0xed
+.byte 0xd4,0x6a,0x6a,0xbe, 0x8d,0xcb,0xcb,0x46
+.byte 0x67,0xbe,0xbe,0xd9, 0x72,0x39,0x39,0x4b
+.byte 0x94,0x4a,0x4a,0xde, 0x98,0x4c,0x4c,0xd4
+.byte 0xb0,0x58,0x58,0xe8, 0x85,0xcf,0xcf,0x4a
+.byte 0xbb,0xd0,0xd0,0x6b, 0xc5,0xef,0xef,0x2a
+.byte 0x4f,0xaa,0xaa,0xe5, 0xed,0xfb,0xfb,0x16
+.byte 0x86,0x43,0x43,0xc5, 0x9a,0x4d,0x4d,0xd7
+.byte 0x66,0x33,0x33,0x55, 0x11,0x85,0x85,0x94
+.byte 0x8a,0x45,0x45,0xcf, 0xe9,0xf9,0xf9,0x10
+.byte 0x04,0x02,0x02,0x06, 0xfe,0x7f,0x7f,0x81
+.byte 0xa0,0x50,0x50,0xf0, 0x78,0x3c,0x3c,0x44
+.byte 0x25,0x9f,0x9f,0xba, 0x4b,0xa8,0xa8,0xe3
+.byte 0xa2,0x51,0x51,0xf3, 0x5d,0xa3,0xa3,0xfe
+.byte 0x80,0x40,0x40,0xc0, 0x05,0x8f,0x8f,0x8a
+.byte 0x3f,0x92,0x92,0xad, 0x21,0x9d,0x9d,0xbc
+.byte 0x70,0x38,0x38,0x48, 0xf1,0xf5,0xf5,0x04
+.byte 0x63,0xbc,0xbc,0xdf, 0x77,0xb6,0xb6,0xc1
+.byte 0xaf,0xda,0xda,0x75, 0x42,0x21,0x21,0x63
+.byte 0x20,0x10,0x10,0x30, 0xe5,0xff,0xff,0x1a
+.byte 0xfd,0xf3,0xf3,0x0e, 0xbf,0xd2,0xd2,0x6d
+.byte 0x81,0xcd,0xcd,0x4c, 0x18,0x0c,0x0c,0x14
+.byte 0x26,0x13,0x13,0x35, 0xc3,0xec,0xec,0x2f
+.byte 0xbe,0x5f,0x5f,0xe1, 0x35,0x97,0x97,0xa2
+.byte 0x88,0x44,0x44,0xcc, 0x2e,0x17,0x17,0x39
+.byte 0x93,0xc4,0xc4,0x57, 0x55,0xa7,0xa7,0xf2
+.byte 0xfc,0x7e,0x7e,0x82, 0x7a,0x3d,0x3d,0x47
+.byte 0xc8,0x64,0x64,0xac, 0xba,0x5d,0x5d,0xe7
+.byte 0x32,0x19,0x19,0x2b, 0xe6,0x73,0x73,0x95
+.byte 0xc0,0x60,0x60,0xa0, 0x19,0x81,0x81,0x98
+.byte 0x9e,0x4f,0x4f,0xd1, 0xa3,0xdc,0xdc,0x7f
+.byte 0x44,0x22,0x22,0x66, 0x54,0x2a,0x2a,0x7e
+.byte 0x3b,0x90,0x90,0xab, 0x0b,0x88,0x88,0x83
+.byte 0x8c,0x46,0x46,0xca, 0xc7,0xee,0xee,0x29
+.byte 0x6b,0xb8,0xb8,0xd3, 0x28,0x14,0x14,0x3c
+.byte 0xa7,0xde,0xde,0x79, 0xbc,0x5e,0x5e,0xe2
+.byte 0x16,0x0b,0x0b,0x1d, 0xad,0xdb,0xdb,0x76
+.byte 0xdb,0xe0,0xe0,0x3b, 0x64,0x32,0x32,0x56
+.byte 0x74,0x3a,0x3a,0x4e, 0x14,0x0a,0x0a,0x1e
+.byte 0x92,0x49,0x49,0xdb, 0x0c,0x06,0x06,0x0a
+.byte 0x48,0x24,0x24,0x6c, 0xb8,0x5c,0x5c,0xe4
+.byte 0x9f,0xc2,0xc2,0x5d, 0xbd,0xd3,0xd3,0x6e
+.byte 0x43,0xac,0xac,0xef, 0xc4,0x62,0x62,0xa6
+.byte 0x39,0x91,0x91,0xa8, 0x31,0x95,0x95,0xa4
+.byte 0xd3,0xe4,0xe4,0x37, 0xf2,0x79,0x79,0x8b
+.byte 0xd5,0xe7,0xe7,0x32, 0x8b,0xc8,0xc8,0x43
+.byte 0x6e,0x37,0x37,0x59, 0xda,0x6d,0x6d,0xb7
+.byte 0x01,0x8d,0x8d,0x8c, 0xb1,0xd5,0xd5,0x64
+.byte 0x9c,0x4e,0x4e,0xd2, 0x49,0xa9,0xa9,0xe0
+.byte 0xd8,0x6c,0x6c,0xb4, 0xac,0x56,0x56,0xfa
+.byte 0xf3,0xf4,0xf4,0x07, 0xcf,0xea,0xea,0x25
+.byte 0xca,0x65,0x65,0xaf, 0xf4,0x7a,0x7a,0x8e
+.byte 0x47,0xae,0xae,0xe9, 0x10,0x08,0x08,0x18
+.byte 0x6f,0xba,0xba,0xd5, 0xf0,0x78,0x78,0x88
+.byte 0x4a,0x25,0x25,0x6f, 0x5c,0x2e,0x2e,0x72
+.byte 0x38,0x1c,0x1c,0x24, 0x57,0xa6,0xa6,0xf1
+.byte 0x73,0xb4,0xb4,0xc7, 0x97,0xc6,0xc6,0x51
+.byte 0xcb,0xe8,0xe8,0x23, 0xa1,0xdd,0xdd,0x7c
+.byte 0xe8,0x74,0x74,0x9c, 0x3e,0x1f,0x1f,0x21
+.byte 0x96,0x4b,0x4b,0xdd, 0x61,0xbd,0xbd,0xdc
+.byte 0x0d,0x8b,0x8b,0x86, 0x0f,0x8a,0x8a,0x85
+.byte 0xe0,0x70,0x70,0x90, 0x7c,0x3e,0x3e,0x42
+.byte 0x71,0xb5,0xb5,0xc4, 0xcc,0x66,0x66,0xaa
+.byte 0x90,0x48,0x48,0xd8, 0x06,0x03,0x03,0x05
+.byte 0xf7,0xf6,0xf6,0x01, 0x1c,0x0e,0x0e,0x12
+.byte 0xc2,0x61,0x61,0xa3, 0x6a,0x35,0x35,0x5f
+.byte 0xae,0x57,0x57,0xf9, 0x69,0xb9,0xb9,0xd0
+.byte 0x17,0x86,0x86,0x91, 0x99,0xc1,0xc1,0x58
+.byte 0x3a,0x1d,0x1d,0x27, 0x27,0x9e,0x9e,0xb9
+.byte 0xd9,0xe1,0xe1,0x38, 0xeb,0xf8,0xf8,0x13
+.byte 0x2b,0x98,0x98,0xb3, 0x22,0x11,0x11,0x33
+.byte 0xd2,0x69,0x69,0xbb, 0xa9,0xd9,0xd9,0x70
+.byte 0x07,0x8e,0x8e,0x89, 0x33,0x94,0x94,0xa7
+.byte 0x2d,0x9b,0x9b,0xb6, 0x3c,0x1e,0x1e,0x22
+.byte 0x15,0x87,0x87,0x92, 0xc9,0xe9,0xe9,0x20
+.byte 0x87,0xce,0xce,0x49, 0xaa,0x55,0x55,0xff
+.byte 0x50,0x28,0x28,0x78, 0xa5,0xdf,0xdf,0x7a
+.byte 0x03,0x8c,0x8c,0x8f, 0x59,0xa1,0xa1,0xf8
+.byte 0x09,0x89,0x89,0x80, 0x1a,0x0d,0x0d,0x17
+.byte 0x65,0xbf,0xbf,0xda, 0xd7,0xe6,0xe6,0x31
+.byte 0x84,0x42,0x42,0xc6, 0xd0,0x68,0x68,0xb8
+.byte 0x82,0x41,0x41,0xc3, 0x29,0x99,0x99,0xb0
+.byte 0x5a,0x2d,0x2d,0x77, 0x1e,0x0f,0x0f,0x11
+.byte 0x7b,0xb0,0xb0,0xcb, 0xa8,0x54,0x54,0xfc
+.byte 0x6d,0xbb,0xbb,0xd6, 0x2c,0x16,0x16,0x3a
+
+AES_Td:
+.byte 0x51,0xf4,0xa7,0x50, 0x7e,0x41,0x65,0x53 # Td0
+.byte 0x1a,0x17,0xa4,0xc3, 0x3a,0x27,0x5e,0x96
+.byte 0x3b,0xab,0x6b,0xcb, 0x1f,0x9d,0x45,0xf1
+.byte 0xac,0xfa,0x58,0xab, 0x4b,0xe3,0x03,0x93
+.byte 0x20,0x30,0xfa,0x55, 0xad,0x76,0x6d,0xf6
+.byte 0x88,0xcc,0x76,0x91, 0xf5,0x02,0x4c,0x25
+.byte 0x4f,0xe5,0xd7,0xfc, 0xc5,0x2a,0xcb,0xd7
+.byte 0x26,0x35,0x44,0x80, 0xb5,0x62,0xa3,0x8f
+.byte 0xde,0xb1,0x5a,0x49, 0x25,0xba,0x1b,0x67
+.byte 0x45,0xea,0x0e,0x98, 0x5d,0xfe,0xc0,0xe1
+.byte 0xc3,0x2f,0x75,0x02, 0x81,0x4c,0xf0,0x12
+.byte 0x8d,0x46,0x97,0xa3, 0x6b,0xd3,0xf9,0xc6
+.byte 0x03,0x8f,0x5f,0xe7, 0x15,0x92,0x9c,0x95
+.byte 0xbf,0x6d,0x7a,0xeb, 0x95,0x52,0x59,0xda
+.byte 0xd4,0xbe,0x83,0x2d, 0x58,0x74,0x21,0xd3
+.byte 0x49,0xe0,0x69,0x29, 0x8e,0xc9,0xc8,0x44
+.byte 0x75,0xc2,0x89,0x6a, 0xf4,0x8e,0x79,0x78
+.byte 0x99,0x58,0x3e,0x6b, 0x27,0xb9,0x71,0xdd
+.byte 0xbe,0xe1,0x4f,0xb6, 0xf0,0x88,0xad,0x17
+.byte 0xc9,0x20,0xac,0x66, 0x7d,0xce,0x3a,0xb4
+.byte 0x63,0xdf,0x4a,0x18, 0xe5,0x1a,0x31,0x82
+.byte 0x97,0x51,0x33,0x60, 0x62,0x53,0x7f,0x45
+.byte 0xb1,0x64,0x77,0xe0, 0xbb,0x6b,0xae,0x84
+.byte 0xfe,0x81,0xa0,0x1c, 0xf9,0x08,0x2b,0x94
+.byte 0x70,0x48,0x68,0x58, 0x8f,0x45,0xfd,0x19
+.byte 0x94,0xde,0x6c,0x87, 0x52,0x7b,0xf8,0xb7
+.byte 0xab,0x73,0xd3,0x23, 0x72,0x4b,0x02,0xe2
+.byte 0xe3,0x1f,0x8f,0x57, 0x66,0x55,0xab,0x2a
+.byte 0xb2,0xeb,0x28,0x07, 0x2f,0xb5,0xc2,0x03
+.byte 0x86,0xc5,0x7b,0x9a, 0xd3,0x37,0x08,0xa5
+.byte 0x30,0x28,0x87,0xf2, 0x23,0xbf,0xa5,0xb2
+.byte 0x02,0x03,0x6a,0xba, 0xed,0x16,0x82,0x5c
+.byte 0x8a,0xcf,0x1c,0x2b, 0xa7,0x79,0xb4,0x92
+.byte 0xf3,0x07,0xf2,0xf0, 0x4e,0x69,0xe2,0xa1
+.byte 0x65,0xda,0xf4,0xcd, 0x06,0x05,0xbe,0xd5
+.byte 0xd1,0x34,0x62,0x1f, 0xc4,0xa6,0xfe,0x8a
+.byte 0x34,0x2e,0x53,0x9d, 0xa2,0xf3,0x55,0xa0
+.byte 0x05,0x8a,0xe1,0x32, 0xa4,0xf6,0xeb,0x75
+.byte 0x0b,0x83,0xec,0x39, 0x40,0x60,0xef,0xaa
+.byte 0x5e,0x71,0x9f,0x06, 0xbd,0x6e,0x10,0x51
+.byte 0x3e,0x21,0x8a,0xf9, 0x96,0xdd,0x06,0x3d
+.byte 0xdd,0x3e,0x05,0xae, 0x4d,0xe6,0xbd,0x46
+.byte 0x91,0x54,0x8d,0xb5, 0x71,0xc4,0x5d,0x05
+.byte 0x04,0x06,0xd4,0x6f, 0x60,0x50,0x15,0xff
+.byte 0x19,0x98,0xfb,0x24, 0xd6,0xbd,0xe9,0x97
+.byte 0x89,0x40,0x43,0xcc, 0x67,0xd9,0x9e,0x77
+.byte 0xb0,0xe8,0x42,0xbd, 0x07,0x89,0x8b,0x88
+.byte 0xe7,0x19,0x5b,0x38, 0x79,0xc8,0xee,0xdb
+.byte 0xa1,0x7c,0x0a,0x47, 0x7c,0x42,0x0f,0xe9
+.byte 0xf8,0x84,0x1e,0xc9, 0x00,0x00,0x00,0x00
+.byte 0x09,0x80,0x86,0x83, 0x32,0x2b,0xed,0x48
+.byte 0x1e,0x11,0x70,0xac, 0x6c,0x5a,0x72,0x4e
+.byte 0xfd,0x0e,0xff,0xfb, 0x0f,0x85,0x38,0x56
+.byte 0x3d,0xae,0xd5,0x1e, 0x36,0x2d,0x39,0x27
+.byte 0x0a,0x0f,0xd9,0x64, 0x68,0x5c,0xa6,0x21
+.byte 0x9b,0x5b,0x54,0xd1, 0x24,0x36,0x2e,0x3a
+.byte 0x0c,0x0a,0x67,0xb1, 0x93,0x57,0xe7,0x0f
+.byte 0xb4,0xee,0x96,0xd2, 0x1b,0x9b,0x91,0x9e
+.byte 0x80,0xc0,0xc5,0x4f, 0x61,0xdc,0x20,0xa2
+.byte 0x5a,0x77,0x4b,0x69, 0x1c,0x12,0x1a,0x16
+.byte 0xe2,0x93,0xba,0x0a, 0xc0,0xa0,0x2a,0xe5
+.byte 0x3c,0x22,0xe0,0x43, 0x12,0x1b,0x17,0x1d
+.byte 0x0e,0x09,0x0d,0x0b, 0xf2,0x8b,0xc7,0xad
+.byte 0x2d,0xb6,0xa8,0xb9, 0x14,0x1e,0xa9,0xc8
+.byte 0x57,0xf1,0x19,0x85, 0xaf,0x75,0x07,0x4c
+.byte 0xee,0x99,0xdd,0xbb, 0xa3,0x7f,0x60,0xfd
+.byte 0xf7,0x01,0x26,0x9f, 0x5c,0x72,0xf5,0xbc
+.byte 0x44,0x66,0x3b,0xc5, 0x5b,0xfb,0x7e,0x34
+.byte 0x8b,0x43,0x29,0x76, 0xcb,0x23,0xc6,0xdc
+.byte 0xb6,0xed,0xfc,0x68, 0xb8,0xe4,0xf1,0x63
+.byte 0xd7,0x31,0xdc,0xca, 0x42,0x63,0x85,0x10
+.byte 0x13,0x97,0x22,0x40, 0x84,0xc6,0x11,0x20
+.byte 0x85,0x4a,0x24,0x7d, 0xd2,0xbb,0x3d,0xf8
+.byte 0xae,0xf9,0x32,0x11, 0xc7,0x29,0xa1,0x6d
+.byte 0x1d,0x9e,0x2f,0x4b, 0xdc,0xb2,0x30,0xf3
+.byte 0x0d,0x86,0x52,0xec, 0x77,0xc1,0xe3,0xd0
+.byte 0x2b,0xb3,0x16,0x6c, 0xa9,0x70,0xb9,0x99
+.byte 0x11,0x94,0x48,0xfa, 0x47,0xe9,0x64,0x22
+.byte 0xa8,0xfc,0x8c,0xc4, 0xa0,0xf0,0x3f,0x1a
+.byte 0x56,0x7d,0x2c,0xd8, 0x22,0x33,0x90,0xef
+.byte 0x87,0x49,0x4e,0xc7, 0xd9,0x38,0xd1,0xc1
+.byte 0x8c,0xca,0xa2,0xfe, 0x98,0xd4,0x0b,0x36
+.byte 0xa6,0xf5,0x81,0xcf, 0xa5,0x7a,0xde,0x28
+.byte 0xda,0xb7,0x8e,0x26, 0x3f,0xad,0xbf,0xa4
+.byte 0x2c,0x3a,0x9d,0xe4, 0x50,0x78,0x92,0x0d
+.byte 0x6a,0x5f,0xcc,0x9b, 0x54,0x7e,0x46,0x62
+.byte 0xf6,0x8d,0x13,0xc2, 0x90,0xd8,0xb8,0xe8
+.byte 0x2e,0x39,0xf7,0x5e, 0x82,0xc3,0xaf,0xf5
+.byte 0x9f,0x5d,0x80,0xbe, 0x69,0xd0,0x93,0x7c
+.byte 0x6f,0xd5,0x2d,0xa9, 0xcf,0x25,0x12,0xb3
+.byte 0xc8,0xac,0x99,0x3b, 0x10,0x18,0x7d,0xa7
+.byte 0xe8,0x9c,0x63,0x6e, 0xdb,0x3b,0xbb,0x7b
+.byte 0xcd,0x26,0x78,0x09, 0x6e,0x59,0x18,0xf4
+.byte 0xec,0x9a,0xb7,0x01, 0x83,0x4f,0x9a,0xa8
+.byte 0xe6,0x95,0x6e,0x65, 0xaa,0xff,0xe6,0x7e
+.byte 0x21,0xbc,0xcf,0x08, 0xef,0x15,0xe8,0xe6
+.byte 0xba,0xe7,0x9b,0xd9, 0x4a,0x6f,0x36,0xce
+.byte 0xea,0x9f,0x09,0xd4, 0x29,0xb0,0x7c,0xd6
+.byte 0x31,0xa4,0xb2,0xaf, 0x2a,0x3f,0x23,0x31
+.byte 0xc6,0xa5,0x94,0x30, 0x35,0xa2,0x66,0xc0
+.byte 0x74,0x4e,0xbc,0x37, 0xfc,0x82,0xca,0xa6
+.byte 0xe0,0x90,0xd0,0xb0, 0x33,0xa7,0xd8,0x15
+.byte 0xf1,0x04,0x98,0x4a, 0x41,0xec,0xda,0xf7
+.byte 0x7f,0xcd,0x50,0x0e, 0x17,0x91,0xf6,0x2f
+.byte 0x76,0x4d,0xd6,0x8d, 0x43,0xef,0xb0,0x4d
+.byte 0xcc,0xaa,0x4d,0x54, 0xe4,0x96,0x04,0xdf
+.byte 0x9e,0xd1,0xb5,0xe3, 0x4c,0x6a,0x88,0x1b
+.byte 0xc1,0x2c,0x1f,0xb8, 0x46,0x65,0x51,0x7f
+.byte 0x9d,0x5e,0xea,0x04, 0x01,0x8c,0x35,0x5d
+.byte 0xfa,0x87,0x74,0x73, 0xfb,0x0b,0x41,0x2e
+.byte 0xb3,0x67,0x1d,0x5a, 0x92,0xdb,0xd2,0x52
+.byte 0xe9,0x10,0x56,0x33, 0x6d,0xd6,0x47,0x13
+.byte 0x9a,0xd7,0x61,0x8c, 0x37,0xa1,0x0c,0x7a
+.byte 0x59,0xf8,0x14,0x8e, 0xeb,0x13,0x3c,0x89
+.byte 0xce,0xa9,0x27,0xee, 0xb7,0x61,0xc9,0x35
+.byte 0xe1,0x1c,0xe5,0xed, 0x7a,0x47,0xb1,0x3c
+.byte 0x9c,0xd2,0xdf,0x59, 0x55,0xf2,0x73,0x3f
+.byte 0x18,0x14,0xce,0x79, 0x73,0xc7,0x37,0xbf
+.byte 0x53,0xf7,0xcd,0xea, 0x5f,0xfd,0xaa,0x5b
+.byte 0xdf,0x3d,0x6f,0x14, 0x78,0x44,0xdb,0x86
+.byte 0xca,0xaf,0xf3,0x81, 0xb9,0x68,0xc4,0x3e
+.byte 0x38,0x24,0x34,0x2c, 0xc2,0xa3,0x40,0x5f
+.byte 0x16,0x1d,0xc3,0x72, 0xbc,0xe2,0x25,0x0c
+.byte 0x28,0x3c,0x49,0x8b, 0xff,0x0d,0x95,0x41
+.byte 0x39,0xa8,0x01,0x71, 0x08,0x0c,0xb3,0xde
+.byte 0xd8,0xb4,0xe4,0x9c, 0x64,0x56,0xc1,0x90
+.byte 0x7b,0xcb,0x84,0x61, 0xd5,0x32,0xb6,0x70
+.byte 0x48,0x6c,0x5c,0x74, 0xd0,0xb8,0x57,0x42
+
+.byte 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38 # Td4
+.byte 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb
+.byte 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87
+.byte 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb
+.byte 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d
+.byte 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e
+.byte 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2
+.byte 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25
+.byte 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16
+.byte 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92
+.byte 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda
+.byte 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84
+.byte 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a
+.byte 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06
+.byte 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02
+.byte 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b
+.byte 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea
+.byte 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73
+.byte 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85
+.byte 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e
+.byte 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89
+.byte 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b
+.byte 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20
+.byte 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4
+.byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31
+.byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f
+.byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d
+.byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
+.byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0
+.byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
+.byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
+.byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
+
+AES_Te4:
+.byte 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5 # Te4
+.byte 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76
+.byte 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0
+.byte 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0
+.byte 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc
+.byte 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15
+.byte 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a
+.byte 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75
+.byte 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0
+.byte 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84
+.byte 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b
+.byte 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf
+.byte 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85
+.byte 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8
+.byte 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5
+.byte 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2
+.byte 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17
+.byte 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73
+.byte 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88
+.byte 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb
+.byte 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c
+.byte 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79
+.byte 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9
+.byte 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08
+.byte 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6
+.byte 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a
+.byte 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e
+.byte 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e
+.byte 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94
+.byte 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf
+.byte 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68
+.byte 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
+
+.byte 0x01,0x00,0x00,0x00, 0x02,0x00,0x00,0x00 # rcon
+.byte 0x04,0x00,0x00,0x00, 0x08,0x00,0x00,0x00
+.byte 0x10,0x00,0x00,0x00, 0x20,0x00,0x00,0x00
+.byte 0x40,0x00,0x00,0x00, 0x80,0x00,0x00,0x00
+.byte 0x1B,0x00,0x00,0x00, 0x36,0x00,0x00,0x00
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/bn/bn-mips.S b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/bn/bn-mips.S
new file mode 100644
index 00000000000000..bd5cf8340f1bf1
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/bn/bn-mips.S
@@ -0,0 +1,2180 @@
+#include "mips_arch.h"
+
+#if defined(_MIPS_ARCH_MIPS64R6)
+# define ddivu(rs,rt)
+# define mfqt(rd,rs,rt) ddivu rd,rs,rt
+# define mfrm(rd,rs,rt) dmodu rd,rs,rt
+#elif defined(_MIPS_ARCH_MIPS32R6)
+# define divu(rs,rt)
+# define mfqt(rd,rs,rt) divu rd,rs,rt
+# define mfrm(rd,rs,rt) modu rd,rs,rt
+#else
+# define ddivu(rs,rt) ddivu $0,rs,rt
+# define mfqt(rd,rs,rt) mflo rd
+# define mfrm(rd,rs,rt) mfhi rd
+#endif
+
+.rdata
+.asciiz "mips3.s, Version 1.2"
+.asciiz "MIPS II/III/IV ISA artwork by Andy Polyakov "
+
+.text
+.set noat
+
+.align 5
+.globl bn_mul_add_words
+.ent bn_mul_add_words
+bn_mul_add_words:
+ .set noreorder
+ bgtz $6,bn_mul_add_words_internal
+ move $2,$0
+ jr $31
+ move $4,$2
+.end bn_mul_add_words
+
+.align 5
+.ent bn_mul_add_words_internal
+bn_mul_add_words_internal:
+ .set reorder
+ li $3,-4
+ and $8,$6,$3
+ beqz $8,.L_bn_mul_add_words_tail
+
+.L_bn_mul_add_words_loop:
+ ld $12,0($5)
+ dmultu ($12,$7)
+ ld $13,0($4)
+ ld $14,8($5)
+ ld $15,8($4)
+ ld $8,2*8($5)
+ ld $9,2*8($4)
+ daddu $13,$2
+ sltu $2,$13,$2 # All manuals say it "compares 32-bit
+ # values", but it seems to work fine
+ # even on 64-bit registers.
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $13,$1
+ daddu $2,$12
+ dmultu ($14,$7)
+ sltu $1,$13,$1
+ sd $13,0($4)
+ daddu $2,$1
+
+ ld $10,3*8($5)
+ ld $11,3*8($4)
+ daddu $15,$2
+ sltu $2,$15,$2
+ mflo ($1,$14,$7)
+ mfhi ($14,$14,$7)
+ daddu $15,$1
+ daddu $2,$14
+ dmultu ($8,$7)
+ sltu $1,$15,$1
+ sd $15,8($4)
+ daddu $2,$1
+
+ subu $6,4
+ daddu $4,4*8
+ daddu $5,4*8
+ daddu $9,$2
+ sltu $2,$9,$2
+ mflo ($1,$8,$7)
+ mfhi ($8,$8,$7)
+ daddu $9,$1
+ daddu $2,$8
+ dmultu ($10,$7)
+ sltu $1,$9,$1
+ sd $9,-2*8($4)
+ daddu $2,$1
+
+
+ and $8,$6,$3
+ daddu $11,$2
+ sltu $2,$11,$2
+ mflo ($1,$10,$7)
+ mfhi ($10,$10,$7)
+ daddu $11,$1
+ daddu $2,$10
+ sltu $1,$11,$1
+ sd $11,-8($4)
+ .set noreorder
+ bgtz $8,.L_bn_mul_add_words_loop
+ daddu $2,$1
+
+ beqz $6,.L_bn_mul_add_words_return
+ nop
+
+.L_bn_mul_add_words_tail:
+ .set reorder
+ ld $12,0($5)
+ dmultu ($12,$7)
+ ld $13,0($4)
+ subu $6,1
+ daddu $13,$2
+ sltu $2,$13,$2
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $13,$1
+ daddu $2,$12
+ sltu $1,$13,$1
+ sd $13,0($4)
+ daddu $2,$1
+ beqz $6,.L_bn_mul_add_words_return
+
+ ld $12,8($5)
+ dmultu ($12,$7)
+ ld $13,8($4)
+ subu $6,1
+ daddu $13,$2
+ sltu $2,$13,$2
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $13,$1
+ daddu $2,$12
+ sltu $1,$13,$1
+ sd $13,8($4)
+ daddu $2,$1
+ beqz $6,.L_bn_mul_add_words_return
+
+ ld $12,2*8($5)
+ dmultu ($12,$7)
+ ld $13,2*8($4)
+ daddu $13,$2
+ sltu $2,$13,$2
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $13,$1
+ daddu $2,$12
+ sltu $1,$13,$1
+ sd $13,2*8($4)
+ daddu $2,$1
+
+.L_bn_mul_add_words_return:
+ .set noreorder
+ jr $31
+ move $4,$2
+.end bn_mul_add_words_internal
+
+.align 5
+.globl bn_mul_words
+.ent bn_mul_words
+bn_mul_words:
+ .set noreorder
+ bgtz $6,bn_mul_words_internal
+ move $2,$0
+ jr $31
+ move $4,$2
+.end bn_mul_words
+
+.align 5
+.ent bn_mul_words_internal
+bn_mul_words_internal:
+ .set reorder
+ li $3,-4
+ and $8,$6,$3
+ beqz $8,.L_bn_mul_words_tail
+
+.L_bn_mul_words_loop:
+ ld $12,0($5)
+ dmultu ($12,$7)
+ ld $14,8($5)
+ ld $8,2*8($5)
+ ld $10,3*8($5)
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $2,$1
+ sltu $13,$2,$1
+ dmultu ($14,$7)
+ sd $2,0($4)
+ daddu $2,$13,$12
+
+ subu $6,4
+ daddu $4,4*8
+ daddu $5,4*8
+ mflo ($1,$14,$7)
+ mfhi ($14,$14,$7)
+ daddu $2,$1
+ sltu $15,$2,$1
+ dmultu ($8,$7)
+ sd $2,-3*8($4)
+ daddu $2,$15,$14
+
+ mflo ($1,$8,$7)
+ mfhi ($8,$8,$7)
+ daddu $2,$1
+ sltu $9,$2,$1
+ dmultu ($10,$7)
+ sd $2,-2*8($4)
+ daddu $2,$9,$8
+
+ and $8,$6,$3
+ mflo ($1,$10,$7)
+ mfhi ($10,$10,$7)
+ daddu $2,$1
+ sltu $11,$2,$1
+ sd $2,-8($4)
+ .set noreorder
+ bgtz $8,.L_bn_mul_words_loop
+ daddu $2,$11,$10
+
+ beqz $6,.L_bn_mul_words_return
+ nop
+
+.L_bn_mul_words_tail:
+ .set reorder
+ ld $12,0($5)
+ dmultu ($12,$7)
+ subu $6,1
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $2,$1
+ sltu $13,$2,$1
+ sd $2,0($4)
+ daddu $2,$13,$12
+ beqz $6,.L_bn_mul_words_return
+
+ ld $12,8($5)
+ dmultu ($12,$7)
+ subu $6,1
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $2,$1
+ sltu $13,$2,$1
+ sd $2,8($4)
+ daddu $2,$13,$12
+ beqz $6,.L_bn_mul_words_return
+
+ ld $12,2*8($5)
+ dmultu ($12,$7)
+ mflo ($1,$12,$7)
+ mfhi ($12,$12,$7)
+ daddu $2,$1
+ sltu $13,$2,$1
+ sd $2,2*8($4)
+ daddu $2,$13,$12
+
+.L_bn_mul_words_return:
+ .set noreorder
+ jr $31
+ move $4,$2
+.end bn_mul_words_internal
+
+.align 5
+.globl bn_sqr_words
+.ent bn_sqr_words
+bn_sqr_words:
+ .set noreorder
+ bgtz $6,bn_sqr_words_internal
+ move $2,$0
+ jr $31
+ move $4,$2
+.end bn_sqr_words
+
+.align 5
+.ent bn_sqr_words_internal
+bn_sqr_words_internal:
+ .set reorder
+ li $3,-4
+ and $8,$6,$3
+ beqz $8,.L_bn_sqr_words_tail
+
+.L_bn_sqr_words_loop:
+ ld $12,0($5)
+ dmultu ($12,$12)
+ ld $14,8($5)
+ ld $8,2*8($5)
+ ld $10,3*8($5)
+ mflo ($13,$12,$12)
+ mfhi ($12,$12,$12)
+ sd $13,0($4)
+ sd $12,8($4)
+
+ dmultu ($14,$14)
+ subu $6,4
+ daddu $4,8*8
+ daddu $5,4*8
+ mflo ($15,$14,$14)
+ mfhi ($14,$14,$14)
+ sd $15,-6*8($4)
+ sd $14,-5*8($4)
+
+ dmultu ($8,$8)
+ mflo ($9,$8,$8)
+ mfhi ($8,$8,$8)
+ sd $9,-4*8($4)
+ sd $8,-3*8($4)
+
+
+ dmultu ($10,$10)
+ and $8,$6,$3
+ mflo ($11,$10,$10)
+ mfhi ($10,$10,$10)
+ sd $11,-2*8($4)
+
+ .set noreorder
+ bgtz $8,.L_bn_sqr_words_loop
+ sd $10,-8($4)
+
+ beqz $6,.L_bn_sqr_words_return
+ nop
+
+.L_bn_sqr_words_tail:
+ .set reorder
+ ld $12,0($5)
+ dmultu ($12,$12)
+ subu $6,1
+ mflo ($13,$12,$12)
+ mfhi ($12,$12,$12)
+ sd $13,0($4)
+ sd $12,8($4)
+ beqz $6,.L_bn_sqr_words_return
+
+ ld $12,8($5)
+ dmultu ($12,$12)
+ subu $6,1
+ mflo ($13,$12,$12)
+ mfhi ($12,$12,$12)
+ sd $13,2*8($4)
+ sd $12,3*8($4)
+ beqz $6,.L_bn_sqr_words_return
+
+ ld $12,2*8($5)
+ dmultu ($12,$12)
+ mflo ($13,$12,$12)
+ mfhi ($12,$12,$12)
+ sd $13,4*8($4)
+ sd $12,5*8($4)
+
+.L_bn_sqr_words_return:
+ .set noreorder
+ jr $31
+ move $4,$2
+
+.end bn_sqr_words_internal
+
+.align 5
+.globl bn_add_words
+.ent bn_add_words
+bn_add_words:
+ .set noreorder
+ bgtz $7,bn_add_words_internal
+ move $2,$0
+ jr $31
+ move $4,$2
+.end bn_add_words
+
+.align 5
+.ent bn_add_words_internal
+bn_add_words_internal:
+ .set reorder
+ li $3,-4
+ and $1,$7,$3
+ beqz $1,.L_bn_add_words_tail
+
+.L_bn_add_words_loop:
+ ld $12,0($5)
+ ld $8,0($6)
+ subu $7,4
+ ld $13,8($5)
+ and $1,$7,$3
+ ld $14,2*8($5)
+ daddu $6,4*8
+ ld $15,3*8($5)
+ daddu $4,4*8
+ ld $9,-3*8($6)
+ daddu $5,4*8
+ ld $10,-2*8($6)
+ ld $11,-8($6)
+ daddu $8,$12
+ sltu $24,$8,$12
+ daddu $12,$8,$2
+ sltu $2,$12,$8
+ sd $12,-4*8($4)
+ daddu $2,$24
+
+ daddu $9,$13
+ sltu $25,$9,$13
+ daddu $13,$9,$2
+ sltu $2,$13,$9
+ sd $13,-3*8($4)
+ daddu $2,$25
+
+ daddu $10,$14
+ sltu $24,$10,$14
+ daddu $14,$10,$2
+ sltu $2,$14,$10
+ sd $14,-2*8($4)
+ daddu $2,$24
+
+ daddu $11,$15
+ sltu $25,$11,$15
+ daddu $15,$11,$2
+ sltu $2,$15,$11
+ sd $15,-8($4)
+
+ .set noreorder
+ bgtz $1,.L_bn_add_words_loop
+ daddu $2,$25
+
+ beqz $7,.L_bn_add_words_return
+ nop
+
+.L_bn_add_words_tail:
+ .set reorder
+ ld $12,0($5)
+ ld $8,0($6)
+ daddu $8,$12
+ subu $7,1
+ sltu $24,$8,$12
+ daddu $12,$8,$2
+ sltu $2,$12,$8
+ sd $12,0($4)
+ daddu $2,$24
+ beqz $7,.L_bn_add_words_return
+
+ ld $13,8($5)
+ ld $9,8($6)
+ daddu $9,$13
+ subu $7,1
+ sltu $25,$9,$13
+ daddu $13,$9,$2
+ sltu $2,$13,$9
+ sd $13,8($4)
+ daddu $2,$25
+ beqz $7,.L_bn_add_words_return
+
+ ld $14,2*8($5)
+ ld $10,2*8($6)
+ daddu $10,$14
+ sltu $24,$10,$14
+ daddu $14,$10,$2
+ sltu $2,$14,$10
+ sd $14,2*8($4)
+ daddu $2,$24
+
+.L_bn_add_words_return:
+ .set noreorder
+ jr $31
+ move $4,$2
+
+.end bn_add_words_internal
+
+.align 5
+.globl bn_sub_words
+.ent bn_sub_words
+bn_sub_words:
+ .set noreorder
+ bgtz $7,bn_sub_words_internal
+ move $2,$0
+ jr $31
+ move $4,$0
+.end bn_sub_words
+
+.align 5
+.ent bn_sub_words_internal
+bn_sub_words_internal:
+ .set reorder
+ li $3,-4
+ and $1,$7,$3
+ beqz $1,.L_bn_sub_words_tail
+
+.L_bn_sub_words_loop:
+ ld $12,0($5)
+ ld $8,0($6)
+ subu $7,4
+ ld $13,8($5)
+ and $1,$7,$3
+ ld $14,2*8($5)
+ daddu $6,4*8
+ ld $15,3*8($5)
+ daddu $4,4*8
+ ld $9,-3*8($6)
+ daddu $5,4*8
+ ld $10,-2*8($6)
+ ld $11,-8($6)
+ sltu $24,$12,$8
+ dsubu $8,$12,$8
+ dsubu $12,$8,$2
+ sgtu $2,$12,$8
+ sd $12,-4*8($4)
+ daddu $2,$24
+
+ sltu $25,$13,$9
+ dsubu $9,$13,$9
+ dsubu $13,$9,$2
+ sgtu $2,$13,$9
+ sd $13,-3*8($4)
+ daddu $2,$25
+
+
+ sltu $24,$14,$10
+ dsubu $10,$14,$10
+ dsubu $14,$10,$2
+ sgtu $2,$14,$10
+ sd $14,-2*8($4)
+ daddu $2,$24
+
+ sltu $25,$15,$11
+ dsubu $11,$15,$11
+ dsubu $15,$11,$2
+ sgtu $2,$15,$11
+ sd $15,-8($4)
+
+ .set noreorder
+ bgtz $1,.L_bn_sub_words_loop
+ daddu $2,$25
+
+ beqz $7,.L_bn_sub_words_return
+ nop
+
+.L_bn_sub_words_tail:
+ .set reorder
+ ld $12,0($5)
+ ld $8,0($6)
+ subu $7,1
+ sltu $24,$12,$8
+ dsubu $8,$12,$8
+ dsubu $12,$8,$2
+ sgtu $2,$12,$8
+ sd $12,0($4)
+ daddu $2,$24
+ beqz $7,.L_bn_sub_words_return
+
+ ld $13,8($5)
+ subu $7,1
+ ld $9,8($6)
+ sltu $25,$13,$9
+ dsubu $9,$13,$9
+ dsubu $13,$9,$2
+ sgtu $2,$13,$9
+ sd $13,8($4)
+ daddu $2,$25
+ beqz $7,.L_bn_sub_words_return
+
+ ld $14,2*8($5)
+ ld $10,2*8($6)
+ sltu $24,$14,$10
+ dsubu $10,$14,$10
+ dsubu $14,$10,$2
+ sgtu $2,$14,$10
+ sd $14,2*8($4)
+ daddu $2,$24
+
+.L_bn_sub_words_return:
+ .set noreorder
+ jr $31
+ move $4,$2
+.end bn_sub_words_internal
+
+#if 0
+/*
+ * The bn_div_3_words entry point is re-used for constant-time interface.
+ * Implementation is retained as historical reference.
+ */
+.align 5
+.globl bn_div_3_words
+.ent bn_div_3_words
+bn_div_3_words:
+ .set noreorder
+ move $7,$4 # we know that bn_div_words does not
+ # touch $7, $10, $11 and preserves $6
+ # so that we can save two arguments
+ # and return address in registers
+ # instead of stack:-)
+
+ ld $4,($7)
+ move $10,$5
+ bne $4,$6,bn_div_3_words_internal
+ ld $5,-8($7)
+ li $2,-1
+ jr $31
+ move $4,$2
+.end bn_div_3_words
+
+.align 5
+.ent bn_div_3_words_internal
+bn_div_3_words_internal:
+ .set reorder
+ move $11,$31
+ bal bn_div_words_internal
+ move $31,$11
+ dmultu ($10,$2)
+ ld $14,-2*8($7)
+ move $8,$0
+ mfhi ($13,$10,$2)
+ mflo ($12,$10,$2)
+ sltu $24,$13,$5
+.L_bn_div_3_words_inner_loop:
+ bnez $24,.L_bn_div_3_words_inner_loop_done
+ sgeu $1,$14,$12
+ seq $25,$13,$5
+ and $1,$25
+ sltu $15,$12,$10
+ daddu $5,$6
+ dsubu $13,$15
+ dsubu $12,$10
+ sltu $24,$13,$5
+ sltu $8,$5,$6
+ or $24,$8
+ .set noreorder
+ beqz $1,.L_bn_div_3_words_inner_loop
+ dsubu $2,1
+ daddu $2,1
+ .set reorder
+.L_bn_div_3_words_inner_loop_done:
+ .set noreorder
+ jr $31
+ move $4,$2
+.end bn_div_3_words_internal
+#endif
+
+.align 5
+.globl bn_div_words
+.ent bn_div_words
+bn_div_words:
+ .set noreorder
+ bnez $6,bn_div_words_internal
+ li $2,-1 # I would rather signal div-by-zero
+ # which can be done with 'break 7'
+ jr $31
+ move $4,$2
+.end bn_div_words
+
+.align 5
+.ent bn_div_words_internal
+bn_div_words_internal:
+ move $3,$0
+ bltz $6,.L_bn_div_words_body
+ move $25,$3
+ dsll $6,1
+ bgtz $6,.-4
+ addu $25,1
+
+ .set reorder
+ negu $13,$25
+ li $14,-1
+ dsll $14,$13
+ and $14,$4
+ dsrl $1,$5,$13
+ .set noreorder
+ beqz $14,.+12
+ nop
+ break 6 # signal overflow
+ .set reorder
+ dsll $4,$25
+ dsll $5,$25
+ or $4,$1
+.L_bn_div_words_body:
+ dsrl $3,$6,4*8 # bits
+ sgeu $1,$4,$6
+ .set noreorder
+ beqz $1,.+12
+ nop
+ dsubu $4,$6
+ .set reorder
+
+ li $8,-1
+ dsrl $9,$4,4*8 # bits
+ dsrl $8,4*8 # q=0xffffffff
+ beq $3,$9,.L_bn_div_words_skip_div1
+ ddivu ($4,$3)
+ mfqt ($8,$4,$3)
+.L_bn_div_words_skip_div1:
+ dmultu ($6,$8)
+ dsll $15,$4,4*8 # bits
+ dsrl $1,$5,4*8 # bits
+ or $15,$1
+ mflo ($12,$6,$8)
+ mfhi ($13,$6,$8)
+.L_bn_div_words_inner_loop1:
+ sltu $14,$15,$12
+ seq $24,$9,$13
+ sltu $1,$9,$13
+ and $14,$24
+ sltu $2,$12,$6
+ or $1,$14
+ .set noreorder
+ beqz $1,.L_bn_div_words_inner_loop1_done
+ dsubu $13,$2
+ dsubu $12,$6
+ b .L_bn_div_words_inner_loop1
+ dsubu $8,1
+ .set reorder
+.L_bn_div_words_inner_loop1_done:
+
+ dsll $5,4*8 # bits
+ dsubu $4,$15,$12
+ dsll $2,$8,4*8 # bits
+
+ li $8,-1
+ dsrl $9,$4,4*8 # bits
+ dsrl $8,4*8 # q=0xffffffff
+ beq $3,$9,.L_bn_div_words_skip_div2
+ ddivu ($4,$3)
+ mfqt ($8,$4,$3)
+.L_bn_div_words_skip_div2:
+ dmultu ($6,$8)
+ dsll $15,$4,4*8 # bits
+ dsrl $1,$5,4*8 # bits
+ or $15,$1
+ mflo ($12,$6,$8)
+ mfhi ($13,$6,$8)
+.L_bn_div_words_inner_loop2:
+ sltu $14,$15,$12
+ seq $24,$9,$13
+ sltu $1,$9,$13
+ and $14,$24
+ sltu $3,$12,$6
+ or $1,$14
+ .set noreorder
+ beqz $1,.L_bn_div_words_inner_loop2_done
+ dsubu $13,$3
+ dsubu $12,$6
+ b .L_bn_div_words_inner_loop2
+ dsubu $8,1
+ .set reorder
+.L_bn_div_words_inner_loop2_done:
+
+ dsubu $4,$15,$12
+ or $2,$8
+ dsrl $3,$4,$25 # $3 contains remainder if anybody wants it
+ dsrl $6,$25 # restore $6
+
+ .set noreorder
+ move $5,$3
+ jr $31
+ move $4,$2
+.end bn_div_words_internal
+
+.align 5
+.globl bn_mul_comba8
+.ent bn_mul_comba8
+bn_mul_comba8:
+ .set noreorder
+ .frame $29,6*8,$31
+ .mask 0x003f0000,-8
+ dsubu $29,6*8
+ sd $21,5*8($29)
+ sd $20,4*8($29)
+ sd $19,3*8($29)
+ sd $18,2*8($29)
+ sd $17,1*8($29)
+ sd $16,0*8($29)
+
+ .set reorder
+ ld $12,0($5) # If compiled with -mips3 option on
+ # R5000 box assembler barks on this
+ # 1ine with "should not have mult/div
+ # as last instruction in bb (R10K
+ # bug)" warning. If anybody out there
+ # has a clue about how to circumvent
+ # this do send me a note.
+ #
+
+ ld $8,0($6)
+ ld $13,8($5)
+ ld $14,2*8($5)
+ dmultu ($12,$8) # mul_add_c(a[0],b[0],c1,c2,c3);
+ ld $15,3*8($5)
+ ld $9,8($6)
+ ld $10,2*8($6)
+ ld $11,3*8($6)
+ mflo ($2,$12,$8)
+ mfhi ($3,$12,$8)
+
+ ld $16,4*8($5)
+ ld $18,5*8($5)
+ dmultu ($12,$9) # mul_add_c(a[0],b[1],c2,c3,c1);
+ ld $20,6*8($5)
+ ld $5,7*8($5)
+ ld $17,4*8($6)
+ ld $19,5*8($6)
+ mflo ($24,$12,$9)
+ mfhi ($25,$12,$9)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($13,$8) # mul_add_c(a[1],b[0],c2,c3,c1);
+ daddu $7,$25,$1
+ ld $21,6*8($6)
+ ld $6,7*8($6)
+ sd $2,0($4) # r[0]=c1;
+ mflo ($24,$13,$8)
+ mfhi ($25,$13,$8)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$8) # mul_add_c(a[2],b[0],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $2,$7,$25
+ sd $3,8($4) # r[1]=c2;
+
+ mflo ($24,$14,$8)
+ mfhi ($25,$14,$8)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($13,$9) # mul_add_c(a[1],b[1],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ mflo ($24,$13,$9)
+ mfhi ($25,$13,$9)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($12,$10) # mul_add_c(a[0],b[2],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $3,$2,$25
+ mflo ($24,$12,$10)
+ mfhi ($25,$12,$10)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($12,$11) # mul_add_c(a[0],b[3],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,2*8($4) # r[2]=c3;
+
+ mflo ($24,$12,$11)
+ mfhi ($25,$12,$11)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($13,$10) # mul_add_c(a[1],b[2],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $7,$3,$25
+ mflo ($24,$13,$10)
+ mfhi ($25,$13,$10)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($14,$9) # mul_add_c(a[2],b[1],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$14,$9)
+ mfhi ($25,$14,$9)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$8) # mul_add_c(a[3],b[0],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$15,$8)
+ mfhi ($25,$15,$8)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($16,$8) # mul_add_c(a[4],b[0],c2,c3,c1);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ sd $2,3*8($4) # r[3]=c1;
+
+ mflo ($24,$16,$8)
+ mfhi ($25,$16,$8)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($15,$9) # mul_add_c(a[3],b[1],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $2,$7,$25
+ mflo ($24,$15,$9)
+ mfhi ($25,$15,$9)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$10) # mul_add_c(a[2],b[2],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$14,$10)
+ mfhi ($25,$14,$10)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($13,$11) # mul_add_c(a[1],b[3],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$13,$11)
+ mfhi ($25,$13,$11)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($12,$17) # mul_add_c(a[0],b[4],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$12,$17)
+ mfhi ($25,$12,$17)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($12,$19) # mul_add_c(a[0],b[5],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,4*8($4) # r[4]=c2;
+
+ mflo ($24,$12,$19)
+ mfhi ($25,$12,$19)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($13,$17) # mul_add_c(a[1],b[4],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $3,$2,$25
+ mflo ($24,$13,$17)
+ mfhi ($25,$13,$17)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($14,$11) # mul_add_c(a[2],b[3],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$14,$11)
+ mfhi ($25,$14,$11)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($15,$10) # mul_add_c(a[3],b[2],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$15,$10)
+ mfhi ($25,$15,$10)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($16,$9) # mul_add_c(a[4],b[1],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$16,$9)
+ mfhi ($25,$16,$9)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($18,$8) # mul_add_c(a[5],b[0],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$18,$8)
+ mfhi ($25,$18,$8)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($20,$8) # mul_add_c(a[6],b[0],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,5*8($4) # r[5]=c3;
+
+ mflo ($24,$20,$8)
+ mfhi ($25,$20,$8)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($18,$9) # mul_add_c(a[5],b[1],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $7,$3,$25
+ mflo ($24,$18,$9)
+ mfhi ($25,$18,$9)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($16,$10) # mul_add_c(a[4],b[2],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$16,$10)
+ mfhi ($25,$16,$10)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$11) # mul_add_c(a[3],b[3],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$15,$11)
+ mfhi ($25,$15,$11)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($14,$17) # mul_add_c(a[2],b[4],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$14,$17)
+ mfhi ($25,$14,$17)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($13,$19) # mul_add_c(a[1],b[5],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$13,$19)
+ mfhi ($25,$13,$19)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($12,$21) # mul_add_c(a[0],b[6],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$12,$21)
+ mfhi ($25,$12,$21)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($12,$6) # mul_add_c(a[0],b[7],c2,c3,c1);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ sd $2,6*8($4) # r[6]=c1;
+
+ mflo ($24,$12,$6)
+ mfhi ($25,$12,$6)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($13,$21) # mul_add_c(a[1],b[6],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $2,$7,$25
+ mflo ($24,$13,$21)
+ mfhi ($25,$13,$21)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$19) # mul_add_c(a[2],b[5],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$14,$19)
+ mfhi ($25,$14,$19)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($15,$17) # mul_add_c(a[3],b[4],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$15,$17)
+ mfhi ($25,$15,$17)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($16,$11) # mul_add_c(a[4],b[3],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$16,$11)
+ mfhi ($25,$16,$11)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($18,$10) # mul_add_c(a[5],b[2],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$18,$10)
+ mfhi ($25,$18,$10)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($20,$9) # mul_add_c(a[6],b[1],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$20,$9)
+ mfhi ($25,$20,$9)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($5,$8) # mul_add_c(a[7],b[0],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$5,$8)
+ mfhi ($25,$5,$8)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($5,$9) # mul_add_c(a[7],b[1],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,7*8($4) # r[7]=c2;
+
+ mflo ($24,$5,$9)
+ mfhi ($25,$5,$9)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($20,$10) # mul_add_c(a[6],b[2],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $3,$2,$25
+ mflo ($24,$20,$10)
+ mfhi ($25,$20,$10)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($18,$11) # mul_add_c(a[5],b[3],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$18,$11)
+ mfhi ($25,$18,$11)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($16,$17) # mul_add_c(a[4],b[4],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$16,$17)
+ mfhi ($25,$16,$17)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($15,$19) # mul_add_c(a[3],b[5],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$15,$19)
+ mfhi ($25,$15,$19)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($14,$21) # mul_add_c(a[2],b[6],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$14,$21)
+ mfhi ($25,$14,$21)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($13,$6) # mul_add_c(a[1],b[7],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$13,$6)
+ mfhi ($25,$13,$6)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($14,$6) # mul_add_c(a[2],b[7],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,8*8($4) # r[8]=c3;
+
+ mflo ($24,$14,$6)
+ mfhi ($25,$14,$6)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$21) # mul_add_c(a[3],b[6],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $7,$3,$25
+ mflo ($24,$15,$21)
+ mfhi ($25,$15,$21)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($16,$19) # mul_add_c(a[4],b[5],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$16,$19)
+ mfhi ($25,$16,$19)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($18,$17) # mul_add_c(a[5],b[4],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$18,$17)
+ mfhi ($25,$18,$17)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($20,$11) # mul_add_c(a[6],b[3],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$20,$11)
+ mfhi ($25,$20,$11)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($5,$10) # mul_add_c(a[7],b[2],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$5,$10)
+ mfhi ($25,$5,$10)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($5,$11) # mul_add_c(a[7],b[3],c2,c3,c1);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ sd $2,9*8($4) # r[9]=c1;
+
+ mflo ($24,$5,$11)
+ mfhi ($25,$5,$11)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($20,$17) # mul_add_c(a[6],b[4],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $2,$7,$25
+ mflo ($24,$20,$17)
+ mfhi ($25,$20,$17)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($18,$19) # mul_add_c(a[5],b[5],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$18,$19)
+ mfhi ($25,$18,$19)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($16,$21) # mul_add_c(a[4],b[6],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$16,$21)
+ mfhi ($25,$16,$21)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($15,$6) # mul_add_c(a[3],b[7],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$15,$6)
+ mfhi ($25,$15,$6)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($16,$6) # mul_add_c(a[4],b[7],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,10*8($4) # r[10]=c2;
+
+ mflo ($24,$16,$6)
+ mfhi ($25,$16,$6)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($18,$21) # mul_add_c(a[5],b[6],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $3,$2,$25
+ mflo ($24,$18,$21)
+ mfhi ($25,$18,$21)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($20,$19) # mul_add_c(a[6],b[5],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$20,$19)
+ mfhi ($25,$20,$19)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($5,$17) # mul_add_c(a[7],b[4],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ mflo ($24,$5,$17)
+ mfhi ($25,$5,$17)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($5,$19) # mul_add_c(a[7],b[5],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,11*8($4) # r[11]=c3;
+
+ mflo ($24,$5,$19)
+ mfhi ($25,$5,$19)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($20,$21) # mul_add_c(a[6],b[6],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $7,$3,$25
+ mflo ($24,$20,$21)
+ mfhi ($25,$20,$21)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($18,$6) # mul_add_c(a[5],b[7],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$18,$6)
+ mfhi ($25,$18,$6)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($20,$6) # mul_add_c(a[6],b[7],c2,c3,c1);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ sd $2,12*8($4) # r[12]=c1;
+
+ mflo ($24,$20,$6)
+ mfhi ($25,$20,$6)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($5,$21) # mul_add_c(a[7],b[6],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $2,$7,$25
+ mflo ($24,$5,$21)
+ mfhi ($25,$5,$21)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($5,$6) # mul_add_c(a[7],b[7],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,13*8($4) # r[13]=c2;
+
+ mflo ($24,$5,$6)
+ mfhi ($25,$5,$6)
+ daddu $7,$24
+ sltu $1,$7,$24
+ daddu $25,$1
+ daddu $2,$25
+ sd $7,14*8($4) # r[14]=c3;
+ sd $2,15*8($4) # r[15]=c1;
+
+ .set noreorder
+ ld $21,5*8($29)
+ ld $20,4*8($29)
+ ld $19,3*8($29)
+ ld $18,2*8($29)
+ ld $17,1*8($29)
+ ld $16,0*8($29)
+ jr $31
+ daddu $29,6*8
+.end bn_mul_comba8
+
+.align 5
+.globl bn_mul_comba4
+.ent bn_mul_comba4
+bn_mul_comba4:
+ .set reorder
+ ld $12,0($5)
+ ld $8,0($6)
+ ld $13,8($5)
+ ld $14,2*8($5)
+ dmultu ($12,$8) # mul_add_c(a[0],b[0],c1,c2,c3);
+ ld $15,3*8($5)
+ ld $9,8($6)
+ ld $10,2*8($6)
+ ld $11,3*8($6)
+ mflo ($2,$12,$8)
+ mfhi ($3,$12,$8)
+ sd $2,0($4)
+
+ dmultu ($12,$9) # mul_add_c(a[0],b[1],c2,c3,c1);
+ mflo ($24,$12,$9)
+ mfhi ($25,$12,$9)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($13,$8) # mul_add_c(a[1],b[0],c2,c3,c1);
+ daddu $7,$25,$1
+ mflo ($24,$13,$8)
+ mfhi ($25,$13,$8)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$8) # mul_add_c(a[2],b[0],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $2,$7,$25
+ sd $3,8($4)
+
+ mflo ($24,$14,$8)
+ mfhi ($25,$14,$8)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($13,$9) # mul_add_c(a[1],b[1],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ mflo ($24,$13,$9)
+ mfhi ($25,$13,$9)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($12,$10) # mul_add_c(a[0],b[2],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $3,$2,$25
+ mflo ($24,$12,$10)
+ mfhi ($25,$12,$10)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($12,$11) # mul_add_c(a[0],b[3],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,2*8($4)
+
+ mflo ($24,$12,$11)
+ mfhi ($25,$12,$11)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($13,$10) # mul_add_c(a[1],b[2],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $7,$3,$25
+ mflo ($24,$13,$10)
+ mfhi ($25,$13,$10)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($14,$9) # mul_add_c(a[2],b[1],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$14,$9)
+ mfhi ($25,$14,$9)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$8) # mul_add_c(a[3],b[0],c1,c2,c3);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ mflo ($24,$15,$8)
+ mfhi ($25,$15,$8)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$9) # mul_add_c(a[3],b[1],c2,c3,c1);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ sd $2,3*8($4)
+
+ mflo ($24,$15,$9)
+ mfhi ($25,$15,$9)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$10) # mul_add_c(a[2],b[2],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $2,$7,$25
+ mflo ($24,$14,$10)
+ mfhi ($25,$14,$10)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($13,$11) # mul_add_c(a[1],b[3],c2,c3,c1);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ mflo ($24,$13,$11)
+ mfhi ($25,$13,$11)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$11) # mul_add_c(a[2],b[3],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,4*8($4)
+
+ mflo ($24,$14,$11)
+ mfhi ($25,$14,$11)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($15,$10) # mul_add_c(a[3],b[2],c3,c1,c2);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $3,$2,$25
+ mflo ($24,$15,$10)
+ mfhi ($25,$15,$10)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($15,$11) # mul_add_c(a[3],b[3],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,5*8($4)
+
+ mflo ($24,$15,$11)
+ mfhi ($25,$15,$11)
+ daddu $2,$24
+ sltu $1,$2,$24
+ daddu $25,$1
+ daddu $3,$25
+ sd $2,6*8($4)
+ sd $3,7*8($4)
+
+ .set noreorder
+ jr $31
+ nop
+.end bn_mul_comba4
+
+.align 5
+.globl bn_sqr_comba8
+.ent bn_sqr_comba8
+bn_sqr_comba8:
+ .set reorder
+ ld $12,0($5)
+ ld $13,8($5)
+ ld $14,2*8($5)
+ ld $15,3*8($5)
+
+ dmultu ($12,$12) # mul_add_c(a[0],b[0],c1,c2,c3);
+ ld $8,4*8($5)
+ ld $9,5*8($5)
+ ld $10,6*8($5)
+ ld $11,7*8($5)
+ mflo ($2,$12,$12)
+ mfhi ($3,$12,$12)
+ sd $2,0($4)
+
+ dmultu ($12,$13) # mul_add_c2(a[0],b[1],c2,c3,c1);
+ mflo ($24,$12,$13)
+ mfhi ($25,$12,$13)
+ slt $2,$25,$0
+ dsll $25,1
+ dmultu ($14,$12) # mul_add_c2(a[2],b[0],c3,c1,c2);
+ slt $6,$24,$0
+ daddu $25,$6
+ dsll $24,1
+ daddu $3,$24
+ sltu $1,$3,$24
+ daddu $7,$25,$1
+ sd $3,8($4)
+ mflo ($24,$14,$12)
+ mfhi ($25,$14,$12)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($13,$13) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $3,$2,$1
+ daddu $2,$25
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$13,$13)
+ mfhi ($25,$13,$13)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($12,$15) # mul_add_c2(a[0],b[3],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,2*8($4)
+ mflo ($24,$12,$15)
+ mfhi ($25,$12,$15)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($13,$14) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $7,$3,$1
+ daddu $3,$25
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$13,$14)
+ mfhi ($25,$13,$14)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($8,$12) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $1,$3,$1
+ daddu $3,$25
+ daddu $7,$1
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$8,$12)
+ mfhi ($25,$8,$12)
+ sd $2,3*8($4)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($15,$13) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $2,$7,$1
+ daddu $7,$25
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$15,$13)
+ mfhi ($25,$15,$13)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$14) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $1,$7,$1
+ daddu $7,$25
+ daddu $2,$1
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$14,$14)
+ mfhi ($25,$14,$14)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($12,$9) # mul_add_c2(a[0],b[5],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,4*8($4)
+ mflo ($24,$12,$9)
+ mfhi ($25,$12,$9)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($13,$8) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $3,$2,$1
+ daddu $2,$25
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$13,$8)
+ mfhi ($25,$13,$8)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($14,$15) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $1,$2,$1
+ daddu $2,$25
+ daddu $3,$1
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$14,$15)
+ mfhi ($25,$14,$15)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($10,$12) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $1,$2,$1
+ daddu $2,$25
+ daddu $3,$1
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$10,$12)
+ mfhi ($25,$10,$12)
+ sd $7,5*8($4)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($9,$13) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $7,$3,$1
+ daddu $3,$25
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$9,$13)
+ mfhi ($25,$9,$13)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($8,$14) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $1,$3,$1
+ daddu $3,$25
+ daddu $7,$1
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$8,$14)
+ mfhi ($25,$8,$14)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$15) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $1,$3,$1
+ daddu $3,$25
+ daddu $7,$1
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$15,$15)
+ mfhi ($25,$15,$15)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($12,$11) # mul_add_c2(a[0],b[7],c2,c3,c1);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ sd $2,6*8($4)
+ mflo ($24,$12,$11)
+ mfhi ($25,$12,$11)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($13,$10) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $2,$7,$1
+ daddu $7,$25
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$13,$10)
+ mfhi ($25,$13,$10)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$9) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $1,$7,$1
+ daddu $7,$25
+ daddu $2,$1
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$14,$9)
+ mfhi ($25,$14,$9)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($15,$8) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $1,$7,$1
+ daddu $7,$25
+ daddu $2,$1
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$15,$8)
+ mfhi ($25,$15,$8)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($11,$13) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $1,$7,$1
+ daddu $7,$25
+ daddu $2,$1
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$11,$13)
+ mfhi ($25,$11,$13)
+ sd $3,7*8($4)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($10,$14) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $3,$2,$1
+ daddu $2,$25
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$10,$14)
+ mfhi ($25,$10,$14)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($9,$15) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $1,$2,$1
+ daddu $2,$25
+ daddu $3,$1
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$9,$15)
+ mfhi ($25,$9,$15)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($8,$8) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $1,$2,$1
+ daddu $2,$25
+ daddu $3,$1
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$8,$8)
+ mfhi ($25,$8,$8)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($14,$11) # mul_add_c2(a[2],b[7],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,8*8($4)
+ mflo ($24,$14,$11)
+ mfhi ($25,$14,$11)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$10) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $7,$3,$1
+ daddu $3,$25
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$15,$10)
+ mfhi ($25,$15,$10)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($8,$9) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $1,$3,$1
+ daddu $3,$25
+ daddu $7,$1
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$8,$9)
+ mfhi ($25,$8,$9)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($11,$15) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $1,$3,$1
+ daddu $3,$25
+ daddu $7,$1
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$11,$15)
+ mfhi ($25,$11,$15)
+ sd $2,9*8($4)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($10,$8) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $2,$7,$1
+ daddu $7,$25
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$10,$8)
+ mfhi ($25,$10,$8)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($9,$9) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $1,$7,$1
+ daddu $7,$25
+ daddu $2,$1
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$9,$9)
+ mfhi ($25,$9,$9)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($8,$11) # mul_add_c2(a[4],b[7],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,10*8($4)
+ mflo ($24,$8,$11)
+ mfhi ($25,$8,$11)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($9,$10) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $3,$2,$1
+ daddu $2,$25
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$9,$10)
+ mfhi ($25,$9,$10)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($11,$9) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $1,$2,$1
+ daddu $2,$25
+ daddu $3,$1
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$11,$9)
+ mfhi ($25,$11,$9)
+ sd $7,11*8($4)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($10,$10) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $7,$3,$1
+ daddu $3,$25
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$10,$10)
+ mfhi ($25,$10,$10)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($10,$11) # mul_add_c2(a[6],b[7],c2,c3,c1);
+ daddu $25,$1
+ daddu $3,$25
+ sltu $1,$3,$25
+ daddu $7,$1
+ sd $2,12*8($4)
+ mflo ($24,$10,$11)
+ mfhi ($25,$10,$11)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($11,$11) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $2,$7,$1
+ daddu $7,$25
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$11,$11)
+ mfhi ($25,$11,$11)
+ sd $3,13*8($4)
+
+ daddu $7,$24
+ sltu $1,$7,$24
+ daddu $25,$1
+ daddu $2,$25
+ sd $7,14*8($4)
+ sd $2,15*8($4)
+
+ .set noreorder
+ jr $31
+ nop
+.end bn_sqr_comba8
+
+.align 5
+.globl bn_sqr_comba4
+.ent bn_sqr_comba4
+bn_sqr_comba4:
+ .set reorder
+ ld $12,0($5)
+ ld $13,8($5)
+ dmultu ($12,$12) # mul_add_c(a[0],b[0],c1,c2,c3);
+ ld $14,2*8($5)
+ ld $15,3*8($5)
+ mflo ($2,$12,$12)
+ mfhi ($3,$12,$12)
+ sd $2,0($4)
+
+ dmultu ($12,$13) # mul_add_c2(a[0],b[1],c2,c3,c1);
+ mflo ($24,$12,$13)
+ mfhi ($25,$12,$13)
+ slt $2,$25,$0
+ dsll $25,1
+ dmultu ($14,$12) # mul_add_c2(a[2],b[0],c3,c1,c2);
+ slt $6,$24,$0
+ daddu $25,$6
+ dsll $24,1
+ daddu $3,$24
+ sltu $1,$3,$24
+ daddu $7,$25,$1
+ sd $3,8($4)
+ mflo ($24,$14,$12)
+ mfhi ($25,$14,$12)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($13,$13) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $3,$2,$1
+ daddu $2,$25
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$13,$13)
+ mfhi ($25,$13,$13)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($12,$15) # mul_add_c2(a[0],b[3],c1,c2,c3);
+ daddu $25,$1
+ daddu $2,$25
+ sltu $1,$2,$25
+ daddu $3,$1
+ sd $7,2*8($4)
+ mflo ($24,$12,$15)
+ mfhi ($25,$12,$15)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($13,$14) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $7,$3,$1
+ daddu $3,$25
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$13,$14)
+ mfhi ($25,$13,$14)
+ daddu $2,$24
+ sltu $1,$2,$24
+ dmultu ($15,$13) # forward multiplication
+ daddu $2,$24
+ daddu $1,$25
+ sltu $24,$2,$24
+ daddu $3,$1
+ daddu $25,$24
+ sltu $1,$3,$1
+ daddu $3,$25
+ daddu $7,$1
+ sltu $25,$3,$25
+ daddu $7,$25
+ mflo ($24,$15,$13)
+ mfhi ($25,$15,$13)
+ sd $2,3*8($4)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$14) # forward multiplication
+ daddu $3,$24
+ daddu $1,$25
+ sltu $24,$3,$24
+ daddu $7,$1
+ daddu $25,$24
+ sltu $2,$7,$1
+ daddu $7,$25
+ sltu $25,$7,$25
+ daddu $2,$25
+ mflo ($24,$14,$14)
+ mfhi ($25,$14,$14)
+ daddu $3,$24
+ sltu $1,$3,$24
+ dmultu ($14,$15) # mul_add_c2(a[2],b[3],c3,c1,c2);
+ daddu $25,$1
+ daddu $7,$25
+ sltu $1,$7,$25
+ daddu $2,$1
+ sd $3,4*8($4)
+ mflo ($24,$14,$15)
+ mfhi ($25,$14,$15)
+ daddu $7,$24
+ sltu $1,$7,$24
+ dmultu ($15,$15) # forward multiplication
+ daddu $7,$24
+ daddu $1,$25
+ sltu $24,$7,$24
+ daddu $2,$1
+ daddu $25,$24
+ sltu $3,$2,$1
+ daddu $2,$25
+ sltu $25,$2,$25
+ daddu $3,$25
+ mflo ($24,$15,$15)
+ mfhi ($25,$15,$15)
+ sd $7,5*8($4)
+
+ daddu $2,$24
+ sltu $1,$2,$24
+ daddu $25,$1
+ daddu $3,$25
+ sd $2,6*8($4)
+ sd $3,7*8($4)
+
+ .set noreorder
+ jr $31
+ nop
+.end bn_sqr_comba4
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/bn/mips-mont.S b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/bn/mips-mont.S
new file mode 100644
index 00000000000000..f107837fa17663
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/bn/mips-mont.S
@@ -0,0 +1,282 @@
+#include "mips_arch.h"
+
+.text
+
+.set noat
+.set noreorder
+
+.align 5
+.globl bn_mul_mont
+.ent bn_mul_mont
+bn_mul_mont:
+ slt $1,$9,4
+ bnez $1,1f
+ li $2,0
+ slt $1,$9,17 # on in-order CPU
+ bnez $1,bn_mul_mont_internal
+ nop
+1: jr $31
+ li $4,0
+.end bn_mul_mont
+
+.align 5
+.ent bn_mul_mont_internal
+bn_mul_mont_internal:
+ .frame $30,14*8,$31
+ .mask 0x40000000|16711680,-8
+ dsubu $29,14*8
+ sd $30,(14-1)*8($29)
+ sd $23,(14-2)*8($29)
+ sd $22,(14-3)*8($29)
+ sd $21,(14-4)*8($29)
+ sd $20,(14-5)*8($29)
+ sd $19,(14-6)*8($29)
+ sd $18,(14-7)*8($29)
+ sd $17,(14-8)*8($29)
+ sd $16,(14-9)*8($29)
+ move $30,$29
+
+ .set reorder
+ ld $8,0($8)
+ ld $13,0($6) # bp[0]
+ ld $12,0($5) # ap[0]
+ ld $14,0($7) # np[0]
+
+ dsubu $29,2*8 # place for two extra words
+ sll $9,3
+ li $1,-4096
+ dsubu $29,$9
+ and $29,$1
+
+ dmultu ($12,$13)
+ ld $17,8($5)
+ ld $19,8($7)
+ mflo ($10,$12,$13)
+ mfhi ($11,$12,$13)
+ dmultu ($10,$8)
+ mflo ($23,$10,$8)
+
+ dmultu ($17,$13)
+ mflo ($16,$17,$13)
+ mfhi ($17,$17,$13)
+
+ dmultu ($14,$23)
+ mflo ($24,$14,$23)
+ mfhi ($25,$14,$23)
+ dmultu ($19,$23)
+ daddu $24,$10
+ sltu $1,$24,$10
+ daddu $25,$1
+ mflo ($18,$19,$23)
+ mfhi ($19,$19,$23)
+
+ move $15,$29
+ li $22,2*8
+.align 4
+.L1st:
+ .set noreorder
+ daddu $12,$5,$22
+ daddu $14,$7,$22
+ ld $12,($12)
+ ld $14,($14)
+
+ dmultu ($12,$13)
+ daddu $10,$16,$11
+ daddu $24,$18,$25
+ sltu $1,$10,$11
+ sltu $2,$24,$25
+ daddu $11,$17,$1
+ daddu $25,$19,$2
+ mflo ($16,$12,$13)
+ mfhi ($17,$12,$13)
+
+ daddu $24,$10
+ sltu $1,$24,$10
+ dmultu ($14,$23)
+ daddu $25,$1
+ addu $22,8
+ sd $24,($15)
+ sltu $2,$22,$9
+ mflo ($18,$14,$23)
+ mfhi ($19,$14,$23)
+
+ bnez $2,.L1st
+ daddu $15,8
+ .set reorder
+
+ daddu $10,$16,$11
+ sltu $1,$10,$11
+ daddu $11,$17,$1
+
+ daddu $24,$18,$25
+ sltu $2,$24,$25
+ daddu $25,$19,$2
+ daddu $24,$10
+ sltu $1,$24,$10
+ daddu $25,$1
+
+ sd $24,($15)
+
+ daddu $25,$11
+ sltu $1,$25,$11
+ sd $25,8($15)
+ sd $1,2*8($15)
+
+ li $21,8
+.align 4
+.Louter:
+ daddu $13,$6,$21
+ ld $13,($13)
+ ld $12,($5)
+ ld $17,8($5)
+ ld $20,($29)
+
+ dmultu ($12,$13)
+ ld $14,($7)
+ ld $19,8($7)
+ mflo ($10,$12,$13)
+ mfhi ($11,$12,$13)
+ daddu $10,$20
+ dmultu ($10,$8)
+ sltu $1,$10,$20
+ daddu $11,$1
+ mflo ($23,$10,$8)
+
+ dmultu ($17,$13)
+ mflo ($16,$17,$13)
+ mfhi ($17,$17,$13)
+
+ dmultu ($14,$23)
+ mflo ($24,$14,$23)
+ mfhi ($25,$14,$23)
+
+ dmultu ($19,$23)
+ daddu $24,$10
+ sltu $1,$24,$10
+ daddu $25,$1
+ mflo ($18,$19,$23)
+ mfhi ($19,$19,$23)
+
+ move $15,$29
+ li $22,2*8
+ ld $20,8($15)
+.align 4
+.Linner:
+ .set noreorder
+ daddu $12,$5,$22
+ daddu $14,$7,$22
+ ld $12,($12)
+ ld $14,($14)
+
+ dmultu ($12,$13)
+ daddu $10,$16,$11
+ daddu $24,$18,$25
+ sltu $1,$10,$11
+ sltu $2,$24,$25
+ daddu $11,$17,$1
+ daddu $25,$19,$2
+ mflo ($16,$12,$13)
+ mfhi ($17,$12,$13)
+
+ daddu $10,$20
+ addu $22,8
+ dmultu ($14,$23)
+ sltu $1,$10,$20
+ daddu $24,$10
+ daddu $11,$1
+ sltu $2,$24,$10
+ ld $20,2*8($15)
+ daddu $25,$2
+ sltu $1,$22,$9
+ mflo ($18,$14,$23)
+ mfhi ($19,$14,$23)
+ sd $24,($15)
+ bnez $1,.Linner
+ daddu $15,8
+ .set reorder
+
+ daddu $10,$16,$11
+ sltu $1,$10,$11
+ daddu $11,$17,$1
+ daddu $10,$20
+ sltu $2,$10,$20
+ daddu $11,$2
+
+ ld $20,2*8($15)
+ daddu $24,$18,$25
+ sltu $1,$24,$25
+ daddu $25,$19,$1
+ daddu $24,$10
+ sltu $2,$24,$10
+ daddu $25,$2
+ sd $24,($15)
+
+ daddu $24,$25,$11
+ sltu $25,$24,$11
+ daddu $24,$20
+ sltu $1,$24,$20
+ daddu $25,$1
+ sd $24,8($15)
+ sd $25,2*8($15)
+
+ addu $21,8
+ sltu $2,$21,$9
+ bnez $2,.Louter
+
+ .set noreorder
+ daddu $20,$29,$9 # &tp[num]
+ move $15,$29
+ move $5,$29
+ li $11,0 # clear borrow bit
+
+.align 4
+.Lsub: ld $10,($15)
+ ld $24,($7)
+ daddu $15,8
+ daddu $7,8
+ dsubu $24,$10,$24 # tp[i]-np[i]
+ sgtu $1,$24,$10
+ dsubu $10,$24,$11
+ sgtu $11,$10,$24
+ sd $10,($4)
+ or $11,$1
+ sltu $1,$15,$20
+ bnez $1,.Lsub
+ daddu $4,8
+
+ dsubu $11,$25,$11 # handle upmost overflow bit
+ move $15,$29
+ dsubu $4,$9 # restore rp
+ not $25,$11
+
+.Lcopy: ld $14,($15) # conditional move
+ ld $12,($4)
+ sd $0,($15)
+ daddu $15,8
+ and $14,$11
+ and $12,$25
+ or $12,$14
+ sltu $1,$15,$20
+ sd $12,($4)
+ bnez $1,.Lcopy
+ daddu $4,8
+
+ li $4,1
+ li $2,1
+
+ .set noreorder
+ move $29,$30
+ ld $30,(14-1)*8($29)
+ ld $23,(14-2)*8($29)
+ ld $22,(14-3)*8($29)
+ ld $21,(14-4)*8($29)
+ ld $20,(14-5)*8($29)
+ ld $19,(14-6)*8($29)
+ ld $18,(14-7)*8($29)
+ ld $17,(14-8)*8($29)
+ ld $16,(14-9)*8($29)
+ jr $31
+ daddu $29,14*8
+.end bn_mul_mont_internal
+.rdata
+.asciiz "Montgomery Multiplication for MIPS, CRYPTOGAMS by "
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/buildinf.h
new file mode 100644
index 00000000000000..f6a9d770f1eb3e
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/buildinf.h
@@ -0,0 +1,36 @@
+/*
+ * WARNING: do not edit!
+ * Generated by util/mkbuildinf.pl
+ *
+ * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#define PLATFORM "platform: linux64-mips64"
+#define DATE "built on: Fri Sep 13 16:02:00 2019 UTC"
+
+/*
+ * Generate compiler_flags as an array of individual characters. This is a
+ * workaround for the situation where CFLAGS gets too long for a C90 string
+ * literal
+ */
+static const char compiler_flags[] = {
+ 'c','o','m','p','i','l','e','r',':',' ','.','.','/','c','o','n',
+ 'f','i','g','/','f','a','k','e','_','g','c','c','.','p','l',' ',
+ '-','f','P','I','C',' ','-','p','t','h','r','e','a','d',' ','-',
+ 'm','a','b','i','=','6','4',' ','-','W','a',',','-','-','n','o',
+ 'e','x','e','c','s','t','a','c','k',' ','-','W','a','l','l',' ',
+ '-','O','3',' ','-','D','O','P','E','N','S','S','L','_','U','S',
+ 'E','_','N','O','D','E','L','E','T','E',' ','-','D','O','P','E',
+ 'N','S','S','L','_','P','I','C',' ','-','D','O','P','E','N','S',
+ 'S','L','_','B','N','_','A','S','M','_','M','O','N','T',' ','-',
+ 'D','S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2',
+ '5','6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_',
+ 'A','S','M',' ','-','D','A','E','S','_','A','S','M',' ','-','D',
+ 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N',
+ 'D','E','B','U','G','\0'
+};
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/include/internal/bn_conf.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/include/internal/bn_conf.h
new file mode 100644
index 00000000000000..34bd8b78b4f90f
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/include/internal/bn_conf.h
@@ -0,0 +1,28 @@
+/* WARNING: do not edit! */
+/* Generated by Makefile from crypto/include/internal/bn_conf.h.in */
+/*
+ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef HEADER_BN_CONF_H
+# define HEADER_BN_CONF_H
+
+/*
+ * The contents of this file are not used in the UEFI build, as
+ * both 32-bit and 64-bit builds are supported from a single run
+ * of the Configure script.
+ */
+
+/* Should we define BN_DIV2W here? */
+
+/* Only one for the following should be defined */
+#define SIXTY_FOUR_BIT_LONG
+#undef SIXTY_FOUR_BIT
+#undef THIRTY_TWO_BIT
+
+#endif
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/include/internal/dso_conf.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/include/internal/dso_conf.h
new file mode 100644
index 00000000000000..252266ec2acad6
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/include/internal/dso_conf.h
@@ -0,0 +1,17 @@
+/* WARNING: do not edit! */
+/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */
+/*
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef HEADER_DSO_CONF_H
+# define HEADER_DSO_CONF_H
+# define DSO_DLFCN
+# define HAVE_DLFCN_H
+# define DSO_EXTENSION ".so"
+#endif
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/poly1305/poly1305-mips.S b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/poly1305/poly1305-mips.S
new file mode 100644
index 00000000000000..f1a6cd1c3c80fd
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/poly1305/poly1305-mips.S
@@ -0,0 +1,333 @@
+#include "mips_arch.h"
+
+#ifdef MIPSEB
+# define MSB 0
+# define LSB 7
+#else
+# define MSB 7
+# define LSB 0
+#endif
+
+.text
+.set noat
+.set noreorder
+
+.align 5
+.globl poly1305_init
+.ent poly1305_init
+poly1305_init:
+ .frame $29,0,$31
+ .set reorder
+
+ sd $0,0($4)
+ sd $0,8($4)
+ sd $0,16($4)
+
+ beqz $5,.Lno_key
+
+#if defined(_MIPS_ARCH_MIPS64R6)
+ ld $8,0($5)
+ ld $9,8($5)
+#else
+ ldl $8,0+MSB($5)
+ ldl $9,8+MSB($5)
+ ldr $8,0+LSB($5)
+ ldr $9,8+LSB($5)
+#endif
+#ifdef MIPSEB
+# if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $8,$8 # byte swap
+ dsbh $9,$9
+ dshd $8,$8
+ dshd $9,$9
+# else
+ ori $10,$0,0xFF
+ dsll $1,$10,32
+ or $10,$1 # 0x000000FF000000FF
+
+ and $11,$8,$10 # byte swap
+ and $2,$9,$10
+ dsrl $1,$8,24
+ dsrl $24,$9,24
+ dsll $11,24
+ dsll $2,24
+ and $1,$10
+ and $24,$10
+ dsll $10,8 # 0x0000FF000000FF00
+ or $11,$1
+ or $2,$24
+ and $1,$8,$10
+ and $24,$9,$10
+ dsrl $8,8
+ dsrl $9,8
+ dsll $1,8
+ dsll $24,8
+ and $8,$10
+ and $9,$10
+ or $11,$1
+ or $2,$24
+ or $8,$11
+ or $9,$2
+ dsrl $11,$8,32
+ dsrl $2,$9,32
+ dsll $8,32
+ dsll $9,32
+ or $8,$11
+ or $9,$2
+# endif
+#endif
+ li $10,1
+ dsll $10,32
+ daddiu $10,-63
+ dsll $10,28
+ daddiu $10,-1 # 0ffffffc0fffffff
+
+ and $8,$10
+ daddiu $10,-3 # 0ffffffc0ffffffc
+ and $9,$10
+
+ sd $8,24($4)
+ dsrl $10,$9,2
+ sd $9,32($4)
+ daddu $10,$9 # s1 = r1 + (r1 >> 2)
+ sd $10,40($4)
+
+.Lno_key:
+ li $2,0 # return 0
+ jr $31
+.end poly1305_init
+.align 5
+.globl poly1305_blocks
+.ent poly1305_blocks
+poly1305_blocks:
+ .set noreorder
+ dsrl $6,4 # number of complete blocks
+ bnez $6,poly1305_blocks_internal
+ nop
+ jr $31
+ nop
+.end poly1305_blocks
+
+.align 5
+.ent poly1305_blocks_internal
+poly1305_blocks_internal:
+ .frame $29,6*8,$31
+ .mask 0x00030000,-8
+ .set noreorder
+ dsubu $29,6*8
+ sd $17,40($29)
+ sd $16,32($29)
+ .set reorder
+
+ ld $12,0($4) # load hash value
+ ld $13,8($4)
+ ld $14,16($4)
+
+ ld $15,24($4) # load key
+ ld $16,32($4)
+ ld $17,40($4)
+
+.Loop:
+#if defined(_MIPS_ARCH_MIPS64R6)
+ ld $8,0($5) # load input
+ ld $9,8($5)
+#else
+ ldl $8,0+MSB($5) # load input
+ ldl $9,8+MSB($5)
+ ldr $8,0+LSB($5)
+ ldr $9,8+LSB($5)
+#endif
+ daddiu $6,-1
+ daddiu $5,16
+#ifdef MIPSEB
+# if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $8,$8 # byte swap
+ dsbh $9,$9
+ dshd $8,$8
+ dshd $9,$9
+# else
+ ori $10,$0,0xFF
+ dsll $1,$10,32
+ or $10,$1 # 0x000000FF000000FF
+
+ and $11,$8,$10 # byte swap
+ and $2,$9,$10
+ dsrl $1,$8,24
+ dsrl $24,$9,24
+ dsll $11,24
+ dsll $2,24
+ and $1,$10
+ and $24,$10
+ dsll $10,8 # 0x0000FF000000FF00
+ or $11,$1
+ or $2,$24
+ and $1,$8,$10
+ and $24,$9,$10
+ dsrl $8,8
+ dsrl $9,8
+ dsll $1,8
+ dsll $24,8
+ and $8,$10
+ and $9,$10
+ or $11,$1
+ or $2,$24
+ or $8,$11
+ or $9,$2
+ dsrl $11,$8,32
+ dsrl $2,$9,32
+ dsll $8,32
+ dsll $9,32
+ or $8,$11
+ or $9,$2
+# endif
+#endif
+ daddu $12,$8 # accumulate input
+ daddu $13,$9
+ sltu $10,$12,$8
+ sltu $11,$13,$9
+ daddu $13,$10
+
+ dmultu ($15,$12) # h0*r0
+ daddu $14,$7
+ sltu $10,$13,$10
+ mflo ($8,$15,$12)
+ mfhi ($9,$15,$12)
+
+ dmultu ($17,$13) # h1*5*r1
+ daddu $10,$11
+ daddu $14,$10
+ mflo ($10,$17,$13)
+ mfhi ($11,$17,$13)
+
+ dmultu ($16,$12) # h0*r1
+ daddu $8,$10
+ daddu $9,$11
+ mflo ($1,$16,$12)
+ mfhi ($25,$16,$12)
+ sltu $10,$8,$10
+ daddu $9,$10
+
+ dmultu ($15,$13) # h1*r0
+ daddu $9,$1
+ sltu $1,$9,$1
+ mflo ($10,$15,$13)
+ mfhi ($11,$15,$13)
+ daddu $25,$1
+
+ dmultu ($17,$14) # h2*5*r1
+ daddu $9,$10
+ daddu $25,$11
+ mflo ($1,$17,$14)
+
+ dmultu ($15,$14) # h2*r0
+ sltu $10,$9,$10
+ daddu $25,$10
+ mflo ($2,$15,$14)
+
+ daddu $9,$1
+ daddu $25,$2
+ sltu $1,$9,$1
+ daddu $25,$1
+
+ li $10,-4 # final reduction
+ and $10,$25
+ dsrl $11,$25,2
+ andi $14,$25,3
+ daddu $10,$11
+ daddu $12,$8,$10
+ sltu $10,$12,$10
+ daddu $13,$9,$10
+ sltu $10,$13,$10
+ daddu $14,$14,$10
+
+ bnez $6,.Loop
+
+ sd $12,0($4) # store hash value
+ sd $13,8($4)
+ sd $14,16($4)
+
+ .set noreorder
+ ld $17,40($29) # epilogue
+ ld $16,32($29)
+ jr $31
+ daddu $29,6*8
+.end poly1305_blocks_internal
+.align 5
+.globl poly1305_emit
+.ent poly1305_emit
+poly1305_emit:
+ .frame $29,0,$31
+ .set reorder
+
+ ld $10,0($4)
+ ld $11,8($4)
+ ld $1,16($4)
+
+ daddiu $8,$10,5 # compare to modulus
+ sltiu $2,$8,5
+ daddu $9,$11,$2
+ sltu $2,$9,$2
+ daddu $1,$1,$2
+
+ dsrl $1,2 # see if it carried/borrowed
+ dsubu $1,$0,$1
+ nor $2,$0,$1
+
+ and $8,$1
+ and $10,$2
+ and $9,$1
+ and $11,$2
+ or $8,$10
+ or $9,$11
+
+ lwu $10,0($6) # load nonce
+ lwu $11,4($6)
+ lwu $1,8($6)
+ lwu $2,12($6)
+ dsll $11,32
+ dsll $2,32
+ or $10,$11
+ or $1,$2
+
+ daddu $8,$10 # accumulate nonce
+ daddu $9,$1
+ sltu $10,$8,$10
+ daddu $9,$10
+
+ dsrl $10,$8,8 # write mac value
+ dsrl $11,$8,16
+ dsrl $1,$8,24
+ sb $8,0($5)
+ dsrl $2,$8,32
+ sb $10,1($5)
+ dsrl $10,$8,40
+ sb $11,2($5)
+ dsrl $11,$8,48
+ sb $1,3($5)
+ dsrl $1,$8,56
+ sb $2,4($5)
+ dsrl $2,$9,8
+ sb $10,5($5)
+ dsrl $10,$9,16
+ sb $11,6($5)
+ dsrl $11,$9,24
+ sb $1,7($5)
+
+ sb $9,8($5)
+ dsrl $1,$9,32
+ sb $2,9($5)
+ dsrl $2,$9,40
+ sb $10,10($5)
+ dsrl $10,$9,48
+ sb $11,11($5)
+ dsrl $11,$9,56
+ sb $1,12($5)
+ sb $2,13($5)
+ sb $10,14($5)
+ sb $11,15($5)
+
+ jr $31
+.end poly1305_emit
+.rdata
+.asciiz "Poly1305 for MIPS64, CRYPTOGAMS by "
+.align 2
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha1-mips.S b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha1-mips.S
new file mode 100644
index 00000000000000..87a15a40a502e2
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha1-mips.S
@@ -0,0 +1,3039 @@
+#include "mips_arch.h"
+
+.text
+
+.set noat
+.set noreorder
+.align 5
+.globl sha1_block_data_order
+.ent sha1_block_data_order
+sha1_block_data_order:
+ .frame $29,16*8,$31
+ .mask 0xc0ff0000,-8
+ .set noreorder
+ dsubu $29,16*8
+ sd $31,(16-1)*8($29)
+ sd $30,(16-2)*8($29)
+ sd $23,(16-3)*8($29)
+ sd $22,(16-4)*8($29)
+ sd $21,(16-5)*8($29)
+ sd $20,(16-6)*8($29)
+ sd $19,(16-7)*8($29)
+ sd $18,(16-8)*8($29)
+ sd $17,(16-9)*8($29)
+ sd $16,(16-10)*8($29)
+ dsll $6,6
+ daddu $6,$5
+ sd $6,0($29)
+ lw $1,0($4)
+ lw $2,4($4)
+ lw $3,8($4)
+ lw $7,12($4)
+ b .Loop
+ lw $24,16($4)
+.align 4
+.Loop:
+ .set reorder
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lui $31,0x5a82
+ lw $8,($5)
+ ori $31,0x7999 # K_00_19
+#else
+ lwl $8,3($5)
+ lui $31,0x5a82
+ lwr $8,0($5)
+ ori $31,0x7999 # K_00_19
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $8,$8 # byte swap(0)
+ rotr $8,$8,16
+#else
+ srl $25,$8,24 # byte swap(0)
+ srl $6,$8,8
+ andi $30,$8,0xFF00
+ sll $8,$8,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $8,$25
+ or $6,$30
+ or $8,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 0
+ xor $25,$3,$7
+ rotr $6,$1,27
+ and $25,$2
+ addu $24,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $9,1*4($5)
+#else
+ lwl $9,1*4+3($5)
+ lwr $9,1*4+0($5)
+#endif
+ xor $25,$7
+ addu $24,$8
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ lwl $9,1*4+3($5)
+ sll $25,$1,5 # 0
+ addu $24,$31
+ lwr $9,1*4+0($5)
+ srl $6,$1,27
+ addu $24,$25
+ xor $25,$3,$7
+ addu $24,$6
+ sll $30,$2,30
+ and $25,$2
+ srl $2,$2,2
+ xor $25,$7
+ addu $24,$8
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $9,$9 # byte swap(1)
+ rotr $9,$9,16
+#else
+ srl $25,$9,24 # byte swap(1)
+ srl $6,$9,8
+ andi $30,$9,0xFF00
+ sll $9,$9,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $9,$25
+ or $6,$30
+ or $9,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 1
+ xor $25,$2,$3
+ rotr $6,$24,27
+ and $25,$1
+ addu $7,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $10,2*4($5)
+#else
+ lwl $10,2*4+3($5)
+ lwr $10,2*4+0($5)
+#endif
+ xor $25,$3
+ addu $7,$9
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ lwl $10,2*4+3($5)
+ sll $25,$24,5 # 1
+ addu $7,$31
+ lwr $10,2*4+0($5)
+ srl $6,$24,27
+ addu $7,$25
+ xor $25,$2,$3
+ addu $7,$6
+ sll $30,$1,30
+ and $25,$1
+ srl $1,$1,2
+ xor $25,$3
+ addu $7,$9
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $10,$10 # byte swap(2)
+ rotr $10,$10,16
+#else
+ srl $25,$10,24 # byte swap(2)
+ srl $6,$10,8
+ andi $30,$10,0xFF00
+ sll $10,$10,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $10,$25
+ or $6,$30
+ or $10,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 2
+ xor $25,$1,$2
+ rotr $6,$7,27
+ and $25,$24
+ addu $3,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $11,3*4($5)
+#else
+ lwl $11,3*4+3($5)
+ lwr $11,3*4+0($5)
+#endif
+ xor $25,$2
+ addu $3,$10
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ lwl $11,3*4+3($5)
+ sll $25,$7,5 # 2
+ addu $3,$31
+ lwr $11,3*4+0($5)
+ srl $6,$7,27
+ addu $3,$25
+ xor $25,$1,$2
+ addu $3,$6
+ sll $30,$24,30
+ and $25,$24
+ srl $24,$24,2
+ xor $25,$2
+ addu $3,$10
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $11,$11 # byte swap(3)
+ rotr $11,$11,16
+#else
+ srl $25,$11,24 # byte swap(3)
+ srl $6,$11,8
+ andi $30,$11,0xFF00
+ sll $11,$11,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $11,$25
+ or $6,$30
+ or $11,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 3
+ xor $25,$24,$1
+ rotr $6,$3,27
+ and $25,$7
+ addu $2,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $12,4*4($5)
+#else
+ lwl $12,4*4+3($5)
+ lwr $12,4*4+0($5)
+#endif
+ xor $25,$1
+ addu $2,$11
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ lwl $12,4*4+3($5)
+ sll $25,$3,5 # 3
+ addu $2,$31
+ lwr $12,4*4+0($5)
+ srl $6,$3,27
+ addu $2,$25
+ xor $25,$24,$1
+ addu $2,$6
+ sll $30,$7,30
+ and $25,$7
+ srl $7,$7,2
+ xor $25,$1
+ addu $2,$11
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $12,$12 # byte swap(4)
+ rotr $12,$12,16
+#else
+ srl $25,$12,24 # byte swap(4)
+ srl $6,$12,8
+ andi $30,$12,0xFF00
+ sll $12,$12,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $12,$25
+ or $6,$30
+ or $12,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 4
+ xor $25,$7,$24
+ rotr $6,$2,27
+ and $25,$3
+ addu $1,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $13,5*4($5)
+#else
+ lwl $13,5*4+3($5)
+ lwr $13,5*4+0($5)
+#endif
+ xor $25,$24
+ addu $1,$12
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ lwl $13,5*4+3($5)
+ sll $25,$2,5 # 4
+ addu $1,$31
+ lwr $13,5*4+0($5)
+ srl $6,$2,27
+ addu $1,$25
+ xor $25,$7,$24
+ addu $1,$6
+ sll $30,$3,30
+ and $25,$3
+ srl $3,$3,2
+ xor $25,$24
+ addu $1,$12
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $13,$13 # byte swap(5)
+ rotr $13,$13,16
+#else
+ srl $25,$13,24 # byte swap(5)
+ srl $6,$13,8
+ andi $30,$13,0xFF00
+ sll $13,$13,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $13,$25
+ or $6,$30
+ or $13,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 5
+ xor $25,$3,$7
+ rotr $6,$1,27
+ and $25,$2
+ addu $24,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $14,6*4($5)
+#else
+ lwl $14,6*4+3($5)
+ lwr $14,6*4+0($5)
+#endif
+ xor $25,$7
+ addu $24,$13
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ lwl $14,6*4+3($5)
+ sll $25,$1,5 # 5
+ addu $24,$31
+ lwr $14,6*4+0($5)
+ srl $6,$1,27
+ addu $24,$25
+ xor $25,$3,$7
+ addu $24,$6
+ sll $30,$2,30
+ and $25,$2
+ srl $2,$2,2
+ xor $25,$7
+ addu $24,$13
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $14,$14 # byte swap(6)
+ rotr $14,$14,16
+#else
+ srl $25,$14,24 # byte swap(6)
+ srl $6,$14,8
+ andi $30,$14,0xFF00
+ sll $14,$14,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $14,$25
+ or $6,$30
+ or $14,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 6
+ xor $25,$2,$3
+ rotr $6,$24,27
+ and $25,$1
+ addu $7,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $15,7*4($5)
+#else
+ lwl $15,7*4+3($5)
+ lwr $15,7*4+0($5)
+#endif
+ xor $25,$3
+ addu $7,$14
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ lwl $15,7*4+3($5)
+ sll $25,$24,5 # 6
+ addu $7,$31
+ lwr $15,7*4+0($5)
+ srl $6,$24,27
+ addu $7,$25
+ xor $25,$2,$3
+ addu $7,$6
+ sll $30,$1,30
+ and $25,$1
+ srl $1,$1,2
+ xor $25,$3
+ addu $7,$14
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $15,$15 # byte swap(7)
+ rotr $15,$15,16
+#else
+ srl $25,$15,24 # byte swap(7)
+ srl $6,$15,8
+ andi $30,$15,0xFF00
+ sll $15,$15,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $15,$25
+ or $6,$30
+ or $15,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 7
+ xor $25,$1,$2
+ rotr $6,$7,27
+ and $25,$24
+ addu $3,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $16,8*4($5)
+#else
+ lwl $16,8*4+3($5)
+ lwr $16,8*4+0($5)
+#endif
+ xor $25,$2
+ addu $3,$15
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ lwl $16,8*4+3($5)
+ sll $25,$7,5 # 7
+ addu $3,$31
+ lwr $16,8*4+0($5)
+ srl $6,$7,27
+ addu $3,$25
+ xor $25,$1,$2
+ addu $3,$6
+ sll $30,$24,30
+ and $25,$24
+ srl $24,$24,2
+ xor $25,$2
+ addu $3,$15
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $16,$16 # byte swap(8)
+ rotr $16,$16,16
+#else
+ srl $25,$16,24 # byte swap(8)
+ srl $6,$16,8
+ andi $30,$16,0xFF00
+ sll $16,$16,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $16,$25
+ or $6,$30
+ or $16,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 8
+ xor $25,$24,$1
+ rotr $6,$3,27
+ and $25,$7
+ addu $2,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $17,9*4($5)
+#else
+ lwl $17,9*4+3($5)
+ lwr $17,9*4+0($5)
+#endif
+ xor $25,$1
+ addu $2,$16
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ lwl $17,9*4+3($5)
+ sll $25,$3,5 # 8
+ addu $2,$31
+ lwr $17,9*4+0($5)
+ srl $6,$3,27
+ addu $2,$25
+ xor $25,$24,$1
+ addu $2,$6
+ sll $30,$7,30
+ and $25,$7
+ srl $7,$7,2
+ xor $25,$1
+ addu $2,$16
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $17,$17 # byte swap(9)
+ rotr $17,$17,16
+#else
+ srl $25,$17,24 # byte swap(9)
+ srl $6,$17,8
+ andi $30,$17,0xFF00
+ sll $17,$17,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $17,$25
+ or $6,$30
+ or $17,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 9
+ xor $25,$7,$24
+ rotr $6,$2,27
+ and $25,$3
+ addu $1,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $18,10*4($5)
+#else
+ lwl $18,10*4+3($5)
+ lwr $18,10*4+0($5)
+#endif
+ xor $25,$24
+ addu $1,$17
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ lwl $18,10*4+3($5)
+ sll $25,$2,5 # 9
+ addu $1,$31
+ lwr $18,10*4+0($5)
+ srl $6,$2,27
+ addu $1,$25
+ xor $25,$7,$24
+ addu $1,$6
+ sll $30,$3,30
+ and $25,$3
+ srl $3,$3,2
+ xor $25,$24
+ addu $1,$17
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $18,$18 # byte swap(10)
+ rotr $18,$18,16
+#else
+ srl $25,$18,24 # byte swap(10)
+ srl $6,$18,8
+ andi $30,$18,0xFF00
+ sll $18,$18,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $18,$25
+ or $6,$30
+ or $18,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 10
+ xor $25,$3,$7
+ rotr $6,$1,27
+ and $25,$2
+ addu $24,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $19,11*4($5)
+#else
+ lwl $19,11*4+3($5)
+ lwr $19,11*4+0($5)
+#endif
+ xor $25,$7
+ addu $24,$18
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ lwl $19,11*4+3($5)
+ sll $25,$1,5 # 10
+ addu $24,$31
+ lwr $19,11*4+0($5)
+ srl $6,$1,27
+ addu $24,$25
+ xor $25,$3,$7
+ addu $24,$6
+ sll $30,$2,30
+ and $25,$2
+ srl $2,$2,2
+ xor $25,$7
+ addu $24,$18
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $19,$19 # byte swap(11)
+ rotr $19,$19,16
+#else
+ srl $25,$19,24 # byte swap(11)
+ srl $6,$19,8
+ andi $30,$19,0xFF00
+ sll $19,$19,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $19,$25
+ or $6,$30
+ or $19,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 11
+ xor $25,$2,$3
+ rotr $6,$24,27
+ and $25,$1
+ addu $7,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $20,12*4($5)
+#else
+ lwl $20,12*4+3($5)
+ lwr $20,12*4+0($5)
+#endif
+ xor $25,$3
+ addu $7,$19
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ lwl $20,12*4+3($5)
+ sll $25,$24,5 # 11
+ addu $7,$31
+ lwr $20,12*4+0($5)
+ srl $6,$24,27
+ addu $7,$25
+ xor $25,$2,$3
+ addu $7,$6
+ sll $30,$1,30
+ and $25,$1
+ srl $1,$1,2
+ xor $25,$3
+ addu $7,$19
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $20,$20 # byte swap(12)
+ rotr $20,$20,16
+#else
+ srl $25,$20,24 # byte swap(12)
+ srl $6,$20,8
+ andi $30,$20,0xFF00
+ sll $20,$20,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $20,$25
+ or $6,$30
+ or $20,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 12
+ xor $25,$1,$2
+ rotr $6,$7,27
+ and $25,$24
+ addu $3,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $21,13*4($5)
+#else
+ lwl $21,13*4+3($5)
+ lwr $21,13*4+0($5)
+#endif
+ xor $25,$2
+ addu $3,$20
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ lwl $21,13*4+3($5)
+ sll $25,$7,5 # 12
+ addu $3,$31
+ lwr $21,13*4+0($5)
+ srl $6,$7,27
+ addu $3,$25
+ xor $25,$1,$2
+ addu $3,$6
+ sll $30,$24,30
+ and $25,$24
+ srl $24,$24,2
+ xor $25,$2
+ addu $3,$20
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $21,$21 # byte swap(13)
+ rotr $21,$21,16
+#else
+ srl $25,$21,24 # byte swap(13)
+ srl $6,$21,8
+ andi $30,$21,0xFF00
+ sll $21,$21,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $21,$25
+ or $6,$30
+ or $21,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 13
+ xor $25,$24,$1
+ rotr $6,$3,27
+ and $25,$7
+ addu $2,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $22,14*4($5)
+#else
+ lwl $22,14*4+3($5)
+ lwr $22,14*4+0($5)
+#endif
+ xor $25,$1
+ addu $2,$21
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ lwl $22,14*4+3($5)
+ sll $25,$3,5 # 13
+ addu $2,$31
+ lwr $22,14*4+0($5)
+ srl $6,$3,27
+ addu $2,$25
+ xor $25,$24,$1
+ addu $2,$6
+ sll $30,$7,30
+ and $25,$7
+ srl $7,$7,2
+ xor $25,$1
+ addu $2,$21
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $22,$22 # byte swap(14)
+ rotr $22,$22,16
+#else
+ srl $25,$22,24 # byte swap(14)
+ srl $6,$22,8
+ andi $30,$22,0xFF00
+ sll $22,$22,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $22,$25
+ or $6,$30
+ or $22,$6
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 14
+ xor $25,$7,$24
+ rotr $6,$2,27
+ and $25,$3
+ addu $1,$6
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $23,15*4($5)
+#else
+ lwl $23,15*4+3($5)
+ lwr $23,15*4+0($5)
+#endif
+ xor $25,$24
+ addu $1,$22
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ lwl $23,15*4+3($5)
+ sll $25,$2,5 # 14
+ addu $1,$31
+ lwr $23,15*4+0($5)
+ srl $6,$2,27
+ addu $1,$25
+ xor $25,$7,$24
+ addu $1,$6
+ sll $30,$3,30
+ and $25,$3
+ srl $3,$3,2
+ xor $25,$24
+ addu $1,$22
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $23,$23 # byte swap(15)
+ rotr $23,$23,16
+#else
+ srl $25,$23,24 # byte swap(15)
+ srl $6,$23,8
+ andi $30,$23,0xFF00
+ sll $23,$23,24
+ andi $6,0xFF00
+ sll $30,$30,8
+ or $23,$25
+ or $23,$6
+ or $23,$30
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 15
+ xor $8,$10
+ xor $25,$3,$7
+ rotr $6,$1,27
+ xor $8,$16
+ and $25,$2
+ addu $24,$6
+ xor $8,$21
+ xor $25,$7
+ addu $24,$23
+ rotr $8,$8,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $8,$10
+ sll $25,$1,5 # 15
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $8,$16
+ xor $25,$3,$7
+ addu $24,$6
+ xor $8,$21
+ sll $30,$2,30
+ and $25,$2
+ srl $6,$8,31
+ addu $8,$8
+ srl $2,$2,2
+ xor $25,$7
+ or $8,$6
+ addu $24,$23
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 16
+ xor $9,$11
+ xor $25,$2,$3
+ rotr $6,$24,27
+ xor $9,$17
+ and $25,$1
+ addu $7,$6
+ xor $9,$22
+ xor $25,$3
+ addu $7,$8
+ rotr $9,$9,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $9,$11
+ sll $25,$24,5 # 16
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $9,$17
+ xor $25,$2,$3
+ addu $7,$6
+ xor $9,$22
+ sll $30,$1,30
+ and $25,$1
+ srl $6,$9,31
+ addu $9,$9
+ srl $1,$1,2
+ xor $25,$3
+ or $9,$6
+ addu $7,$8
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 17
+ xor $10,$12
+ xor $25,$1,$2
+ rotr $6,$7,27
+ xor $10,$18
+ and $25,$24
+ addu $3,$6
+ xor $10,$23
+ xor $25,$2
+ addu $3,$9
+ rotr $10,$10,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $10,$12
+ sll $25,$7,5 # 17
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $10,$18
+ xor $25,$1,$2
+ addu $3,$6
+ xor $10,$23
+ sll $30,$24,30
+ and $25,$24
+ srl $6,$10,31
+ addu $10,$10
+ srl $24,$24,2
+ xor $25,$2
+ or $10,$6
+ addu $3,$9
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 18
+ xor $11,$13
+ xor $25,$24,$1
+ rotr $6,$3,27
+ xor $11,$19
+ and $25,$7
+ addu $2,$6
+ xor $11,$8
+ xor $25,$1
+ addu $2,$10
+ rotr $11,$11,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $11,$13
+ sll $25,$3,5 # 18
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $11,$19
+ xor $25,$24,$1
+ addu $2,$6
+ xor $11,$8
+ sll $30,$7,30
+ and $25,$7
+ srl $6,$11,31
+ addu $11,$11
+ srl $7,$7,2
+ xor $25,$1
+ or $11,$6
+ addu $2,$10
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 19
+ xor $12,$14
+ xor $25,$7,$24
+ rotr $6,$2,27
+ xor $12,$20
+ and $25,$3
+ addu $1,$6
+ xor $12,$9
+ xor $25,$24
+ addu $1,$11
+ rotr $12,$12,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $12,$14
+ sll $25,$2,5 # 19
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $12,$20
+ xor $25,$7,$24
+ addu $1,$6
+ xor $12,$9
+ sll $30,$3,30
+ and $25,$3
+ srl $6,$12,31
+ addu $12,$12
+ srl $3,$3,2
+ xor $25,$24
+ or $12,$6
+ addu $1,$11
+ or $3,$30
+ addu $1,$25
+#endif
+ lui $31,0x6ed9
+ ori $31,0xeba1 # K_20_39
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $13,$15
+ addu $24,$31 # 20
+ rotr $6,$1,27
+ xor $13,$21
+ xor $25,$3,$7
+ addu $24,$6
+ xor $13,$10
+ xor $25,$2
+ addu $24,$12
+ rotr $13,$13,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $13,$15
+ sll $25,$1,5 # 20
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $13,$21
+ xor $25,$3,$7
+ addu $24,$6
+ xor $13,$10
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$13,31
+ addu $13,$13
+ srl $2,$2,2
+ addu $24,$12
+ or $13,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $14,$16
+ addu $7,$31 # 21
+ rotr $6,$24,27
+ xor $14,$22
+ xor $25,$2,$3
+ addu $7,$6
+ xor $14,$11
+ xor $25,$1
+ addu $7,$13
+ rotr $14,$14,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $14,$16
+ sll $25,$24,5 # 21
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $14,$22
+ xor $25,$2,$3
+ addu $7,$6
+ xor $14,$11
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$14,31
+ addu $14,$14
+ srl $1,$1,2
+ addu $7,$13
+ or $14,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $15,$17
+ addu $3,$31 # 22
+ rotr $6,$7,27
+ xor $15,$23
+ xor $25,$1,$2
+ addu $3,$6
+ xor $15,$12
+ xor $25,$24
+ addu $3,$14
+ rotr $15,$15,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $15,$17
+ sll $25,$7,5 # 22
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $15,$23
+ xor $25,$1,$2
+ addu $3,$6
+ xor $15,$12
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$15,31
+ addu $15,$15
+ srl $24,$24,2
+ addu $3,$14
+ or $15,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $16,$18
+ addu $2,$31 # 23
+ rotr $6,$3,27
+ xor $16,$8
+ xor $25,$24,$1
+ addu $2,$6
+ xor $16,$13
+ xor $25,$7
+ addu $2,$15
+ rotr $16,$16,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $16,$18
+ sll $25,$3,5 # 23
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $16,$8
+ xor $25,$24,$1
+ addu $2,$6
+ xor $16,$13
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$16,31
+ addu $16,$16
+ srl $7,$7,2
+ addu $2,$15
+ or $16,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $17,$19
+ addu $1,$31 # 24
+ rotr $6,$2,27
+ xor $17,$9
+ xor $25,$7,$24
+ addu $1,$6
+ xor $17,$14
+ xor $25,$3
+ addu $1,$16
+ rotr $17,$17,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $17,$19
+ sll $25,$2,5 # 24
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $17,$9
+ xor $25,$7,$24
+ addu $1,$6
+ xor $17,$14
+ sll $30,$3,30
+ xor $25,$3
+ srl $6,$17,31
+ addu $17,$17
+ srl $3,$3,2
+ addu $1,$16
+ or $17,$6
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $18,$20
+ addu $24,$31 # 25
+ rotr $6,$1,27
+ xor $18,$10
+ xor $25,$3,$7
+ addu $24,$6
+ xor $18,$15
+ xor $25,$2
+ addu $24,$17
+ rotr $18,$18,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $18,$20
+ sll $25,$1,5 # 25
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $18,$10
+ xor $25,$3,$7
+ addu $24,$6
+ xor $18,$15
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$18,31
+ addu $18,$18
+ srl $2,$2,2
+ addu $24,$17
+ or $18,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $19,$21
+ addu $7,$31 # 26
+ rotr $6,$24,27
+ xor $19,$11
+ xor $25,$2,$3
+ addu $7,$6
+ xor $19,$16
+ xor $25,$1
+ addu $7,$18
+ rotr $19,$19,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $19,$21
+ sll $25,$24,5 # 26
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $19,$11
+ xor $25,$2,$3
+ addu $7,$6
+ xor $19,$16
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$19,31
+ addu $19,$19
+ srl $1,$1,2
+ addu $7,$18
+ or $19,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $20,$22
+ addu $3,$31 # 27
+ rotr $6,$7,27
+ xor $20,$12
+ xor $25,$1,$2
+ addu $3,$6
+ xor $20,$17
+ xor $25,$24
+ addu $3,$19
+ rotr $20,$20,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $20,$22
+ sll $25,$7,5 # 27
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $20,$12
+ xor $25,$1,$2
+ addu $3,$6
+ xor $20,$17
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$20,31
+ addu $20,$20
+ srl $24,$24,2
+ addu $3,$19
+ or $20,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $21,$23
+ addu $2,$31 # 28
+ rotr $6,$3,27
+ xor $21,$13
+ xor $25,$24,$1
+ addu $2,$6
+ xor $21,$18
+ xor $25,$7
+ addu $2,$20
+ rotr $21,$21,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $21,$23
+ sll $25,$3,5 # 28
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $21,$13
+ xor $25,$24,$1
+ addu $2,$6
+ xor $21,$18
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$21,31
+ addu $21,$21
+ srl $7,$7,2
+ addu $2,$20
+ or $21,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $22,$8
+ addu $1,$31 # 29
+ rotr $6,$2,27
+ xor $22,$14
+ xor $25,$7,$24
+ addu $1,$6
+ xor $22,$19
+ xor $25,$3
+ addu $1,$21
+ rotr $22,$22,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $22,$8
+ sll $25,$2,5 # 29
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $22,$14
+ xor $25,$7,$24
+ addu $1,$6
+ xor $22,$19
+ sll $30,$3,30
+ xor $25,$3
+ srl $6,$22,31
+ addu $22,$22
+ srl $3,$3,2
+ addu $1,$21
+ or $22,$6
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $23,$9
+ addu $24,$31 # 30
+ rotr $6,$1,27
+ xor $23,$15
+ xor $25,$3,$7
+ addu $24,$6
+ xor $23,$20
+ xor $25,$2
+ addu $24,$22
+ rotr $23,$23,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $23,$9
+ sll $25,$1,5 # 30
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $23,$15
+ xor $25,$3,$7
+ addu $24,$6
+ xor $23,$20
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$23,31
+ addu $23,$23
+ srl $2,$2,2
+ addu $24,$22
+ or $23,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $8,$10
+ addu $7,$31 # 31
+ rotr $6,$24,27
+ xor $8,$16
+ xor $25,$2,$3
+ addu $7,$6
+ xor $8,$21
+ xor $25,$1
+ addu $7,$23
+ rotr $8,$8,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $8,$10
+ sll $25,$24,5 # 31
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $8,$16
+ xor $25,$2,$3
+ addu $7,$6
+ xor $8,$21
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$8,31
+ addu $8,$8
+ srl $1,$1,2
+ addu $7,$23
+ or $8,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $9,$11
+ addu $3,$31 # 32
+ rotr $6,$7,27
+ xor $9,$17
+ xor $25,$1,$2
+ addu $3,$6
+ xor $9,$22
+ xor $25,$24
+ addu $3,$8
+ rotr $9,$9,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $9,$11
+ sll $25,$7,5 # 32
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $9,$17
+ xor $25,$1,$2
+ addu $3,$6
+ xor $9,$22
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$9,31
+ addu $9,$9
+ srl $24,$24,2
+ addu $3,$8
+ or $9,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $10,$12
+ addu $2,$31 # 33
+ rotr $6,$3,27
+ xor $10,$18
+ xor $25,$24,$1
+ addu $2,$6
+ xor $10,$23
+ xor $25,$7
+ addu $2,$9
+ rotr $10,$10,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $10,$12
+ sll $25,$3,5 # 33
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $10,$18
+ xor $25,$24,$1
+ addu $2,$6
+ xor $10,$23
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$10,31
+ addu $10,$10
+ srl $7,$7,2
+ addu $2,$9
+ or $10,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $11,$13
+ addu $1,$31 # 34
+ rotr $6,$2,27
+ xor $11,$19
+ xor $25,$7,$24
+ addu $1,$6
+ xor $11,$8
+ xor $25,$3
+ addu $1,$10
+ rotr $11,$11,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $11,$13
+ sll $25,$2,5 # 34
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $11,$19
+ xor $25,$7,$24
+ addu $1,$6
+ xor $11,$8
+ sll $30,$3,30
+ xor $25,$3
+ srl $6,$11,31
+ addu $11,$11
+ srl $3,$3,2
+ addu $1,$10
+ or $11,$6
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $12,$14
+ addu $24,$31 # 35
+ rotr $6,$1,27
+ xor $12,$20
+ xor $25,$3,$7
+ addu $24,$6
+ xor $12,$9
+ xor $25,$2
+ addu $24,$11
+ rotr $12,$12,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $12,$14
+ sll $25,$1,5 # 35
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $12,$20
+ xor $25,$3,$7
+ addu $24,$6
+ xor $12,$9
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$12,31
+ addu $12,$12
+ srl $2,$2,2
+ addu $24,$11
+ or $12,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $13,$15
+ addu $7,$31 # 36
+ rotr $6,$24,27
+ xor $13,$21
+ xor $25,$2,$3
+ addu $7,$6
+ xor $13,$10
+ xor $25,$1
+ addu $7,$12
+ rotr $13,$13,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $13,$15
+ sll $25,$24,5 # 36
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $13,$21
+ xor $25,$2,$3
+ addu $7,$6
+ xor $13,$10
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$13,31
+ addu $13,$13
+ srl $1,$1,2
+ addu $7,$12
+ or $13,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $14,$16
+ addu $3,$31 # 37
+ rotr $6,$7,27
+ xor $14,$22
+ xor $25,$1,$2
+ addu $3,$6
+ xor $14,$11
+ xor $25,$24
+ addu $3,$13
+ rotr $14,$14,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $14,$16
+ sll $25,$7,5 # 37
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $14,$22
+ xor $25,$1,$2
+ addu $3,$6
+ xor $14,$11
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$14,31
+ addu $14,$14
+ srl $24,$24,2
+ addu $3,$13
+ or $14,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $15,$17
+ addu $2,$31 # 38
+ rotr $6,$3,27
+ xor $15,$23
+ xor $25,$24,$1
+ addu $2,$6
+ xor $15,$12
+ xor $25,$7
+ addu $2,$14
+ rotr $15,$15,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $15,$17
+ sll $25,$3,5 # 38
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $15,$23
+ xor $25,$24,$1
+ addu $2,$6
+ xor $15,$12
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$15,31
+ addu $15,$15
+ srl $7,$7,2
+ addu $2,$14
+ or $15,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $16,$18
+ addu $1,$31 # 39
+ rotr $6,$2,27
+ xor $16,$8
+ xor $25,$7,$24
+ addu $1,$6
+ xor $16,$13
+ xor $25,$3
+ addu $1,$15
+ rotr $16,$16,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $16,$18
+ sll $25,$2,5 # 39
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $16,$8
+ xor $25,$7,$24
+ addu $1,$6
+ xor $16,$13
+ sll $30,$3,30
+ xor $25,$3
+ srl $6,$16,31
+ addu $16,$16
+ srl $3,$3,2
+ addu $1,$15
+ or $16,$6
+ or $3,$30
+ addu $1,$25
+#endif
+ lui $31,0x8f1b
+ ori $31,0xbcdc # K_40_59
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 40
+ and $25,$3,$7
+ xor $17,$19
+ rotr $6,$1,27
+ addu $24,$25
+ xor $17,$9
+ xor $25,$3,$7
+ addu $24,$6
+ xor $17,$14
+ and $25,$2
+ addu $24,$16
+ rotr $17,$17,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $17,$19
+ sll $25,$1,5 # 40
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $17,$9
+ and $25,$3,$7
+ addu $24,$6
+ xor $17,$14
+ sll $30,$2,30
+ addu $24,$25
+ srl $6,$17,31
+ xor $25,$3,$7
+ addu $17,$17
+ and $25,$2
+ srl $2,$2,2
+ or $17,$6
+ addu $24,$16
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 41
+ and $25,$2,$3
+ xor $18,$20
+ rotr $6,$24,27
+ addu $7,$25
+ xor $18,$10
+ xor $25,$2,$3
+ addu $7,$6
+ xor $18,$15
+ and $25,$1
+ addu $7,$17
+ rotr $18,$18,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $18,$20
+ sll $25,$24,5 # 41
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $18,$10
+ and $25,$2,$3
+ addu $7,$6
+ xor $18,$15
+ sll $30,$1,30
+ addu $7,$25
+ srl $6,$18,31
+ xor $25,$2,$3
+ addu $18,$18
+ and $25,$1
+ srl $1,$1,2
+ or $18,$6
+ addu $7,$17
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 42
+ and $25,$1,$2
+ xor $19,$21
+ rotr $6,$7,27
+ addu $3,$25
+ xor $19,$11
+ xor $25,$1,$2
+ addu $3,$6
+ xor $19,$16
+ and $25,$24
+ addu $3,$18
+ rotr $19,$19,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $19,$21
+ sll $25,$7,5 # 42
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $19,$11
+ and $25,$1,$2
+ addu $3,$6
+ xor $19,$16
+ sll $30,$24,30
+ addu $3,$25
+ srl $6,$19,31
+ xor $25,$1,$2
+ addu $19,$19
+ and $25,$24
+ srl $24,$24,2
+ or $19,$6
+ addu $3,$18
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 43
+ and $25,$24,$1
+ xor $20,$22
+ rotr $6,$3,27
+ addu $2,$25
+ xor $20,$12
+ xor $25,$24,$1
+ addu $2,$6
+ xor $20,$17
+ and $25,$7
+ addu $2,$19
+ rotr $20,$20,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $20,$22
+ sll $25,$3,5 # 43
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $20,$12
+ and $25,$24,$1
+ addu $2,$6
+ xor $20,$17
+ sll $30,$7,30
+ addu $2,$25
+ srl $6,$20,31
+ xor $25,$24,$1
+ addu $20,$20
+ and $25,$7
+ srl $7,$7,2
+ or $20,$6
+ addu $2,$19
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 44
+ and $25,$7,$24
+ xor $21,$23
+ rotr $6,$2,27
+ addu $1,$25
+ xor $21,$13
+ xor $25,$7,$24
+ addu $1,$6
+ xor $21,$18
+ and $25,$3
+ addu $1,$20
+ rotr $21,$21,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $21,$23
+ sll $25,$2,5 # 44
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $21,$13
+ and $25,$7,$24
+ addu $1,$6
+ xor $21,$18
+ sll $30,$3,30
+ addu $1,$25
+ srl $6,$21,31
+ xor $25,$7,$24
+ addu $21,$21
+ and $25,$3
+ srl $3,$3,2
+ or $21,$6
+ addu $1,$20
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 45
+ and $25,$3,$7
+ xor $22,$8
+ rotr $6,$1,27
+ addu $24,$25
+ xor $22,$14
+ xor $25,$3,$7
+ addu $24,$6
+ xor $22,$19
+ and $25,$2
+ addu $24,$21
+ rotr $22,$22,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $22,$8
+ sll $25,$1,5 # 45
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $22,$14
+ and $25,$3,$7
+ addu $24,$6
+ xor $22,$19
+ sll $30,$2,30
+ addu $24,$25
+ srl $6,$22,31
+ xor $25,$3,$7
+ addu $22,$22
+ and $25,$2
+ srl $2,$2,2
+ or $22,$6
+ addu $24,$21
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 46
+ and $25,$2,$3
+ xor $23,$9
+ rotr $6,$24,27
+ addu $7,$25
+ xor $23,$15
+ xor $25,$2,$3
+ addu $7,$6
+ xor $23,$20
+ and $25,$1
+ addu $7,$22
+ rotr $23,$23,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $23,$9
+ sll $25,$24,5 # 46
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $23,$15
+ and $25,$2,$3
+ addu $7,$6
+ xor $23,$20
+ sll $30,$1,30
+ addu $7,$25
+ srl $6,$23,31
+ xor $25,$2,$3
+ addu $23,$23
+ and $25,$1
+ srl $1,$1,2
+ or $23,$6
+ addu $7,$22
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 47
+ and $25,$1,$2
+ xor $8,$10
+ rotr $6,$7,27
+ addu $3,$25
+ xor $8,$16
+ xor $25,$1,$2
+ addu $3,$6
+ xor $8,$21
+ and $25,$24
+ addu $3,$23
+ rotr $8,$8,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $8,$10
+ sll $25,$7,5 # 47
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $8,$16
+ and $25,$1,$2
+ addu $3,$6
+ xor $8,$21
+ sll $30,$24,30
+ addu $3,$25
+ srl $6,$8,31
+ xor $25,$1,$2
+ addu $8,$8
+ and $25,$24
+ srl $24,$24,2
+ or $8,$6
+ addu $3,$23
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 48
+ and $25,$24,$1
+ xor $9,$11
+ rotr $6,$3,27
+ addu $2,$25
+ xor $9,$17
+ xor $25,$24,$1
+ addu $2,$6
+ xor $9,$22
+ and $25,$7
+ addu $2,$8
+ rotr $9,$9,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $9,$11
+ sll $25,$3,5 # 48
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $9,$17
+ and $25,$24,$1
+ addu $2,$6
+ xor $9,$22
+ sll $30,$7,30
+ addu $2,$25
+ srl $6,$9,31
+ xor $25,$24,$1
+ addu $9,$9
+ and $25,$7
+ srl $7,$7,2
+ or $9,$6
+ addu $2,$8
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 49
+ and $25,$7,$24
+ xor $10,$12
+ rotr $6,$2,27
+ addu $1,$25
+ xor $10,$18
+ xor $25,$7,$24
+ addu $1,$6
+ xor $10,$23
+ and $25,$3
+ addu $1,$9
+ rotr $10,$10,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $10,$12
+ sll $25,$2,5 # 49
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $10,$18
+ and $25,$7,$24
+ addu $1,$6
+ xor $10,$23
+ sll $30,$3,30
+ addu $1,$25
+ srl $6,$10,31
+ xor $25,$7,$24
+ addu $10,$10
+ and $25,$3
+ srl $3,$3,2
+ or $10,$6
+ addu $1,$9
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 50
+ and $25,$3,$7
+ xor $11,$13
+ rotr $6,$1,27
+ addu $24,$25
+ xor $11,$19
+ xor $25,$3,$7
+ addu $24,$6
+ xor $11,$8
+ and $25,$2
+ addu $24,$10
+ rotr $11,$11,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $11,$13
+ sll $25,$1,5 # 50
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $11,$19
+ and $25,$3,$7
+ addu $24,$6
+ xor $11,$8
+ sll $30,$2,30
+ addu $24,$25
+ srl $6,$11,31
+ xor $25,$3,$7
+ addu $11,$11
+ and $25,$2
+ srl $2,$2,2
+ or $11,$6
+ addu $24,$10
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 51
+ and $25,$2,$3
+ xor $12,$14
+ rotr $6,$24,27
+ addu $7,$25
+ xor $12,$20
+ xor $25,$2,$3
+ addu $7,$6
+ xor $12,$9
+ and $25,$1
+ addu $7,$11
+ rotr $12,$12,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $12,$14
+ sll $25,$24,5 # 51
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $12,$20
+ and $25,$2,$3
+ addu $7,$6
+ xor $12,$9
+ sll $30,$1,30
+ addu $7,$25
+ srl $6,$12,31
+ xor $25,$2,$3
+ addu $12,$12
+ and $25,$1
+ srl $1,$1,2
+ or $12,$6
+ addu $7,$11
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 52
+ and $25,$1,$2
+ xor $13,$15
+ rotr $6,$7,27
+ addu $3,$25
+ xor $13,$21
+ xor $25,$1,$2
+ addu $3,$6
+ xor $13,$10
+ and $25,$24
+ addu $3,$12
+ rotr $13,$13,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $13,$15
+ sll $25,$7,5 # 52
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $13,$21
+ and $25,$1,$2
+ addu $3,$6
+ xor $13,$10
+ sll $30,$24,30
+ addu $3,$25
+ srl $6,$13,31
+ xor $25,$1,$2
+ addu $13,$13
+ and $25,$24
+ srl $24,$24,2
+ or $13,$6
+ addu $3,$12
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 53
+ and $25,$24,$1
+ xor $14,$16
+ rotr $6,$3,27
+ addu $2,$25
+ xor $14,$22
+ xor $25,$24,$1
+ addu $2,$6
+ xor $14,$11
+ and $25,$7
+ addu $2,$13
+ rotr $14,$14,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $14,$16
+ sll $25,$3,5 # 53
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $14,$22
+ and $25,$24,$1
+ addu $2,$6
+ xor $14,$11
+ sll $30,$7,30
+ addu $2,$25
+ srl $6,$14,31
+ xor $25,$24,$1
+ addu $14,$14
+ and $25,$7
+ srl $7,$7,2
+ or $14,$6
+ addu $2,$13
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 54
+ and $25,$7,$24
+ xor $15,$17
+ rotr $6,$2,27
+ addu $1,$25
+ xor $15,$23
+ xor $25,$7,$24
+ addu $1,$6
+ xor $15,$12
+ and $25,$3
+ addu $1,$14
+ rotr $15,$15,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $15,$17
+ sll $25,$2,5 # 54
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $15,$23
+ and $25,$7,$24
+ addu $1,$6
+ xor $15,$12
+ sll $30,$3,30
+ addu $1,$25
+ srl $6,$15,31
+ xor $25,$7,$24
+ addu $15,$15
+ and $25,$3
+ srl $3,$3,2
+ or $15,$6
+ addu $1,$14
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $24,$31 # 55
+ and $25,$3,$7
+ xor $16,$18
+ rotr $6,$1,27
+ addu $24,$25
+ xor $16,$8
+ xor $25,$3,$7
+ addu $24,$6
+ xor $16,$13
+ and $25,$2
+ addu $24,$15
+ rotr $16,$16,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $16,$18
+ sll $25,$1,5 # 55
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $16,$8
+ and $25,$3,$7
+ addu $24,$6
+ xor $16,$13
+ sll $30,$2,30
+ addu $24,$25
+ srl $6,$16,31
+ xor $25,$3,$7
+ addu $16,$16
+ and $25,$2
+ srl $2,$2,2
+ or $16,$6
+ addu $24,$15
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $7,$31 # 56
+ and $25,$2,$3
+ xor $17,$19
+ rotr $6,$24,27
+ addu $7,$25
+ xor $17,$9
+ xor $25,$2,$3
+ addu $7,$6
+ xor $17,$14
+ and $25,$1
+ addu $7,$16
+ rotr $17,$17,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $17,$19
+ sll $25,$24,5 # 56
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $17,$9
+ and $25,$2,$3
+ addu $7,$6
+ xor $17,$14
+ sll $30,$1,30
+ addu $7,$25
+ srl $6,$17,31
+ xor $25,$2,$3
+ addu $17,$17
+ and $25,$1
+ srl $1,$1,2
+ or $17,$6
+ addu $7,$16
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $3,$31 # 57
+ and $25,$1,$2
+ xor $18,$20
+ rotr $6,$7,27
+ addu $3,$25
+ xor $18,$10
+ xor $25,$1,$2
+ addu $3,$6
+ xor $18,$15
+ and $25,$24
+ addu $3,$17
+ rotr $18,$18,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $18,$20
+ sll $25,$7,5 # 57
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $18,$10
+ and $25,$1,$2
+ addu $3,$6
+ xor $18,$15
+ sll $30,$24,30
+ addu $3,$25
+ srl $6,$18,31
+ xor $25,$1,$2
+ addu $18,$18
+ and $25,$24
+ srl $24,$24,2
+ or $18,$6
+ addu $3,$17
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $2,$31 # 58
+ and $25,$24,$1
+ xor $19,$21
+ rotr $6,$3,27
+ addu $2,$25
+ xor $19,$11
+ xor $25,$24,$1
+ addu $2,$6
+ xor $19,$16
+ and $25,$7
+ addu $2,$18
+ rotr $19,$19,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $19,$21
+ sll $25,$3,5 # 58
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $19,$11
+ and $25,$24,$1
+ addu $2,$6
+ xor $19,$16
+ sll $30,$7,30
+ addu $2,$25
+ srl $6,$19,31
+ xor $25,$24,$1
+ addu $19,$19
+ and $25,$7
+ srl $7,$7,2
+ or $19,$6
+ addu $2,$18
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ addu $1,$31 # 59
+ and $25,$7,$24
+ xor $20,$22
+ rotr $6,$2,27
+ addu $1,$25
+ xor $20,$12
+ xor $25,$7,$24
+ addu $1,$6
+ xor $20,$17
+ and $25,$3
+ addu $1,$19
+ rotr $20,$20,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $20,$22
+ sll $25,$2,5 # 59
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $20,$12
+ and $25,$7,$24
+ addu $1,$6
+ xor $20,$17
+ sll $30,$3,30
+ addu $1,$25
+ srl $6,$20,31
+ xor $25,$7,$24
+ addu $20,$20
+ and $25,$3
+ srl $3,$3,2
+ or $20,$6
+ addu $1,$19
+ or $3,$30
+ addu $1,$25
+#endif
+ lui $31,0xca62
+ ori $31,0xc1d6 # K_60_79
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $21,$23
+ addu $24,$31 # 60
+ rotr $6,$1,27
+ xor $21,$13
+ xor $25,$3,$7
+ addu $24,$6
+ xor $21,$18
+ xor $25,$2
+ addu $24,$20
+ rotr $21,$21,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $21,$23
+ sll $25,$1,5 # 60
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $21,$13
+ xor $25,$3,$7
+ addu $24,$6
+ xor $21,$18
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$21,31
+ addu $21,$21
+ srl $2,$2,2
+ addu $24,$20
+ or $21,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $22,$8
+ addu $7,$31 # 61
+ rotr $6,$24,27
+ xor $22,$14
+ xor $25,$2,$3
+ addu $7,$6
+ xor $22,$19
+ xor $25,$1
+ addu $7,$21
+ rotr $22,$22,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $22,$8
+ sll $25,$24,5 # 61
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $22,$14
+ xor $25,$2,$3
+ addu $7,$6
+ xor $22,$19
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$22,31
+ addu $22,$22
+ srl $1,$1,2
+ addu $7,$21
+ or $22,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $23,$9
+ addu $3,$31 # 62
+ rotr $6,$7,27
+ xor $23,$15
+ xor $25,$1,$2
+ addu $3,$6
+ xor $23,$20
+ xor $25,$24
+ addu $3,$22
+ rotr $23,$23,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $23,$9
+ sll $25,$7,5 # 62
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $23,$15
+ xor $25,$1,$2
+ addu $3,$6
+ xor $23,$20
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$23,31
+ addu $23,$23
+ srl $24,$24,2
+ addu $3,$22
+ or $23,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $8,$10
+ addu $2,$31 # 63
+ rotr $6,$3,27
+ xor $8,$16
+ xor $25,$24,$1
+ addu $2,$6
+ xor $8,$21
+ xor $25,$7
+ addu $2,$23
+ rotr $8,$8,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $8,$10
+ sll $25,$3,5 # 63
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $8,$16
+ xor $25,$24,$1
+ addu $2,$6
+ xor $8,$21
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$8,31
+ addu $8,$8
+ srl $7,$7,2
+ addu $2,$23
+ or $8,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $9,$11
+ addu $1,$31 # 64
+ rotr $6,$2,27
+ xor $9,$17
+ xor $25,$7,$24
+ addu $1,$6
+ xor $9,$22
+ xor $25,$3
+ addu $1,$8
+ rotr $9,$9,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $9,$11
+ sll $25,$2,5 # 64
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $9,$17
+ xor $25,$7,$24
+ addu $1,$6
+ xor $9,$22
+ sll $30,$3,30
+ xor $25,$3
+ srl $6,$9,31
+ addu $9,$9
+ srl $3,$3,2
+ addu $1,$8
+ or $9,$6
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $10,$12
+ addu $24,$31 # 65
+ rotr $6,$1,27
+ xor $10,$18
+ xor $25,$3,$7
+ addu $24,$6
+ xor $10,$23
+ xor $25,$2
+ addu $24,$9
+ rotr $10,$10,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $10,$12
+ sll $25,$1,5 # 65
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $10,$18
+ xor $25,$3,$7
+ addu $24,$6
+ xor $10,$23
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$10,31
+ addu $10,$10
+ srl $2,$2,2
+ addu $24,$9
+ or $10,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $11,$13
+ addu $7,$31 # 66
+ rotr $6,$24,27
+ xor $11,$19
+ xor $25,$2,$3
+ addu $7,$6
+ xor $11,$8
+ xor $25,$1
+ addu $7,$10
+ rotr $11,$11,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $11,$13
+ sll $25,$24,5 # 66
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $11,$19
+ xor $25,$2,$3
+ addu $7,$6
+ xor $11,$8
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$11,31
+ addu $11,$11
+ srl $1,$1,2
+ addu $7,$10
+ or $11,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $12,$14
+ addu $3,$31 # 67
+ rotr $6,$7,27
+ xor $12,$20
+ xor $25,$1,$2
+ addu $3,$6
+ xor $12,$9
+ xor $25,$24
+ addu $3,$11
+ rotr $12,$12,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $12,$14
+ sll $25,$7,5 # 67
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $12,$20
+ xor $25,$1,$2
+ addu $3,$6
+ xor $12,$9
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$12,31
+ addu $12,$12
+ srl $24,$24,2
+ addu $3,$11
+ or $12,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $13,$15
+ addu $2,$31 # 68
+ rotr $6,$3,27
+ xor $13,$21
+ xor $25,$24,$1
+ addu $2,$6
+ xor $13,$10
+ xor $25,$7
+ addu $2,$12
+ rotr $13,$13,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $13,$15
+ sll $25,$3,5 # 68
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $13,$21
+ xor $25,$24,$1
+ addu $2,$6
+ xor $13,$10
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$13,31
+ addu $13,$13
+ srl $7,$7,2
+ addu $2,$12
+ or $13,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $14,$16
+ addu $1,$31 # 69
+ rotr $6,$2,27
+ xor $14,$22
+ xor $25,$7,$24
+ addu $1,$6
+ xor $14,$11
+ xor $25,$3
+ addu $1,$13
+ rotr $14,$14,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $14,$16
+ sll $25,$2,5 # 69
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $14,$22
+ xor $25,$7,$24
+ addu $1,$6
+ xor $14,$11
+ sll $30,$3,30
+ xor $25,$3
+ srl $6,$14,31
+ addu $14,$14
+ srl $3,$3,2
+ addu $1,$13
+ or $14,$6
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $15,$17
+ addu $24,$31 # 70
+ rotr $6,$1,27
+ xor $15,$23
+ xor $25,$3,$7
+ addu $24,$6
+ xor $15,$12
+ xor $25,$2
+ addu $24,$14
+ rotr $15,$15,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $15,$17
+ sll $25,$1,5 # 70
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $15,$23
+ xor $25,$3,$7
+ addu $24,$6
+ xor $15,$12
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$15,31
+ addu $15,$15
+ srl $2,$2,2
+ addu $24,$14
+ or $15,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $16,$18
+ addu $7,$31 # 71
+ rotr $6,$24,27
+ xor $16,$8
+ xor $25,$2,$3
+ addu $7,$6
+ xor $16,$13
+ xor $25,$1
+ addu $7,$15
+ rotr $16,$16,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $16,$18
+ sll $25,$24,5 # 71
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $16,$8
+ xor $25,$2,$3
+ addu $7,$6
+ xor $16,$13
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$16,31
+ addu $16,$16
+ srl $1,$1,2
+ addu $7,$15
+ or $16,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $17,$19
+ addu $3,$31 # 72
+ rotr $6,$7,27
+ xor $17,$9
+ xor $25,$1,$2
+ addu $3,$6
+ xor $17,$14
+ xor $25,$24
+ addu $3,$16
+ rotr $17,$17,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $17,$19
+ sll $25,$7,5 # 72
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $17,$9
+ xor $25,$1,$2
+ addu $3,$6
+ xor $17,$14
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$17,31
+ addu $17,$17
+ srl $24,$24,2
+ addu $3,$16
+ or $17,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $18,$20
+ addu $2,$31 # 73
+ rotr $6,$3,27
+ xor $18,$10
+ xor $25,$24,$1
+ addu $2,$6
+ xor $18,$15
+ xor $25,$7
+ addu $2,$17
+ rotr $18,$18,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $18,$20
+ sll $25,$3,5 # 73
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $18,$10
+ xor $25,$24,$1
+ addu $2,$6
+ xor $18,$15
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$18,31
+ addu $18,$18
+ srl $7,$7,2
+ addu $2,$17
+ or $18,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $19,$21
+ addu $1,$31 # 74
+ rotr $6,$2,27
+ xor $19,$11
+ xor $25,$7,$24
+ addu $1,$6
+ xor $19,$16
+ xor $25,$3
+ addu $1,$18
+ rotr $19,$19,31
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ xor $19,$21
+ sll $25,$2,5 # 74
+ addu $1,$31
+ srl $6,$2,27
+ addu $1,$25
+ xor $19,$11
+ xor $25,$7,$24
+ addu $1,$6
+ xor $19,$16
+ sll $30,$3,30
+ xor $25,$3
+ srl $6,$19,31
+ addu $19,$19
+ srl $3,$3,2
+ addu $1,$18
+ or $19,$6
+ or $3,$30
+ addu $1,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $20,$22
+ addu $24,$31 # 75
+ rotr $6,$1,27
+ xor $20,$12
+ xor $25,$3,$7
+ addu $24,$6
+ xor $20,$17
+ xor $25,$2
+ addu $24,$19
+ rotr $20,$20,31
+ rotr $2,$2,2
+ addu $24,$25
+#else
+ xor $20,$22
+ sll $25,$1,5 # 75
+ addu $24,$31
+ srl $6,$1,27
+ addu $24,$25
+ xor $20,$12
+ xor $25,$3,$7
+ addu $24,$6
+ xor $20,$17
+ sll $30,$2,30
+ xor $25,$2
+ srl $6,$20,31
+ addu $20,$20
+ srl $2,$2,2
+ addu $24,$19
+ or $20,$6
+ or $2,$30
+ addu $24,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $21,$23
+ addu $7,$31 # 76
+ rotr $6,$24,27
+ xor $21,$13
+ xor $25,$2,$3
+ addu $7,$6
+ xor $21,$18
+ xor $25,$1
+ addu $7,$20
+ rotr $21,$21,31
+ rotr $1,$1,2
+ addu $7,$25
+#else
+ xor $21,$23
+ sll $25,$24,5 # 76
+ addu $7,$31
+ srl $6,$24,27
+ addu $7,$25
+ xor $21,$13
+ xor $25,$2,$3
+ addu $7,$6
+ xor $21,$18
+ sll $30,$1,30
+ xor $25,$1
+ srl $6,$21,31
+ addu $21,$21
+ srl $1,$1,2
+ addu $7,$20
+ or $21,$6
+ or $1,$30
+ addu $7,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $22,$8
+ addu $3,$31 # 77
+ rotr $6,$7,27
+ xor $22,$14
+ xor $25,$1,$2
+ addu $3,$6
+ xor $22,$19
+ xor $25,$24
+ addu $3,$21
+ rotr $22,$22,31
+ rotr $24,$24,2
+ addu $3,$25
+#else
+ xor $22,$8
+ sll $25,$7,5 # 77
+ addu $3,$31
+ srl $6,$7,27
+ addu $3,$25
+ xor $22,$14
+ xor $25,$1,$2
+ addu $3,$6
+ xor $22,$19
+ sll $30,$24,30
+ xor $25,$24
+ srl $6,$22,31
+ addu $22,$22
+ srl $24,$24,2
+ addu $3,$21
+ or $22,$6
+ or $24,$30
+ addu $3,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $23,$9
+ addu $2,$31 # 78
+ rotr $6,$3,27
+ xor $23,$15
+ xor $25,$24,$1
+ addu $2,$6
+ xor $23,$20
+ xor $25,$7
+ addu $2,$22
+ rotr $23,$23,31
+ rotr $7,$7,2
+ addu $2,$25
+#else
+ xor $23,$9
+ sll $25,$3,5 # 78
+ addu $2,$31
+ srl $6,$3,27
+ addu $2,$25
+ xor $23,$15
+ xor $25,$24,$1
+ addu $2,$6
+ xor $23,$20
+ sll $30,$7,30
+ xor $25,$7
+ srl $6,$23,31
+ addu $23,$23
+ srl $7,$7,2
+ addu $2,$22
+ or $23,$6
+ or $7,$30
+ addu $2,$25
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ lw $8,0($4)
+ addu $1,$31 # 79
+ lw $9,4($4)
+ rotr $6,$2,27
+ lw $10,8($4)
+ xor $25,$7,$24
+ addu $1,$6
+ lw $11,12($4)
+ xor $25,$3
+ addu $1,$23
+ lw $12,16($4)
+ rotr $3,$3,2
+ addu $1,$25
+#else
+ lw $8,0($4)
+ sll $25,$2,5 # 79
+ addu $1,$31
+ lw $9,4($4)
+ srl $6,$2,27
+ addu $1,$25
+ lw $10,8($4)
+ xor $25,$7,$24
+ addu $1,$6
+ lw $11,12($4)
+ sll $30,$3,30
+ xor $25,$3
+ lw $12,16($4)
+ srl $3,$3,2
+ addu $1,$23
+ or $3,$30
+ addu $1,$25
+#endif
+ daddu $5,64
+ ld $6,0($29)
+
+ addu $1,$8
+ addu $2,$9
+ sw $1,0($4)
+ addu $3,$10
+ addu $7,$11
+ sw $2,4($4)
+ addu $24,$12
+ sw $3,8($4)
+ sw $7,12($4)
+ sw $24,16($4)
+ .set noreorder
+ bne $5,$6,.Loop
+ nop
+
+ .set noreorder
+ ld $31,(16-1)*8($29)
+ ld $30,(16-2)*8($29)
+ ld $23,(16-3)*8($29)
+ ld $22,(16-4)*8($29)
+ ld $21,(16-5)*8($29)
+ ld $20,(16-6)*8($29)
+ ld $19,(16-7)*8($29)
+ ld $18,(16-8)*8($29)
+ ld $17,(16-9)*8($29)
+ ld $16,(16-10)*8($29)
+ jr $31
+ daddu $29,16*8
+.end sha1_block_data_order
+.rdata
+.asciiz "SHA1 for MIPS, CRYPTOGAMS by "
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha256-mips.S b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha256-mips.S
new file mode 100644
index 00000000000000..0459f23f81b1ad
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha256-mips.S
@@ -0,0 +1,3036 @@
+#include "mips_arch.h"
+
+.text
+.set noat
+#if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__))
+.option pic2
+#endif
+
+.align 5
+.globl sha256_block_data_order
+.ent sha256_block_data_order
+sha256_block_data_order:
+ .frame $29,192,$31
+ .mask 0xc0ff0000,-8
+ .set noreorder
+ dsubu $29,192
+ sd $31,192-1*8($29)
+ sd $30,192-2*8($29)
+ sd $23,192-3*8($29)
+ sd $22,192-4*8($29)
+ sd $21,192-5*8($29)
+ sd $20,192-6*8($29)
+ sd $19,192-7*8($29)
+ sd $18,192-8*8($29)
+ sd $17,192-9*8($29)
+ sd $16,192-10*8($29)
+ dsll $23,$6,6
+ .cplocal $6
+ .cpsetup $25,$0,sha256_block_data_order
+ .set reorder
+ dla $6,K256 # PIC-ified 'load address'
+
+ lw $1,0*4($4) # load context
+ lw $2,1*4($4)
+ lw $3,2*4($4)
+ lw $7,3*4($4)
+ lw $24,4*4($4)
+ lw $25,5*4($4)
+ lw $30,6*4($4)
+ lw $31,7*4($4)
+
+ daddu $23,$5 # pointer to the end of input
+ sd $23,16*4($29)
+ b .Loop
+
+.align 5
+.Loop:
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $8,($5)
+#else
+ lwl $8,3($5)
+ lwr $8,0($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $9,4($5)
+#else
+ lwl $9,7($5)
+ lwr $9,4($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $8,$8 # byte swap(0)
+ rotr $8,$8,16
+#else
+ srl $13,$8,24 # byte swap(0)
+ srl $14,$8,8
+ andi $15,$8,0xFF00
+ sll $8,$8,24
+ andi $14,0xFF00
+ sll $15,$15,8
+ or $8,$13
+ or $14,$15
+ or $8,$14
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $15,$25,$30 # 0
+ rotr $13,$24,6
+ addu $12,$8,$31
+ rotr $14,$24,11
+ and $15,$24
+ rotr $31,$24,25
+ xor $13,$14
+ rotr $14,$1,2
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$31 # Sigma1(e)
+
+ rotr $31,$1,13
+ addu $12,$15
+ lw $15,0($6) # K[0]
+ xor $31,$14
+ rotr $14,$1,22
+ addu $12,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#else
+ addu $12,$8,$31 # 0
+ srl $31,$24,6
+ xor $15,$25,$30
+ sll $14,$24,7
+ and $15,$24
+ srl $13,$24,11
+ xor $31,$14
+ sll $14,$24,21
+ xor $31,$13
+ srl $13,$24,25
+ xor $31,$14
+ sll $14,$24,26
+ xor $31,$13
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$14,$31 # Sigma1(e)
+
+ srl $31,$1,2
+ addu $12,$15
+ lw $15,0($6) # K[0]
+ sll $14,$1,10
+ addu $12,$13
+ srl $13,$1,13
+ xor $31,$14
+ sll $14,$1,19
+ xor $31,$13
+ srl $13,$1,22
+ xor $31,$14
+ sll $14,$1,30
+ xor $31,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#endif
+ sw $8,0($29) # offload to ring buffer
+ addu $31,$13
+ and $14,$1
+ addu $12,$15 # +=K[0]
+ addu $31,$14 # +=Maj(a,b,c)
+ addu $7,$12
+ addu $31,$12
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $10,8($5)
+#else
+ lwl $10,11($5)
+ lwr $10,8($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $9,$9 # byte swap(1)
+ rotr $9,$9,16
+#else
+ srl $14,$9,24 # byte swap(1)
+ srl $15,$9,8
+ andi $16,$9,0xFF00
+ sll $9,$9,24
+ andi $15,0xFF00
+ sll $16,$16,8
+ or $9,$14
+ or $15,$16
+ or $9,$15
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $16,$24,$25 # 1
+ rotr $14,$7,6
+ addu $13,$9,$30
+ rotr $15,$7,11
+ and $16,$7
+ rotr $30,$7,25
+ xor $14,$15
+ rotr $15,$31,2
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$30 # Sigma1(e)
+
+ rotr $30,$31,13
+ addu $13,$16
+ lw $16,4($6) # K[1]
+ xor $30,$15
+ rotr $15,$31,22
+ addu $13,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#else
+ addu $13,$9,$30 # 1
+ srl $30,$7,6
+ xor $16,$24,$25
+ sll $15,$7,7
+ and $16,$7
+ srl $14,$7,11
+ xor $30,$15
+ sll $15,$7,21
+ xor $30,$14
+ srl $14,$7,25
+ xor $30,$15
+ sll $15,$7,26
+ xor $30,$14
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$15,$30 # Sigma1(e)
+
+ srl $30,$31,2
+ addu $13,$16
+ lw $16,4($6) # K[1]
+ sll $15,$31,10
+ addu $13,$14
+ srl $14,$31,13
+ xor $30,$15
+ sll $15,$31,19
+ xor $30,$14
+ srl $14,$31,22
+ xor $30,$15
+ sll $15,$31,30
+ xor $30,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#endif
+ sw $9,4($29) # offload to ring buffer
+ addu $30,$14
+ and $15,$31
+ addu $13,$16 # +=K[1]
+ addu $30,$15 # +=Maj(a,b,c)
+ addu $3,$13
+ addu $30,$13
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $11,12($5)
+#else
+ lwl $11,15($5)
+ lwr $11,12($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $10,$10 # byte swap(2)
+ rotr $10,$10,16
+#else
+ srl $15,$10,24 # byte swap(2)
+ srl $16,$10,8
+ andi $17,$10,0xFF00
+ sll $10,$10,24
+ andi $16,0xFF00
+ sll $17,$17,8
+ or $10,$15
+ or $16,$17
+ or $10,$16
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $17,$7,$24 # 2
+ rotr $15,$3,6
+ addu $14,$10,$25
+ rotr $16,$3,11
+ and $17,$3
+ rotr $25,$3,25
+ xor $15,$16
+ rotr $16,$30,2
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$25 # Sigma1(e)
+
+ rotr $25,$30,13
+ addu $14,$17
+ lw $17,8($6) # K[2]
+ xor $25,$16
+ rotr $16,$30,22
+ addu $14,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#else
+ addu $14,$10,$25 # 2
+ srl $25,$3,6
+ xor $17,$7,$24
+ sll $16,$3,7
+ and $17,$3
+ srl $15,$3,11
+ xor $25,$16
+ sll $16,$3,21
+ xor $25,$15
+ srl $15,$3,25
+ xor $25,$16
+ sll $16,$3,26
+ xor $25,$15
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$16,$25 # Sigma1(e)
+
+ srl $25,$30,2
+ addu $14,$17
+ lw $17,8($6) # K[2]
+ sll $16,$30,10
+ addu $14,$15
+ srl $15,$30,13
+ xor $25,$16
+ sll $16,$30,19
+ xor $25,$15
+ srl $15,$30,22
+ xor $25,$16
+ sll $16,$30,30
+ xor $25,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#endif
+ sw $10,8($29) # offload to ring buffer
+ addu $25,$15
+ and $16,$30
+ addu $14,$17 # +=K[2]
+ addu $25,$16 # +=Maj(a,b,c)
+ addu $2,$14
+ addu $25,$14
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $12,16($5)
+#else
+ lwl $12,19($5)
+ lwr $12,16($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $11,$11 # byte swap(3)
+ rotr $11,$11,16
+#else
+ srl $16,$11,24 # byte swap(3)
+ srl $17,$11,8
+ andi $18,$11,0xFF00
+ sll $11,$11,24
+ andi $17,0xFF00
+ sll $18,$18,8
+ or $11,$16
+ or $17,$18
+ or $11,$17
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $18,$3,$7 # 3
+ rotr $16,$2,6
+ addu $15,$11,$24
+ rotr $17,$2,11
+ and $18,$2
+ rotr $24,$2,25
+ xor $16,$17
+ rotr $17,$25,2
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$24 # Sigma1(e)
+
+ rotr $24,$25,13
+ addu $15,$18
+ lw $18,12($6) # K[3]
+ xor $24,$17
+ rotr $17,$25,22
+ addu $15,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#else
+ addu $15,$11,$24 # 3
+ srl $24,$2,6
+ xor $18,$3,$7
+ sll $17,$2,7
+ and $18,$2
+ srl $16,$2,11
+ xor $24,$17
+ sll $17,$2,21
+ xor $24,$16
+ srl $16,$2,25
+ xor $24,$17
+ sll $17,$2,26
+ xor $24,$16
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$17,$24 # Sigma1(e)
+
+ srl $24,$25,2
+ addu $15,$18
+ lw $18,12($6) # K[3]
+ sll $17,$25,10
+ addu $15,$16
+ srl $16,$25,13
+ xor $24,$17
+ sll $17,$25,19
+ xor $24,$16
+ srl $16,$25,22
+ xor $24,$17
+ sll $17,$25,30
+ xor $24,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#endif
+ sw $11,12($29) # offload to ring buffer
+ addu $24,$16
+ and $17,$25
+ addu $15,$18 # +=K[3]
+ addu $24,$17 # +=Maj(a,b,c)
+ addu $1,$15
+ addu $24,$15
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $13,20($5)
+#else
+ lwl $13,23($5)
+ lwr $13,20($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $12,$12 # byte swap(4)
+ rotr $12,$12,16
+#else
+ srl $17,$12,24 # byte swap(4)
+ srl $18,$12,8
+ andi $19,$12,0xFF00
+ sll $12,$12,24
+ andi $18,0xFF00
+ sll $19,$19,8
+ or $12,$17
+ or $18,$19
+ or $12,$18
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $19,$2,$3 # 4
+ rotr $17,$1,6
+ addu $16,$12,$7
+ rotr $18,$1,11
+ and $19,$1
+ rotr $7,$1,25
+ xor $17,$18
+ rotr $18,$24,2
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$7 # Sigma1(e)
+
+ rotr $7,$24,13
+ addu $16,$19
+ lw $19,16($6) # K[4]
+ xor $7,$18
+ rotr $18,$24,22
+ addu $16,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#else
+ addu $16,$12,$7 # 4
+ srl $7,$1,6
+ xor $19,$2,$3
+ sll $18,$1,7
+ and $19,$1
+ srl $17,$1,11
+ xor $7,$18
+ sll $18,$1,21
+ xor $7,$17
+ srl $17,$1,25
+ xor $7,$18
+ sll $18,$1,26
+ xor $7,$17
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$18,$7 # Sigma1(e)
+
+ srl $7,$24,2
+ addu $16,$19
+ lw $19,16($6) # K[4]
+ sll $18,$24,10
+ addu $16,$17
+ srl $17,$24,13
+ xor $7,$18
+ sll $18,$24,19
+ xor $7,$17
+ srl $17,$24,22
+ xor $7,$18
+ sll $18,$24,30
+ xor $7,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#endif
+ sw $12,16($29) # offload to ring buffer
+ addu $7,$17
+ and $18,$24
+ addu $16,$19 # +=K[4]
+ addu $7,$18 # +=Maj(a,b,c)
+ addu $31,$16
+ addu $7,$16
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $14,24($5)
+#else
+ lwl $14,27($5)
+ lwr $14,24($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $13,$13 # byte swap(5)
+ rotr $13,$13,16
+#else
+ srl $18,$13,24 # byte swap(5)
+ srl $19,$13,8
+ andi $20,$13,0xFF00
+ sll $13,$13,24
+ andi $19,0xFF00
+ sll $20,$20,8
+ or $13,$18
+ or $19,$20
+ or $13,$19
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $20,$1,$2 # 5
+ rotr $18,$31,6
+ addu $17,$13,$3
+ rotr $19,$31,11
+ and $20,$31
+ rotr $3,$31,25
+ xor $18,$19
+ rotr $19,$7,2
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$3 # Sigma1(e)
+
+ rotr $3,$7,13
+ addu $17,$20
+ lw $20,20($6) # K[5]
+ xor $3,$19
+ rotr $19,$7,22
+ addu $17,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#else
+ addu $17,$13,$3 # 5
+ srl $3,$31,6
+ xor $20,$1,$2
+ sll $19,$31,7
+ and $20,$31
+ srl $18,$31,11
+ xor $3,$19
+ sll $19,$31,21
+ xor $3,$18
+ srl $18,$31,25
+ xor $3,$19
+ sll $19,$31,26
+ xor $3,$18
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$19,$3 # Sigma1(e)
+
+ srl $3,$7,2
+ addu $17,$20
+ lw $20,20($6) # K[5]
+ sll $19,$7,10
+ addu $17,$18
+ srl $18,$7,13
+ xor $3,$19
+ sll $19,$7,19
+ xor $3,$18
+ srl $18,$7,22
+ xor $3,$19
+ sll $19,$7,30
+ xor $3,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#endif
+ sw $13,20($29) # offload to ring buffer
+ addu $3,$18
+ and $19,$7
+ addu $17,$20 # +=K[5]
+ addu $3,$19 # +=Maj(a,b,c)
+ addu $30,$17
+ addu $3,$17
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $15,28($5)
+#else
+ lwl $15,31($5)
+ lwr $15,28($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $14,$14 # byte swap(6)
+ rotr $14,$14,16
+#else
+ srl $19,$14,24 # byte swap(6)
+ srl $20,$14,8
+ andi $21,$14,0xFF00
+ sll $14,$14,24
+ andi $20,0xFF00
+ sll $21,$21,8
+ or $14,$19
+ or $20,$21
+ or $14,$20
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $21,$31,$1 # 6
+ rotr $19,$30,6
+ addu $18,$14,$2
+ rotr $20,$30,11
+ and $21,$30
+ rotr $2,$30,25
+ xor $19,$20
+ rotr $20,$3,2
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$2 # Sigma1(e)
+
+ rotr $2,$3,13
+ addu $18,$21
+ lw $21,24($6) # K[6]
+ xor $2,$20
+ rotr $20,$3,22
+ addu $18,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#else
+ addu $18,$14,$2 # 6
+ srl $2,$30,6
+ xor $21,$31,$1
+ sll $20,$30,7
+ and $21,$30
+ srl $19,$30,11
+ xor $2,$20
+ sll $20,$30,21
+ xor $2,$19
+ srl $19,$30,25
+ xor $2,$20
+ sll $20,$30,26
+ xor $2,$19
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$20,$2 # Sigma1(e)
+
+ srl $2,$3,2
+ addu $18,$21
+ lw $21,24($6) # K[6]
+ sll $20,$3,10
+ addu $18,$19
+ srl $19,$3,13
+ xor $2,$20
+ sll $20,$3,19
+ xor $2,$19
+ srl $19,$3,22
+ xor $2,$20
+ sll $20,$3,30
+ xor $2,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#endif
+ sw $14,24($29) # offload to ring buffer
+ addu $2,$19
+ and $20,$3
+ addu $18,$21 # +=K[6]
+ addu $2,$20 # +=Maj(a,b,c)
+ addu $25,$18
+ addu $2,$18
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $16,32($5)
+#else
+ lwl $16,35($5)
+ lwr $16,32($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $15,$15 # byte swap(7)
+ rotr $15,$15,16
+#else
+ srl $20,$15,24 # byte swap(7)
+ srl $21,$15,8
+ andi $22,$15,0xFF00
+ sll $15,$15,24
+ andi $21,0xFF00
+ sll $22,$22,8
+ or $15,$20
+ or $21,$22
+ or $15,$21
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $22,$30,$31 # 7
+ rotr $20,$25,6
+ addu $19,$15,$1
+ rotr $21,$25,11
+ and $22,$25
+ rotr $1,$25,25
+ xor $20,$21
+ rotr $21,$2,2
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$1 # Sigma1(e)
+
+ rotr $1,$2,13
+ addu $19,$22
+ lw $22,28($6) # K[7]
+ xor $1,$21
+ rotr $21,$2,22
+ addu $19,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#else
+ addu $19,$15,$1 # 7
+ srl $1,$25,6
+ xor $22,$30,$31
+ sll $21,$25,7
+ and $22,$25
+ srl $20,$25,11
+ xor $1,$21
+ sll $21,$25,21
+ xor $1,$20
+ srl $20,$25,25
+ xor $1,$21
+ sll $21,$25,26
+ xor $1,$20
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$21,$1 # Sigma1(e)
+
+ srl $1,$2,2
+ addu $19,$22
+ lw $22,28($6) # K[7]
+ sll $21,$2,10
+ addu $19,$20
+ srl $20,$2,13
+ xor $1,$21
+ sll $21,$2,19
+ xor $1,$20
+ srl $20,$2,22
+ xor $1,$21
+ sll $21,$2,30
+ xor $1,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#endif
+ sw $15,28($29) # offload to ring buffer
+ addu $1,$20
+ and $21,$2
+ addu $19,$22 # +=K[7]
+ addu $1,$21 # +=Maj(a,b,c)
+ addu $24,$19
+ addu $1,$19
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $17,36($5)
+#else
+ lwl $17,39($5)
+ lwr $17,36($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $16,$16 # byte swap(8)
+ rotr $16,$16,16
+#else
+ srl $21,$16,24 # byte swap(8)
+ srl $22,$16,8
+ andi $23,$16,0xFF00
+ sll $16,$16,24
+ andi $22,0xFF00
+ sll $23,$23,8
+ or $16,$21
+ or $22,$23
+ or $16,$22
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $23,$25,$30 # 8
+ rotr $21,$24,6
+ addu $20,$16,$31
+ rotr $22,$24,11
+ and $23,$24
+ rotr $31,$24,25
+ xor $21,$22
+ rotr $22,$1,2
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$31 # Sigma1(e)
+
+ rotr $31,$1,13
+ addu $20,$23
+ lw $23,32($6) # K[8]
+ xor $31,$22
+ rotr $22,$1,22
+ addu $20,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#else
+ addu $20,$16,$31 # 8
+ srl $31,$24,6
+ xor $23,$25,$30
+ sll $22,$24,7
+ and $23,$24
+ srl $21,$24,11
+ xor $31,$22
+ sll $22,$24,21
+ xor $31,$21
+ srl $21,$24,25
+ xor $31,$22
+ sll $22,$24,26
+ xor $31,$21
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$22,$31 # Sigma1(e)
+
+ srl $31,$1,2
+ addu $20,$23
+ lw $23,32($6) # K[8]
+ sll $22,$1,10
+ addu $20,$21
+ srl $21,$1,13
+ xor $31,$22
+ sll $22,$1,19
+ xor $31,$21
+ srl $21,$1,22
+ xor $31,$22
+ sll $22,$1,30
+ xor $31,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#endif
+ sw $16,32($29) # offload to ring buffer
+ addu $31,$21
+ and $22,$1
+ addu $20,$23 # +=K[8]
+ addu $31,$22 # +=Maj(a,b,c)
+ addu $7,$20
+ addu $31,$20
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $18,40($5)
+#else
+ lwl $18,43($5)
+ lwr $18,40($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $17,$17 # byte swap(9)
+ rotr $17,$17,16
+#else
+ srl $22,$17,24 # byte swap(9)
+ srl $23,$17,8
+ andi $8,$17,0xFF00
+ sll $17,$17,24
+ andi $23,0xFF00
+ sll $8,$8,8
+ or $17,$22
+ or $23,$8
+ or $17,$23
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $8,$24,$25 # 9
+ rotr $22,$7,6
+ addu $21,$17,$30
+ rotr $23,$7,11
+ and $8,$7
+ rotr $30,$7,25
+ xor $22,$23
+ rotr $23,$31,2
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$30 # Sigma1(e)
+
+ rotr $30,$31,13
+ addu $21,$8
+ lw $8,36($6) # K[9]
+ xor $30,$23
+ rotr $23,$31,22
+ addu $21,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#else
+ addu $21,$17,$30 # 9
+ srl $30,$7,6
+ xor $8,$24,$25
+ sll $23,$7,7
+ and $8,$7
+ srl $22,$7,11
+ xor $30,$23
+ sll $23,$7,21
+ xor $30,$22
+ srl $22,$7,25
+ xor $30,$23
+ sll $23,$7,26
+ xor $30,$22
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$23,$30 # Sigma1(e)
+
+ srl $30,$31,2
+ addu $21,$8
+ lw $8,36($6) # K[9]
+ sll $23,$31,10
+ addu $21,$22
+ srl $22,$31,13
+ xor $30,$23
+ sll $23,$31,19
+ xor $30,$22
+ srl $22,$31,22
+ xor $30,$23
+ sll $23,$31,30
+ xor $30,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#endif
+ sw $17,36($29) # offload to ring buffer
+ addu $30,$22
+ and $23,$31
+ addu $21,$8 # +=K[9]
+ addu $30,$23 # +=Maj(a,b,c)
+ addu $3,$21
+ addu $30,$21
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $19,44($5)
+#else
+ lwl $19,47($5)
+ lwr $19,44($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $18,$18 # byte swap(10)
+ rotr $18,$18,16
+#else
+ srl $23,$18,24 # byte swap(10)
+ srl $8,$18,8
+ andi $9,$18,0xFF00
+ sll $18,$18,24
+ andi $8,0xFF00
+ sll $9,$9,8
+ or $18,$23
+ or $8,$9
+ or $18,$8
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $9,$7,$24 # 10
+ rotr $23,$3,6
+ addu $22,$18,$25
+ rotr $8,$3,11
+ and $9,$3
+ rotr $25,$3,25
+ xor $23,$8
+ rotr $8,$30,2
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$25 # Sigma1(e)
+
+ rotr $25,$30,13
+ addu $22,$9
+ lw $9,40($6) # K[10]
+ xor $25,$8
+ rotr $8,$30,22
+ addu $22,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#else
+ addu $22,$18,$25 # 10
+ srl $25,$3,6
+ xor $9,$7,$24
+ sll $8,$3,7
+ and $9,$3
+ srl $23,$3,11
+ xor $25,$8
+ sll $8,$3,21
+ xor $25,$23
+ srl $23,$3,25
+ xor $25,$8
+ sll $8,$3,26
+ xor $25,$23
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$8,$25 # Sigma1(e)
+
+ srl $25,$30,2
+ addu $22,$9
+ lw $9,40($6) # K[10]
+ sll $8,$30,10
+ addu $22,$23
+ srl $23,$30,13
+ xor $25,$8
+ sll $8,$30,19
+ xor $25,$23
+ srl $23,$30,22
+ xor $25,$8
+ sll $8,$30,30
+ xor $25,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#endif
+ sw $18,40($29) # offload to ring buffer
+ addu $25,$23
+ and $8,$30
+ addu $22,$9 # +=K[10]
+ addu $25,$8 # +=Maj(a,b,c)
+ addu $2,$22
+ addu $25,$22
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $20,48($5)
+#else
+ lwl $20,51($5)
+ lwr $20,48($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $19,$19 # byte swap(11)
+ rotr $19,$19,16
+#else
+ srl $8,$19,24 # byte swap(11)
+ srl $9,$19,8
+ andi $10,$19,0xFF00
+ sll $19,$19,24
+ andi $9,0xFF00
+ sll $10,$10,8
+ or $19,$8
+ or $9,$10
+ or $19,$9
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $10,$3,$7 # 11
+ rotr $8,$2,6
+ addu $23,$19,$24
+ rotr $9,$2,11
+ and $10,$2
+ rotr $24,$2,25
+ xor $8,$9
+ rotr $9,$25,2
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$24 # Sigma1(e)
+
+ rotr $24,$25,13
+ addu $23,$10
+ lw $10,44($6) # K[11]
+ xor $24,$9
+ rotr $9,$25,22
+ addu $23,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#else
+ addu $23,$19,$24 # 11
+ srl $24,$2,6
+ xor $10,$3,$7
+ sll $9,$2,7
+ and $10,$2
+ srl $8,$2,11
+ xor $24,$9
+ sll $9,$2,21
+ xor $24,$8
+ srl $8,$2,25
+ xor $24,$9
+ sll $9,$2,26
+ xor $24,$8
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$9,$24 # Sigma1(e)
+
+ srl $24,$25,2
+ addu $23,$10
+ lw $10,44($6) # K[11]
+ sll $9,$25,10
+ addu $23,$8
+ srl $8,$25,13
+ xor $24,$9
+ sll $9,$25,19
+ xor $24,$8
+ srl $8,$25,22
+ xor $24,$9
+ sll $9,$25,30
+ xor $24,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#endif
+ sw $19,44($29) # offload to ring buffer
+ addu $24,$8
+ and $9,$25
+ addu $23,$10 # +=K[11]
+ addu $24,$9 # +=Maj(a,b,c)
+ addu $1,$23
+ addu $24,$23
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $21,52($5)
+#else
+ lwl $21,55($5)
+ lwr $21,52($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $20,$20 # byte swap(12)
+ rotr $20,$20,16
+#else
+ srl $9,$20,24 # byte swap(12)
+ srl $10,$20,8
+ andi $11,$20,0xFF00
+ sll $20,$20,24
+ andi $10,0xFF00
+ sll $11,$11,8
+ or $20,$9
+ or $10,$11
+ or $20,$10
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $11,$2,$3 # 12
+ rotr $9,$1,6
+ addu $8,$20,$7
+ rotr $10,$1,11
+ and $11,$1
+ rotr $7,$1,25
+ xor $9,$10
+ rotr $10,$24,2
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$7 # Sigma1(e)
+
+ rotr $7,$24,13
+ addu $8,$11
+ lw $11,48($6) # K[12]
+ xor $7,$10
+ rotr $10,$24,22
+ addu $8,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#else
+ addu $8,$20,$7 # 12
+ srl $7,$1,6
+ xor $11,$2,$3
+ sll $10,$1,7
+ and $11,$1
+ srl $9,$1,11
+ xor $7,$10
+ sll $10,$1,21
+ xor $7,$9
+ srl $9,$1,25
+ xor $7,$10
+ sll $10,$1,26
+ xor $7,$9
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$10,$7 # Sigma1(e)
+
+ srl $7,$24,2
+ addu $8,$11
+ lw $11,48($6) # K[12]
+ sll $10,$24,10
+ addu $8,$9
+ srl $9,$24,13
+ xor $7,$10
+ sll $10,$24,19
+ xor $7,$9
+ srl $9,$24,22
+ xor $7,$10
+ sll $10,$24,30
+ xor $7,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#endif
+ sw $20,48($29) # offload to ring buffer
+ addu $7,$9
+ and $10,$24
+ addu $8,$11 # +=K[12]
+ addu $7,$10 # +=Maj(a,b,c)
+ addu $31,$8
+ addu $7,$8
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $22,56($5)
+#else
+ lwl $22,59($5)
+ lwr $22,56($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $21,$21 # byte swap(13)
+ rotr $21,$21,16
+#else
+ srl $10,$21,24 # byte swap(13)
+ srl $11,$21,8
+ andi $12,$21,0xFF00
+ sll $21,$21,24
+ andi $11,0xFF00
+ sll $12,$12,8
+ or $21,$10
+ or $11,$12
+ or $21,$11
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $12,$1,$2 # 13
+ rotr $10,$31,6
+ addu $9,$21,$3
+ rotr $11,$31,11
+ and $12,$31
+ rotr $3,$31,25
+ xor $10,$11
+ rotr $11,$7,2
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$3 # Sigma1(e)
+
+ rotr $3,$7,13
+ addu $9,$12
+ lw $12,52($6) # K[13]
+ xor $3,$11
+ rotr $11,$7,22
+ addu $9,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#else
+ addu $9,$21,$3 # 13
+ srl $3,$31,6
+ xor $12,$1,$2
+ sll $11,$31,7
+ and $12,$31
+ srl $10,$31,11
+ xor $3,$11
+ sll $11,$31,21
+ xor $3,$10
+ srl $10,$31,25
+ xor $3,$11
+ sll $11,$31,26
+ xor $3,$10
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$11,$3 # Sigma1(e)
+
+ srl $3,$7,2
+ addu $9,$12
+ lw $12,52($6) # K[13]
+ sll $11,$7,10
+ addu $9,$10
+ srl $10,$7,13
+ xor $3,$11
+ sll $11,$7,19
+ xor $3,$10
+ srl $10,$7,22
+ xor $3,$11
+ sll $11,$7,30
+ xor $3,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#endif
+ sw $21,52($29) # offload to ring buffer
+ addu $3,$10
+ and $11,$7
+ addu $9,$12 # +=K[13]
+ addu $3,$11 # +=Maj(a,b,c)
+ addu $30,$9
+ addu $3,$9
+ lw $8,0($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ lw $23,60($5)
+#else
+ lwl $23,63($5)
+ lwr $23,60($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $22,$22 # byte swap(14)
+ rotr $22,$22,16
+#else
+ srl $11,$22,24 # byte swap(14)
+ srl $12,$22,8
+ andi $13,$22,0xFF00
+ sll $22,$22,24
+ andi $12,0xFF00
+ sll $13,$13,8
+ or $22,$11
+ or $12,$13
+ or $22,$12
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $13,$31,$1 # 14
+ rotr $11,$30,6
+ addu $10,$22,$2
+ rotr $12,$30,11
+ and $13,$30
+ rotr $2,$30,25
+ xor $11,$12
+ rotr $12,$3,2
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$2 # Sigma1(e)
+
+ rotr $2,$3,13
+ addu $10,$13
+ lw $13,56($6) # K[14]
+ xor $2,$12
+ rotr $12,$3,22
+ addu $10,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#else
+ addu $10,$22,$2 # 14
+ srl $2,$30,6
+ xor $13,$31,$1
+ sll $12,$30,7
+ and $13,$30
+ srl $11,$30,11
+ xor $2,$12
+ sll $12,$30,21
+ xor $2,$11
+ srl $11,$30,25
+ xor $2,$12
+ sll $12,$30,26
+ xor $2,$11
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$12,$2 # Sigma1(e)
+
+ srl $2,$3,2
+ addu $10,$13
+ lw $13,56($6) # K[14]
+ sll $12,$3,10
+ addu $10,$11
+ srl $11,$3,13
+ xor $2,$12
+ sll $12,$3,19
+ xor $2,$11
+ srl $11,$3,22
+ xor $2,$12
+ sll $12,$3,30
+ xor $2,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#endif
+ sw $22,56($29) # offload to ring buffer
+ addu $2,$11
+ and $12,$3
+ addu $10,$13 # +=K[14]
+ addu $2,$12 # +=Maj(a,b,c)
+ addu $25,$10
+ addu $2,$10
+ lw $9,4($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ wsbh $23,$23 # byte swap(15)
+ rotr $23,$23,16
+#else
+ srl $12,$23,24 # byte swap(15)
+ srl $13,$23,8
+ andi $14,$23,0xFF00
+ sll $23,$23,24
+ andi $13,0xFF00
+ sll $14,$14,8
+ or $23,$12
+ or $13,$14
+ or $23,$13
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $14,$30,$31 # 15
+ rotr $12,$25,6
+ addu $11,$23,$1
+ rotr $13,$25,11
+ and $14,$25
+ rotr $1,$25,25
+ xor $12,$13
+ rotr $13,$2,2
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$1 # Sigma1(e)
+
+ rotr $1,$2,13
+ addu $11,$14
+ lw $14,60($6) # K[15]
+ xor $1,$13
+ rotr $13,$2,22
+ addu $11,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#else
+ addu $11,$23,$1 # 15
+ srl $1,$25,6
+ xor $14,$30,$31
+ sll $13,$25,7
+ and $14,$25
+ srl $12,$25,11
+ xor $1,$13
+ sll $13,$25,21
+ xor $1,$12
+ srl $12,$25,25
+ xor $1,$13
+ sll $13,$25,26
+ xor $1,$12
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$13,$1 # Sigma1(e)
+
+ srl $1,$2,2
+ addu $11,$14
+ lw $14,60($6) # K[15]
+ sll $13,$2,10
+ addu $11,$12
+ srl $12,$2,13
+ xor $1,$13
+ sll $13,$2,19
+ xor $1,$12
+ srl $12,$2,22
+ xor $1,$13
+ sll $13,$2,30
+ xor $1,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#endif
+ sw $23,60($29) # offload to ring buffer
+ addu $1,$12
+ and $13,$2
+ addu $11,$14 # +=K[15]
+ addu $1,$13 # +=Maj(a,b,c)
+ addu $24,$11
+ addu $1,$11
+ lw $10,8($29) # prefetch from ring buffer
+ b .L16_xx
+.align 4
+.L16_xx:
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $14,$9,3 # Xupdate(16)
+ rotr $12,$9,7
+ addu $8,$17 # +=X[i+9]
+ xor $14,$12
+ rotr $12,$9,18
+
+ srl $15,$22,10
+ rotr $13,$22,17
+ xor $14,$12 # sigma0(X[i+1])
+ rotr $12,$22,19
+ xor $15,$13
+ addu $8,$14
+#else
+ srl $14,$9,3 # Xupdate(16)
+ addu $8,$17 # +=X[i+9]
+ sll $13,$9,14
+ srl $12,$9,7
+ xor $14,$13
+ sll $13,11
+ xor $14,$12
+ srl $12,$9,18
+ xor $14,$13
+
+ srl $15,$22,10
+ xor $14,$12 # sigma0(X[i+1])
+ sll $13,$22,13
+ addu $8,$14
+ srl $12,$22,17
+ xor $15,$13
+ sll $13,2
+ xor $15,$12
+ srl $12,$22,19
+ xor $15,$13
+#endif
+ xor $15,$12 # sigma1(X[i+14])
+ addu $8,$15
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $15,$25,$30 # 16
+ rotr $13,$24,6
+ addu $12,$8,$31
+ rotr $14,$24,11
+ and $15,$24
+ rotr $31,$24,25
+ xor $13,$14
+ rotr $14,$1,2
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$31 # Sigma1(e)
+
+ rotr $31,$1,13
+ addu $12,$15
+ lw $15,64($6) # K[16]
+ xor $31,$14
+ rotr $14,$1,22
+ addu $12,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#else
+ addu $12,$8,$31 # 16
+ srl $31,$24,6
+ xor $15,$25,$30
+ sll $14,$24,7
+ and $15,$24
+ srl $13,$24,11
+ xor $31,$14
+ sll $14,$24,21
+ xor $31,$13
+ srl $13,$24,25
+ xor $31,$14
+ sll $14,$24,26
+ xor $31,$13
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$14,$31 # Sigma1(e)
+
+ srl $31,$1,2
+ addu $12,$15
+ lw $15,64($6) # K[16]
+ sll $14,$1,10
+ addu $12,$13
+ srl $13,$1,13
+ xor $31,$14
+ sll $14,$1,19
+ xor $31,$13
+ srl $13,$1,22
+ xor $31,$14
+ sll $14,$1,30
+ xor $31,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#endif
+ sw $8,0($29) # offload to ring buffer
+ addu $31,$13
+ and $14,$1
+ addu $12,$15 # +=K[16]
+ addu $31,$14 # +=Maj(a,b,c)
+ addu $7,$12
+ addu $31,$12
+ lw $11,12($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $15,$10,3 # Xupdate(17)
+ rotr $13,$10,7
+ addu $9,$18 # +=X[i+9]
+ xor $15,$13
+ rotr $13,$10,18
+
+ srl $16,$23,10
+ rotr $14,$23,17
+ xor $15,$13 # sigma0(X[i+1])
+ rotr $13,$23,19
+ xor $16,$14
+ addu $9,$15
+#else
+ srl $15,$10,3 # Xupdate(17)
+ addu $9,$18 # +=X[i+9]
+ sll $14,$10,14
+ srl $13,$10,7
+ xor $15,$14
+ sll $14,11
+ xor $15,$13
+ srl $13,$10,18
+ xor $15,$14
+
+ srl $16,$23,10
+ xor $15,$13 # sigma0(X[i+1])
+ sll $14,$23,13
+ addu $9,$15
+ srl $13,$23,17
+ xor $16,$14
+ sll $14,2
+ xor $16,$13
+ srl $13,$23,19
+ xor $16,$14
+#endif
+ xor $16,$13 # sigma1(X[i+14])
+ addu $9,$16
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $16,$24,$25 # 17
+ rotr $14,$7,6
+ addu $13,$9,$30
+ rotr $15,$7,11
+ and $16,$7
+ rotr $30,$7,25
+ xor $14,$15
+ rotr $15,$31,2
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$30 # Sigma1(e)
+
+ rotr $30,$31,13
+ addu $13,$16
+ lw $16,68($6) # K[17]
+ xor $30,$15
+ rotr $15,$31,22
+ addu $13,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#else
+ addu $13,$9,$30 # 17
+ srl $30,$7,6
+ xor $16,$24,$25
+ sll $15,$7,7
+ and $16,$7
+ srl $14,$7,11
+ xor $30,$15
+ sll $15,$7,21
+ xor $30,$14
+ srl $14,$7,25
+ xor $30,$15
+ sll $15,$7,26
+ xor $30,$14
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$15,$30 # Sigma1(e)
+
+ srl $30,$31,2
+ addu $13,$16
+ lw $16,68($6) # K[17]
+ sll $15,$31,10
+ addu $13,$14
+ srl $14,$31,13
+ xor $30,$15
+ sll $15,$31,19
+ xor $30,$14
+ srl $14,$31,22
+ xor $30,$15
+ sll $15,$31,30
+ xor $30,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#endif
+ sw $9,4($29) # offload to ring buffer
+ addu $30,$14
+ and $15,$31
+ addu $13,$16 # +=K[17]
+ addu $30,$15 # +=Maj(a,b,c)
+ addu $3,$13
+ addu $30,$13
+ lw $12,16($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $16,$11,3 # Xupdate(18)
+ rotr $14,$11,7
+ addu $10,$19 # +=X[i+9]
+ xor $16,$14
+ rotr $14,$11,18
+
+ srl $17,$8,10
+ rotr $15,$8,17
+ xor $16,$14 # sigma0(X[i+1])
+ rotr $14,$8,19
+ xor $17,$15
+ addu $10,$16
+#else
+ srl $16,$11,3 # Xupdate(18)
+ addu $10,$19 # +=X[i+9]
+ sll $15,$11,14
+ srl $14,$11,7
+ xor $16,$15
+ sll $15,11
+ xor $16,$14
+ srl $14,$11,18
+ xor $16,$15
+
+ srl $17,$8,10
+ xor $16,$14 # sigma0(X[i+1])
+ sll $15,$8,13
+ addu $10,$16
+ srl $14,$8,17
+ xor $17,$15
+ sll $15,2
+ xor $17,$14
+ srl $14,$8,19
+ xor $17,$15
+#endif
+ xor $17,$14 # sigma1(X[i+14])
+ addu $10,$17
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $17,$7,$24 # 18
+ rotr $15,$3,6
+ addu $14,$10,$25
+ rotr $16,$3,11
+ and $17,$3
+ rotr $25,$3,25
+ xor $15,$16
+ rotr $16,$30,2
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$25 # Sigma1(e)
+
+ rotr $25,$30,13
+ addu $14,$17
+ lw $17,72($6) # K[18]
+ xor $25,$16
+ rotr $16,$30,22
+ addu $14,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#else
+ addu $14,$10,$25 # 18
+ srl $25,$3,6
+ xor $17,$7,$24
+ sll $16,$3,7
+ and $17,$3
+ srl $15,$3,11
+ xor $25,$16
+ sll $16,$3,21
+ xor $25,$15
+ srl $15,$3,25
+ xor $25,$16
+ sll $16,$3,26
+ xor $25,$15
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$16,$25 # Sigma1(e)
+
+ srl $25,$30,2
+ addu $14,$17
+ lw $17,72($6) # K[18]
+ sll $16,$30,10
+ addu $14,$15
+ srl $15,$30,13
+ xor $25,$16
+ sll $16,$30,19
+ xor $25,$15
+ srl $15,$30,22
+ xor $25,$16
+ sll $16,$30,30
+ xor $25,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#endif
+ sw $10,8($29) # offload to ring buffer
+ addu $25,$15
+ and $16,$30
+ addu $14,$17 # +=K[18]
+ addu $25,$16 # +=Maj(a,b,c)
+ addu $2,$14
+ addu $25,$14
+ lw $13,20($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $17,$12,3 # Xupdate(19)
+ rotr $15,$12,7
+ addu $11,$20 # +=X[i+9]
+ xor $17,$15
+ rotr $15,$12,18
+
+ srl $18,$9,10
+ rotr $16,$9,17
+ xor $17,$15 # sigma0(X[i+1])
+ rotr $15,$9,19
+ xor $18,$16
+ addu $11,$17
+#else
+ srl $17,$12,3 # Xupdate(19)
+ addu $11,$20 # +=X[i+9]
+ sll $16,$12,14
+ srl $15,$12,7
+ xor $17,$16
+ sll $16,11
+ xor $17,$15
+ srl $15,$12,18
+ xor $17,$16
+
+ srl $18,$9,10
+ xor $17,$15 # sigma0(X[i+1])
+ sll $16,$9,13
+ addu $11,$17
+ srl $15,$9,17
+ xor $18,$16
+ sll $16,2
+ xor $18,$15
+ srl $15,$9,19
+ xor $18,$16
+#endif
+ xor $18,$15 # sigma1(X[i+14])
+ addu $11,$18
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $18,$3,$7 # 19
+ rotr $16,$2,6
+ addu $15,$11,$24
+ rotr $17,$2,11
+ and $18,$2
+ rotr $24,$2,25
+ xor $16,$17
+ rotr $17,$25,2
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$24 # Sigma1(e)
+
+ rotr $24,$25,13
+ addu $15,$18
+ lw $18,76($6) # K[19]
+ xor $24,$17
+ rotr $17,$25,22
+ addu $15,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#else
+ addu $15,$11,$24 # 19
+ srl $24,$2,6
+ xor $18,$3,$7
+ sll $17,$2,7
+ and $18,$2
+ srl $16,$2,11
+ xor $24,$17
+ sll $17,$2,21
+ xor $24,$16
+ srl $16,$2,25
+ xor $24,$17
+ sll $17,$2,26
+ xor $24,$16
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$17,$24 # Sigma1(e)
+
+ srl $24,$25,2
+ addu $15,$18
+ lw $18,76($6) # K[19]
+ sll $17,$25,10
+ addu $15,$16
+ srl $16,$25,13
+ xor $24,$17
+ sll $17,$25,19
+ xor $24,$16
+ srl $16,$25,22
+ xor $24,$17
+ sll $17,$25,30
+ xor $24,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#endif
+ sw $11,12($29) # offload to ring buffer
+ addu $24,$16
+ and $17,$25
+ addu $15,$18 # +=K[19]
+ addu $24,$17 # +=Maj(a,b,c)
+ addu $1,$15
+ addu $24,$15
+ lw $14,24($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $18,$13,3 # Xupdate(20)
+ rotr $16,$13,7
+ addu $12,$21 # +=X[i+9]
+ xor $18,$16
+ rotr $16,$13,18
+
+ srl $19,$10,10
+ rotr $17,$10,17
+ xor $18,$16 # sigma0(X[i+1])
+ rotr $16,$10,19
+ xor $19,$17
+ addu $12,$18
+#else
+ srl $18,$13,3 # Xupdate(20)
+ addu $12,$21 # +=X[i+9]
+ sll $17,$13,14
+ srl $16,$13,7
+ xor $18,$17
+ sll $17,11
+ xor $18,$16
+ srl $16,$13,18
+ xor $18,$17
+
+ srl $19,$10,10
+ xor $18,$16 # sigma0(X[i+1])
+ sll $17,$10,13
+ addu $12,$18
+ srl $16,$10,17
+ xor $19,$17
+ sll $17,2
+ xor $19,$16
+ srl $16,$10,19
+ xor $19,$17
+#endif
+ xor $19,$16 # sigma1(X[i+14])
+ addu $12,$19
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $19,$2,$3 # 20
+ rotr $17,$1,6
+ addu $16,$12,$7
+ rotr $18,$1,11
+ and $19,$1
+ rotr $7,$1,25
+ xor $17,$18
+ rotr $18,$24,2
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$7 # Sigma1(e)
+
+ rotr $7,$24,13
+ addu $16,$19
+ lw $19,80($6) # K[20]
+ xor $7,$18
+ rotr $18,$24,22
+ addu $16,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#else
+ addu $16,$12,$7 # 20
+ srl $7,$1,6
+ xor $19,$2,$3
+ sll $18,$1,7
+ and $19,$1
+ srl $17,$1,11
+ xor $7,$18
+ sll $18,$1,21
+ xor $7,$17
+ srl $17,$1,25
+ xor $7,$18
+ sll $18,$1,26
+ xor $7,$17
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$18,$7 # Sigma1(e)
+
+ srl $7,$24,2
+ addu $16,$19
+ lw $19,80($6) # K[20]
+ sll $18,$24,10
+ addu $16,$17
+ srl $17,$24,13
+ xor $7,$18
+ sll $18,$24,19
+ xor $7,$17
+ srl $17,$24,22
+ xor $7,$18
+ sll $18,$24,30
+ xor $7,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#endif
+ sw $12,16($29) # offload to ring buffer
+ addu $7,$17
+ and $18,$24
+ addu $16,$19 # +=K[20]
+ addu $7,$18 # +=Maj(a,b,c)
+ addu $31,$16
+ addu $7,$16
+ lw $15,28($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $19,$14,3 # Xupdate(21)
+ rotr $17,$14,7
+ addu $13,$22 # +=X[i+9]
+ xor $19,$17
+ rotr $17,$14,18
+
+ srl $20,$11,10
+ rotr $18,$11,17
+ xor $19,$17 # sigma0(X[i+1])
+ rotr $17,$11,19
+ xor $20,$18
+ addu $13,$19
+#else
+ srl $19,$14,3 # Xupdate(21)
+ addu $13,$22 # +=X[i+9]
+ sll $18,$14,14
+ srl $17,$14,7
+ xor $19,$18
+ sll $18,11
+ xor $19,$17
+ srl $17,$14,18
+ xor $19,$18
+
+ srl $20,$11,10
+ xor $19,$17 # sigma0(X[i+1])
+ sll $18,$11,13
+ addu $13,$19
+ srl $17,$11,17
+ xor $20,$18
+ sll $18,2
+ xor $20,$17
+ srl $17,$11,19
+ xor $20,$18
+#endif
+ xor $20,$17 # sigma1(X[i+14])
+ addu $13,$20
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $20,$1,$2 # 21
+ rotr $18,$31,6
+ addu $17,$13,$3
+ rotr $19,$31,11
+ and $20,$31
+ rotr $3,$31,25
+ xor $18,$19
+ rotr $19,$7,2
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$3 # Sigma1(e)
+
+ rotr $3,$7,13
+ addu $17,$20
+ lw $20,84($6) # K[21]
+ xor $3,$19
+ rotr $19,$7,22
+ addu $17,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#else
+ addu $17,$13,$3 # 21
+ srl $3,$31,6
+ xor $20,$1,$2
+ sll $19,$31,7
+ and $20,$31
+ srl $18,$31,11
+ xor $3,$19
+ sll $19,$31,21
+ xor $3,$18
+ srl $18,$31,25
+ xor $3,$19
+ sll $19,$31,26
+ xor $3,$18
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$19,$3 # Sigma1(e)
+
+ srl $3,$7,2
+ addu $17,$20
+ lw $20,84($6) # K[21]
+ sll $19,$7,10
+ addu $17,$18
+ srl $18,$7,13
+ xor $3,$19
+ sll $19,$7,19
+ xor $3,$18
+ srl $18,$7,22
+ xor $3,$19
+ sll $19,$7,30
+ xor $3,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#endif
+ sw $13,20($29) # offload to ring buffer
+ addu $3,$18
+ and $19,$7
+ addu $17,$20 # +=K[21]
+ addu $3,$19 # +=Maj(a,b,c)
+ addu $30,$17
+ addu $3,$17
+ lw $16,32($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $20,$15,3 # Xupdate(22)
+ rotr $18,$15,7
+ addu $14,$23 # +=X[i+9]
+ xor $20,$18
+ rotr $18,$15,18
+
+ srl $21,$12,10
+ rotr $19,$12,17
+ xor $20,$18 # sigma0(X[i+1])
+ rotr $18,$12,19
+ xor $21,$19
+ addu $14,$20
+#else
+ srl $20,$15,3 # Xupdate(22)
+ addu $14,$23 # +=X[i+9]
+ sll $19,$15,14
+ srl $18,$15,7
+ xor $20,$19
+ sll $19,11
+ xor $20,$18
+ srl $18,$15,18
+ xor $20,$19
+
+ srl $21,$12,10
+ xor $20,$18 # sigma0(X[i+1])
+ sll $19,$12,13
+ addu $14,$20
+ srl $18,$12,17
+ xor $21,$19
+ sll $19,2
+ xor $21,$18
+ srl $18,$12,19
+ xor $21,$19
+#endif
+ xor $21,$18 # sigma1(X[i+14])
+ addu $14,$21
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $21,$31,$1 # 22
+ rotr $19,$30,6
+ addu $18,$14,$2
+ rotr $20,$30,11
+ and $21,$30
+ rotr $2,$30,25
+ xor $19,$20
+ rotr $20,$3,2
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$2 # Sigma1(e)
+
+ rotr $2,$3,13
+ addu $18,$21
+ lw $21,88($6) # K[22]
+ xor $2,$20
+ rotr $20,$3,22
+ addu $18,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#else
+ addu $18,$14,$2 # 22
+ srl $2,$30,6
+ xor $21,$31,$1
+ sll $20,$30,7
+ and $21,$30
+ srl $19,$30,11
+ xor $2,$20
+ sll $20,$30,21
+ xor $2,$19
+ srl $19,$30,25
+ xor $2,$20
+ sll $20,$30,26
+ xor $2,$19
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$20,$2 # Sigma1(e)
+
+ srl $2,$3,2
+ addu $18,$21
+ lw $21,88($6) # K[22]
+ sll $20,$3,10
+ addu $18,$19
+ srl $19,$3,13
+ xor $2,$20
+ sll $20,$3,19
+ xor $2,$19
+ srl $19,$3,22
+ xor $2,$20
+ sll $20,$3,30
+ xor $2,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#endif
+ sw $14,24($29) # offload to ring buffer
+ addu $2,$19
+ and $20,$3
+ addu $18,$21 # +=K[22]
+ addu $2,$20 # +=Maj(a,b,c)
+ addu $25,$18
+ addu $2,$18
+ lw $17,36($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $21,$16,3 # Xupdate(23)
+ rotr $19,$16,7
+ addu $15,$8 # +=X[i+9]
+ xor $21,$19
+ rotr $19,$16,18
+
+ srl $22,$13,10
+ rotr $20,$13,17
+ xor $21,$19 # sigma0(X[i+1])
+ rotr $19,$13,19
+ xor $22,$20
+ addu $15,$21
+#else
+ srl $21,$16,3 # Xupdate(23)
+ addu $15,$8 # +=X[i+9]
+ sll $20,$16,14
+ srl $19,$16,7
+ xor $21,$20
+ sll $20,11
+ xor $21,$19
+ srl $19,$16,18
+ xor $21,$20
+
+ srl $22,$13,10
+ xor $21,$19 # sigma0(X[i+1])
+ sll $20,$13,13
+ addu $15,$21
+ srl $19,$13,17
+ xor $22,$20
+ sll $20,2
+ xor $22,$19
+ srl $19,$13,19
+ xor $22,$20
+#endif
+ xor $22,$19 # sigma1(X[i+14])
+ addu $15,$22
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $22,$30,$31 # 23
+ rotr $20,$25,6
+ addu $19,$15,$1
+ rotr $21,$25,11
+ and $22,$25
+ rotr $1,$25,25
+ xor $20,$21
+ rotr $21,$2,2
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$1 # Sigma1(e)
+
+ rotr $1,$2,13
+ addu $19,$22
+ lw $22,92($6) # K[23]
+ xor $1,$21
+ rotr $21,$2,22
+ addu $19,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#else
+ addu $19,$15,$1 # 23
+ srl $1,$25,6
+ xor $22,$30,$31
+ sll $21,$25,7
+ and $22,$25
+ srl $20,$25,11
+ xor $1,$21
+ sll $21,$25,21
+ xor $1,$20
+ srl $20,$25,25
+ xor $1,$21
+ sll $21,$25,26
+ xor $1,$20
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$21,$1 # Sigma1(e)
+
+ srl $1,$2,2
+ addu $19,$22
+ lw $22,92($6) # K[23]
+ sll $21,$2,10
+ addu $19,$20
+ srl $20,$2,13
+ xor $1,$21
+ sll $21,$2,19
+ xor $1,$20
+ srl $20,$2,22
+ xor $1,$21
+ sll $21,$2,30
+ xor $1,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#endif
+ sw $15,28($29) # offload to ring buffer
+ addu $1,$20
+ and $21,$2
+ addu $19,$22 # +=K[23]
+ addu $1,$21 # +=Maj(a,b,c)
+ addu $24,$19
+ addu $1,$19
+ lw $18,40($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $22,$17,3 # Xupdate(24)
+ rotr $20,$17,7
+ addu $16,$9 # +=X[i+9]
+ xor $22,$20
+ rotr $20,$17,18
+
+ srl $23,$14,10
+ rotr $21,$14,17
+ xor $22,$20 # sigma0(X[i+1])
+ rotr $20,$14,19
+ xor $23,$21
+ addu $16,$22
+#else
+ srl $22,$17,3 # Xupdate(24)
+ addu $16,$9 # +=X[i+9]
+ sll $21,$17,14
+ srl $20,$17,7
+ xor $22,$21
+ sll $21,11
+ xor $22,$20
+ srl $20,$17,18
+ xor $22,$21
+
+ srl $23,$14,10
+ xor $22,$20 # sigma0(X[i+1])
+ sll $21,$14,13
+ addu $16,$22
+ srl $20,$14,17
+ xor $23,$21
+ sll $21,2
+ xor $23,$20
+ srl $20,$14,19
+ xor $23,$21
+#endif
+ xor $23,$20 # sigma1(X[i+14])
+ addu $16,$23
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $23,$25,$30 # 24
+ rotr $21,$24,6
+ addu $20,$16,$31
+ rotr $22,$24,11
+ and $23,$24
+ rotr $31,$24,25
+ xor $21,$22
+ rotr $22,$1,2
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$31 # Sigma1(e)
+
+ rotr $31,$1,13
+ addu $20,$23
+ lw $23,96($6) # K[24]
+ xor $31,$22
+ rotr $22,$1,22
+ addu $20,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#else
+ addu $20,$16,$31 # 24
+ srl $31,$24,6
+ xor $23,$25,$30
+ sll $22,$24,7
+ and $23,$24
+ srl $21,$24,11
+ xor $31,$22
+ sll $22,$24,21
+ xor $31,$21
+ srl $21,$24,25
+ xor $31,$22
+ sll $22,$24,26
+ xor $31,$21
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$22,$31 # Sigma1(e)
+
+ srl $31,$1,2
+ addu $20,$23
+ lw $23,96($6) # K[24]
+ sll $22,$1,10
+ addu $20,$21
+ srl $21,$1,13
+ xor $31,$22
+ sll $22,$1,19
+ xor $31,$21
+ srl $21,$1,22
+ xor $31,$22
+ sll $22,$1,30
+ xor $31,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#endif
+ sw $16,32($29) # offload to ring buffer
+ addu $31,$21
+ and $22,$1
+ addu $20,$23 # +=K[24]
+ addu $31,$22 # +=Maj(a,b,c)
+ addu $7,$20
+ addu $31,$20
+ lw $19,44($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $23,$18,3 # Xupdate(25)
+ rotr $21,$18,7
+ addu $17,$10 # +=X[i+9]
+ xor $23,$21
+ rotr $21,$18,18
+
+ srl $8,$15,10
+ rotr $22,$15,17
+ xor $23,$21 # sigma0(X[i+1])
+ rotr $21,$15,19
+ xor $8,$22
+ addu $17,$23
+#else
+ srl $23,$18,3 # Xupdate(25)
+ addu $17,$10 # +=X[i+9]
+ sll $22,$18,14
+ srl $21,$18,7
+ xor $23,$22
+ sll $22,11
+ xor $23,$21
+ srl $21,$18,18
+ xor $23,$22
+
+ srl $8,$15,10
+ xor $23,$21 # sigma0(X[i+1])
+ sll $22,$15,13
+ addu $17,$23
+ srl $21,$15,17
+ xor $8,$22
+ sll $22,2
+ xor $8,$21
+ srl $21,$15,19
+ xor $8,$22
+#endif
+ xor $8,$21 # sigma1(X[i+14])
+ addu $17,$8
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $8,$24,$25 # 25
+ rotr $22,$7,6
+ addu $21,$17,$30
+ rotr $23,$7,11
+ and $8,$7
+ rotr $30,$7,25
+ xor $22,$23
+ rotr $23,$31,2
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$30 # Sigma1(e)
+
+ rotr $30,$31,13
+ addu $21,$8
+ lw $8,100($6) # K[25]
+ xor $30,$23
+ rotr $23,$31,22
+ addu $21,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#else
+ addu $21,$17,$30 # 25
+ srl $30,$7,6
+ xor $8,$24,$25
+ sll $23,$7,7
+ and $8,$7
+ srl $22,$7,11
+ xor $30,$23
+ sll $23,$7,21
+ xor $30,$22
+ srl $22,$7,25
+ xor $30,$23
+ sll $23,$7,26
+ xor $30,$22
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$23,$30 # Sigma1(e)
+
+ srl $30,$31,2
+ addu $21,$8
+ lw $8,100($6) # K[25]
+ sll $23,$31,10
+ addu $21,$22
+ srl $22,$31,13
+ xor $30,$23
+ sll $23,$31,19
+ xor $30,$22
+ srl $22,$31,22
+ xor $30,$23
+ sll $23,$31,30
+ xor $30,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#endif
+ sw $17,36($29) # offload to ring buffer
+ addu $30,$22
+ and $23,$31
+ addu $21,$8 # +=K[25]
+ addu $30,$23 # +=Maj(a,b,c)
+ addu $3,$21
+ addu $30,$21
+ lw $20,48($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $8,$19,3 # Xupdate(26)
+ rotr $22,$19,7
+ addu $18,$11 # +=X[i+9]
+ xor $8,$22
+ rotr $22,$19,18
+
+ srl $9,$16,10
+ rotr $23,$16,17
+ xor $8,$22 # sigma0(X[i+1])
+ rotr $22,$16,19
+ xor $9,$23
+ addu $18,$8
+#else
+ srl $8,$19,3 # Xupdate(26)
+ addu $18,$11 # +=X[i+9]
+ sll $23,$19,14
+ srl $22,$19,7
+ xor $8,$23
+ sll $23,11
+ xor $8,$22
+ srl $22,$19,18
+ xor $8,$23
+
+ srl $9,$16,10
+ xor $8,$22 # sigma0(X[i+1])
+ sll $23,$16,13
+ addu $18,$8
+ srl $22,$16,17
+ xor $9,$23
+ sll $23,2
+ xor $9,$22
+ srl $22,$16,19
+ xor $9,$23
+#endif
+ xor $9,$22 # sigma1(X[i+14])
+ addu $18,$9
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $9,$7,$24 # 26
+ rotr $23,$3,6
+ addu $22,$18,$25
+ rotr $8,$3,11
+ and $9,$3
+ rotr $25,$3,25
+ xor $23,$8
+ rotr $8,$30,2
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$25 # Sigma1(e)
+
+ rotr $25,$30,13
+ addu $22,$9
+ lw $9,104($6) # K[26]
+ xor $25,$8
+ rotr $8,$30,22
+ addu $22,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#else
+ addu $22,$18,$25 # 26
+ srl $25,$3,6
+ xor $9,$7,$24
+ sll $8,$3,7
+ and $9,$3
+ srl $23,$3,11
+ xor $25,$8
+ sll $8,$3,21
+ xor $25,$23
+ srl $23,$3,25
+ xor $25,$8
+ sll $8,$3,26
+ xor $25,$23
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$8,$25 # Sigma1(e)
+
+ srl $25,$30,2
+ addu $22,$9
+ lw $9,104($6) # K[26]
+ sll $8,$30,10
+ addu $22,$23
+ srl $23,$30,13
+ xor $25,$8
+ sll $8,$30,19
+ xor $25,$23
+ srl $23,$30,22
+ xor $25,$8
+ sll $8,$30,30
+ xor $25,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#endif
+ sw $18,40($29) # offload to ring buffer
+ addu $25,$23
+ and $8,$30
+ addu $22,$9 # +=K[26]
+ addu $25,$8 # +=Maj(a,b,c)
+ addu $2,$22
+ addu $25,$22
+ lw $21,52($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $9,$20,3 # Xupdate(27)
+ rotr $23,$20,7
+ addu $19,$12 # +=X[i+9]
+ xor $9,$23
+ rotr $23,$20,18
+
+ srl $10,$17,10
+ rotr $8,$17,17
+ xor $9,$23 # sigma0(X[i+1])
+ rotr $23,$17,19
+ xor $10,$8
+ addu $19,$9
+#else
+ srl $9,$20,3 # Xupdate(27)
+ addu $19,$12 # +=X[i+9]
+ sll $8,$20,14
+ srl $23,$20,7
+ xor $9,$8
+ sll $8,11
+ xor $9,$23
+ srl $23,$20,18
+ xor $9,$8
+
+ srl $10,$17,10
+ xor $9,$23 # sigma0(X[i+1])
+ sll $8,$17,13
+ addu $19,$9
+ srl $23,$17,17
+ xor $10,$8
+ sll $8,2
+ xor $10,$23
+ srl $23,$17,19
+ xor $10,$8
+#endif
+ xor $10,$23 # sigma1(X[i+14])
+ addu $19,$10
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $10,$3,$7 # 27
+ rotr $8,$2,6
+ addu $23,$19,$24
+ rotr $9,$2,11
+ and $10,$2
+ rotr $24,$2,25
+ xor $8,$9
+ rotr $9,$25,2
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$24 # Sigma1(e)
+
+ rotr $24,$25,13
+ addu $23,$10
+ lw $10,108($6) # K[27]
+ xor $24,$9
+ rotr $9,$25,22
+ addu $23,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#else
+ addu $23,$19,$24 # 27
+ srl $24,$2,6
+ xor $10,$3,$7
+ sll $9,$2,7
+ and $10,$2
+ srl $8,$2,11
+ xor $24,$9
+ sll $9,$2,21
+ xor $24,$8
+ srl $8,$2,25
+ xor $24,$9
+ sll $9,$2,26
+ xor $24,$8
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$9,$24 # Sigma1(e)
+
+ srl $24,$25,2
+ addu $23,$10
+ lw $10,108($6) # K[27]
+ sll $9,$25,10
+ addu $23,$8
+ srl $8,$25,13
+ xor $24,$9
+ sll $9,$25,19
+ xor $24,$8
+ srl $8,$25,22
+ xor $24,$9
+ sll $9,$25,30
+ xor $24,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#endif
+ sw $19,44($29) # offload to ring buffer
+ addu $24,$8
+ and $9,$25
+ addu $23,$10 # +=K[27]
+ addu $24,$9 # +=Maj(a,b,c)
+ addu $1,$23
+ addu $24,$23
+ lw $22,56($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $10,$21,3 # Xupdate(28)
+ rotr $8,$21,7
+ addu $20,$13 # +=X[i+9]
+ xor $10,$8
+ rotr $8,$21,18
+
+ srl $11,$18,10
+ rotr $9,$18,17
+ xor $10,$8 # sigma0(X[i+1])
+ rotr $8,$18,19
+ xor $11,$9
+ addu $20,$10
+#else
+ srl $10,$21,3 # Xupdate(28)
+ addu $20,$13 # +=X[i+9]
+ sll $9,$21,14
+ srl $8,$21,7
+ xor $10,$9
+ sll $9,11
+ xor $10,$8
+ srl $8,$21,18
+ xor $10,$9
+
+ srl $11,$18,10
+ xor $10,$8 # sigma0(X[i+1])
+ sll $9,$18,13
+ addu $20,$10
+ srl $8,$18,17
+ xor $11,$9
+ sll $9,2
+ xor $11,$8
+ srl $8,$18,19
+ xor $11,$9
+#endif
+ xor $11,$8 # sigma1(X[i+14])
+ addu $20,$11
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $11,$2,$3 # 28
+ rotr $9,$1,6
+ addu $8,$20,$7
+ rotr $10,$1,11
+ and $11,$1
+ rotr $7,$1,25
+ xor $9,$10
+ rotr $10,$24,2
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$7 # Sigma1(e)
+
+ rotr $7,$24,13
+ addu $8,$11
+ lw $11,112($6) # K[28]
+ xor $7,$10
+ rotr $10,$24,22
+ addu $8,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#else
+ addu $8,$20,$7 # 28
+ srl $7,$1,6
+ xor $11,$2,$3
+ sll $10,$1,7
+ and $11,$1
+ srl $9,$1,11
+ xor $7,$10
+ sll $10,$1,21
+ xor $7,$9
+ srl $9,$1,25
+ xor $7,$10
+ sll $10,$1,26
+ xor $7,$9
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$10,$7 # Sigma1(e)
+
+ srl $7,$24,2
+ addu $8,$11
+ lw $11,112($6) # K[28]
+ sll $10,$24,10
+ addu $8,$9
+ srl $9,$24,13
+ xor $7,$10
+ sll $10,$24,19
+ xor $7,$9
+ srl $9,$24,22
+ xor $7,$10
+ sll $10,$24,30
+ xor $7,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#endif
+ sw $20,48($29) # offload to ring buffer
+ addu $7,$9
+ and $10,$24
+ addu $8,$11 # +=K[28]
+ addu $7,$10 # +=Maj(a,b,c)
+ addu $31,$8
+ addu $7,$8
+ lw $23,60($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $11,$22,3 # Xupdate(29)
+ rotr $9,$22,7
+ addu $21,$14 # +=X[i+9]
+ xor $11,$9
+ rotr $9,$22,18
+
+ srl $12,$19,10
+ rotr $10,$19,17
+ xor $11,$9 # sigma0(X[i+1])
+ rotr $9,$19,19
+ xor $12,$10
+ addu $21,$11
+#else
+ srl $11,$22,3 # Xupdate(29)
+ addu $21,$14 # +=X[i+9]
+ sll $10,$22,14
+ srl $9,$22,7
+ xor $11,$10
+ sll $10,11
+ xor $11,$9
+ srl $9,$22,18
+ xor $11,$10
+
+ srl $12,$19,10
+ xor $11,$9 # sigma0(X[i+1])
+ sll $10,$19,13
+ addu $21,$11
+ srl $9,$19,17
+ xor $12,$10
+ sll $10,2
+ xor $12,$9
+ srl $9,$19,19
+ xor $12,$10
+#endif
+ xor $12,$9 # sigma1(X[i+14])
+ addu $21,$12
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $12,$1,$2 # 29
+ rotr $10,$31,6
+ addu $9,$21,$3
+ rotr $11,$31,11
+ and $12,$31
+ rotr $3,$31,25
+ xor $10,$11
+ rotr $11,$7,2
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$3 # Sigma1(e)
+
+ rotr $3,$7,13
+ addu $9,$12
+ lw $12,116($6) # K[29]
+ xor $3,$11
+ rotr $11,$7,22
+ addu $9,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#else
+ addu $9,$21,$3 # 29
+ srl $3,$31,6
+ xor $12,$1,$2
+ sll $11,$31,7
+ and $12,$31
+ srl $10,$31,11
+ xor $3,$11
+ sll $11,$31,21
+ xor $3,$10
+ srl $10,$31,25
+ xor $3,$11
+ sll $11,$31,26
+ xor $3,$10
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$11,$3 # Sigma1(e)
+
+ srl $3,$7,2
+ addu $9,$12
+ lw $12,116($6) # K[29]
+ sll $11,$7,10
+ addu $9,$10
+ srl $10,$7,13
+ xor $3,$11
+ sll $11,$7,19
+ xor $3,$10
+ srl $10,$7,22
+ xor $3,$11
+ sll $11,$7,30
+ xor $3,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#endif
+ sw $21,52($29) # offload to ring buffer
+ addu $3,$10
+ and $11,$7
+ addu $9,$12 # +=K[29]
+ addu $3,$11 # +=Maj(a,b,c)
+ addu $30,$9
+ addu $3,$9
+ lw $8,0($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $12,$23,3 # Xupdate(30)
+ rotr $10,$23,7
+ addu $22,$15 # +=X[i+9]
+ xor $12,$10
+ rotr $10,$23,18
+
+ srl $13,$20,10
+ rotr $11,$20,17
+ xor $12,$10 # sigma0(X[i+1])
+ rotr $10,$20,19
+ xor $13,$11
+ addu $22,$12
+#else
+ srl $12,$23,3 # Xupdate(30)
+ addu $22,$15 # +=X[i+9]
+ sll $11,$23,14
+ srl $10,$23,7
+ xor $12,$11
+ sll $11,11
+ xor $12,$10
+ srl $10,$23,18
+ xor $12,$11
+
+ srl $13,$20,10
+ xor $12,$10 # sigma0(X[i+1])
+ sll $11,$20,13
+ addu $22,$12
+ srl $10,$20,17
+ xor $13,$11
+ sll $11,2
+ xor $13,$10
+ srl $10,$20,19
+ xor $13,$11
+#endif
+ xor $13,$10 # sigma1(X[i+14])
+ addu $22,$13
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $13,$31,$1 # 30
+ rotr $11,$30,6
+ addu $10,$22,$2
+ rotr $12,$30,11
+ and $13,$30
+ rotr $2,$30,25
+ xor $11,$12
+ rotr $12,$3,2
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$2 # Sigma1(e)
+
+ rotr $2,$3,13
+ addu $10,$13
+ lw $13,120($6) # K[30]
+ xor $2,$12
+ rotr $12,$3,22
+ addu $10,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#else
+ addu $10,$22,$2 # 30
+ srl $2,$30,6
+ xor $13,$31,$1
+ sll $12,$30,7
+ and $13,$30
+ srl $11,$30,11
+ xor $2,$12
+ sll $12,$30,21
+ xor $2,$11
+ srl $11,$30,25
+ xor $2,$12
+ sll $12,$30,26
+ xor $2,$11
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$12,$2 # Sigma1(e)
+
+ srl $2,$3,2
+ addu $10,$13
+ lw $13,120($6) # K[30]
+ sll $12,$3,10
+ addu $10,$11
+ srl $11,$3,13
+ xor $2,$12
+ sll $12,$3,19
+ xor $2,$11
+ srl $11,$3,22
+ xor $2,$12
+ sll $12,$3,30
+ xor $2,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#endif
+ sw $22,56($29) # offload to ring buffer
+ addu $2,$11
+ and $12,$3
+ addu $10,$13 # +=K[30]
+ addu $2,$12 # +=Maj(a,b,c)
+ addu $25,$10
+ addu $2,$10
+ lw $9,4($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ srl $13,$8,3 # Xupdate(31)
+ rotr $11,$8,7
+ addu $23,$16 # +=X[i+9]
+ xor $13,$11
+ rotr $11,$8,18
+
+ srl $14,$21,10
+ rotr $12,$21,17
+ xor $13,$11 # sigma0(X[i+1])
+ rotr $11,$21,19
+ xor $14,$12
+ addu $23,$13
+#else
+ srl $13,$8,3 # Xupdate(31)
+ addu $23,$16 # +=X[i+9]
+ sll $12,$8,14
+ srl $11,$8,7
+ xor $13,$12
+ sll $12,11
+ xor $13,$11
+ srl $11,$8,18
+ xor $13,$12
+
+ srl $14,$21,10
+ xor $13,$11 # sigma0(X[i+1])
+ sll $12,$21,13
+ addu $23,$13
+ srl $11,$21,17
+ xor $14,$12
+ sll $12,2
+ xor $14,$11
+ srl $11,$21,19
+ xor $14,$12
+#endif
+ xor $14,$11 # sigma1(X[i+14])
+ addu $23,$14
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $14,$30,$31 # 31
+ rotr $12,$25,6
+ addu $11,$23,$1
+ rotr $13,$25,11
+ and $14,$25
+ rotr $1,$25,25
+ xor $12,$13
+ rotr $13,$2,2
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$1 # Sigma1(e)
+
+ rotr $1,$2,13
+ addu $11,$14
+ lw $14,124($6) # K[31]
+ xor $1,$13
+ rotr $13,$2,22
+ addu $11,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#else
+ addu $11,$23,$1 # 31
+ srl $1,$25,6
+ xor $14,$30,$31
+ sll $13,$25,7
+ and $14,$25
+ srl $12,$25,11
+ xor $1,$13
+ sll $13,$25,21
+ xor $1,$12
+ srl $12,$25,25
+ xor $1,$13
+ sll $13,$25,26
+ xor $1,$12
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$13,$1 # Sigma1(e)
+
+ srl $1,$2,2
+ addu $11,$14
+ lw $14,124($6) # K[31]
+ sll $13,$2,10
+ addu $11,$12
+ srl $12,$2,13
+ xor $1,$13
+ sll $13,$2,19
+ xor $1,$12
+ srl $12,$2,22
+ xor $1,$13
+ sll $13,$2,30
+ xor $1,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#endif
+ sw $23,60($29) # offload to ring buffer
+ addu $1,$12
+ and $13,$2
+ addu $11,$14 # +=K[31]
+ addu $1,$13 # +=Maj(a,b,c)
+ addu $24,$11
+ addu $1,$11
+ lw $10,8($29) # prefetch from ring buffer
+ and $14,0xfff
+ li $15,2290
+ .set noreorder
+ bne $14,$15,.L16_xx
+ daddu $6,16*4 # Ktbl+=16
+
+ ld $23,16*4($29) # restore pointer to the end of input
+ lw $8,0*4($4)
+ lw $9,1*4($4)
+ lw $10,2*4($4)
+ daddu $5,16*4
+ lw $11,3*4($4)
+ addu $1,$8
+ lw $12,4*4($4)
+ addu $2,$9
+ lw $13,5*4($4)
+ addu $3,$10
+ lw $14,6*4($4)
+ addu $7,$11
+ lw $15,7*4($4)
+ addu $24,$12
+ sw $1,0*4($4)
+ addu $25,$13
+ sw $2,1*4($4)
+ addu $30,$14
+ sw $3,2*4($4)
+ addu $31,$15
+ sw $7,3*4($4)
+ sw $24,4*4($4)
+ sw $25,5*4($4)
+ sw $30,6*4($4)
+ sw $31,7*4($4)
+
+ bne $5,$23,.Loop
+ dsubu $6,192 # rewind $6
+
+ ld $31,192-1*8($29)
+ ld $30,192-2*8($29)
+ ld $23,192-3*8($29)
+ ld $22,192-4*8($29)
+ ld $21,192-5*8($29)
+ ld $20,192-6*8($29)
+ ld $19,192-7*8($29)
+ ld $18,192-8*8($29)
+ ld $17,192-9*8($29)
+ ld $16,192-10*8($29)
+ jr $31
+ daddu $29,192
+.end sha256_block_data_order
+
+.rdata
+.align 5
+K256:
+ .word 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5
+ .word 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5
+ .word 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3
+ .word 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174
+ .word 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc
+ .word 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da
+ .word 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7
+ .word 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967
+ .word 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13
+ .word 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85
+ .word 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3
+ .word 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070
+ .word 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5
+ .word 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3
+ .word 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208
+ .word 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+.asciiz "SHA256 for MIPS, CRYPTOGAMS by "
+.align 5
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha512-mips.S b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha512-mips.S
new file mode 100644
index 00000000000000..538bd9e459332d
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/sha/sha512-mips.S
@@ -0,0 +1,3204 @@
+#include "mips_arch.h"
+
+.text
+.set noat
+#if !defined(__mips_eabi) && (!defined(__vxworks) || defined(__pic__))
+.option pic2
+#endif
+
+.align 5
+.globl sha512_block_data_order
+.ent sha512_block_data_order
+sha512_block_data_order:
+ .frame $29,256,$31
+ .mask 0xc0ff0000,-8
+ .set noreorder
+ dsubu $29,256
+ sd $31,256-1*8($29)
+ sd $30,256-2*8($29)
+ sd $23,256-3*8($29)
+ sd $22,256-4*8($29)
+ sd $21,256-5*8($29)
+ sd $20,256-6*8($29)
+ sd $19,256-7*8($29)
+ sd $18,256-8*8($29)
+ sd $17,256-9*8($29)
+ sd $16,256-10*8($29)
+ dsll $23,$6,7
+ .cplocal $6
+ .cpsetup $25,$0,sha512_block_data_order
+ .set reorder
+ dla $6,K512 # PIC-ified 'load address'
+
+ ld $1,0*8($4) # load context
+ ld $2,1*8($4)
+ ld $3,2*8($4)
+ ld $7,3*8($4)
+ ld $24,4*8($4)
+ ld $25,5*8($4)
+ ld $30,6*8($4)
+ ld $31,7*8($4)
+
+ daddu $23,$5 # pointer to the end of input
+ sd $23,16*8($29)
+ b .Loop
+
+.align 5
+.Loop:
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $8,($5)
+#else
+ ldl $8,7($5)
+ ldr $8,0($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $9,8($5)
+#else
+ ldl $9,15($5)
+ ldr $9,8($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $8,$8 # byte swap(0)
+ dshd $8,$8
+#else
+ ori $13,$0,0xFF
+ dsll $15,$13,32
+ or $13,$15 # 0x000000FF000000FF
+ and $14,$8,$13 # byte swap(0)
+ dsrl $15,$8,24
+ dsll $14,24
+ and $15,$13
+ dsll $13,8 # 0x0000FF000000FF00
+ or $14,$15
+ and $15,$8,$13
+ dsrl $8,8
+ dsll $15,8
+ and $8,$13
+ or $14,$15
+ or $8,$14
+ dsrl $14,$8,32
+ dsll $8,32
+ or $8,$14
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $15,$25,$30 # 0
+ drotr $13,$24,14
+ daddu $12,$8,$31
+ drotr $14,$24,18
+ and $15,$24
+ drotr $31,$24,41
+ xor $13,$14
+ drotr $14,$1,28
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$31 # Sigma1(e)
+
+ drotr $31,$1,34
+ daddu $12,$15
+ ld $15,0($6) # K[0]
+ xor $31,$14
+ drotr $14,$1,39
+ daddu $12,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#else
+ daddu $12,$8,$31 # 0
+ dsrl $31,$24,14
+ xor $15,$25,$30
+ dsll $14,$24,23
+ and $15,$24
+ dsrl $13,$24,18
+ xor $31,$14
+ dsll $14,$24,46
+ xor $31,$13
+ dsrl $13,$24,41
+ xor $31,$14
+ dsll $14,$24,50
+ xor $31,$13
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$14,$31 # Sigma1(e)
+
+ dsrl $31,$1,28
+ daddu $12,$15
+ ld $15,0($6) # K[0]
+ dsll $14,$1,25
+ daddu $12,$13
+ dsrl $13,$1,34
+ xor $31,$14
+ dsll $14,$1,30
+ xor $31,$13
+ dsrl $13,$1,39
+ xor $31,$14
+ dsll $14,$1,36
+ xor $31,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#endif
+ sd $8,0($29) # offload to ring buffer
+ daddu $31,$13
+ and $14,$1
+ daddu $12,$15 # +=K[0]
+ daddu $31,$14 # +=Maj(a,b,c)
+ daddu $7,$12
+ daddu $31,$12
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $10,16($5)
+#else
+ ldl $10,23($5)
+ ldr $10,16($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $9,$9 # byte swap(1)
+ dshd $9,$9
+#else
+ ori $14,$0,0xFF
+ dsll $16,$14,32
+ or $14,$16 # 0x000000FF000000FF
+ and $15,$9,$14 # byte swap(1)
+ dsrl $16,$9,24
+ dsll $15,24
+ and $16,$14
+ dsll $14,8 # 0x0000FF000000FF00
+ or $15,$16
+ and $16,$9,$14
+ dsrl $9,8
+ dsll $16,8
+ and $9,$14
+ or $15,$16
+ or $9,$15
+ dsrl $15,$9,32
+ dsll $9,32
+ or $9,$15
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $16,$24,$25 # 1
+ drotr $14,$7,14
+ daddu $13,$9,$30
+ drotr $15,$7,18
+ and $16,$7
+ drotr $30,$7,41
+ xor $14,$15
+ drotr $15,$31,28
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$30 # Sigma1(e)
+
+ drotr $30,$31,34
+ daddu $13,$16
+ ld $16,8($6) # K[1]
+ xor $30,$15
+ drotr $15,$31,39
+ daddu $13,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#else
+ daddu $13,$9,$30 # 1
+ dsrl $30,$7,14
+ xor $16,$24,$25
+ dsll $15,$7,23
+ and $16,$7
+ dsrl $14,$7,18
+ xor $30,$15
+ dsll $15,$7,46
+ xor $30,$14
+ dsrl $14,$7,41
+ xor $30,$15
+ dsll $15,$7,50
+ xor $30,$14
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$15,$30 # Sigma1(e)
+
+ dsrl $30,$31,28
+ daddu $13,$16
+ ld $16,8($6) # K[1]
+ dsll $15,$31,25
+ daddu $13,$14
+ dsrl $14,$31,34
+ xor $30,$15
+ dsll $15,$31,30
+ xor $30,$14
+ dsrl $14,$31,39
+ xor $30,$15
+ dsll $15,$31,36
+ xor $30,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#endif
+ sd $9,8($29) # offload to ring buffer
+ daddu $30,$14
+ and $15,$31
+ daddu $13,$16 # +=K[1]
+ daddu $30,$15 # +=Maj(a,b,c)
+ daddu $3,$13
+ daddu $30,$13
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $11,24($5)
+#else
+ ldl $11,31($5)
+ ldr $11,24($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $10,$10 # byte swap(2)
+ dshd $10,$10
+#else
+ ori $15,$0,0xFF
+ dsll $17,$15,32
+ or $15,$17 # 0x000000FF000000FF
+ and $16,$10,$15 # byte swap(2)
+ dsrl $17,$10,24
+ dsll $16,24
+ and $17,$15
+ dsll $15,8 # 0x0000FF000000FF00
+ or $16,$17
+ and $17,$10,$15
+ dsrl $10,8
+ dsll $17,8
+ and $10,$15
+ or $16,$17
+ or $10,$16
+ dsrl $16,$10,32
+ dsll $10,32
+ or $10,$16
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $17,$7,$24 # 2
+ drotr $15,$3,14
+ daddu $14,$10,$25
+ drotr $16,$3,18
+ and $17,$3
+ drotr $25,$3,41
+ xor $15,$16
+ drotr $16,$30,28
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$25 # Sigma1(e)
+
+ drotr $25,$30,34
+ daddu $14,$17
+ ld $17,16($6) # K[2]
+ xor $25,$16
+ drotr $16,$30,39
+ daddu $14,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#else
+ daddu $14,$10,$25 # 2
+ dsrl $25,$3,14
+ xor $17,$7,$24
+ dsll $16,$3,23
+ and $17,$3
+ dsrl $15,$3,18
+ xor $25,$16
+ dsll $16,$3,46
+ xor $25,$15
+ dsrl $15,$3,41
+ xor $25,$16
+ dsll $16,$3,50
+ xor $25,$15
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$16,$25 # Sigma1(e)
+
+ dsrl $25,$30,28
+ daddu $14,$17
+ ld $17,16($6) # K[2]
+ dsll $16,$30,25
+ daddu $14,$15
+ dsrl $15,$30,34
+ xor $25,$16
+ dsll $16,$30,30
+ xor $25,$15
+ dsrl $15,$30,39
+ xor $25,$16
+ dsll $16,$30,36
+ xor $25,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#endif
+ sd $10,16($29) # offload to ring buffer
+ daddu $25,$15
+ and $16,$30
+ daddu $14,$17 # +=K[2]
+ daddu $25,$16 # +=Maj(a,b,c)
+ daddu $2,$14
+ daddu $25,$14
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $12,32($5)
+#else
+ ldl $12,39($5)
+ ldr $12,32($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $11,$11 # byte swap(3)
+ dshd $11,$11
+#else
+ ori $16,$0,0xFF
+ dsll $18,$16,32
+ or $16,$18 # 0x000000FF000000FF
+ and $17,$11,$16 # byte swap(3)
+ dsrl $18,$11,24
+ dsll $17,24
+ and $18,$16
+ dsll $16,8 # 0x0000FF000000FF00
+ or $17,$18
+ and $18,$11,$16
+ dsrl $11,8
+ dsll $18,8
+ and $11,$16
+ or $17,$18
+ or $11,$17
+ dsrl $17,$11,32
+ dsll $11,32
+ or $11,$17
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $18,$3,$7 # 3
+ drotr $16,$2,14
+ daddu $15,$11,$24
+ drotr $17,$2,18
+ and $18,$2
+ drotr $24,$2,41
+ xor $16,$17
+ drotr $17,$25,28
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$24 # Sigma1(e)
+
+ drotr $24,$25,34
+ daddu $15,$18
+ ld $18,24($6) # K[3]
+ xor $24,$17
+ drotr $17,$25,39
+ daddu $15,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#else
+ daddu $15,$11,$24 # 3
+ dsrl $24,$2,14
+ xor $18,$3,$7
+ dsll $17,$2,23
+ and $18,$2
+ dsrl $16,$2,18
+ xor $24,$17
+ dsll $17,$2,46
+ xor $24,$16
+ dsrl $16,$2,41
+ xor $24,$17
+ dsll $17,$2,50
+ xor $24,$16
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$17,$24 # Sigma1(e)
+
+ dsrl $24,$25,28
+ daddu $15,$18
+ ld $18,24($6) # K[3]
+ dsll $17,$25,25
+ daddu $15,$16
+ dsrl $16,$25,34
+ xor $24,$17
+ dsll $17,$25,30
+ xor $24,$16
+ dsrl $16,$25,39
+ xor $24,$17
+ dsll $17,$25,36
+ xor $24,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#endif
+ sd $11,24($29) # offload to ring buffer
+ daddu $24,$16
+ and $17,$25
+ daddu $15,$18 # +=K[3]
+ daddu $24,$17 # +=Maj(a,b,c)
+ daddu $1,$15
+ daddu $24,$15
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $13,40($5)
+#else
+ ldl $13,47($5)
+ ldr $13,40($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $12,$12 # byte swap(4)
+ dshd $12,$12
+#else
+ ori $17,$0,0xFF
+ dsll $19,$17,32
+ or $17,$19 # 0x000000FF000000FF
+ and $18,$12,$17 # byte swap(4)
+ dsrl $19,$12,24
+ dsll $18,24
+ and $19,$17
+ dsll $17,8 # 0x0000FF000000FF00
+ or $18,$19
+ and $19,$12,$17
+ dsrl $12,8
+ dsll $19,8
+ and $12,$17
+ or $18,$19
+ or $12,$18
+ dsrl $18,$12,32
+ dsll $12,32
+ or $12,$18
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $19,$2,$3 # 4
+ drotr $17,$1,14
+ daddu $16,$12,$7
+ drotr $18,$1,18
+ and $19,$1
+ drotr $7,$1,41
+ xor $17,$18
+ drotr $18,$24,28
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$7 # Sigma1(e)
+
+ drotr $7,$24,34
+ daddu $16,$19
+ ld $19,32($6) # K[4]
+ xor $7,$18
+ drotr $18,$24,39
+ daddu $16,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#else
+ daddu $16,$12,$7 # 4
+ dsrl $7,$1,14
+ xor $19,$2,$3
+ dsll $18,$1,23
+ and $19,$1
+ dsrl $17,$1,18
+ xor $7,$18
+ dsll $18,$1,46
+ xor $7,$17
+ dsrl $17,$1,41
+ xor $7,$18
+ dsll $18,$1,50
+ xor $7,$17
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$18,$7 # Sigma1(e)
+
+ dsrl $7,$24,28
+ daddu $16,$19
+ ld $19,32($6) # K[4]
+ dsll $18,$24,25
+ daddu $16,$17
+ dsrl $17,$24,34
+ xor $7,$18
+ dsll $18,$24,30
+ xor $7,$17
+ dsrl $17,$24,39
+ xor $7,$18
+ dsll $18,$24,36
+ xor $7,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#endif
+ sd $12,32($29) # offload to ring buffer
+ daddu $7,$17
+ and $18,$24
+ daddu $16,$19 # +=K[4]
+ daddu $7,$18 # +=Maj(a,b,c)
+ daddu $31,$16
+ daddu $7,$16
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $14,48($5)
+#else
+ ldl $14,55($5)
+ ldr $14,48($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $13,$13 # byte swap(5)
+ dshd $13,$13
+#else
+ ori $18,$0,0xFF
+ dsll $20,$18,32
+ or $18,$20 # 0x000000FF000000FF
+ and $19,$13,$18 # byte swap(5)
+ dsrl $20,$13,24
+ dsll $19,24
+ and $20,$18
+ dsll $18,8 # 0x0000FF000000FF00
+ or $19,$20
+ and $20,$13,$18
+ dsrl $13,8
+ dsll $20,8
+ and $13,$18
+ or $19,$20
+ or $13,$19
+ dsrl $19,$13,32
+ dsll $13,32
+ or $13,$19
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $20,$1,$2 # 5
+ drotr $18,$31,14
+ daddu $17,$13,$3
+ drotr $19,$31,18
+ and $20,$31
+ drotr $3,$31,41
+ xor $18,$19
+ drotr $19,$7,28
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$3 # Sigma1(e)
+
+ drotr $3,$7,34
+ daddu $17,$20
+ ld $20,40($6) # K[5]
+ xor $3,$19
+ drotr $19,$7,39
+ daddu $17,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#else
+ daddu $17,$13,$3 # 5
+ dsrl $3,$31,14
+ xor $20,$1,$2
+ dsll $19,$31,23
+ and $20,$31
+ dsrl $18,$31,18
+ xor $3,$19
+ dsll $19,$31,46
+ xor $3,$18
+ dsrl $18,$31,41
+ xor $3,$19
+ dsll $19,$31,50
+ xor $3,$18
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$19,$3 # Sigma1(e)
+
+ dsrl $3,$7,28
+ daddu $17,$20
+ ld $20,40($6) # K[5]
+ dsll $19,$7,25
+ daddu $17,$18
+ dsrl $18,$7,34
+ xor $3,$19
+ dsll $19,$7,30
+ xor $3,$18
+ dsrl $18,$7,39
+ xor $3,$19
+ dsll $19,$7,36
+ xor $3,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#endif
+ sd $13,40($29) # offload to ring buffer
+ daddu $3,$18
+ and $19,$7
+ daddu $17,$20 # +=K[5]
+ daddu $3,$19 # +=Maj(a,b,c)
+ daddu $30,$17
+ daddu $3,$17
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $15,56($5)
+#else
+ ldl $15,63($5)
+ ldr $15,56($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $14,$14 # byte swap(6)
+ dshd $14,$14
+#else
+ ori $19,$0,0xFF
+ dsll $21,$19,32
+ or $19,$21 # 0x000000FF000000FF
+ and $20,$14,$19 # byte swap(6)
+ dsrl $21,$14,24
+ dsll $20,24
+ and $21,$19
+ dsll $19,8 # 0x0000FF000000FF00
+ or $20,$21
+ and $21,$14,$19
+ dsrl $14,8
+ dsll $21,8
+ and $14,$19
+ or $20,$21
+ or $14,$20
+ dsrl $20,$14,32
+ dsll $14,32
+ or $14,$20
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $21,$31,$1 # 6
+ drotr $19,$30,14
+ daddu $18,$14,$2
+ drotr $20,$30,18
+ and $21,$30
+ drotr $2,$30,41
+ xor $19,$20
+ drotr $20,$3,28
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$2 # Sigma1(e)
+
+ drotr $2,$3,34
+ daddu $18,$21
+ ld $21,48($6) # K[6]
+ xor $2,$20
+ drotr $20,$3,39
+ daddu $18,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#else
+ daddu $18,$14,$2 # 6
+ dsrl $2,$30,14
+ xor $21,$31,$1
+ dsll $20,$30,23
+ and $21,$30
+ dsrl $19,$30,18
+ xor $2,$20
+ dsll $20,$30,46
+ xor $2,$19
+ dsrl $19,$30,41
+ xor $2,$20
+ dsll $20,$30,50
+ xor $2,$19
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$20,$2 # Sigma1(e)
+
+ dsrl $2,$3,28
+ daddu $18,$21
+ ld $21,48($6) # K[6]
+ dsll $20,$3,25
+ daddu $18,$19
+ dsrl $19,$3,34
+ xor $2,$20
+ dsll $20,$3,30
+ xor $2,$19
+ dsrl $19,$3,39
+ xor $2,$20
+ dsll $20,$3,36
+ xor $2,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#endif
+ sd $14,48($29) # offload to ring buffer
+ daddu $2,$19
+ and $20,$3
+ daddu $18,$21 # +=K[6]
+ daddu $2,$20 # +=Maj(a,b,c)
+ daddu $25,$18
+ daddu $2,$18
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $16,64($5)
+#else
+ ldl $16,71($5)
+ ldr $16,64($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $15,$15 # byte swap(7)
+ dshd $15,$15
+#else
+ ori $20,$0,0xFF
+ dsll $22,$20,32
+ or $20,$22 # 0x000000FF000000FF
+ and $21,$15,$20 # byte swap(7)
+ dsrl $22,$15,24
+ dsll $21,24
+ and $22,$20
+ dsll $20,8 # 0x0000FF000000FF00
+ or $21,$22
+ and $22,$15,$20
+ dsrl $15,8
+ dsll $22,8
+ and $15,$20
+ or $21,$22
+ or $15,$21
+ dsrl $21,$15,32
+ dsll $15,32
+ or $15,$21
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $22,$30,$31 # 7
+ drotr $20,$25,14
+ daddu $19,$15,$1
+ drotr $21,$25,18
+ and $22,$25
+ drotr $1,$25,41
+ xor $20,$21
+ drotr $21,$2,28
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$1 # Sigma1(e)
+
+ drotr $1,$2,34
+ daddu $19,$22
+ ld $22,56($6) # K[7]
+ xor $1,$21
+ drotr $21,$2,39
+ daddu $19,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#else
+ daddu $19,$15,$1 # 7
+ dsrl $1,$25,14
+ xor $22,$30,$31
+ dsll $21,$25,23
+ and $22,$25
+ dsrl $20,$25,18
+ xor $1,$21
+ dsll $21,$25,46
+ xor $1,$20
+ dsrl $20,$25,41
+ xor $1,$21
+ dsll $21,$25,50
+ xor $1,$20
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$21,$1 # Sigma1(e)
+
+ dsrl $1,$2,28
+ daddu $19,$22
+ ld $22,56($6) # K[7]
+ dsll $21,$2,25
+ daddu $19,$20
+ dsrl $20,$2,34
+ xor $1,$21
+ dsll $21,$2,30
+ xor $1,$20
+ dsrl $20,$2,39
+ xor $1,$21
+ dsll $21,$2,36
+ xor $1,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#endif
+ sd $15,56($29) # offload to ring buffer
+ daddu $1,$20
+ and $21,$2
+ daddu $19,$22 # +=K[7]
+ daddu $1,$21 # +=Maj(a,b,c)
+ daddu $24,$19
+ daddu $1,$19
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $17,72($5)
+#else
+ ldl $17,79($5)
+ ldr $17,72($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $16,$16 # byte swap(8)
+ dshd $16,$16
+#else
+ ori $21,$0,0xFF
+ dsll $23,$21,32
+ or $21,$23 # 0x000000FF000000FF
+ and $22,$16,$21 # byte swap(8)
+ dsrl $23,$16,24
+ dsll $22,24
+ and $23,$21
+ dsll $21,8 # 0x0000FF000000FF00
+ or $22,$23
+ and $23,$16,$21
+ dsrl $16,8
+ dsll $23,8
+ and $16,$21
+ or $22,$23
+ or $16,$22
+ dsrl $22,$16,32
+ dsll $16,32
+ or $16,$22
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $23,$25,$30 # 8
+ drotr $21,$24,14
+ daddu $20,$16,$31
+ drotr $22,$24,18
+ and $23,$24
+ drotr $31,$24,41
+ xor $21,$22
+ drotr $22,$1,28
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$31 # Sigma1(e)
+
+ drotr $31,$1,34
+ daddu $20,$23
+ ld $23,64($6) # K[8]
+ xor $31,$22
+ drotr $22,$1,39
+ daddu $20,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#else
+ daddu $20,$16,$31 # 8
+ dsrl $31,$24,14
+ xor $23,$25,$30
+ dsll $22,$24,23
+ and $23,$24
+ dsrl $21,$24,18
+ xor $31,$22
+ dsll $22,$24,46
+ xor $31,$21
+ dsrl $21,$24,41
+ xor $31,$22
+ dsll $22,$24,50
+ xor $31,$21
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$22,$31 # Sigma1(e)
+
+ dsrl $31,$1,28
+ daddu $20,$23
+ ld $23,64($6) # K[8]
+ dsll $22,$1,25
+ daddu $20,$21
+ dsrl $21,$1,34
+ xor $31,$22
+ dsll $22,$1,30
+ xor $31,$21
+ dsrl $21,$1,39
+ xor $31,$22
+ dsll $22,$1,36
+ xor $31,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#endif
+ sd $16,64($29) # offload to ring buffer
+ daddu $31,$21
+ and $22,$1
+ daddu $20,$23 # +=K[8]
+ daddu $31,$22 # +=Maj(a,b,c)
+ daddu $7,$20
+ daddu $31,$20
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $18,80($5)
+#else
+ ldl $18,87($5)
+ ldr $18,80($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $17,$17 # byte swap(9)
+ dshd $17,$17
+#else
+ ori $22,$0,0xFF
+ dsll $8,$22,32
+ or $22,$8 # 0x000000FF000000FF
+ and $23,$17,$22 # byte swap(9)
+ dsrl $8,$17,24
+ dsll $23,24
+ and $8,$22
+ dsll $22,8 # 0x0000FF000000FF00
+ or $23,$8
+ and $8,$17,$22
+ dsrl $17,8
+ dsll $8,8
+ and $17,$22
+ or $23,$8
+ or $17,$23
+ dsrl $23,$17,32
+ dsll $17,32
+ or $17,$23
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $8,$24,$25 # 9
+ drotr $22,$7,14
+ daddu $21,$17,$30
+ drotr $23,$7,18
+ and $8,$7
+ drotr $30,$7,41
+ xor $22,$23
+ drotr $23,$31,28
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$30 # Sigma1(e)
+
+ drotr $30,$31,34
+ daddu $21,$8
+ ld $8,72($6) # K[9]
+ xor $30,$23
+ drotr $23,$31,39
+ daddu $21,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#else
+ daddu $21,$17,$30 # 9
+ dsrl $30,$7,14
+ xor $8,$24,$25
+ dsll $23,$7,23
+ and $8,$7
+ dsrl $22,$7,18
+ xor $30,$23
+ dsll $23,$7,46
+ xor $30,$22
+ dsrl $22,$7,41
+ xor $30,$23
+ dsll $23,$7,50
+ xor $30,$22
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$23,$30 # Sigma1(e)
+
+ dsrl $30,$31,28
+ daddu $21,$8
+ ld $8,72($6) # K[9]
+ dsll $23,$31,25
+ daddu $21,$22
+ dsrl $22,$31,34
+ xor $30,$23
+ dsll $23,$31,30
+ xor $30,$22
+ dsrl $22,$31,39
+ xor $30,$23
+ dsll $23,$31,36
+ xor $30,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#endif
+ sd $17,72($29) # offload to ring buffer
+ daddu $30,$22
+ and $23,$31
+ daddu $21,$8 # +=K[9]
+ daddu $30,$23 # +=Maj(a,b,c)
+ daddu $3,$21
+ daddu $30,$21
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $19,88($5)
+#else
+ ldl $19,95($5)
+ ldr $19,88($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $18,$18 # byte swap(10)
+ dshd $18,$18
+#else
+ ori $23,$0,0xFF
+ dsll $9,$23,32
+ or $23,$9 # 0x000000FF000000FF
+ and $8,$18,$23 # byte swap(10)
+ dsrl $9,$18,24
+ dsll $8,24
+ and $9,$23
+ dsll $23,8 # 0x0000FF000000FF00
+ or $8,$9
+ and $9,$18,$23
+ dsrl $18,8
+ dsll $9,8
+ and $18,$23
+ or $8,$9
+ or $18,$8
+ dsrl $8,$18,32
+ dsll $18,32
+ or $18,$8
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $9,$7,$24 # 10
+ drotr $23,$3,14
+ daddu $22,$18,$25
+ drotr $8,$3,18
+ and $9,$3
+ drotr $25,$3,41
+ xor $23,$8
+ drotr $8,$30,28
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$25 # Sigma1(e)
+
+ drotr $25,$30,34
+ daddu $22,$9
+ ld $9,80($6) # K[10]
+ xor $25,$8
+ drotr $8,$30,39
+ daddu $22,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#else
+ daddu $22,$18,$25 # 10
+ dsrl $25,$3,14
+ xor $9,$7,$24
+ dsll $8,$3,23
+ and $9,$3
+ dsrl $23,$3,18
+ xor $25,$8
+ dsll $8,$3,46
+ xor $25,$23
+ dsrl $23,$3,41
+ xor $25,$8
+ dsll $8,$3,50
+ xor $25,$23
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$8,$25 # Sigma1(e)
+
+ dsrl $25,$30,28
+ daddu $22,$9
+ ld $9,80($6) # K[10]
+ dsll $8,$30,25
+ daddu $22,$23
+ dsrl $23,$30,34
+ xor $25,$8
+ dsll $8,$30,30
+ xor $25,$23
+ dsrl $23,$30,39
+ xor $25,$8
+ dsll $8,$30,36
+ xor $25,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#endif
+ sd $18,80($29) # offload to ring buffer
+ daddu $25,$23
+ and $8,$30
+ daddu $22,$9 # +=K[10]
+ daddu $25,$8 # +=Maj(a,b,c)
+ daddu $2,$22
+ daddu $25,$22
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $20,96($5)
+#else
+ ldl $20,103($5)
+ ldr $20,96($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $19,$19 # byte swap(11)
+ dshd $19,$19
+#else
+ ori $8,$0,0xFF
+ dsll $10,$8,32
+ or $8,$10 # 0x000000FF000000FF
+ and $9,$19,$8 # byte swap(11)
+ dsrl $10,$19,24
+ dsll $9,24
+ and $10,$8
+ dsll $8,8 # 0x0000FF000000FF00
+ or $9,$10
+ and $10,$19,$8
+ dsrl $19,8
+ dsll $10,8
+ and $19,$8
+ or $9,$10
+ or $19,$9
+ dsrl $9,$19,32
+ dsll $19,32
+ or $19,$9
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $10,$3,$7 # 11
+ drotr $8,$2,14
+ daddu $23,$19,$24
+ drotr $9,$2,18
+ and $10,$2
+ drotr $24,$2,41
+ xor $8,$9
+ drotr $9,$25,28
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$24 # Sigma1(e)
+
+ drotr $24,$25,34
+ daddu $23,$10
+ ld $10,88($6) # K[11]
+ xor $24,$9
+ drotr $9,$25,39
+ daddu $23,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#else
+ daddu $23,$19,$24 # 11
+ dsrl $24,$2,14
+ xor $10,$3,$7
+ dsll $9,$2,23
+ and $10,$2
+ dsrl $8,$2,18
+ xor $24,$9
+ dsll $9,$2,46
+ xor $24,$8
+ dsrl $8,$2,41
+ xor $24,$9
+ dsll $9,$2,50
+ xor $24,$8
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$9,$24 # Sigma1(e)
+
+ dsrl $24,$25,28
+ daddu $23,$10
+ ld $10,88($6) # K[11]
+ dsll $9,$25,25
+ daddu $23,$8
+ dsrl $8,$25,34
+ xor $24,$9
+ dsll $9,$25,30
+ xor $24,$8
+ dsrl $8,$25,39
+ xor $24,$9
+ dsll $9,$25,36
+ xor $24,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#endif
+ sd $19,88($29) # offload to ring buffer
+ daddu $24,$8
+ and $9,$25
+ daddu $23,$10 # +=K[11]
+ daddu $24,$9 # +=Maj(a,b,c)
+ daddu $1,$23
+ daddu $24,$23
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $21,104($5)
+#else
+ ldl $21,111($5)
+ ldr $21,104($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $20,$20 # byte swap(12)
+ dshd $20,$20
+#else
+ ori $9,$0,0xFF
+ dsll $11,$9,32
+ or $9,$11 # 0x000000FF000000FF
+ and $10,$20,$9 # byte swap(12)
+ dsrl $11,$20,24
+ dsll $10,24
+ and $11,$9
+ dsll $9,8 # 0x0000FF000000FF00
+ or $10,$11
+ and $11,$20,$9
+ dsrl $20,8
+ dsll $11,8
+ and $20,$9
+ or $10,$11
+ or $20,$10
+ dsrl $10,$20,32
+ dsll $20,32
+ or $20,$10
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $11,$2,$3 # 12
+ drotr $9,$1,14
+ daddu $8,$20,$7
+ drotr $10,$1,18
+ and $11,$1
+ drotr $7,$1,41
+ xor $9,$10
+ drotr $10,$24,28
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$7 # Sigma1(e)
+
+ drotr $7,$24,34
+ daddu $8,$11
+ ld $11,96($6) # K[12]
+ xor $7,$10
+ drotr $10,$24,39
+ daddu $8,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#else
+ daddu $8,$20,$7 # 12
+ dsrl $7,$1,14
+ xor $11,$2,$3
+ dsll $10,$1,23
+ and $11,$1
+ dsrl $9,$1,18
+ xor $7,$10
+ dsll $10,$1,46
+ xor $7,$9
+ dsrl $9,$1,41
+ xor $7,$10
+ dsll $10,$1,50
+ xor $7,$9
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$10,$7 # Sigma1(e)
+
+ dsrl $7,$24,28
+ daddu $8,$11
+ ld $11,96($6) # K[12]
+ dsll $10,$24,25
+ daddu $8,$9
+ dsrl $9,$24,34
+ xor $7,$10
+ dsll $10,$24,30
+ xor $7,$9
+ dsrl $9,$24,39
+ xor $7,$10
+ dsll $10,$24,36
+ xor $7,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#endif
+ sd $20,96($29) # offload to ring buffer
+ daddu $7,$9
+ and $10,$24
+ daddu $8,$11 # +=K[12]
+ daddu $7,$10 # +=Maj(a,b,c)
+ daddu $31,$8
+ daddu $7,$8
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $22,112($5)
+#else
+ ldl $22,119($5)
+ ldr $22,112($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $21,$21 # byte swap(13)
+ dshd $21,$21
+#else
+ ori $10,$0,0xFF
+ dsll $12,$10,32
+ or $10,$12 # 0x000000FF000000FF
+ and $11,$21,$10 # byte swap(13)
+ dsrl $12,$21,24
+ dsll $11,24
+ and $12,$10
+ dsll $10,8 # 0x0000FF000000FF00
+ or $11,$12
+ and $12,$21,$10
+ dsrl $21,8
+ dsll $12,8
+ and $21,$10
+ or $11,$12
+ or $21,$11
+ dsrl $11,$21,32
+ dsll $21,32
+ or $21,$11
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $12,$1,$2 # 13
+ drotr $10,$31,14
+ daddu $9,$21,$3
+ drotr $11,$31,18
+ and $12,$31
+ drotr $3,$31,41
+ xor $10,$11
+ drotr $11,$7,28
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$3 # Sigma1(e)
+
+ drotr $3,$7,34
+ daddu $9,$12
+ ld $12,104($6) # K[13]
+ xor $3,$11
+ drotr $11,$7,39
+ daddu $9,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#else
+ daddu $9,$21,$3 # 13
+ dsrl $3,$31,14
+ xor $12,$1,$2
+ dsll $11,$31,23
+ and $12,$31
+ dsrl $10,$31,18
+ xor $3,$11
+ dsll $11,$31,46
+ xor $3,$10
+ dsrl $10,$31,41
+ xor $3,$11
+ dsll $11,$31,50
+ xor $3,$10
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$11,$3 # Sigma1(e)
+
+ dsrl $3,$7,28
+ daddu $9,$12
+ ld $12,104($6) # K[13]
+ dsll $11,$7,25
+ daddu $9,$10
+ dsrl $10,$7,34
+ xor $3,$11
+ dsll $11,$7,30
+ xor $3,$10
+ dsrl $10,$7,39
+ xor $3,$11
+ dsll $11,$7,36
+ xor $3,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#endif
+ sd $21,104($29) # offload to ring buffer
+ daddu $3,$10
+ and $11,$7
+ daddu $9,$12 # +=K[13]
+ daddu $3,$11 # +=Maj(a,b,c)
+ daddu $30,$9
+ daddu $3,$9
+ ld $8,0($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R6) || defined(_MIPS_ARCH_MIPS64R6)
+ ld $23,120($5)
+#else
+ ldl $23,127($5)
+ ldr $23,120($5)
+#endif
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $22,$22 # byte swap(14)
+ dshd $22,$22
+#else
+ ori $11,$0,0xFF
+ dsll $13,$11,32
+ or $11,$13 # 0x000000FF000000FF
+ and $12,$22,$11 # byte swap(14)
+ dsrl $13,$22,24
+ dsll $12,24
+ and $13,$11
+ dsll $11,8 # 0x0000FF000000FF00
+ or $12,$13
+ and $13,$22,$11
+ dsrl $22,8
+ dsll $13,8
+ and $22,$11
+ or $12,$13
+ or $22,$12
+ dsrl $12,$22,32
+ dsll $22,32
+ or $22,$12
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $13,$31,$1 # 14
+ drotr $11,$30,14
+ daddu $10,$22,$2
+ drotr $12,$30,18
+ and $13,$30
+ drotr $2,$30,41
+ xor $11,$12
+ drotr $12,$3,28
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$2 # Sigma1(e)
+
+ drotr $2,$3,34
+ daddu $10,$13
+ ld $13,112($6) # K[14]
+ xor $2,$12
+ drotr $12,$3,39
+ daddu $10,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#else
+ daddu $10,$22,$2 # 14
+ dsrl $2,$30,14
+ xor $13,$31,$1
+ dsll $12,$30,23
+ and $13,$30
+ dsrl $11,$30,18
+ xor $2,$12
+ dsll $12,$30,46
+ xor $2,$11
+ dsrl $11,$30,41
+ xor $2,$12
+ dsll $12,$30,50
+ xor $2,$11
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$12,$2 # Sigma1(e)
+
+ dsrl $2,$3,28
+ daddu $10,$13
+ ld $13,112($6) # K[14]
+ dsll $12,$3,25
+ daddu $10,$11
+ dsrl $11,$3,34
+ xor $2,$12
+ dsll $12,$3,30
+ xor $2,$11
+ dsrl $11,$3,39
+ xor $2,$12
+ dsll $12,$3,36
+ xor $2,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#endif
+ sd $22,112($29) # offload to ring buffer
+ daddu $2,$11
+ and $12,$3
+ daddu $10,$13 # +=K[14]
+ daddu $2,$12 # +=Maj(a,b,c)
+ daddu $25,$10
+ daddu $2,$10
+ ld $9,8($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS64R2)
+ dsbh $23,$23 # byte swap(15)
+ dshd $23,$23
+#else
+ ori $12,$0,0xFF
+ dsll $14,$12,32
+ or $12,$14 # 0x000000FF000000FF
+ and $13,$23,$12 # byte swap(15)
+ dsrl $14,$23,24
+ dsll $13,24
+ and $14,$12
+ dsll $12,8 # 0x0000FF000000FF00
+ or $13,$14
+ and $14,$23,$12
+ dsrl $23,8
+ dsll $14,8
+ and $23,$12
+ or $13,$14
+ or $23,$13
+ dsrl $13,$23,32
+ dsll $23,32
+ or $23,$13
+#endif
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $14,$30,$31 # 15
+ drotr $12,$25,14
+ daddu $11,$23,$1
+ drotr $13,$25,18
+ and $14,$25
+ drotr $1,$25,41
+ xor $12,$13
+ drotr $13,$2,28
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$1 # Sigma1(e)
+
+ drotr $1,$2,34
+ daddu $11,$14
+ ld $14,120($6) # K[15]
+ xor $1,$13
+ drotr $13,$2,39
+ daddu $11,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#else
+ daddu $11,$23,$1 # 15
+ dsrl $1,$25,14
+ xor $14,$30,$31
+ dsll $13,$25,23
+ and $14,$25
+ dsrl $12,$25,18
+ xor $1,$13
+ dsll $13,$25,46
+ xor $1,$12
+ dsrl $12,$25,41
+ xor $1,$13
+ dsll $13,$25,50
+ xor $1,$12
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$13,$1 # Sigma1(e)
+
+ dsrl $1,$2,28
+ daddu $11,$14
+ ld $14,120($6) # K[15]
+ dsll $13,$2,25
+ daddu $11,$12
+ dsrl $12,$2,34
+ xor $1,$13
+ dsll $13,$2,30
+ xor $1,$12
+ dsrl $12,$2,39
+ xor $1,$13
+ dsll $13,$2,36
+ xor $1,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#endif
+ sd $23,120($29) # offload to ring buffer
+ daddu $1,$12
+ and $13,$2
+ daddu $11,$14 # +=K[15]
+ daddu $1,$13 # +=Maj(a,b,c)
+ daddu $24,$11
+ daddu $1,$11
+ ld $10,16($29) # prefetch from ring buffer
+ b .L16_xx
+.align 4
+.L16_xx:
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $14,$9,7 # Xupdate(16)
+ drotr $12,$9,1
+ daddu $8,$17 # +=X[i+9]
+ xor $14,$12
+ drotr $12,$9,8
+
+ dsrl $15,$22,6
+ drotr $13,$22,19
+ xor $14,$12 # sigma0(X[i+1])
+ drotr $12,$22,61
+ xor $15,$13
+ daddu $8,$14
+#else
+ dsrl $14,$9,7 # Xupdate(16)
+ daddu $8,$17 # +=X[i+9]
+ dsll $13,$9,56
+ dsrl $12,$9,1
+ xor $14,$13
+ dsll $13,7
+ xor $14,$12
+ dsrl $12,$9,8
+ xor $14,$13
+
+ dsrl $15,$22,6
+ xor $14,$12 # sigma0(X[i+1])
+ dsll $13,$22,3
+ daddu $8,$14
+ dsrl $12,$22,19
+ xor $15,$13
+ dsll $13,42
+ xor $15,$12
+ dsrl $12,$22,61
+ xor $15,$13
+#endif
+ xor $15,$12 # sigma1(X[i+14])
+ daddu $8,$15
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $15,$25,$30 # 16
+ drotr $13,$24,14
+ daddu $12,$8,$31
+ drotr $14,$24,18
+ and $15,$24
+ drotr $31,$24,41
+ xor $13,$14
+ drotr $14,$1,28
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$31 # Sigma1(e)
+
+ drotr $31,$1,34
+ daddu $12,$15
+ ld $15,128($6) # K[16]
+ xor $31,$14
+ drotr $14,$1,39
+ daddu $12,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#else
+ daddu $12,$8,$31 # 16
+ dsrl $31,$24,14
+ xor $15,$25,$30
+ dsll $14,$24,23
+ and $15,$24
+ dsrl $13,$24,18
+ xor $31,$14
+ dsll $14,$24,46
+ xor $31,$13
+ dsrl $13,$24,41
+ xor $31,$14
+ dsll $14,$24,50
+ xor $31,$13
+ xor $15,$30 # Ch(e,f,g)
+ xor $13,$14,$31 # Sigma1(e)
+
+ dsrl $31,$1,28
+ daddu $12,$15
+ ld $15,128($6) # K[16]
+ dsll $14,$1,25
+ daddu $12,$13
+ dsrl $13,$1,34
+ xor $31,$14
+ dsll $14,$1,30
+ xor $31,$13
+ dsrl $13,$1,39
+ xor $31,$14
+ dsll $14,$1,36
+ xor $31,$13
+ and $13,$2,$3
+ xor $31,$14 # Sigma0(a)
+ xor $14,$2,$3
+#endif
+ sd $8,0($29) # offload to ring buffer
+ daddu $31,$13
+ and $14,$1
+ daddu $12,$15 # +=K[16]
+ daddu $31,$14 # +=Maj(a,b,c)
+ daddu $7,$12
+ daddu $31,$12
+ ld $11,24($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $15,$10,7 # Xupdate(17)
+ drotr $13,$10,1
+ daddu $9,$18 # +=X[i+9]
+ xor $15,$13
+ drotr $13,$10,8
+
+ dsrl $16,$23,6
+ drotr $14,$23,19
+ xor $15,$13 # sigma0(X[i+1])
+ drotr $13,$23,61
+ xor $16,$14
+ daddu $9,$15
+#else
+ dsrl $15,$10,7 # Xupdate(17)
+ daddu $9,$18 # +=X[i+9]
+ dsll $14,$10,56
+ dsrl $13,$10,1
+ xor $15,$14
+ dsll $14,7
+ xor $15,$13
+ dsrl $13,$10,8
+ xor $15,$14
+
+ dsrl $16,$23,6
+ xor $15,$13 # sigma0(X[i+1])
+ dsll $14,$23,3
+ daddu $9,$15
+ dsrl $13,$23,19
+ xor $16,$14
+ dsll $14,42
+ xor $16,$13
+ dsrl $13,$23,61
+ xor $16,$14
+#endif
+ xor $16,$13 # sigma1(X[i+14])
+ daddu $9,$16
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $16,$24,$25 # 17
+ drotr $14,$7,14
+ daddu $13,$9,$30
+ drotr $15,$7,18
+ and $16,$7
+ drotr $30,$7,41
+ xor $14,$15
+ drotr $15,$31,28
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$30 # Sigma1(e)
+
+ drotr $30,$31,34
+ daddu $13,$16
+ ld $16,136($6) # K[17]
+ xor $30,$15
+ drotr $15,$31,39
+ daddu $13,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#else
+ daddu $13,$9,$30 # 17
+ dsrl $30,$7,14
+ xor $16,$24,$25
+ dsll $15,$7,23
+ and $16,$7
+ dsrl $14,$7,18
+ xor $30,$15
+ dsll $15,$7,46
+ xor $30,$14
+ dsrl $14,$7,41
+ xor $30,$15
+ dsll $15,$7,50
+ xor $30,$14
+ xor $16,$25 # Ch(e,f,g)
+ xor $14,$15,$30 # Sigma1(e)
+
+ dsrl $30,$31,28
+ daddu $13,$16
+ ld $16,136($6) # K[17]
+ dsll $15,$31,25
+ daddu $13,$14
+ dsrl $14,$31,34
+ xor $30,$15
+ dsll $15,$31,30
+ xor $30,$14
+ dsrl $14,$31,39
+ xor $30,$15
+ dsll $15,$31,36
+ xor $30,$14
+ and $14,$1,$2
+ xor $30,$15 # Sigma0(a)
+ xor $15,$1,$2
+#endif
+ sd $9,8($29) # offload to ring buffer
+ daddu $30,$14
+ and $15,$31
+ daddu $13,$16 # +=K[17]
+ daddu $30,$15 # +=Maj(a,b,c)
+ daddu $3,$13
+ daddu $30,$13
+ ld $12,32($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $16,$11,7 # Xupdate(18)
+ drotr $14,$11,1
+ daddu $10,$19 # +=X[i+9]
+ xor $16,$14
+ drotr $14,$11,8
+
+ dsrl $17,$8,6
+ drotr $15,$8,19
+ xor $16,$14 # sigma0(X[i+1])
+ drotr $14,$8,61
+ xor $17,$15
+ daddu $10,$16
+#else
+ dsrl $16,$11,7 # Xupdate(18)
+ daddu $10,$19 # +=X[i+9]
+ dsll $15,$11,56
+ dsrl $14,$11,1
+ xor $16,$15
+ dsll $15,7
+ xor $16,$14
+ dsrl $14,$11,8
+ xor $16,$15
+
+ dsrl $17,$8,6
+ xor $16,$14 # sigma0(X[i+1])
+ dsll $15,$8,3
+ daddu $10,$16
+ dsrl $14,$8,19
+ xor $17,$15
+ dsll $15,42
+ xor $17,$14
+ dsrl $14,$8,61
+ xor $17,$15
+#endif
+ xor $17,$14 # sigma1(X[i+14])
+ daddu $10,$17
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $17,$7,$24 # 18
+ drotr $15,$3,14
+ daddu $14,$10,$25
+ drotr $16,$3,18
+ and $17,$3
+ drotr $25,$3,41
+ xor $15,$16
+ drotr $16,$30,28
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$25 # Sigma1(e)
+
+ drotr $25,$30,34
+ daddu $14,$17
+ ld $17,144($6) # K[18]
+ xor $25,$16
+ drotr $16,$30,39
+ daddu $14,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#else
+ daddu $14,$10,$25 # 18
+ dsrl $25,$3,14
+ xor $17,$7,$24
+ dsll $16,$3,23
+ and $17,$3
+ dsrl $15,$3,18
+ xor $25,$16
+ dsll $16,$3,46
+ xor $25,$15
+ dsrl $15,$3,41
+ xor $25,$16
+ dsll $16,$3,50
+ xor $25,$15
+ xor $17,$24 # Ch(e,f,g)
+ xor $15,$16,$25 # Sigma1(e)
+
+ dsrl $25,$30,28
+ daddu $14,$17
+ ld $17,144($6) # K[18]
+ dsll $16,$30,25
+ daddu $14,$15
+ dsrl $15,$30,34
+ xor $25,$16
+ dsll $16,$30,30
+ xor $25,$15
+ dsrl $15,$30,39
+ xor $25,$16
+ dsll $16,$30,36
+ xor $25,$15
+ and $15,$31,$1
+ xor $25,$16 # Sigma0(a)
+ xor $16,$31,$1
+#endif
+ sd $10,16($29) # offload to ring buffer
+ daddu $25,$15
+ and $16,$30
+ daddu $14,$17 # +=K[18]
+ daddu $25,$16 # +=Maj(a,b,c)
+ daddu $2,$14
+ daddu $25,$14
+ ld $13,40($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $17,$12,7 # Xupdate(19)
+ drotr $15,$12,1
+ daddu $11,$20 # +=X[i+9]
+ xor $17,$15
+ drotr $15,$12,8
+
+ dsrl $18,$9,6
+ drotr $16,$9,19
+ xor $17,$15 # sigma0(X[i+1])
+ drotr $15,$9,61
+ xor $18,$16
+ daddu $11,$17
+#else
+ dsrl $17,$12,7 # Xupdate(19)
+ daddu $11,$20 # +=X[i+9]
+ dsll $16,$12,56
+ dsrl $15,$12,1
+ xor $17,$16
+ dsll $16,7
+ xor $17,$15
+ dsrl $15,$12,8
+ xor $17,$16
+
+ dsrl $18,$9,6
+ xor $17,$15 # sigma0(X[i+1])
+ dsll $16,$9,3
+ daddu $11,$17
+ dsrl $15,$9,19
+ xor $18,$16
+ dsll $16,42
+ xor $18,$15
+ dsrl $15,$9,61
+ xor $18,$16
+#endif
+ xor $18,$15 # sigma1(X[i+14])
+ daddu $11,$18
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $18,$3,$7 # 19
+ drotr $16,$2,14
+ daddu $15,$11,$24
+ drotr $17,$2,18
+ and $18,$2
+ drotr $24,$2,41
+ xor $16,$17
+ drotr $17,$25,28
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$24 # Sigma1(e)
+
+ drotr $24,$25,34
+ daddu $15,$18
+ ld $18,152($6) # K[19]
+ xor $24,$17
+ drotr $17,$25,39
+ daddu $15,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#else
+ daddu $15,$11,$24 # 19
+ dsrl $24,$2,14
+ xor $18,$3,$7
+ dsll $17,$2,23
+ and $18,$2
+ dsrl $16,$2,18
+ xor $24,$17
+ dsll $17,$2,46
+ xor $24,$16
+ dsrl $16,$2,41
+ xor $24,$17
+ dsll $17,$2,50
+ xor $24,$16
+ xor $18,$7 # Ch(e,f,g)
+ xor $16,$17,$24 # Sigma1(e)
+
+ dsrl $24,$25,28
+ daddu $15,$18
+ ld $18,152($6) # K[19]
+ dsll $17,$25,25
+ daddu $15,$16
+ dsrl $16,$25,34
+ xor $24,$17
+ dsll $17,$25,30
+ xor $24,$16
+ dsrl $16,$25,39
+ xor $24,$17
+ dsll $17,$25,36
+ xor $24,$16
+ and $16,$30,$31
+ xor $24,$17 # Sigma0(a)
+ xor $17,$30,$31
+#endif
+ sd $11,24($29) # offload to ring buffer
+ daddu $24,$16
+ and $17,$25
+ daddu $15,$18 # +=K[19]
+ daddu $24,$17 # +=Maj(a,b,c)
+ daddu $1,$15
+ daddu $24,$15
+ ld $14,48($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $18,$13,7 # Xupdate(20)
+ drotr $16,$13,1
+ daddu $12,$21 # +=X[i+9]
+ xor $18,$16
+ drotr $16,$13,8
+
+ dsrl $19,$10,6
+ drotr $17,$10,19
+ xor $18,$16 # sigma0(X[i+1])
+ drotr $16,$10,61
+ xor $19,$17
+ daddu $12,$18
+#else
+ dsrl $18,$13,7 # Xupdate(20)
+ daddu $12,$21 # +=X[i+9]
+ dsll $17,$13,56
+ dsrl $16,$13,1
+ xor $18,$17
+ dsll $17,7
+ xor $18,$16
+ dsrl $16,$13,8
+ xor $18,$17
+
+ dsrl $19,$10,6
+ xor $18,$16 # sigma0(X[i+1])
+ dsll $17,$10,3
+ daddu $12,$18
+ dsrl $16,$10,19
+ xor $19,$17
+ dsll $17,42
+ xor $19,$16
+ dsrl $16,$10,61
+ xor $19,$17
+#endif
+ xor $19,$16 # sigma1(X[i+14])
+ daddu $12,$19
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $19,$2,$3 # 20
+ drotr $17,$1,14
+ daddu $16,$12,$7
+ drotr $18,$1,18
+ and $19,$1
+ drotr $7,$1,41
+ xor $17,$18
+ drotr $18,$24,28
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$7 # Sigma1(e)
+
+ drotr $7,$24,34
+ daddu $16,$19
+ ld $19,160($6) # K[20]
+ xor $7,$18
+ drotr $18,$24,39
+ daddu $16,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#else
+ daddu $16,$12,$7 # 20
+ dsrl $7,$1,14
+ xor $19,$2,$3
+ dsll $18,$1,23
+ and $19,$1
+ dsrl $17,$1,18
+ xor $7,$18
+ dsll $18,$1,46
+ xor $7,$17
+ dsrl $17,$1,41
+ xor $7,$18
+ dsll $18,$1,50
+ xor $7,$17
+ xor $19,$3 # Ch(e,f,g)
+ xor $17,$18,$7 # Sigma1(e)
+
+ dsrl $7,$24,28
+ daddu $16,$19
+ ld $19,160($6) # K[20]
+ dsll $18,$24,25
+ daddu $16,$17
+ dsrl $17,$24,34
+ xor $7,$18
+ dsll $18,$24,30
+ xor $7,$17
+ dsrl $17,$24,39
+ xor $7,$18
+ dsll $18,$24,36
+ xor $7,$17
+ and $17,$25,$30
+ xor $7,$18 # Sigma0(a)
+ xor $18,$25,$30
+#endif
+ sd $12,32($29) # offload to ring buffer
+ daddu $7,$17
+ and $18,$24
+ daddu $16,$19 # +=K[20]
+ daddu $7,$18 # +=Maj(a,b,c)
+ daddu $31,$16
+ daddu $7,$16
+ ld $15,56($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $19,$14,7 # Xupdate(21)
+ drotr $17,$14,1
+ daddu $13,$22 # +=X[i+9]
+ xor $19,$17
+ drotr $17,$14,8
+
+ dsrl $20,$11,6
+ drotr $18,$11,19
+ xor $19,$17 # sigma0(X[i+1])
+ drotr $17,$11,61
+ xor $20,$18
+ daddu $13,$19
+#else
+ dsrl $19,$14,7 # Xupdate(21)
+ daddu $13,$22 # +=X[i+9]
+ dsll $18,$14,56
+ dsrl $17,$14,1
+ xor $19,$18
+ dsll $18,7
+ xor $19,$17
+ dsrl $17,$14,8
+ xor $19,$18
+
+ dsrl $20,$11,6
+ xor $19,$17 # sigma0(X[i+1])
+ dsll $18,$11,3
+ daddu $13,$19
+ dsrl $17,$11,19
+ xor $20,$18
+ dsll $18,42
+ xor $20,$17
+ dsrl $17,$11,61
+ xor $20,$18
+#endif
+ xor $20,$17 # sigma1(X[i+14])
+ daddu $13,$20
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $20,$1,$2 # 21
+ drotr $18,$31,14
+ daddu $17,$13,$3
+ drotr $19,$31,18
+ and $20,$31
+ drotr $3,$31,41
+ xor $18,$19
+ drotr $19,$7,28
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$3 # Sigma1(e)
+
+ drotr $3,$7,34
+ daddu $17,$20
+ ld $20,168($6) # K[21]
+ xor $3,$19
+ drotr $19,$7,39
+ daddu $17,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#else
+ daddu $17,$13,$3 # 21
+ dsrl $3,$31,14
+ xor $20,$1,$2
+ dsll $19,$31,23
+ and $20,$31
+ dsrl $18,$31,18
+ xor $3,$19
+ dsll $19,$31,46
+ xor $3,$18
+ dsrl $18,$31,41
+ xor $3,$19
+ dsll $19,$31,50
+ xor $3,$18
+ xor $20,$2 # Ch(e,f,g)
+ xor $18,$19,$3 # Sigma1(e)
+
+ dsrl $3,$7,28
+ daddu $17,$20
+ ld $20,168($6) # K[21]
+ dsll $19,$7,25
+ daddu $17,$18
+ dsrl $18,$7,34
+ xor $3,$19
+ dsll $19,$7,30
+ xor $3,$18
+ dsrl $18,$7,39
+ xor $3,$19
+ dsll $19,$7,36
+ xor $3,$18
+ and $18,$24,$25
+ xor $3,$19 # Sigma0(a)
+ xor $19,$24,$25
+#endif
+ sd $13,40($29) # offload to ring buffer
+ daddu $3,$18
+ and $19,$7
+ daddu $17,$20 # +=K[21]
+ daddu $3,$19 # +=Maj(a,b,c)
+ daddu $30,$17
+ daddu $3,$17
+ ld $16,64($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $20,$15,7 # Xupdate(22)
+ drotr $18,$15,1
+ daddu $14,$23 # +=X[i+9]
+ xor $20,$18
+ drotr $18,$15,8
+
+ dsrl $21,$12,6
+ drotr $19,$12,19
+ xor $20,$18 # sigma0(X[i+1])
+ drotr $18,$12,61
+ xor $21,$19
+ daddu $14,$20
+#else
+ dsrl $20,$15,7 # Xupdate(22)
+ daddu $14,$23 # +=X[i+9]
+ dsll $19,$15,56
+ dsrl $18,$15,1
+ xor $20,$19
+ dsll $19,7
+ xor $20,$18
+ dsrl $18,$15,8
+ xor $20,$19
+
+ dsrl $21,$12,6
+ xor $20,$18 # sigma0(X[i+1])
+ dsll $19,$12,3
+ daddu $14,$20
+ dsrl $18,$12,19
+ xor $21,$19
+ dsll $19,42
+ xor $21,$18
+ dsrl $18,$12,61
+ xor $21,$19
+#endif
+ xor $21,$18 # sigma1(X[i+14])
+ daddu $14,$21
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $21,$31,$1 # 22
+ drotr $19,$30,14
+ daddu $18,$14,$2
+ drotr $20,$30,18
+ and $21,$30
+ drotr $2,$30,41
+ xor $19,$20
+ drotr $20,$3,28
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$2 # Sigma1(e)
+
+ drotr $2,$3,34
+ daddu $18,$21
+ ld $21,176($6) # K[22]
+ xor $2,$20
+ drotr $20,$3,39
+ daddu $18,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#else
+ daddu $18,$14,$2 # 22
+ dsrl $2,$30,14
+ xor $21,$31,$1
+ dsll $20,$30,23
+ and $21,$30
+ dsrl $19,$30,18
+ xor $2,$20
+ dsll $20,$30,46
+ xor $2,$19
+ dsrl $19,$30,41
+ xor $2,$20
+ dsll $20,$30,50
+ xor $2,$19
+ xor $21,$1 # Ch(e,f,g)
+ xor $19,$20,$2 # Sigma1(e)
+
+ dsrl $2,$3,28
+ daddu $18,$21
+ ld $21,176($6) # K[22]
+ dsll $20,$3,25
+ daddu $18,$19
+ dsrl $19,$3,34
+ xor $2,$20
+ dsll $20,$3,30
+ xor $2,$19
+ dsrl $19,$3,39
+ xor $2,$20
+ dsll $20,$3,36
+ xor $2,$19
+ and $19,$7,$24
+ xor $2,$20 # Sigma0(a)
+ xor $20,$7,$24
+#endif
+ sd $14,48($29) # offload to ring buffer
+ daddu $2,$19
+ and $20,$3
+ daddu $18,$21 # +=K[22]
+ daddu $2,$20 # +=Maj(a,b,c)
+ daddu $25,$18
+ daddu $2,$18
+ ld $17,72($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $21,$16,7 # Xupdate(23)
+ drotr $19,$16,1
+ daddu $15,$8 # +=X[i+9]
+ xor $21,$19
+ drotr $19,$16,8
+
+ dsrl $22,$13,6
+ drotr $20,$13,19
+ xor $21,$19 # sigma0(X[i+1])
+ drotr $19,$13,61
+ xor $22,$20
+ daddu $15,$21
+#else
+ dsrl $21,$16,7 # Xupdate(23)
+ daddu $15,$8 # +=X[i+9]
+ dsll $20,$16,56
+ dsrl $19,$16,1
+ xor $21,$20
+ dsll $20,7
+ xor $21,$19
+ dsrl $19,$16,8
+ xor $21,$20
+
+ dsrl $22,$13,6
+ xor $21,$19 # sigma0(X[i+1])
+ dsll $20,$13,3
+ daddu $15,$21
+ dsrl $19,$13,19
+ xor $22,$20
+ dsll $20,42
+ xor $22,$19
+ dsrl $19,$13,61
+ xor $22,$20
+#endif
+ xor $22,$19 # sigma1(X[i+14])
+ daddu $15,$22
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $22,$30,$31 # 23
+ drotr $20,$25,14
+ daddu $19,$15,$1
+ drotr $21,$25,18
+ and $22,$25
+ drotr $1,$25,41
+ xor $20,$21
+ drotr $21,$2,28
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$1 # Sigma1(e)
+
+ drotr $1,$2,34
+ daddu $19,$22
+ ld $22,184($6) # K[23]
+ xor $1,$21
+ drotr $21,$2,39
+ daddu $19,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#else
+ daddu $19,$15,$1 # 23
+ dsrl $1,$25,14
+ xor $22,$30,$31
+ dsll $21,$25,23
+ and $22,$25
+ dsrl $20,$25,18
+ xor $1,$21
+ dsll $21,$25,46
+ xor $1,$20
+ dsrl $20,$25,41
+ xor $1,$21
+ dsll $21,$25,50
+ xor $1,$20
+ xor $22,$31 # Ch(e,f,g)
+ xor $20,$21,$1 # Sigma1(e)
+
+ dsrl $1,$2,28
+ daddu $19,$22
+ ld $22,184($6) # K[23]
+ dsll $21,$2,25
+ daddu $19,$20
+ dsrl $20,$2,34
+ xor $1,$21
+ dsll $21,$2,30
+ xor $1,$20
+ dsrl $20,$2,39
+ xor $1,$21
+ dsll $21,$2,36
+ xor $1,$20
+ and $20,$3,$7
+ xor $1,$21 # Sigma0(a)
+ xor $21,$3,$7
+#endif
+ sd $15,56($29) # offload to ring buffer
+ daddu $1,$20
+ and $21,$2
+ daddu $19,$22 # +=K[23]
+ daddu $1,$21 # +=Maj(a,b,c)
+ daddu $24,$19
+ daddu $1,$19
+ ld $18,80($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $22,$17,7 # Xupdate(24)
+ drotr $20,$17,1
+ daddu $16,$9 # +=X[i+9]
+ xor $22,$20
+ drotr $20,$17,8
+
+ dsrl $23,$14,6
+ drotr $21,$14,19
+ xor $22,$20 # sigma0(X[i+1])
+ drotr $20,$14,61
+ xor $23,$21
+ daddu $16,$22
+#else
+ dsrl $22,$17,7 # Xupdate(24)
+ daddu $16,$9 # +=X[i+9]
+ dsll $21,$17,56
+ dsrl $20,$17,1
+ xor $22,$21
+ dsll $21,7
+ xor $22,$20
+ dsrl $20,$17,8
+ xor $22,$21
+
+ dsrl $23,$14,6
+ xor $22,$20 # sigma0(X[i+1])
+ dsll $21,$14,3
+ daddu $16,$22
+ dsrl $20,$14,19
+ xor $23,$21
+ dsll $21,42
+ xor $23,$20
+ dsrl $20,$14,61
+ xor $23,$21
+#endif
+ xor $23,$20 # sigma1(X[i+14])
+ daddu $16,$23
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $23,$25,$30 # 24
+ drotr $21,$24,14
+ daddu $20,$16,$31
+ drotr $22,$24,18
+ and $23,$24
+ drotr $31,$24,41
+ xor $21,$22
+ drotr $22,$1,28
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$31 # Sigma1(e)
+
+ drotr $31,$1,34
+ daddu $20,$23
+ ld $23,192($6) # K[24]
+ xor $31,$22
+ drotr $22,$1,39
+ daddu $20,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#else
+ daddu $20,$16,$31 # 24
+ dsrl $31,$24,14
+ xor $23,$25,$30
+ dsll $22,$24,23
+ and $23,$24
+ dsrl $21,$24,18
+ xor $31,$22
+ dsll $22,$24,46
+ xor $31,$21
+ dsrl $21,$24,41
+ xor $31,$22
+ dsll $22,$24,50
+ xor $31,$21
+ xor $23,$30 # Ch(e,f,g)
+ xor $21,$22,$31 # Sigma1(e)
+
+ dsrl $31,$1,28
+ daddu $20,$23
+ ld $23,192($6) # K[24]
+ dsll $22,$1,25
+ daddu $20,$21
+ dsrl $21,$1,34
+ xor $31,$22
+ dsll $22,$1,30
+ xor $31,$21
+ dsrl $21,$1,39
+ xor $31,$22
+ dsll $22,$1,36
+ xor $31,$21
+ and $21,$2,$3
+ xor $31,$22 # Sigma0(a)
+ xor $22,$2,$3
+#endif
+ sd $16,64($29) # offload to ring buffer
+ daddu $31,$21
+ and $22,$1
+ daddu $20,$23 # +=K[24]
+ daddu $31,$22 # +=Maj(a,b,c)
+ daddu $7,$20
+ daddu $31,$20
+ ld $19,88($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $23,$18,7 # Xupdate(25)
+ drotr $21,$18,1
+ daddu $17,$10 # +=X[i+9]
+ xor $23,$21
+ drotr $21,$18,8
+
+ dsrl $8,$15,6
+ drotr $22,$15,19
+ xor $23,$21 # sigma0(X[i+1])
+ drotr $21,$15,61
+ xor $8,$22
+ daddu $17,$23
+#else
+ dsrl $23,$18,7 # Xupdate(25)
+ daddu $17,$10 # +=X[i+9]
+ dsll $22,$18,56
+ dsrl $21,$18,1
+ xor $23,$22
+ dsll $22,7
+ xor $23,$21
+ dsrl $21,$18,8
+ xor $23,$22
+
+ dsrl $8,$15,6
+ xor $23,$21 # sigma0(X[i+1])
+ dsll $22,$15,3
+ daddu $17,$23
+ dsrl $21,$15,19
+ xor $8,$22
+ dsll $22,42
+ xor $8,$21
+ dsrl $21,$15,61
+ xor $8,$22
+#endif
+ xor $8,$21 # sigma1(X[i+14])
+ daddu $17,$8
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $8,$24,$25 # 25
+ drotr $22,$7,14
+ daddu $21,$17,$30
+ drotr $23,$7,18
+ and $8,$7
+ drotr $30,$7,41
+ xor $22,$23
+ drotr $23,$31,28
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$30 # Sigma1(e)
+
+ drotr $30,$31,34
+ daddu $21,$8
+ ld $8,200($6) # K[25]
+ xor $30,$23
+ drotr $23,$31,39
+ daddu $21,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#else
+ daddu $21,$17,$30 # 25
+ dsrl $30,$7,14
+ xor $8,$24,$25
+ dsll $23,$7,23
+ and $8,$7
+ dsrl $22,$7,18
+ xor $30,$23
+ dsll $23,$7,46
+ xor $30,$22
+ dsrl $22,$7,41
+ xor $30,$23
+ dsll $23,$7,50
+ xor $30,$22
+ xor $8,$25 # Ch(e,f,g)
+ xor $22,$23,$30 # Sigma1(e)
+
+ dsrl $30,$31,28
+ daddu $21,$8
+ ld $8,200($6) # K[25]
+ dsll $23,$31,25
+ daddu $21,$22
+ dsrl $22,$31,34
+ xor $30,$23
+ dsll $23,$31,30
+ xor $30,$22
+ dsrl $22,$31,39
+ xor $30,$23
+ dsll $23,$31,36
+ xor $30,$22
+ and $22,$1,$2
+ xor $30,$23 # Sigma0(a)
+ xor $23,$1,$2
+#endif
+ sd $17,72($29) # offload to ring buffer
+ daddu $30,$22
+ and $23,$31
+ daddu $21,$8 # +=K[25]
+ daddu $30,$23 # +=Maj(a,b,c)
+ daddu $3,$21
+ daddu $30,$21
+ ld $20,96($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $8,$19,7 # Xupdate(26)
+ drotr $22,$19,1
+ daddu $18,$11 # +=X[i+9]
+ xor $8,$22
+ drotr $22,$19,8
+
+ dsrl $9,$16,6
+ drotr $23,$16,19
+ xor $8,$22 # sigma0(X[i+1])
+ drotr $22,$16,61
+ xor $9,$23
+ daddu $18,$8
+#else
+ dsrl $8,$19,7 # Xupdate(26)
+ daddu $18,$11 # +=X[i+9]
+ dsll $23,$19,56
+ dsrl $22,$19,1
+ xor $8,$23
+ dsll $23,7
+ xor $8,$22
+ dsrl $22,$19,8
+ xor $8,$23
+
+ dsrl $9,$16,6
+ xor $8,$22 # sigma0(X[i+1])
+ dsll $23,$16,3
+ daddu $18,$8
+ dsrl $22,$16,19
+ xor $9,$23
+ dsll $23,42
+ xor $9,$22
+ dsrl $22,$16,61
+ xor $9,$23
+#endif
+ xor $9,$22 # sigma1(X[i+14])
+ daddu $18,$9
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $9,$7,$24 # 26
+ drotr $23,$3,14
+ daddu $22,$18,$25
+ drotr $8,$3,18
+ and $9,$3
+ drotr $25,$3,41
+ xor $23,$8
+ drotr $8,$30,28
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$25 # Sigma1(e)
+
+ drotr $25,$30,34
+ daddu $22,$9
+ ld $9,208($6) # K[26]
+ xor $25,$8
+ drotr $8,$30,39
+ daddu $22,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#else
+ daddu $22,$18,$25 # 26
+ dsrl $25,$3,14
+ xor $9,$7,$24
+ dsll $8,$3,23
+ and $9,$3
+ dsrl $23,$3,18
+ xor $25,$8
+ dsll $8,$3,46
+ xor $25,$23
+ dsrl $23,$3,41
+ xor $25,$8
+ dsll $8,$3,50
+ xor $25,$23
+ xor $9,$24 # Ch(e,f,g)
+ xor $23,$8,$25 # Sigma1(e)
+
+ dsrl $25,$30,28
+ daddu $22,$9
+ ld $9,208($6) # K[26]
+ dsll $8,$30,25
+ daddu $22,$23
+ dsrl $23,$30,34
+ xor $25,$8
+ dsll $8,$30,30
+ xor $25,$23
+ dsrl $23,$30,39
+ xor $25,$8
+ dsll $8,$30,36
+ xor $25,$23
+ and $23,$31,$1
+ xor $25,$8 # Sigma0(a)
+ xor $8,$31,$1
+#endif
+ sd $18,80($29) # offload to ring buffer
+ daddu $25,$23
+ and $8,$30
+ daddu $22,$9 # +=K[26]
+ daddu $25,$8 # +=Maj(a,b,c)
+ daddu $2,$22
+ daddu $25,$22
+ ld $21,104($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $9,$20,7 # Xupdate(27)
+ drotr $23,$20,1
+ daddu $19,$12 # +=X[i+9]
+ xor $9,$23
+ drotr $23,$20,8
+
+ dsrl $10,$17,6
+ drotr $8,$17,19
+ xor $9,$23 # sigma0(X[i+1])
+ drotr $23,$17,61
+ xor $10,$8
+ daddu $19,$9
+#else
+ dsrl $9,$20,7 # Xupdate(27)
+ daddu $19,$12 # +=X[i+9]
+ dsll $8,$20,56
+ dsrl $23,$20,1
+ xor $9,$8
+ dsll $8,7
+ xor $9,$23
+ dsrl $23,$20,8
+ xor $9,$8
+
+ dsrl $10,$17,6
+ xor $9,$23 # sigma0(X[i+1])
+ dsll $8,$17,3
+ daddu $19,$9
+ dsrl $23,$17,19
+ xor $10,$8
+ dsll $8,42
+ xor $10,$23
+ dsrl $23,$17,61
+ xor $10,$8
+#endif
+ xor $10,$23 # sigma1(X[i+14])
+ daddu $19,$10
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $10,$3,$7 # 27
+ drotr $8,$2,14
+ daddu $23,$19,$24
+ drotr $9,$2,18
+ and $10,$2
+ drotr $24,$2,41
+ xor $8,$9
+ drotr $9,$25,28
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$24 # Sigma1(e)
+
+ drotr $24,$25,34
+ daddu $23,$10
+ ld $10,216($6) # K[27]
+ xor $24,$9
+ drotr $9,$25,39
+ daddu $23,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#else
+ daddu $23,$19,$24 # 27
+ dsrl $24,$2,14
+ xor $10,$3,$7
+ dsll $9,$2,23
+ and $10,$2
+ dsrl $8,$2,18
+ xor $24,$9
+ dsll $9,$2,46
+ xor $24,$8
+ dsrl $8,$2,41
+ xor $24,$9
+ dsll $9,$2,50
+ xor $24,$8
+ xor $10,$7 # Ch(e,f,g)
+ xor $8,$9,$24 # Sigma1(e)
+
+ dsrl $24,$25,28
+ daddu $23,$10
+ ld $10,216($6) # K[27]
+ dsll $9,$25,25
+ daddu $23,$8
+ dsrl $8,$25,34
+ xor $24,$9
+ dsll $9,$25,30
+ xor $24,$8
+ dsrl $8,$25,39
+ xor $24,$9
+ dsll $9,$25,36
+ xor $24,$8
+ and $8,$30,$31
+ xor $24,$9 # Sigma0(a)
+ xor $9,$30,$31
+#endif
+ sd $19,88($29) # offload to ring buffer
+ daddu $24,$8
+ and $9,$25
+ daddu $23,$10 # +=K[27]
+ daddu $24,$9 # +=Maj(a,b,c)
+ daddu $1,$23
+ daddu $24,$23
+ ld $22,112($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $10,$21,7 # Xupdate(28)
+ drotr $8,$21,1
+ daddu $20,$13 # +=X[i+9]
+ xor $10,$8
+ drotr $8,$21,8
+
+ dsrl $11,$18,6
+ drotr $9,$18,19
+ xor $10,$8 # sigma0(X[i+1])
+ drotr $8,$18,61
+ xor $11,$9
+ daddu $20,$10
+#else
+ dsrl $10,$21,7 # Xupdate(28)
+ daddu $20,$13 # +=X[i+9]
+ dsll $9,$21,56
+ dsrl $8,$21,1
+ xor $10,$9
+ dsll $9,7
+ xor $10,$8
+ dsrl $8,$21,8
+ xor $10,$9
+
+ dsrl $11,$18,6
+ xor $10,$8 # sigma0(X[i+1])
+ dsll $9,$18,3
+ daddu $20,$10
+ dsrl $8,$18,19
+ xor $11,$9
+ dsll $9,42
+ xor $11,$8
+ dsrl $8,$18,61
+ xor $11,$9
+#endif
+ xor $11,$8 # sigma1(X[i+14])
+ daddu $20,$11
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $11,$2,$3 # 28
+ drotr $9,$1,14
+ daddu $8,$20,$7
+ drotr $10,$1,18
+ and $11,$1
+ drotr $7,$1,41
+ xor $9,$10
+ drotr $10,$24,28
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$7 # Sigma1(e)
+
+ drotr $7,$24,34
+ daddu $8,$11
+ ld $11,224($6) # K[28]
+ xor $7,$10
+ drotr $10,$24,39
+ daddu $8,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#else
+ daddu $8,$20,$7 # 28
+ dsrl $7,$1,14
+ xor $11,$2,$3
+ dsll $10,$1,23
+ and $11,$1
+ dsrl $9,$1,18
+ xor $7,$10
+ dsll $10,$1,46
+ xor $7,$9
+ dsrl $9,$1,41
+ xor $7,$10
+ dsll $10,$1,50
+ xor $7,$9
+ xor $11,$3 # Ch(e,f,g)
+ xor $9,$10,$7 # Sigma1(e)
+
+ dsrl $7,$24,28
+ daddu $8,$11
+ ld $11,224($6) # K[28]
+ dsll $10,$24,25
+ daddu $8,$9
+ dsrl $9,$24,34
+ xor $7,$10
+ dsll $10,$24,30
+ xor $7,$9
+ dsrl $9,$24,39
+ xor $7,$10
+ dsll $10,$24,36
+ xor $7,$9
+ and $9,$25,$30
+ xor $7,$10 # Sigma0(a)
+ xor $10,$25,$30
+#endif
+ sd $20,96($29) # offload to ring buffer
+ daddu $7,$9
+ and $10,$24
+ daddu $8,$11 # +=K[28]
+ daddu $7,$10 # +=Maj(a,b,c)
+ daddu $31,$8
+ daddu $7,$8
+ ld $23,120($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $11,$22,7 # Xupdate(29)
+ drotr $9,$22,1
+ daddu $21,$14 # +=X[i+9]
+ xor $11,$9
+ drotr $9,$22,8
+
+ dsrl $12,$19,6
+ drotr $10,$19,19
+ xor $11,$9 # sigma0(X[i+1])
+ drotr $9,$19,61
+ xor $12,$10
+ daddu $21,$11
+#else
+ dsrl $11,$22,7 # Xupdate(29)
+ daddu $21,$14 # +=X[i+9]
+ dsll $10,$22,56
+ dsrl $9,$22,1
+ xor $11,$10
+ dsll $10,7
+ xor $11,$9
+ dsrl $9,$22,8
+ xor $11,$10
+
+ dsrl $12,$19,6
+ xor $11,$9 # sigma0(X[i+1])
+ dsll $10,$19,3
+ daddu $21,$11
+ dsrl $9,$19,19
+ xor $12,$10
+ dsll $10,42
+ xor $12,$9
+ dsrl $9,$19,61
+ xor $12,$10
+#endif
+ xor $12,$9 # sigma1(X[i+14])
+ daddu $21,$12
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $12,$1,$2 # 29
+ drotr $10,$31,14
+ daddu $9,$21,$3
+ drotr $11,$31,18
+ and $12,$31
+ drotr $3,$31,41
+ xor $10,$11
+ drotr $11,$7,28
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$3 # Sigma1(e)
+
+ drotr $3,$7,34
+ daddu $9,$12
+ ld $12,232($6) # K[29]
+ xor $3,$11
+ drotr $11,$7,39
+ daddu $9,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#else
+ daddu $9,$21,$3 # 29
+ dsrl $3,$31,14
+ xor $12,$1,$2
+ dsll $11,$31,23
+ and $12,$31
+ dsrl $10,$31,18
+ xor $3,$11
+ dsll $11,$31,46
+ xor $3,$10
+ dsrl $10,$31,41
+ xor $3,$11
+ dsll $11,$31,50
+ xor $3,$10
+ xor $12,$2 # Ch(e,f,g)
+ xor $10,$11,$3 # Sigma1(e)
+
+ dsrl $3,$7,28
+ daddu $9,$12
+ ld $12,232($6) # K[29]
+ dsll $11,$7,25
+ daddu $9,$10
+ dsrl $10,$7,34
+ xor $3,$11
+ dsll $11,$7,30
+ xor $3,$10
+ dsrl $10,$7,39
+ xor $3,$11
+ dsll $11,$7,36
+ xor $3,$10
+ and $10,$24,$25
+ xor $3,$11 # Sigma0(a)
+ xor $11,$24,$25
+#endif
+ sd $21,104($29) # offload to ring buffer
+ daddu $3,$10
+ and $11,$7
+ daddu $9,$12 # +=K[29]
+ daddu $3,$11 # +=Maj(a,b,c)
+ daddu $30,$9
+ daddu $3,$9
+ ld $8,0($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $12,$23,7 # Xupdate(30)
+ drotr $10,$23,1
+ daddu $22,$15 # +=X[i+9]
+ xor $12,$10
+ drotr $10,$23,8
+
+ dsrl $13,$20,6
+ drotr $11,$20,19
+ xor $12,$10 # sigma0(X[i+1])
+ drotr $10,$20,61
+ xor $13,$11
+ daddu $22,$12
+#else
+ dsrl $12,$23,7 # Xupdate(30)
+ daddu $22,$15 # +=X[i+9]
+ dsll $11,$23,56
+ dsrl $10,$23,1
+ xor $12,$11
+ dsll $11,7
+ xor $12,$10
+ dsrl $10,$23,8
+ xor $12,$11
+
+ dsrl $13,$20,6
+ xor $12,$10 # sigma0(X[i+1])
+ dsll $11,$20,3
+ daddu $22,$12
+ dsrl $10,$20,19
+ xor $13,$11
+ dsll $11,42
+ xor $13,$10
+ dsrl $10,$20,61
+ xor $13,$11
+#endif
+ xor $13,$10 # sigma1(X[i+14])
+ daddu $22,$13
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $13,$31,$1 # 30
+ drotr $11,$30,14
+ daddu $10,$22,$2
+ drotr $12,$30,18
+ and $13,$30
+ drotr $2,$30,41
+ xor $11,$12
+ drotr $12,$3,28
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$2 # Sigma1(e)
+
+ drotr $2,$3,34
+ daddu $10,$13
+ ld $13,240($6) # K[30]
+ xor $2,$12
+ drotr $12,$3,39
+ daddu $10,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#else
+ daddu $10,$22,$2 # 30
+ dsrl $2,$30,14
+ xor $13,$31,$1
+ dsll $12,$30,23
+ and $13,$30
+ dsrl $11,$30,18
+ xor $2,$12
+ dsll $12,$30,46
+ xor $2,$11
+ dsrl $11,$30,41
+ xor $2,$12
+ dsll $12,$30,50
+ xor $2,$11
+ xor $13,$1 # Ch(e,f,g)
+ xor $11,$12,$2 # Sigma1(e)
+
+ dsrl $2,$3,28
+ daddu $10,$13
+ ld $13,240($6) # K[30]
+ dsll $12,$3,25
+ daddu $10,$11
+ dsrl $11,$3,34
+ xor $2,$12
+ dsll $12,$3,30
+ xor $2,$11
+ dsrl $11,$3,39
+ xor $2,$12
+ dsll $12,$3,36
+ xor $2,$11
+ and $11,$7,$24
+ xor $2,$12 # Sigma0(a)
+ xor $12,$7,$24
+#endif
+ sd $22,112($29) # offload to ring buffer
+ daddu $2,$11
+ and $12,$3
+ daddu $10,$13 # +=K[30]
+ daddu $2,$12 # +=Maj(a,b,c)
+ daddu $25,$10
+ daddu $2,$10
+ ld $9,8($29) # prefetch from ring buffer
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ dsrl $13,$8,7 # Xupdate(31)
+ drotr $11,$8,1
+ daddu $23,$16 # +=X[i+9]
+ xor $13,$11
+ drotr $11,$8,8
+
+ dsrl $14,$21,6
+ drotr $12,$21,19
+ xor $13,$11 # sigma0(X[i+1])
+ drotr $11,$21,61
+ xor $14,$12
+ daddu $23,$13
+#else
+ dsrl $13,$8,7 # Xupdate(31)
+ daddu $23,$16 # +=X[i+9]
+ dsll $12,$8,56
+ dsrl $11,$8,1
+ xor $13,$12
+ dsll $12,7
+ xor $13,$11
+ dsrl $11,$8,8
+ xor $13,$12
+
+ dsrl $14,$21,6
+ xor $13,$11 # sigma0(X[i+1])
+ dsll $12,$21,3
+ daddu $23,$13
+ dsrl $11,$21,19
+ xor $14,$12
+ dsll $12,42
+ xor $14,$11
+ dsrl $11,$21,61
+ xor $14,$12
+#endif
+ xor $14,$11 # sigma1(X[i+14])
+ daddu $23,$14
+#if defined(_MIPS_ARCH_MIPS32R2) || defined(_MIPS_ARCH_MIPS64R2)
+ xor $14,$30,$31 # 31
+ drotr $12,$25,14
+ daddu $11,$23,$1
+ drotr $13,$25,18
+ and $14,$25
+ drotr $1,$25,41
+ xor $12,$13
+ drotr $13,$2,28
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$1 # Sigma1(e)
+
+ drotr $1,$2,34
+ daddu $11,$14
+ ld $14,248($6) # K[31]
+ xor $1,$13
+ drotr $13,$2,39
+ daddu $11,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#else
+ daddu $11,$23,$1 # 31
+ dsrl $1,$25,14
+ xor $14,$30,$31
+ dsll $13,$25,23
+ and $14,$25
+ dsrl $12,$25,18
+ xor $1,$13
+ dsll $13,$25,46
+ xor $1,$12
+ dsrl $12,$25,41
+ xor $1,$13
+ dsll $13,$25,50
+ xor $1,$12
+ xor $14,$31 # Ch(e,f,g)
+ xor $12,$13,$1 # Sigma1(e)
+
+ dsrl $1,$2,28
+ daddu $11,$14
+ ld $14,248($6) # K[31]
+ dsll $13,$2,25
+ daddu $11,$12
+ dsrl $12,$2,34
+ xor $1,$13
+ dsll $13,$2,30
+ xor $1,$12
+ dsrl $12,$2,39
+ xor $1,$13
+ dsll $13,$2,36
+ xor $1,$12
+ and $12,$3,$7
+ xor $1,$13 # Sigma0(a)
+ xor $13,$3,$7
+#endif
+ sd $23,120($29) # offload to ring buffer
+ daddu $1,$12
+ and $13,$2
+ daddu $11,$14 # +=K[31]
+ daddu $1,$13 # +=Maj(a,b,c)
+ daddu $24,$11
+ daddu $1,$11
+ ld $10,16($29) # prefetch from ring buffer
+ and $14,0xfff
+ li $15,2071
+ .set noreorder
+ bne $14,$15,.L16_xx
+ daddu $6,16*8 # Ktbl+=16
+
+ ld $23,16*8($29) # restore pointer to the end of input
+ ld $8,0*8($4)
+ ld $9,1*8($4)
+ ld $10,2*8($4)
+ daddu $5,16*8
+ ld $11,3*8($4)
+ daddu $1,$8
+ ld $12,4*8($4)
+ daddu $2,$9
+ ld $13,5*8($4)
+ daddu $3,$10
+ ld $14,6*8($4)
+ daddu $7,$11
+ ld $15,7*8($4)
+ daddu $24,$12
+ sd $1,0*8($4)
+ daddu $25,$13
+ sd $2,1*8($4)
+ daddu $30,$14
+ sd $3,2*8($4)
+ daddu $31,$15
+ sd $7,3*8($4)
+ sd $24,4*8($4)
+ sd $25,5*8($4)
+ sd $30,6*8($4)
+ sd $31,7*8($4)
+
+ bne $5,$23,.Loop
+ dsubu $6,512 # rewind $6
+
+ ld $31,256-1*8($29)
+ ld $30,256-2*8($29)
+ ld $23,256-3*8($29)
+ ld $22,256-4*8($29)
+ ld $21,256-5*8($29)
+ ld $20,256-6*8($29)
+ ld $19,256-7*8($29)
+ ld $18,256-8*8($29)
+ ld $17,256-9*8($29)
+ ld $16,256-10*8($29)
+ jr $31
+ daddu $29,256
+.end sha512_block_data_order
+
+.rdata
+.align 5
+K512:
+ .dword 0x428a2f98d728ae22, 0x7137449123ef65cd
+ .dword 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc
+ .dword 0x3956c25bf348b538, 0x59f111f1b605d019
+ .dword 0x923f82a4af194f9b, 0xab1c5ed5da6d8118
+ .dword 0xd807aa98a3030242, 0x12835b0145706fbe
+ .dword 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2
+ .dword 0x72be5d74f27b896f, 0x80deb1fe3b1696b1
+ .dword 0x9bdc06a725c71235, 0xc19bf174cf692694
+ .dword 0xe49b69c19ef14ad2, 0xefbe4786384f25e3
+ .dword 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65
+ .dword 0x2de92c6f592b0275, 0x4a7484aa6ea6e483
+ .dword 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5
+ .dword 0x983e5152ee66dfab, 0xa831c66d2db43210
+ .dword 0xb00327c898fb213f, 0xbf597fc7beef0ee4
+ .dword 0xc6e00bf33da88fc2, 0xd5a79147930aa725
+ .dword 0x06ca6351e003826f, 0x142929670a0e6e70
+ .dword 0x27b70a8546d22ffc, 0x2e1b21385c26c926
+ .dword 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df
+ .dword 0x650a73548baf63de, 0x766a0abb3c77b2a8
+ .dword 0x81c2c92e47edaee6, 0x92722c851482353b
+ .dword 0xa2bfe8a14cf10364, 0xa81a664bbc423001
+ .dword 0xc24b8b70d0f89791, 0xc76c51a30654be30
+ .dword 0xd192e819d6ef5218, 0xd69906245565a910
+ .dword 0xf40e35855771202a, 0x106aa07032bbd1b8
+ .dword 0x19a4c116b8d2d0c8, 0x1e376c085141ab53
+ .dword 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8
+ .dword 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb
+ .dword 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3
+ .dword 0x748f82ee5defb2fc, 0x78a5636f43172f60
+ .dword 0x84c87814a1f0ab72, 0x8cc702081a6439ec
+ .dword 0x90befffa23631e28, 0xa4506cebde82bde9
+ .dword 0xbef9a3f7b2c67915, 0xc67178f2e372532b
+ .dword 0xca273eceea26619c, 0xd186b8c721c0c207
+ .dword 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178
+ .dword 0x06f067aa72176fba, 0x0a637dc5a2c898a6
+ .dword 0x113f9804bef90dae, 0x1b710b35131c471b
+ .dword 0x28db77f523047d84, 0x32caab7b40c72493
+ .dword 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c
+ .dword 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a
+ .dword 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
+.asciiz "SHA512 for MIPS, CRYPTOGAMS by "
+.align 5
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/opensslconf.h
new file mode 100644
index 00000000000000..30820b60518d47
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/opensslconf.h
@@ -0,0 +1,198 @@
+/*
+ * WARNING: do not edit!
+ * Generated by Makefile from include/openssl/opensslconf.h.in
+ *
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef OPENSSL_ALGORITHM_DEFINES
+# error OPENSSL_ALGORITHM_DEFINES no longer supported
+#endif
+
+/*
+ * OpenSSL was configured with the following options:
+ */
+
+#ifndef OPENSSL_NO_COMP
+# define OPENSSL_NO_COMP
+#endif
+#ifndef OPENSSL_NO_MD2
+# define OPENSSL_NO_MD2
+#endif
+#ifndef OPENSSL_NO_RC5
+# define OPENSSL_NO_RC5
+#endif
+#ifndef OPENSSL_THREADS
+# define OPENSSL_THREADS
+#endif
+#ifndef OPENSSL_RAND_SEED_OS
+# define OPENSSL_RAND_SEED_OS
+#endif
+#ifndef OPENSSL_NO_AFALGENG
+# define OPENSSL_NO_AFALGENG
+#endif
+#ifndef OPENSSL_NO_ASAN
+# define OPENSSL_NO_ASAN
+#endif
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+# define OPENSSL_NO_CRYPTO_MDEBUG
+#endif
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
+# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
+#endif
+#ifndef OPENSSL_NO_DEVCRYPTOENG
+# define OPENSSL_NO_DEVCRYPTOENG
+#endif
+#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+# define OPENSSL_NO_EC_NISTP_64_GCC_128
+#endif
+#ifndef OPENSSL_NO_EGD
+# define OPENSSL_NO_EGD
+#endif
+#ifndef OPENSSL_NO_EXTERNAL_TESTS
+# define OPENSSL_NO_EXTERNAL_TESTS
+#endif
+#ifndef OPENSSL_NO_FUZZ_AFL
+# define OPENSSL_NO_FUZZ_AFL
+#endif
+#ifndef OPENSSL_NO_FUZZ_LIBFUZZER
+# define OPENSSL_NO_FUZZ_LIBFUZZER
+#endif
+#ifndef OPENSSL_NO_HEARTBEATS
+# define OPENSSL_NO_HEARTBEATS
+#endif
+#ifndef OPENSSL_NO_MSAN
+# define OPENSSL_NO_MSAN
+#endif
+#ifndef OPENSSL_NO_SCTP
+# define OPENSSL_NO_SCTP
+#endif
+#ifndef OPENSSL_NO_SSL3
+# define OPENSSL_NO_SSL3
+#endif
+#ifndef OPENSSL_NO_SSL3_METHOD
+# define OPENSSL_NO_SSL3_METHOD
+#endif
+#ifndef OPENSSL_NO_UBSAN
+# define OPENSSL_NO_UBSAN
+#endif
+#ifndef OPENSSL_NO_UNIT_TEST
+# define OPENSSL_NO_UNIT_TEST
+#endif
+#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
+# define OPENSSL_NO_WEAK_SSL_CIPHERS
+#endif
+#ifndef OPENSSL_NO_DYNAMIC_ENGINE
+# define OPENSSL_NO_DYNAMIC_ENGINE
+#endif
+#ifndef OPENSSL_NO_AFALGENG
+# define OPENSSL_NO_AFALGENG
+#endif
+
+
+/*
+ * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers
+ * don't like that. This will hopefully silence them.
+ */
+#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy;
+
+/*
+ * Applications should use -DOPENSSL_API_COMPAT= to suppress the
+ * declarations of functions deprecated in or before . Otherwise, they
+ * still won't see them if the library has been built to disable deprecated
+ * functions.
+ */
+#ifndef DECLARE_DEPRECATED
+# define DECLARE_DEPRECATED(f) f;
+# ifdef __GNUC__
+# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)
+# undef DECLARE_DEPRECATED
+# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
+# endif
+# endif
+#endif
+
+#ifndef OPENSSL_FILE
+# ifdef OPENSSL_NO_FILENAMES
+# define OPENSSL_FILE ""
+# define OPENSSL_LINE 0
+# else
+# define OPENSSL_FILE __FILE__
+# define OPENSSL_LINE __LINE__
+# endif
+#endif
+
+#ifndef OPENSSL_MIN_API
+# define OPENSSL_MIN_API 0
+#endif
+
+#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API
+# undef OPENSSL_API_COMPAT
+# define OPENSSL_API_COMPAT OPENSSL_MIN_API
+#endif
+
+/*
+ * Do not deprecate things to be deprecated in version 1.2.0 before the
+ * OpenSSL version number matches.
+ */
+#if OPENSSL_VERSION_NUMBER < 0x10200000L
+# define DEPRECATEDIN_1_2_0(f) f;
+#elif OPENSSL_API_COMPAT < 0x10200000L
+# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f)
+#else
+# define DEPRECATEDIN_1_2_0(f)
+#endif
+
+#if OPENSSL_API_COMPAT < 0x10100000L
+# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f)
+#else
+# define DEPRECATEDIN_1_1_0(f)
+#endif
+
+#if OPENSSL_API_COMPAT < 0x10000000L
+# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f)
+#else
+# define DEPRECATEDIN_1_0_0(f)
+#endif
+
+#if OPENSSL_API_COMPAT < 0x00908000L
+# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f)
+#else
+# define DEPRECATEDIN_0_9_8(f)
+#endif
+
+/* Generate 80386 code? */
+#undef I386_ONLY
+
+#undef OPENSSL_UNISTD
+#define OPENSSL_UNISTD
+
+#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
+
+/*
+ * The following are cipher-specific, but are part of the public API.
+ */
+#if !defined(OPENSSL_SYS_UEFI)
+# undef BN_LLONG
+/* Only one for the following should be defined */
+# define SIXTY_FOUR_BIT_LONG
+# undef SIXTY_FOUR_BIT
+# undef THIRTY_TWO_BIT
+#endif
+
+#define RC4_INT unsigned char
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/progs.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/progs.h
new file mode 100644
index 00000000000000..9b3d270e20800e
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/progs.h
@@ -0,0 +1,507 @@
+/*
+ * WARNING: do not edit!
+ * Generated by apps/progs.pl
+ *
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+typedef enum FUNC_TYPE {
+ FT_none, FT_general, FT_md, FT_cipher, FT_pkey,
+ FT_md_alg, FT_cipher_alg
+} FUNC_TYPE;
+
+typedef struct function_st {
+ FUNC_TYPE type;
+ const char *name;
+ int (*func)(int argc, char *argv[]);
+ const OPTIONS *help;
+} FUNCTION;
+
+DEFINE_LHASH_OF(FUNCTION);
+
+extern int asn1parse_main(int argc, char *argv[]);
+extern int ca_main(int argc, char *argv[]);
+extern int ciphers_main(int argc, char *argv[]);
+extern int cms_main(int argc, char *argv[]);
+extern int crl_main(int argc, char *argv[]);
+extern int crl2pkcs7_main(int argc, char *argv[]);
+extern int dgst_main(int argc, char *argv[]);
+extern int dhparam_main(int argc, char *argv[]);
+extern int dsa_main(int argc, char *argv[]);
+extern int dsaparam_main(int argc, char *argv[]);
+extern int ec_main(int argc, char *argv[]);
+extern int ecparam_main(int argc, char *argv[]);
+extern int enc_main(int argc, char *argv[]);
+extern int engine_main(int argc, char *argv[]);
+extern int errstr_main(int argc, char *argv[]);
+extern int gendsa_main(int argc, char *argv[]);
+extern int genpkey_main(int argc, char *argv[]);
+extern int genrsa_main(int argc, char *argv[]);
+extern int help_main(int argc, char *argv[]);
+extern int list_main(int argc, char *argv[]);
+extern int nseq_main(int argc, char *argv[]);
+extern int ocsp_main(int argc, char *argv[]);
+extern int passwd_main(int argc, char *argv[]);
+extern int pkcs12_main(int argc, char *argv[]);
+extern int pkcs7_main(int argc, char *argv[]);
+extern int pkcs8_main(int argc, char *argv[]);
+extern int pkey_main(int argc, char *argv[]);
+extern int pkeyparam_main(int argc, char *argv[]);
+extern int pkeyutl_main(int argc, char *argv[]);
+extern int prime_main(int argc, char *argv[]);
+extern int rand_main(int argc, char *argv[]);
+extern int rehash_main(int argc, char *argv[]);
+extern int req_main(int argc, char *argv[]);
+extern int rsa_main(int argc, char *argv[]);
+extern int rsautl_main(int argc, char *argv[]);
+extern int s_client_main(int argc, char *argv[]);
+extern int s_server_main(int argc, char *argv[]);
+extern int s_time_main(int argc, char *argv[]);
+extern int sess_id_main(int argc, char *argv[]);
+extern int smime_main(int argc, char *argv[]);
+extern int speed_main(int argc, char *argv[]);
+extern int spkac_main(int argc, char *argv[]);
+extern int srp_main(int argc, char *argv[]);
+extern int storeutl_main(int argc, char *argv[]);
+extern int ts_main(int argc, char *argv[]);
+extern int verify_main(int argc, char *argv[]);
+extern int version_main(int argc, char *argv[]);
+extern int x509_main(int argc, char *argv[]);
+
+extern const OPTIONS asn1parse_options[];
+extern const OPTIONS ca_options[];
+extern const OPTIONS ciphers_options[];
+extern const OPTIONS cms_options[];
+extern const OPTIONS crl_options[];
+extern const OPTIONS crl2pkcs7_options[];
+extern const OPTIONS dgst_options[];
+extern const OPTIONS dhparam_options[];
+extern const OPTIONS dsa_options[];
+extern const OPTIONS dsaparam_options[];
+extern const OPTIONS ec_options[];
+extern const OPTIONS ecparam_options[];
+extern const OPTIONS enc_options[];
+extern const OPTIONS engine_options[];
+extern const OPTIONS errstr_options[];
+extern const OPTIONS gendsa_options[];
+extern const OPTIONS genpkey_options[];
+extern const OPTIONS genrsa_options[];
+extern const OPTIONS help_options[];
+extern const OPTIONS list_options[];
+extern const OPTIONS nseq_options[];
+extern const OPTIONS ocsp_options[];
+extern const OPTIONS passwd_options[];
+extern const OPTIONS pkcs12_options[];
+extern const OPTIONS pkcs7_options[];
+extern const OPTIONS pkcs8_options[];
+extern const OPTIONS pkey_options[];
+extern const OPTIONS pkeyparam_options[];
+extern const OPTIONS pkeyutl_options[];
+extern const OPTIONS prime_options[];
+extern const OPTIONS rand_options[];
+extern const OPTIONS rehash_options[];
+extern const OPTIONS req_options[];
+extern const OPTIONS rsa_options[];
+extern const OPTIONS rsautl_options[];
+extern const OPTIONS s_client_options[];
+extern const OPTIONS s_server_options[];
+extern const OPTIONS s_time_options[];
+extern const OPTIONS sess_id_options[];
+extern const OPTIONS smime_options[];
+extern const OPTIONS speed_options[];
+extern const OPTIONS spkac_options[];
+extern const OPTIONS srp_options[];
+extern const OPTIONS storeutl_options[];
+extern const OPTIONS ts_options[];
+extern const OPTIONS verify_options[];
+extern const OPTIONS version_options[];
+extern const OPTIONS x509_options[];
+
+#ifdef INCLUDE_FUNCTION_TABLE
+static FUNCTION functions[] = {
+ {FT_general, "asn1parse", asn1parse_main, asn1parse_options},
+ {FT_general, "ca", ca_main, ca_options},
+#ifndef OPENSSL_NO_SOCK
+ {FT_general, "ciphers", ciphers_main, ciphers_options},
+#endif
+#ifndef OPENSSL_NO_CMS
+ {FT_general, "cms", cms_main, cms_options},
+#endif
+ {FT_general, "crl", crl_main, crl_options},
+ {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options},
+ {FT_general, "dgst", dgst_main, dgst_options},
+#ifndef OPENSSL_NO_DH
+ {FT_general, "dhparam", dhparam_main, dhparam_options},
+#endif
+#ifndef OPENSSL_NO_DSA
+ {FT_general, "dsa", dsa_main, dsa_options},
+#endif
+#ifndef OPENSSL_NO_DSA
+ {FT_general, "dsaparam", dsaparam_main, dsaparam_options},
+#endif
+#ifndef OPENSSL_NO_EC
+ {FT_general, "ec", ec_main, ec_options},
+#endif
+#ifndef OPENSSL_NO_EC
+ {FT_general, "ecparam", ecparam_main, ecparam_options},
+#endif
+ {FT_general, "enc", enc_main, enc_options},
+#ifndef OPENSSL_NO_ENGINE
+ {FT_general, "engine", engine_main, engine_options},
+#endif
+ {FT_general, "errstr", errstr_main, errstr_options},
+#ifndef OPENSSL_NO_DSA
+ {FT_general, "gendsa", gendsa_main, gendsa_options},
+#endif
+ {FT_general, "genpkey", genpkey_main, genpkey_options},
+#ifndef OPENSSL_NO_RSA
+ {FT_general, "genrsa", genrsa_main, genrsa_options},
+#endif
+ {FT_general, "help", help_main, help_options},
+ {FT_general, "list", list_main, list_options},
+ {FT_general, "nseq", nseq_main, nseq_options},
+#ifndef OPENSSL_NO_OCSP
+ {FT_general, "ocsp", ocsp_main, ocsp_options},
+#endif
+ {FT_general, "passwd", passwd_main, passwd_options},
+#ifndef OPENSSL_NO_DES
+ {FT_general, "pkcs12", pkcs12_main, pkcs12_options},
+#endif
+ {FT_general, "pkcs7", pkcs7_main, pkcs7_options},
+ {FT_general, "pkcs8", pkcs8_main, pkcs8_options},
+ {FT_general, "pkey", pkey_main, pkey_options},
+ {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options},
+ {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options},
+ {FT_general, "prime", prime_main, prime_options},
+ {FT_general, "rand", rand_main, rand_options},
+ {FT_general, "rehash", rehash_main, rehash_options},
+ {FT_general, "req", req_main, req_options},
+ {FT_general, "rsa", rsa_main, rsa_options},
+#ifndef OPENSSL_NO_RSA
+ {FT_general, "rsautl", rsautl_main, rsautl_options},
+#endif
+#ifndef OPENSSL_NO_SOCK
+ {FT_general, "s_client", s_client_main, s_client_options},
+#endif
+#ifndef OPENSSL_NO_SOCK
+ {FT_general, "s_server", s_server_main, s_server_options},
+#endif
+#ifndef OPENSSL_NO_SOCK
+ {FT_general, "s_time", s_time_main, s_time_options},
+#endif
+ {FT_general, "sess_id", sess_id_main, sess_id_options},
+ {FT_general, "smime", smime_main, smime_options},
+ {FT_general, "speed", speed_main, speed_options},
+ {FT_general, "spkac", spkac_main, spkac_options},
+#ifndef OPENSSL_NO_SRP
+ {FT_general, "srp", srp_main, srp_options},
+#endif
+ {FT_general, "storeutl", storeutl_main, storeutl_options},
+#ifndef OPENSSL_NO_TS
+ {FT_general, "ts", ts_main, ts_options},
+#endif
+ {FT_general, "verify", verify_main, verify_options},
+ {FT_general, "version", version_main, version_options},
+ {FT_general, "x509", x509_main, x509_options},
+#ifndef OPENSSL_NO_MD2
+ {FT_md, "md2", dgst_main},
+#endif
+#ifndef OPENSSL_NO_MD4
+ {FT_md, "md4", dgst_main},
+#endif
+ {FT_md, "md5", dgst_main},
+#ifndef OPENSSL_NO_GOST
+ {FT_md, "gost", dgst_main},
+#endif
+ {FT_md, "sha1", dgst_main},
+ {FT_md, "sha224", dgst_main},
+ {FT_md, "sha256", dgst_main},
+ {FT_md, "sha384", dgst_main},
+ {FT_md, "sha512", dgst_main},
+ {FT_md, "sha512-224", dgst_main},
+ {FT_md, "sha512-256", dgst_main},
+ {FT_md, "sha3-224", dgst_main},
+ {FT_md, "sha3-256", dgst_main},
+ {FT_md, "sha3-384", dgst_main},
+ {FT_md, "sha3-512", dgst_main},
+ {FT_md, "shake128", dgst_main},
+ {FT_md, "shake256", dgst_main},
+#ifndef OPENSSL_NO_MDC2
+ {FT_md, "mdc2", dgst_main},
+#endif
+#ifndef OPENSSL_NO_RMD160
+ {FT_md, "rmd160", dgst_main},
+#endif
+#ifndef OPENSSL_NO_BLAKE2
+ {FT_md, "blake2b512", dgst_main},
+#endif
+#ifndef OPENSSL_NO_BLAKE2
+ {FT_md, "blake2s256", dgst_main},
+#endif
+#ifndef OPENSSL_NO_SM3
+ {FT_md, "sm3", dgst_main},
+#endif
+ {FT_cipher, "aes-128-cbc", enc_main, enc_options},
+ {FT_cipher, "aes-128-ecb", enc_main, enc_options},
+ {FT_cipher, "aes-192-cbc", enc_main, enc_options},
+ {FT_cipher, "aes-192-ecb", enc_main, enc_options},
+ {FT_cipher, "aes-256-cbc", enc_main, enc_options},
+ {FT_cipher, "aes-256-ecb", enc_main, enc_options},
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-128-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-128-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-128-ctr", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-128-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-128-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-128-cfb1", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-128-cfb8", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-192-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-192-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-192-ctr", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-192-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-192-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-192-cfb1", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-192-cfb8", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-256-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-256-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-256-ctr", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-256-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-256-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-256-cfb1", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_ARIA
+ {FT_cipher, "aria-256-cfb8", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FT_cipher, "camellia-128-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FT_cipher, "camellia-128-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FT_cipher, "camellia-192-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FT_cipher, "camellia-192-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FT_cipher, "camellia-256-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FT_cipher, "camellia-256-ecb", enc_main, enc_options},
+#endif
+ {FT_cipher, "base64", enc_main, enc_options},
+#ifdef ZLIB
+ {FT_cipher, "zlib", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des3", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "desx", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_IDEA
+ {FT_cipher, "idea", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SEED
+ {FT_cipher, "seed", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC4
+ {FT_cipher, "rc4", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC4
+ {FT_cipher, "rc4-40", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC2
+ {FT_cipher, "rc2", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_BF
+ {FT_cipher, "bf", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAST
+ {FT_cipher, "cast", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC5
+ {FT_cipher, "rc5", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede3", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede3-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede3-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_DES
+ {FT_cipher, "des-ede3-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_IDEA
+ {FT_cipher, "idea-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_IDEA
+ {FT_cipher, "idea-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_IDEA
+ {FT_cipher, "idea-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_IDEA
+ {FT_cipher, "idea-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SEED
+ {FT_cipher, "seed-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SEED
+ {FT_cipher, "seed-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SEED
+ {FT_cipher, "seed-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SEED
+ {FT_cipher, "seed-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC2
+ {FT_cipher, "rc2-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC2
+ {FT_cipher, "rc2-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC2
+ {FT_cipher, "rc2-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC2
+ {FT_cipher, "rc2-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC2
+ {FT_cipher, "rc2-64-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC2
+ {FT_cipher, "rc2-40-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_BF
+ {FT_cipher, "bf-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_BF
+ {FT_cipher, "bf-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_BF
+ {FT_cipher, "bf-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_BF
+ {FT_cipher, "bf-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAST
+ {FT_cipher, "cast5-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAST
+ {FT_cipher, "cast5-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAST
+ {FT_cipher, "cast5-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAST
+ {FT_cipher, "cast5-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_CAST
+ {FT_cipher, "cast-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC5
+ {FT_cipher, "rc5-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC5
+ {FT_cipher, "rc5-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC5
+ {FT_cipher, "rc5-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_RC5
+ {FT_cipher, "rc5-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SM4
+ {FT_cipher, "sm4-cbc", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SM4
+ {FT_cipher, "sm4-ecb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SM4
+ {FT_cipher, "sm4-cfb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SM4
+ {FT_cipher, "sm4-ofb", enc_main, enc_options},
+#endif
+#ifndef OPENSSL_NO_SM4
+ {FT_cipher, "sm4-ctr", enc_main, enc_options},
+#endif
+ {0, NULL, NULL}
+};
+#endif
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/linux64-mips64/asm_avx2/openssl-cl.gypi
new file mode 100644
index 00000000000000..5c8521f57870bb
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/openssl-cl.gypi
@@ -0,0 +1,86 @@
+{
+ 'variables': {
+ 'openssl_defines_linux64-mips64': [
+ 'NDEBUG',
+ 'OPENSSL_USE_NODELETE',
+ 'OPENSSL_PIC',
+ 'OPENSSL_BN_ASM_MONT',
+ 'SHA1_ASM',
+ 'SHA256_ASM',
+ 'SHA512_ASM',
+ 'AES_ASM',
+ 'POLY1305_ASM',
+ ],
+ 'openssl_cflags_linux64-mips64': [
+ '-Wa,--noexecstack',
+ '-Wall -O3',
+ '-pthread -mabi=64',
+ '-Wall -O3',
+ ],
+ 'openssl_ex_libs_linux64-mips64': [
+ '-ldl -pthread',
+ ],
+ 'openssl_cli_srcs_linux64-mips64': [
+ 'openssl/apps/asn1pars.c',
+ 'openssl/apps/ca.c',
+ 'openssl/apps/ciphers.c',
+ 'openssl/apps/cms.c',
+ 'openssl/apps/crl.c',
+ 'openssl/apps/crl2p7.c',
+ 'openssl/apps/dgst.c',
+ 'openssl/apps/dhparam.c',
+ 'openssl/apps/dsa.c',
+ 'openssl/apps/dsaparam.c',
+ 'openssl/apps/ec.c',
+ 'openssl/apps/ecparam.c',
+ 'openssl/apps/enc.c',
+ 'openssl/apps/engine.c',
+ 'openssl/apps/errstr.c',
+ 'openssl/apps/gendsa.c',
+ 'openssl/apps/genpkey.c',
+ 'openssl/apps/genrsa.c',
+ 'openssl/apps/nseq.c',
+ 'openssl/apps/ocsp.c',
+ 'openssl/apps/openssl.c',
+ 'openssl/apps/passwd.c',
+ 'openssl/apps/pkcs12.c',
+ 'openssl/apps/pkcs7.c',
+ 'openssl/apps/pkcs8.c',
+ 'openssl/apps/pkey.c',
+ 'openssl/apps/pkeyparam.c',
+ 'openssl/apps/pkeyutl.c',
+ 'openssl/apps/prime.c',
+ 'openssl/apps/rand.c',
+ 'openssl/apps/rehash.c',
+ 'openssl/apps/req.c',
+ 'openssl/apps/rsa.c',
+ 'openssl/apps/rsautl.c',
+ 'openssl/apps/s_client.c',
+ 'openssl/apps/s_server.c',
+ 'openssl/apps/s_time.c',
+ 'openssl/apps/sess_id.c',
+ 'openssl/apps/smime.c',
+ 'openssl/apps/speed.c',
+ 'openssl/apps/spkac.c',
+ 'openssl/apps/srp.c',
+ 'openssl/apps/storeutl.c',
+ 'openssl/apps/ts.c',
+ 'openssl/apps/verify.c',
+ 'openssl/apps/version.c',
+ 'openssl/apps/x509.c',
+ 'openssl/apps/app_rand.c',
+ 'openssl/apps/apps.c',
+ 'openssl/apps/bf_prefix.c',
+ 'openssl/apps/opt.c',
+ 'openssl/apps/s_cb.c',
+ 'openssl/apps/s_socket.c',
+ ],
+ },
+ 'defines': ['<@(openssl_defines_linux64-mips64)'],
+ 'include_dirs': [
+ './include',
+ ],
+ 'cflags' : ['<@(openssl_cflags_linux64-mips64)'],
+ 'libraries': ['<@(openssl_ex_libs_linux64-mips64)'],
+ 'sources': ['<@(openssl_cli_srcs_linux64-mips64)'],
+}
diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/openssl.gypi b/deps/openssl/config/archs/linux64-mips64/asm_avx2/openssl.gypi
new file mode 100644
index 00000000000000..300c2862915e33
--- /dev/null
+++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/openssl.gypi
@@ -0,0 +1,723 @@
+{
+ 'variables': {
+ 'openssl_sources': [
+ 'openssl/ssl/bio_ssl.c',
+ 'openssl/ssl/d1_lib.c',
+ 'openssl/ssl/d1_msg.c',
+ 'openssl/ssl/d1_srtp.c',
+ 'openssl/ssl/methods.c',
+ 'openssl/ssl/packet.c',
+ 'openssl/ssl/pqueue.c',
+ 'openssl/ssl/record/dtls1_bitmap.c',
+ 'openssl/ssl/record/rec_layer_d1.c',
+ 'openssl/ssl/record/rec_layer_s3.c',
+ 'openssl/ssl/record/ssl3_buffer.c',
+ 'openssl/ssl/record/ssl3_record.c',
+ 'openssl/ssl/record/ssl3_record_tls13.c',
+ 'openssl/ssl/s3_cbc.c',
+ 'openssl/ssl/s3_enc.c',
+ 'openssl/ssl/s3_lib.c',
+ 'openssl/ssl/s3_msg.c',
+ 'openssl/ssl/ssl_asn1.c',
+ 'openssl/ssl/ssl_cert.c',
+ 'openssl/ssl/ssl_ciph.c',
+ 'openssl/ssl/ssl_conf.c',
+ 'openssl/ssl/ssl_err.c',
+ 'openssl/ssl/ssl_init.c',
+ 'openssl/ssl/ssl_lib.c',
+ 'openssl/ssl/ssl_mcnf.c',
+ 'openssl/ssl/ssl_rsa.c',
+ 'openssl/ssl/ssl_sess.c',
+ 'openssl/ssl/ssl_stat.c',
+ 'openssl/ssl/ssl_txt.c',
+ 'openssl/ssl/ssl_utst.c',
+ 'openssl/ssl/statem/extensions.c',
+ 'openssl/ssl/statem/extensions_clnt.c',
+ 'openssl/ssl/statem/extensions_cust.c',
+ 'openssl/ssl/statem/extensions_srvr.c',
+ 'openssl/ssl/statem/statem.c',
+ 'openssl/ssl/statem/statem_clnt.c',
+ 'openssl/ssl/statem/statem_dtls.c',
+ 'openssl/ssl/statem/statem_lib.c',
+ 'openssl/ssl/statem/statem_srvr.c',
+ 'openssl/ssl/t1_enc.c',
+ 'openssl/ssl/t1_lib.c',
+ 'openssl/ssl/t1_trce.c',
+ 'openssl/ssl/tls13_enc.c',
+ 'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
+ 'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_ecb.c',
+ 'openssl/crypto/aes/aes_ige.c',
+ 'openssl/crypto/aes/aes_misc.c',
+ 'openssl/crypto/aes/aes_ofb.c',
+ 'openssl/crypto/aes/aes_wrap.c',
+ 'openssl/crypto/aria/aria.c',
+ 'openssl/crypto/asn1/a_bitstr.c',
+ 'openssl/crypto/asn1/a_d2i_fp.c',
+ 'openssl/crypto/asn1/a_digest.c',
+ 'openssl/crypto/asn1/a_dup.c',
+ 'openssl/crypto/asn1/a_gentm.c',
+ 'openssl/crypto/asn1/a_i2d_fp.c',
+ 'openssl/crypto/asn1/a_int.c',
+ 'openssl/crypto/asn1/a_mbstr.c',
+ 'openssl/crypto/asn1/a_object.c',
+ 'openssl/crypto/asn1/a_octet.c',
+ 'openssl/crypto/asn1/a_print.c',
+ 'openssl/crypto/asn1/a_sign.c',
+ 'openssl/crypto/asn1/a_strex.c',
+ 'openssl/crypto/asn1/a_strnid.c',
+ 'openssl/crypto/asn1/a_time.c',
+ 'openssl/crypto/asn1/a_type.c',
+ 'openssl/crypto/asn1/a_utctm.c',
+ 'openssl/crypto/asn1/a_utf8.c',
+ 'openssl/crypto/asn1/a_verify.c',
+ 'openssl/crypto/asn1/ameth_lib.c',
+ 'openssl/crypto/asn1/asn1_err.c',
+ 'openssl/crypto/asn1/asn1_gen.c',
+ 'openssl/crypto/asn1/asn1_item_list.c',
+ 'openssl/crypto/asn1/asn1_lib.c',
+ 'openssl/crypto/asn1/asn1_par.c',
+ 'openssl/crypto/asn1/asn_mime.c',
+ 'openssl/crypto/asn1/asn_moid.c',
+ 'openssl/crypto/asn1/asn_mstbl.c',
+ 'openssl/crypto/asn1/asn_pack.c',
+ 'openssl/crypto/asn1/bio_asn1.c',
+ 'openssl/crypto/asn1/bio_ndef.c',
+ 'openssl/crypto/asn1/d2i_pr.c',
+ 'openssl/crypto/asn1/d2i_pu.c',
+ 'openssl/crypto/asn1/evp_asn1.c',
+ 'openssl/crypto/asn1/f_int.c',
+ 'openssl/crypto/asn1/f_string.c',
+ 'openssl/crypto/asn1/i2d_pr.c',
+ 'openssl/crypto/asn1/i2d_pu.c',
+ 'openssl/crypto/asn1/n_pkey.c',
+ 'openssl/crypto/asn1/nsseq.c',
+ 'openssl/crypto/asn1/p5_pbe.c',
+ 'openssl/crypto/asn1/p5_pbev2.c',
+ 'openssl/crypto/asn1/p5_scrypt.c',
+ 'openssl/crypto/asn1/p8_pkey.c',
+ 'openssl/crypto/asn1/t_bitst.c',
+ 'openssl/crypto/asn1/t_pkey.c',
+ 'openssl/crypto/asn1/t_spki.c',
+ 'openssl/crypto/asn1/tasn_dec.c',
+ 'openssl/crypto/asn1/tasn_enc.c',
+ 'openssl/crypto/asn1/tasn_fre.c',
+ 'openssl/crypto/asn1/tasn_new.c',
+ 'openssl/crypto/asn1/tasn_prn.c',
+ 'openssl/crypto/asn1/tasn_scn.c',
+ 'openssl/crypto/asn1/tasn_typ.c',
+ 'openssl/crypto/asn1/tasn_utl.c',
+ 'openssl/crypto/asn1/x_algor.c',
+ 'openssl/crypto/asn1/x_bignum.c',
+ 'openssl/crypto/asn1/x_info.c',
+ 'openssl/crypto/asn1/x_int64.c',
+ 'openssl/crypto/asn1/x_long.c',
+ 'openssl/crypto/asn1/x_pkey.c',
+ 'openssl/crypto/asn1/x_sig.c',
+ 'openssl/crypto/asn1/x_spki.c',
+ 'openssl/crypto/asn1/x_val.c',
+ 'openssl/crypto/async/arch/async_null.c',
+ 'openssl/crypto/async/arch/async_posix.c',
+ 'openssl/crypto/async/arch/async_win.c',
+ 'openssl/crypto/async/async.c',
+ 'openssl/crypto/async/async_err.c',
+ 'openssl/crypto/async/async_wait.c',
+ 'openssl/crypto/bf/bf_cfb64.c',
+ 'openssl/crypto/bf/bf_ecb.c',
+ 'openssl/crypto/bf/bf_enc.c',
+ 'openssl/crypto/bf/bf_ofb64.c',
+ 'openssl/crypto/bf/bf_skey.c',
+ 'openssl/crypto/bio/b_addr.c',
+ 'openssl/crypto/bio/b_dump.c',
+ 'openssl/crypto/bio/b_print.c',
+ 'openssl/crypto/bio/b_sock.c',
+ 'openssl/crypto/bio/b_sock2.c',
+ 'openssl/crypto/bio/bf_buff.c',
+ 'openssl/crypto/bio/bf_lbuf.c',
+ 'openssl/crypto/bio/bf_nbio.c',
+ 'openssl/crypto/bio/bf_null.c',
+ 'openssl/crypto/bio/bio_cb.c',
+ 'openssl/crypto/bio/bio_err.c',
+ 'openssl/crypto/bio/bio_lib.c',
+ 'openssl/crypto/bio/bio_meth.c',
+ 'openssl/crypto/bio/bss_acpt.c',
+ 'openssl/crypto/bio/bss_bio.c',
+ 'openssl/crypto/bio/bss_conn.c',
+ 'openssl/crypto/bio/bss_dgram.c',
+ 'openssl/crypto/bio/bss_fd.c',
+ 'openssl/crypto/bio/bss_file.c',
+ 'openssl/crypto/bio/bss_log.c',
+ 'openssl/crypto/bio/bss_mem.c',
+ 'openssl/crypto/bio/bss_null.c',
+ 'openssl/crypto/bio/bss_sock.c',
+ 'openssl/crypto/blake2/blake2b.c',
+ 'openssl/crypto/blake2/blake2s.c',
+ 'openssl/crypto/blake2/m_blake2b.c',
+ 'openssl/crypto/blake2/m_blake2s.c',
+ 'openssl/crypto/bn/bn_add.c',
+ 'openssl/crypto/bn/bn_blind.c',
+ 'openssl/crypto/bn/bn_const.c',
+ 'openssl/crypto/bn/bn_ctx.c',
+ 'openssl/crypto/bn/bn_depr.c',
+ 'openssl/crypto/bn/bn_dh.c',
+ 'openssl/crypto/bn/bn_div.c',
+ 'openssl/crypto/bn/bn_err.c',
+ 'openssl/crypto/bn/bn_exp.c',
+ 'openssl/crypto/bn/bn_exp2.c',
+ 'openssl/crypto/bn/bn_gcd.c',
+ 'openssl/crypto/bn/bn_gf2m.c',
+ 'openssl/crypto/bn/bn_intern.c',
+ 'openssl/crypto/bn/bn_kron.c',
+ 'openssl/crypto/bn/bn_lib.c',
+ 'openssl/crypto/bn/bn_mod.c',
+ 'openssl/crypto/bn/bn_mont.c',
+ 'openssl/crypto/bn/bn_mpi.c',
+ 'openssl/crypto/bn/bn_mul.c',
+ 'openssl/crypto/bn/bn_nist.c',
+ 'openssl/crypto/bn/bn_prime.c',
+ 'openssl/crypto/bn/bn_print.c',
+ 'openssl/crypto/bn/bn_rand.c',
+ 'openssl/crypto/bn/bn_recp.c',
+ 'openssl/crypto/bn/bn_shift.c',
+ 'openssl/crypto/bn/bn_sqr.c',
+ 'openssl/crypto/bn/bn_sqrt.c',
+ 'openssl/crypto/bn/bn_srp.c',
+ 'openssl/crypto/bn/bn_word.c',
+ 'openssl/crypto/bn/bn_x931p.c',
+ 'openssl/crypto/buffer/buf_err.c',
+ 'openssl/crypto/buffer/buffer.c',
+ 'openssl/crypto/camellia/camellia.c',
+ 'openssl/crypto/camellia/cmll_cbc.c',
+ 'openssl/crypto/camellia/cmll_cfb.c',
+ 'openssl/crypto/camellia/cmll_ctr.c',
+ 'openssl/crypto/camellia/cmll_ecb.c',
+ 'openssl/crypto/camellia/cmll_misc.c',
+ 'openssl/crypto/camellia/cmll_ofb.c',
+ 'openssl/crypto/cast/c_cfb64.c',
+ 'openssl/crypto/cast/c_ecb.c',
+ 'openssl/crypto/cast/c_enc.c',
+ 'openssl/crypto/cast/c_ofb64.c',
+ 'openssl/crypto/cast/c_skey.c',
+ 'openssl/crypto/chacha/chacha_enc.c',
+ 'openssl/crypto/cmac/cm_ameth.c',
+ 'openssl/crypto/cmac/cm_pmeth.c',
+ 'openssl/crypto/cmac/cmac.c',
+ 'openssl/crypto/cms/cms_asn1.c',
+ 'openssl/crypto/cms/cms_att.c',
+ 'openssl/crypto/cms/cms_cd.c',
+ 'openssl/crypto/cms/cms_dd.c',
+ 'openssl/crypto/cms/cms_enc.c',
+ 'openssl/crypto/cms/cms_env.c',
+ 'openssl/crypto/cms/cms_err.c',
+ 'openssl/crypto/cms/cms_ess.c',
+ 'openssl/crypto/cms/cms_io.c',
+ 'openssl/crypto/cms/cms_kari.c',
+ 'openssl/crypto/cms/cms_lib.c',
+ 'openssl/crypto/cms/cms_pwri.c',
+ 'openssl/crypto/cms/cms_sd.c',
+ 'openssl/crypto/cms/cms_smime.c',
+ 'openssl/crypto/conf/conf_api.c',
+ 'openssl/crypto/conf/conf_def.c',
+ 'openssl/crypto/conf/conf_err.c',
+ 'openssl/crypto/conf/conf_lib.c',
+ 'openssl/crypto/conf/conf_mall.c',
+ 'openssl/crypto/conf/conf_mod.c',
+ 'openssl/crypto/conf/conf_sap.c',
+ 'openssl/crypto/conf/conf_ssl.c',
+ 'openssl/crypto/cpt_err.c',
+ 'openssl/crypto/cryptlib.c',
+ 'openssl/crypto/ct/ct_b64.c',
+ 'openssl/crypto/ct/ct_err.c',
+ 'openssl/crypto/ct/ct_log.c',
+ 'openssl/crypto/ct/ct_oct.c',
+ 'openssl/crypto/ct/ct_policy.c',
+ 'openssl/crypto/ct/ct_prn.c',
+ 'openssl/crypto/ct/ct_sct.c',
+ 'openssl/crypto/ct/ct_sct_ctx.c',
+ 'openssl/crypto/ct/ct_vfy.c',
+ 'openssl/crypto/ct/ct_x509v3.c',
+ 'openssl/crypto/ctype.c',
+ 'openssl/crypto/cversion.c',
+ 'openssl/crypto/des/cbc_cksm.c',
+ 'openssl/crypto/des/cbc_enc.c',
+ 'openssl/crypto/des/cfb64ede.c',
+ 'openssl/crypto/des/cfb64enc.c',
+ 'openssl/crypto/des/cfb_enc.c',
+ 'openssl/crypto/des/des_enc.c',
+ 'openssl/crypto/des/ecb3_enc.c',
+ 'openssl/crypto/des/ecb_enc.c',
+ 'openssl/crypto/des/fcrypt.c',
+ 'openssl/crypto/des/fcrypt_b.c',
+ 'openssl/crypto/des/ofb64ede.c',
+ 'openssl/crypto/des/ofb64enc.c',
+ 'openssl/crypto/des/ofb_enc.c',
+ 'openssl/crypto/des/pcbc_enc.c',
+ 'openssl/crypto/des/qud_cksm.c',
+ 'openssl/crypto/des/rand_key.c',
+ 'openssl/crypto/des/set_key.c',
+ 'openssl/crypto/des/str2key.c',
+ 'openssl/crypto/des/xcbc_enc.c',
+ 'openssl/crypto/dh/dh_ameth.c',
+ 'openssl/crypto/dh/dh_asn1.c',
+ 'openssl/crypto/dh/dh_check.c',
+ 'openssl/crypto/dh/dh_depr.c',
+ 'openssl/crypto/dh/dh_err.c',
+ 'openssl/crypto/dh/dh_gen.c',
+ 'openssl/crypto/dh/dh_kdf.c',
+ 'openssl/crypto/dh/dh_key.c',
+ 'openssl/crypto/dh/dh_lib.c',
+ 'openssl/crypto/dh/dh_meth.c',
+ 'openssl/crypto/dh/dh_pmeth.c',
+ 'openssl/crypto/dh/dh_prn.c',
+ 'openssl/crypto/dh/dh_rfc5114.c',
+ 'openssl/crypto/dh/dh_rfc7919.c',
+ 'openssl/crypto/dsa/dsa_ameth.c',
+ 'openssl/crypto/dsa/dsa_asn1.c',
+ 'openssl/crypto/dsa/dsa_depr.c',
+ 'openssl/crypto/dsa/dsa_err.c',
+ 'openssl/crypto/dsa/dsa_gen.c',
+ 'openssl/crypto/dsa/dsa_key.c',
+ 'openssl/crypto/dsa/dsa_lib.c',
+ 'openssl/crypto/dsa/dsa_meth.c',
+ 'openssl/crypto/dsa/dsa_ossl.c',
+ 'openssl/crypto/dsa/dsa_pmeth.c',
+ 'openssl/crypto/dsa/dsa_prn.c',
+ 'openssl/crypto/dsa/dsa_sign.c',
+ 'openssl/crypto/dsa/dsa_vrf.c',
+ 'openssl/crypto/dso/dso_dl.c',
+ 'openssl/crypto/dso/dso_dlfcn.c',
+ 'openssl/crypto/dso/dso_err.c',
+ 'openssl/crypto/dso/dso_lib.c',
+ 'openssl/crypto/dso/dso_openssl.c',
+ 'openssl/crypto/dso/dso_vms.c',
+ 'openssl/crypto/dso/dso_win32.c',
+ 'openssl/crypto/ebcdic.c',
+ 'openssl/crypto/ec/curve25519.c',
+ 'openssl/crypto/ec/curve448/arch_32/f_impl.c',
+ 'openssl/crypto/ec/curve448/curve448.c',
+ 'openssl/crypto/ec/curve448/curve448_tables.c',
+ 'openssl/crypto/ec/curve448/eddsa.c',
+ 'openssl/crypto/ec/curve448/f_generic.c',
+ 'openssl/crypto/ec/curve448/scalar.c',
+ 'openssl/crypto/ec/ec2_oct.c',
+ 'openssl/crypto/ec/ec2_smpl.c',
+ 'openssl/crypto/ec/ec_ameth.c',
+ 'openssl/crypto/ec/ec_asn1.c',
+ 'openssl/crypto/ec/ec_check.c',
+ 'openssl/crypto/ec/ec_curve.c',
+ 'openssl/crypto/ec/ec_cvt.c',
+ 'openssl/crypto/ec/ec_err.c',
+ 'openssl/crypto/ec/ec_key.c',
+ 'openssl/crypto/ec/ec_kmeth.c',
+ 'openssl/crypto/ec/ec_lib.c',
+ 'openssl/crypto/ec/ec_mult.c',
+ 'openssl/crypto/ec/ec_oct.c',
+ 'openssl/crypto/ec/ec_pmeth.c',
+ 'openssl/crypto/ec/ec_print.c',
+ 'openssl/crypto/ec/ecdh_kdf.c',
+ 'openssl/crypto/ec/ecdh_ossl.c',
+ 'openssl/crypto/ec/ecdsa_ossl.c',
+ 'openssl/crypto/ec/ecdsa_sign.c',
+ 'openssl/crypto/ec/ecdsa_vrf.c',
+ 'openssl/crypto/ec/eck_prn.c',
+ 'openssl/crypto/ec/ecp_mont.c',
+ 'openssl/crypto/ec/ecp_nist.c',
+ 'openssl/crypto/ec/ecp_nistp224.c',
+ 'openssl/crypto/ec/ecp_nistp256.c',
+ 'openssl/crypto/ec/ecp_nistp521.c',
+ 'openssl/crypto/ec/ecp_nistputil.c',
+ 'openssl/crypto/ec/ecp_oct.c',
+ 'openssl/crypto/ec/ecp_smpl.c',
+ 'openssl/crypto/ec/ecx_meth.c',
+ 'openssl/crypto/engine/eng_all.c',
+ 'openssl/crypto/engine/eng_cnf.c',
+ 'openssl/crypto/engine/eng_ctrl.c',
+ 'openssl/crypto/engine/eng_dyn.c',
+ 'openssl/crypto/engine/eng_err.c',
+ 'openssl/crypto/engine/eng_fat.c',
+ 'openssl/crypto/engine/eng_init.c',
+ 'openssl/crypto/engine/eng_lib.c',
+ 'openssl/crypto/engine/eng_list.c',
+ 'openssl/crypto/engine/eng_openssl.c',
+ 'openssl/crypto/engine/eng_pkey.c',
+ 'openssl/crypto/engine/eng_rdrand.c',
+ 'openssl/crypto/engine/eng_table.c',
+ 'openssl/crypto/engine/tb_asnmth.c',
+ 'openssl/crypto/engine/tb_cipher.c',
+ 'openssl/crypto/engine/tb_dh.c',
+ 'openssl/crypto/engine/tb_digest.c',
+ 'openssl/crypto/engine/tb_dsa.c',
+ 'openssl/crypto/engine/tb_eckey.c',
+ 'openssl/crypto/engine/tb_pkmeth.c',
+ 'openssl/crypto/engine/tb_rand.c',
+ 'openssl/crypto/engine/tb_rsa.c',
+ 'openssl/crypto/err/err.c',
+ 'openssl/crypto/err/err_all.c',
+ 'openssl/crypto/err/err_prn.c',
+ 'openssl/crypto/evp/bio_b64.c',
+ 'openssl/crypto/evp/bio_enc.c',
+ 'openssl/crypto/evp/bio_md.c',
+ 'openssl/crypto/evp/bio_ok.c',
+ 'openssl/crypto/evp/c_allc.c',
+ 'openssl/crypto/evp/c_alld.c',
+ 'openssl/crypto/evp/cmeth_lib.c',
+ 'openssl/crypto/evp/digest.c',
+ 'openssl/crypto/evp/e_aes.c',
+ 'openssl/crypto/evp/e_aes_cbc_hmac_sha1.c',
+ 'openssl/crypto/evp/e_aes_cbc_hmac_sha256.c',
+ 'openssl/crypto/evp/e_aria.c',
+ 'openssl/crypto/evp/e_bf.c',
+ 'openssl/crypto/evp/e_camellia.c',
+ 'openssl/crypto/evp/e_cast.c',
+ 'openssl/crypto/evp/e_chacha20_poly1305.c',
+ 'openssl/crypto/evp/e_des.c',
+ 'openssl/crypto/evp/e_des3.c',
+ 'openssl/crypto/evp/e_idea.c',
+ 'openssl/crypto/evp/e_null.c',
+ 'openssl/crypto/evp/e_old.c',
+ 'openssl/crypto/evp/e_rc2.c',
+ 'openssl/crypto/evp/e_rc4.c',
+ 'openssl/crypto/evp/e_rc4_hmac_md5.c',
+ 'openssl/crypto/evp/e_rc5.c',
+ 'openssl/crypto/evp/e_seed.c',
+ 'openssl/crypto/evp/e_sm4.c',
+ 'openssl/crypto/evp/e_xcbc_d.c',
+ 'openssl/crypto/evp/encode.c',
+ 'openssl/crypto/evp/evp_cnf.c',
+ 'openssl/crypto/evp/evp_enc.c',
+ 'openssl/crypto/evp/evp_err.c',
+ 'openssl/crypto/evp/evp_key.c',
+ 'openssl/crypto/evp/evp_lib.c',
+ 'openssl/crypto/evp/evp_pbe.c',
+ 'openssl/crypto/evp/evp_pkey.c',
+ 'openssl/crypto/evp/m_md2.c',
+ 'openssl/crypto/evp/m_md4.c',
+ 'openssl/crypto/evp/m_md5.c',
+ 'openssl/crypto/evp/m_md5_sha1.c',
+ 'openssl/crypto/evp/m_mdc2.c',
+ 'openssl/crypto/evp/m_null.c',
+ 'openssl/crypto/evp/m_ripemd.c',
+ 'openssl/crypto/evp/m_sha1.c',
+ 'openssl/crypto/evp/m_sha3.c',
+ 'openssl/crypto/evp/m_sigver.c',
+ 'openssl/crypto/evp/m_wp.c',
+ 'openssl/crypto/evp/names.c',
+ 'openssl/crypto/evp/p5_crpt.c',
+ 'openssl/crypto/evp/p5_crpt2.c',
+ 'openssl/crypto/evp/p_dec.c',
+ 'openssl/crypto/evp/p_enc.c',
+ 'openssl/crypto/evp/p_lib.c',
+ 'openssl/crypto/evp/p_open.c',
+ 'openssl/crypto/evp/p_seal.c',
+ 'openssl/crypto/evp/p_sign.c',
+ 'openssl/crypto/evp/p_verify.c',
+ 'openssl/crypto/evp/pbe_scrypt.c',
+ 'openssl/crypto/evp/pmeth_fn.c',
+ 'openssl/crypto/evp/pmeth_gn.c',
+ 'openssl/crypto/evp/pmeth_lib.c',
+ 'openssl/crypto/ex_data.c',
+ 'openssl/crypto/getenv.c',
+ 'openssl/crypto/hmac/hm_ameth.c',
+ 'openssl/crypto/hmac/hm_pmeth.c',
+ 'openssl/crypto/hmac/hmac.c',
+ 'openssl/crypto/idea/i_cbc.c',
+ 'openssl/crypto/idea/i_cfb64.c',
+ 'openssl/crypto/idea/i_ecb.c',
+ 'openssl/crypto/idea/i_ofb64.c',
+ 'openssl/crypto/idea/i_skey.c',
+ 'openssl/crypto/init.c',
+ 'openssl/crypto/kdf/hkdf.c',
+ 'openssl/crypto/kdf/kdf_err.c',
+ 'openssl/crypto/kdf/scrypt.c',
+ 'openssl/crypto/kdf/tls1_prf.c',
+ 'openssl/crypto/lhash/lh_stats.c',
+ 'openssl/crypto/lhash/lhash.c',
+ 'openssl/crypto/md4/md4_dgst.c',
+ 'openssl/crypto/md4/md4_one.c',
+ 'openssl/crypto/md5/md5_dgst.c',
+ 'openssl/crypto/md5/md5_one.c',
+ 'openssl/crypto/mdc2/mdc2_one.c',
+ 'openssl/crypto/mdc2/mdc2dgst.c',
+ 'openssl/crypto/mem.c',
+ 'openssl/crypto/mem_clr.c',
+ 'openssl/crypto/mem_dbg.c',
+ 'openssl/crypto/mem_sec.c',
+ 'openssl/crypto/modes/cbc128.c',
+ 'openssl/crypto/modes/ccm128.c',
+ 'openssl/crypto/modes/cfb128.c',
+ 'openssl/crypto/modes/ctr128.c',
+ 'openssl/crypto/modes/cts128.c',
+ 'openssl/crypto/modes/gcm128.c',
+ 'openssl/crypto/modes/ocb128.c',
+ 'openssl/crypto/modes/ofb128.c',
+ 'openssl/crypto/modes/wrap128.c',
+ 'openssl/crypto/modes/xts128.c',
+ 'openssl/crypto/o_dir.c',
+ 'openssl/crypto/o_fips.c',
+ 'openssl/crypto/o_fopen.c',
+ 'openssl/crypto/o_init.c',
+ 'openssl/crypto/o_str.c',
+ 'openssl/crypto/o_time.c',
+ 'openssl/crypto/objects/o_names.c',
+ 'openssl/crypto/objects/obj_dat.c',
+ 'openssl/crypto/objects/obj_err.c',
+ 'openssl/crypto/objects/obj_lib.c',
+ 'openssl/crypto/objects/obj_xref.c',
+ 'openssl/crypto/ocsp/ocsp_asn.c',
+ 'openssl/crypto/ocsp/ocsp_cl.c',
+ 'openssl/crypto/ocsp/ocsp_err.c',
+ 'openssl/crypto/ocsp/ocsp_ext.c',
+ 'openssl/crypto/ocsp/ocsp_ht.c',
+ 'openssl/crypto/ocsp/ocsp_lib.c',
+ 'openssl/crypto/ocsp/ocsp_prn.c',
+ 'openssl/crypto/ocsp/ocsp_srv.c',
+ 'openssl/crypto/ocsp/ocsp_vfy.c',
+ 'openssl/crypto/ocsp/v3_ocsp.c',
+ 'openssl/crypto/pem/pem_all.c',
+ 'openssl/crypto/pem/pem_err.c',
+ 'openssl/crypto/pem/pem_info.c',
+ 'openssl/crypto/pem/pem_lib.c',
+ 'openssl/crypto/pem/pem_oth.c',
+ 'openssl/crypto/pem/pem_pk8.c',
+ 'openssl/crypto/pem/pem_pkey.c',
+ 'openssl/crypto/pem/pem_sign.c',
+ 'openssl/crypto/pem/pem_x509.c',
+ 'openssl/crypto/pem/pem_xaux.c',
+ 'openssl/crypto/pem/pvkfmt.c',
+ 'openssl/crypto/pkcs12/p12_add.c',
+ 'openssl/crypto/pkcs12/p12_asn.c',
+ 'openssl/crypto/pkcs12/p12_attr.c',
+ 'openssl/crypto/pkcs12/p12_crpt.c',
+ 'openssl/crypto/pkcs12/p12_crt.c',
+ 'openssl/crypto/pkcs12/p12_decr.c',
+ 'openssl/crypto/pkcs12/p12_init.c',
+ 'openssl/crypto/pkcs12/p12_key.c',
+ 'openssl/crypto/pkcs12/p12_kiss.c',
+ 'openssl/crypto/pkcs12/p12_mutl.c',
+ 'openssl/crypto/pkcs12/p12_npas.c',
+ 'openssl/crypto/pkcs12/p12_p8d.c',
+ 'openssl/crypto/pkcs12/p12_p8e.c',
+ 'openssl/crypto/pkcs12/p12_sbag.c',
+ 'openssl/crypto/pkcs12/p12_utl.c',
+ 'openssl/crypto/pkcs12/pk12err.c',
+ 'openssl/crypto/pkcs7/bio_pk7.c',
+ 'openssl/crypto/pkcs7/pk7_asn1.c',
+ 'openssl/crypto/pkcs7/pk7_attr.c',
+ 'openssl/crypto/pkcs7/pk7_doit.c',
+ 'openssl/crypto/pkcs7/pk7_lib.c',
+ 'openssl/crypto/pkcs7/pk7_mime.c',
+ 'openssl/crypto/pkcs7/pk7_smime.c',
+ 'openssl/crypto/pkcs7/pkcs7err.c',
+ 'openssl/crypto/poly1305/poly1305.c',
+ 'openssl/crypto/poly1305/poly1305_ameth.c',
+ 'openssl/crypto/poly1305/poly1305_pmeth.c',
+ 'openssl/crypto/rand/drbg_ctr.c',
+ 'openssl/crypto/rand/drbg_lib.c',
+ 'openssl/crypto/rand/rand_egd.c',
+ 'openssl/crypto/rand/rand_err.c',
+ 'openssl/crypto/rand/rand_lib.c',
+ 'openssl/crypto/rand/rand_unix.c',
+ 'openssl/crypto/rand/rand_vms.c',
+ 'openssl/crypto/rand/rand_win.c',
+ 'openssl/crypto/rand/randfile.c',
+ 'openssl/crypto/rc2/rc2_cbc.c',
+ 'openssl/crypto/rc2/rc2_ecb.c',
+ 'openssl/crypto/rc2/rc2_skey.c',
+ 'openssl/crypto/rc2/rc2cfb64.c',
+ 'openssl/crypto/rc2/rc2ofb64.c',
+ 'openssl/crypto/rc4/rc4_enc.c',
+ 'openssl/crypto/rc4/rc4_skey.c',
+ 'openssl/crypto/ripemd/rmd_dgst.c',
+ 'openssl/crypto/ripemd/rmd_one.c',
+ 'openssl/crypto/rsa/rsa_ameth.c',
+ 'openssl/crypto/rsa/rsa_asn1.c',
+ 'openssl/crypto/rsa/rsa_chk.c',
+ 'openssl/crypto/rsa/rsa_crpt.c',
+ 'openssl/crypto/rsa/rsa_depr.c',
+ 'openssl/crypto/rsa/rsa_err.c',
+ 'openssl/crypto/rsa/rsa_gen.c',
+ 'openssl/crypto/rsa/rsa_lib.c',
+ 'openssl/crypto/rsa/rsa_meth.c',
+ 'openssl/crypto/rsa/rsa_mp.c',
+ 'openssl/crypto/rsa/rsa_none.c',
+ 'openssl/crypto/rsa/rsa_oaep.c',
+ 'openssl/crypto/rsa/rsa_ossl.c',
+ 'openssl/crypto/rsa/rsa_pk1.c',
+ 'openssl/crypto/rsa/rsa_pmeth.c',
+ 'openssl/crypto/rsa/rsa_prn.c',
+ 'openssl/crypto/rsa/rsa_pss.c',
+ 'openssl/crypto/rsa/rsa_saos.c',
+ 'openssl/crypto/rsa/rsa_sign.c',
+ 'openssl/crypto/rsa/rsa_ssl.c',
+ 'openssl/crypto/rsa/rsa_x931.c',
+ 'openssl/crypto/rsa/rsa_x931g.c',
+ 'openssl/crypto/seed/seed.c',
+ 'openssl/crypto/seed/seed_cbc.c',
+ 'openssl/crypto/seed/seed_cfb.c',
+ 'openssl/crypto/seed/seed_ecb.c',
+ 'openssl/crypto/seed/seed_ofb.c',
+ 'openssl/crypto/sha/keccak1600.c',
+ 'openssl/crypto/sha/sha1_one.c',
+ 'openssl/crypto/sha/sha1dgst.c',
+ 'openssl/crypto/sha/sha256.c',
+ 'openssl/crypto/sha/sha512.c',
+ 'openssl/crypto/siphash/siphash.c',
+ 'openssl/crypto/siphash/siphash_ameth.c',
+ 'openssl/crypto/siphash/siphash_pmeth.c',
+ 'openssl/crypto/sm2/sm2_crypt.c',
+ 'openssl/crypto/sm2/sm2_err.c',
+ 'openssl/crypto/sm2/sm2_pmeth.c',
+ 'openssl/crypto/sm2/sm2_sign.c',
+ 'openssl/crypto/sm3/m_sm3.c',
+ 'openssl/crypto/sm3/sm3.c',
+ 'openssl/crypto/sm4/sm4.c',
+ 'openssl/crypto/srp/srp_lib.c',
+ 'openssl/crypto/srp/srp_vfy.c',
+ 'openssl/crypto/stack/stack.c',
+ 'openssl/crypto/store/loader_file.c',
+ 'openssl/crypto/store/store_err.c',
+ 'openssl/crypto/store/store_init.c',
+ 'openssl/crypto/store/store_lib.c',
+ 'openssl/crypto/store/store_register.c',
+ 'openssl/crypto/store/store_strings.c',
+ 'openssl/crypto/threads_none.c',
+ 'openssl/crypto/threads_pthread.c',
+ 'openssl/crypto/threads_win.c',
+ 'openssl/crypto/ts/ts_asn1.c',
+ 'openssl/crypto/ts/ts_conf.c',
+ 'openssl/crypto/ts/ts_err.c',
+ 'openssl/crypto/ts/ts_lib.c',
+ 'openssl/crypto/ts/ts_req_print.c',
+ 'openssl/crypto/ts/ts_req_utils.c',
+ 'openssl/crypto/ts/ts_rsp_print.c',
+ 'openssl/crypto/ts/ts_rsp_sign.c',
+ 'openssl/crypto/ts/ts_rsp_utils.c',
+ 'openssl/crypto/ts/ts_rsp_verify.c',
+ 'openssl/crypto/ts/ts_verify_ctx.c',
+ 'openssl/crypto/txt_db/txt_db.c',
+ 'openssl/crypto/ui/ui_err.c',
+ 'openssl/crypto/ui/ui_lib.c',
+ 'openssl/crypto/ui/ui_null.c',
+ 'openssl/crypto/ui/ui_openssl.c',
+ 'openssl/crypto/ui/ui_util.c',
+ 'openssl/crypto/uid.c',
+ 'openssl/crypto/whrlpool/wp_block.c',
+ 'openssl/crypto/whrlpool/wp_dgst.c',
+ 'openssl/crypto/x509/by_dir.c',
+ 'openssl/crypto/x509/by_file.c',
+ 'openssl/crypto/x509/t_crl.c',
+ 'openssl/crypto/x509/t_req.c',
+ 'openssl/crypto/x509/t_x509.c',
+ 'openssl/crypto/x509/x509_att.c',
+ 'openssl/crypto/x509/x509_cmp.c',
+ 'openssl/crypto/x509/x509_d2.c',
+ 'openssl/crypto/x509/x509_def.c',
+ 'openssl/crypto/x509/x509_err.c',
+ 'openssl/crypto/x509/x509_ext.c',
+ 'openssl/crypto/x509/x509_lu.c',
+ 'openssl/crypto/x509/x509_meth.c',
+ 'openssl/crypto/x509/x509_obj.c',
+ 'openssl/crypto/x509/x509_r2x.c',
+ 'openssl/crypto/x509/x509_req.c',
+ 'openssl/crypto/x509/x509_set.c',
+ 'openssl/crypto/x509/x509_trs.c',
+ 'openssl/crypto/x509/x509_txt.c',
+ 'openssl/crypto/x509/x509_v3.c',
+ 'openssl/crypto/x509/x509_vfy.c',
+ 'openssl/crypto/x509/x509_vpm.c',
+ 'openssl/crypto/x509/x509cset.c',
+ 'openssl/crypto/x509/x509name.c',
+ 'openssl/crypto/x509/x509rset.c',
+ 'openssl/crypto/x509/x509spki.c',
+ 'openssl/crypto/x509/x509type.c',
+ 'openssl/crypto/x509/x_all.c',
+ 'openssl/crypto/x509/x_attrib.c',
+ 'openssl/crypto/x509/x_crl.c',
+ 'openssl/crypto/x509/x_exten.c',
+ 'openssl/crypto/x509/x_name.c',
+ 'openssl/crypto/x509/x_pubkey.c',
+ 'openssl/crypto/x509/x_req.c',
+ 'openssl/crypto/x509/x_x509.c',
+ 'openssl/crypto/x509/x_x509a.c',
+ 'openssl/crypto/x509v3/pcy_cache.c',
+ 'openssl/crypto/x509v3/pcy_data.c',
+ 'openssl/crypto/x509v3/pcy_lib.c',
+ 'openssl/crypto/x509v3/pcy_map.c',
+ 'openssl/crypto/x509v3/pcy_node.c',
+ 'openssl/crypto/x509v3/pcy_tree.c',
+ 'openssl/crypto/x509v3/v3_addr.c',
+ 'openssl/crypto/x509v3/v3_admis.c',
+ 'openssl/crypto/x509v3/v3_akey.c',
+ 'openssl/crypto/x509v3/v3_akeya.c',
+ 'openssl/crypto/x509v3/v3_alt.c',
+ 'openssl/crypto/x509v3/v3_asid.c',
+ 'openssl/crypto/x509v3/v3_bcons.c',
+ 'openssl/crypto/x509v3/v3_bitst.c',
+ 'openssl/crypto/x509v3/v3_conf.c',
+ 'openssl/crypto/x509v3/v3_cpols.c',
+ 'openssl/crypto/x509v3/v3_crld.c',
+ 'openssl/crypto/x509v3/v3_enum.c',
+ 'openssl/crypto/x509v3/v3_extku.c',
+ 'openssl/crypto/x509v3/v3_genn.c',
+ 'openssl/crypto/x509v3/v3_ia5.c',
+ 'openssl/crypto/x509v3/v3_info.c',
+ 'openssl/crypto/x509v3/v3_int.c',
+ 'openssl/crypto/x509v3/v3_lib.c',
+ 'openssl/crypto/x509v3/v3_ncons.c',
+ 'openssl/crypto/x509v3/v3_pci.c',
+ 'openssl/crypto/x509v3/v3_pcia.c',
+ 'openssl/crypto/x509v3/v3_pcons.c',
+ 'openssl/crypto/x509v3/v3_pku.c',
+ 'openssl/crypto/x509v3/v3_pmaps.c',
+ 'openssl/crypto/x509v3/v3_prn.c',
+ 'openssl/crypto/x509v3/v3_purp.c',
+ 'openssl/crypto/x509v3/v3_skey.c',
+ 'openssl/crypto/x509v3/v3_sxnet.c',
+ 'openssl/crypto/x509v3/v3_tlsf.c',
+ 'openssl/crypto/x509v3/v3_utl.c',
+ 'openssl/crypto/x509v3/v3err.c',
+ 'openssl/engines/e_capi.c',
+ 'openssl/engines/e_padlock.c',
+ ],
+ 'openssl_sources_linux64-mips64': [
+ './config/archs/linux64-mips64/asm_avx2/crypto/aes/aes-mips.S',
+ './config/archs/linux64-mips64/asm_avx2/crypto/bn/bn-mips.S',
+ './config/archs/linux64-mips64/asm_avx2/crypto/bn/mips-mont.S',
+ './config/archs/linux64-mips64/asm_avx2/crypto/poly1305/poly1305-mips.S',
+ './config/archs/linux64-mips64/asm_avx2/crypto/sha/sha1-mips.S',
+ './config/archs/linux64-mips64/asm_avx2/crypto/sha/sha256-mips.S',
+ './config/archs/linux64-mips64/asm_avx2/crypto/sha/sha512-mips.S',
+ ],
+ 'openssl_defines_linux64-mips64': [
+ 'NDEBUG',
+ 'OPENSSL_USE_NODELETE',
+ 'OPENSSL_PIC',
+ 'OPENSSL_BN_ASM_MONT',
+ 'SHA1_ASM',
+ 'SHA256_ASM',
+ 'SHA512_ASM',
+ 'AES_ASM',
+ 'POLY1305_ASM',
+ ],
+ 'openssl_cflags_linux64-mips64': [
+ '-Wa,--noexecstack',
+ '-Wall -O3',
+ '-pthread -mabi=64',
+ '-Wall -O3',
+ ],
+ 'openssl_ex_libs_linux64-mips64': [
+ '-ldl -pthread',
+ ],
+ },
+ 'include_dirs': [
+ '.',
+ './include',
+ './crypto',
+ './crypto/include/internal',
+ ],
+ 'defines': ['<@(openssl_defines_linux64-mips64)'],
+ 'cflags' : ['<@(openssl_cflags_linux64-mips64)'],
+ 'libraries': ['<@(openssl_ex_libs_linux64-mips64)'],
+ 'sources': ['<@(openssl_sources)', '<@(openssl_sources_linux64-mips64)'],
+}
diff --git a/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm b/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm
index e9c2140c76010c..f5b0bfea293e48 100644
--- a/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm
@@ -26,6 +26,7 @@ our %config = (
PERL => "/usr/bin/perl",
RANLIB => "ranlib",
RC => "windres",
+ RCFLAGS => [ ],
b32 => "0",
b64 => "0",
b64l => "1",
@@ -36,7 +37,7 @@ our %config = (
build_type => "release",
builddir => ".",
cflags => [ ],
- conf_files => [ "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
+ conf_files => [ "Configurations/00-base-templates.conf", "Configurations/10-main.conf" ],
cppflags => [ ],
cxxflags => [ ],
defines => [ "NDEBUG" ],
@@ -58,10 +59,10 @@ our %config = (
openssl_sys_defines => [ ],
openssl_thread_defines => [ "OPENSSL_THREADS" ],
openssldir => "",
- options => "enable-ssl-trace no-afalgeng no-asan no-asm no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-heartbeats no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic",
- perl_archname => "mips64el-linux-thread-multi",
+ options => "enable-ssl-trace no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-heartbeats no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib no-zlib-dynamic",
+ perl_archname => "x86_64-linux-gnu-thread-multi",
perl_cmd => "/usr/bin/perl",
- perl_version => "5.18.4",
+ perl_version => "5.28.1",
perlargv => [ "no-comp", "no-shared", "no-afalgeng", "enable-ssl-trace", "no-asm", "linux64-mips64" ],
perlenv => {
"AR" => undef,
@@ -110,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux64-mips64",
tdirs => [ "ossl_shim" ],
- version => "1.1.1b",
- version_num => "0x1010102fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -220,6 +221,7 @@ our @disablables = (
"autoload-config",
"bf",
"blake2",
+ "buildtest-c\\+\\+",
"camellia",
"capieng",
"cast",
@@ -236,7 +238,6 @@ our @disablables = (
"dgram",
"dh",
"dsa",
- "dso",
"dtls",
"dynamic-engine",
"ec",
@@ -321,11 +322,12 @@ our %disabled = (
"afalgeng" => "option",
"asan" => "default",
"asm" => "option",
+ "buildtest-c++" => "default",
"comp" => "option",
"crypto-mdebug" => "default",
"crypto-mdebug-backtrace" => "default",
"devcryptoeng" => "default",
- "dynamic-engine" => "forced",
+ "dynamic-engine" => "cascade",
"ec_nistp_64_gcc_128" => "default",
"egd" => "default",
"external-tests" => "default",
@@ -802,342 +804,342 @@ our %unified_info = (
"libcrypto",
"test/libtestutil.a",
],
- "test/buildtest_aes" =>
+ "test/buildtest_c_aes" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_asn1" =>
+ "test/buildtest_c_asn1" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_asn1t" =>
+ "test/buildtest_c_asn1t" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_async" =>
+ "test/buildtest_c_async" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_bio" =>
+ "test/buildtest_c_bio" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_blowfish" =>
+ "test/buildtest_c_blowfish" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_bn" =>
+ "test/buildtest_c_bn" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_buffer" =>
+ "test/buildtest_c_buffer" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_camellia" =>
+ "test/buildtest_c_camellia" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_cast" =>
+ "test/buildtest_c_cast" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_cmac" =>
+ "test/buildtest_c_cmac" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_cms" =>
+ "test/buildtest_c_cms" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_conf" =>
+ "test/buildtest_c_conf" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_conf_api" =>
+ "test/buildtest_c_conf_api" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_crypto" =>
+ "test/buildtest_c_crypto" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ct" =>
+ "test/buildtest_c_ct" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_des" =>
+ "test/buildtest_c_des" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_dh" =>
+ "test/buildtest_c_dh" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_dsa" =>
+ "test/buildtest_c_dsa" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_dtls1" =>
+ "test/buildtest_c_dtls1" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_e_os2" =>
+ "test/buildtest_c_e_os2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ebcdic" =>
+ "test/buildtest_c_ebcdic" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ec" =>
+ "test/buildtest_c_ec" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ecdh" =>
+ "test/buildtest_c_ecdh" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ecdsa" =>
+ "test/buildtest_c_ecdsa" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_engine" =>
+ "test/buildtest_c_engine" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_evp" =>
+ "test/buildtest_c_evp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_hmac" =>
+ "test/buildtest_c_hmac" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_idea" =>
+ "test/buildtest_c_idea" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_kdf" =>
+ "test/buildtest_c_kdf" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_lhash" =>
+ "test/buildtest_c_lhash" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_md4" =>
+ "test/buildtest_c_md4" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_md5" =>
+ "test/buildtest_c_md5" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_mdc2" =>
+ "test/buildtest_c_mdc2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_modes" =>
+ "test/buildtest_c_modes" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_obj_mac" =>
+ "test/buildtest_c_obj_mac" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_objects" =>
+ "test/buildtest_c_objects" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ocsp" =>
+ "test/buildtest_c_ocsp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_opensslv" =>
+ "test/buildtest_c_opensslv" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ossl_typ" =>
+ "test/buildtest_c_ossl_typ" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pem" =>
+ "test/buildtest_c_pem" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pem2" =>
+ "test/buildtest_c_pem2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pkcs12" =>
+ "test/buildtest_c_pkcs12" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_pkcs7" =>
+ "test/buildtest_c_pkcs7" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rand" =>
+ "test/buildtest_c_rand" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rand_drbg" =>
+ "test/buildtest_c_rand_drbg" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rc2" =>
+ "test/buildtest_c_rc2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rc4" =>
+ "test/buildtest_c_rc4" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ripemd" =>
+ "test/buildtest_c_ripemd" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_rsa" =>
+ "test/buildtest_c_rsa" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_safestack" =>
+ "test/buildtest_c_safestack" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_seed" =>
+ "test/buildtest_c_seed" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_sha" =>
+ "test/buildtest_c_sha" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_srp" =>
+ "test/buildtest_c_srp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_srtp" =>
+ "test/buildtest_c_srtp" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ssl" =>
+ "test/buildtest_c_ssl" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ssl2" =>
+ "test/buildtest_c_ssl2" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_stack" =>
+ "test/buildtest_c_stack" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_store" =>
+ "test/buildtest_c_store" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_symhacks" =>
+ "test/buildtest_c_symhacks" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_tls1" =>
+ "test/buildtest_c_tls1" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ts" =>
+ "test/buildtest_c_ts" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_txt_db" =>
+ "test/buildtest_c_txt_db" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_ui" =>
+ "test/buildtest_c_ui" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_whrlpool" =>
+ "test/buildtest_c_whrlpool" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_x509" =>
+ "test/buildtest_c_x509" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_x509_vfy" =>
+ "test/buildtest_c_x509_vfy" =>
[
"libcrypto",
"libssl",
],
- "test/buildtest_x509v3" =>
+ "test/buildtest_c_x509v3" =>
[
"libcrypto",
"libssl",
@@ -3224,6 +3226,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7825,10 +7828,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9921,6 +9920,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10063,74 +10066,74 @@ our %unified_info = (
"test/bio_memleak_test",
"test/bioprinttest",
"test/bntest",
- "test/buildtest_aes",
- "test/buildtest_asn1",
- "test/buildtest_asn1t",
- "test/buildtest_async",
- "test/buildtest_bio",
- "test/buildtest_blowfish",
- "test/buildtest_bn",
- "test/buildtest_buffer",
- "test/buildtest_camellia",
- "test/buildtest_cast",
- "test/buildtest_cmac",
- "test/buildtest_cms",
- "test/buildtest_conf",
- "test/buildtest_conf_api",
- "test/buildtest_crypto",
- "test/buildtest_ct",
- "test/buildtest_des",
- "test/buildtest_dh",
- "test/buildtest_dsa",
- "test/buildtest_dtls1",
- "test/buildtest_e_os2",
- "test/buildtest_ebcdic",
- "test/buildtest_ec",
- "test/buildtest_ecdh",
- "test/buildtest_ecdsa",
- "test/buildtest_engine",
- "test/buildtest_evp",
- "test/buildtest_hmac",
- "test/buildtest_idea",
- "test/buildtest_kdf",
- "test/buildtest_lhash",
- "test/buildtest_md4",
- "test/buildtest_md5",
- "test/buildtest_mdc2",
- "test/buildtest_modes",
- "test/buildtest_obj_mac",
- "test/buildtest_objects",
- "test/buildtest_ocsp",
- "test/buildtest_opensslv",
- "test/buildtest_ossl_typ",
- "test/buildtest_pem",
- "test/buildtest_pem2",
- "test/buildtest_pkcs12",
- "test/buildtest_pkcs7",
- "test/buildtest_rand",
- "test/buildtest_rand_drbg",
- "test/buildtest_rc2",
- "test/buildtest_rc4",
- "test/buildtest_ripemd",
- "test/buildtest_rsa",
- "test/buildtest_safestack",
- "test/buildtest_seed",
- "test/buildtest_sha",
- "test/buildtest_srp",
- "test/buildtest_srtp",
- "test/buildtest_ssl",
- "test/buildtest_ssl2",
- "test/buildtest_stack",
- "test/buildtest_store",
- "test/buildtest_symhacks",
- "test/buildtest_tls1",
- "test/buildtest_ts",
- "test/buildtest_txt_db",
- "test/buildtest_ui",
- "test/buildtest_whrlpool",
- "test/buildtest_x509",
- "test/buildtest_x509_vfy",
- "test/buildtest_x509v3",
+ "test/buildtest_c_aes",
+ "test/buildtest_c_asn1",
+ "test/buildtest_c_asn1t",
+ "test/buildtest_c_async",
+ "test/buildtest_c_bio",
+ "test/buildtest_c_blowfish",
+ "test/buildtest_c_bn",
+ "test/buildtest_c_buffer",
+ "test/buildtest_c_camellia",
+ "test/buildtest_c_cast",
+ "test/buildtest_c_cmac",
+ "test/buildtest_c_cms",
+ "test/buildtest_c_conf",
+ "test/buildtest_c_conf_api",
+ "test/buildtest_c_crypto",
+ "test/buildtest_c_ct",
+ "test/buildtest_c_des",
+ "test/buildtest_c_dh",
+ "test/buildtest_c_dsa",
+ "test/buildtest_c_dtls1",
+ "test/buildtest_c_e_os2",
+ "test/buildtest_c_ebcdic",
+ "test/buildtest_c_ec",
+ "test/buildtest_c_ecdh",
+ "test/buildtest_c_ecdsa",
+ "test/buildtest_c_engine",
+ "test/buildtest_c_evp",
+ "test/buildtest_c_hmac",
+ "test/buildtest_c_idea",
+ "test/buildtest_c_kdf",
+ "test/buildtest_c_lhash",
+ "test/buildtest_c_md4",
+ "test/buildtest_c_md5",
+ "test/buildtest_c_mdc2",
+ "test/buildtest_c_modes",
+ "test/buildtest_c_obj_mac",
+ "test/buildtest_c_objects",
+ "test/buildtest_c_ocsp",
+ "test/buildtest_c_opensslv",
+ "test/buildtest_c_ossl_typ",
+ "test/buildtest_c_pem",
+ "test/buildtest_c_pem2",
+ "test/buildtest_c_pkcs12",
+ "test/buildtest_c_pkcs7",
+ "test/buildtest_c_rand",
+ "test/buildtest_c_rand_drbg",
+ "test/buildtest_c_rc2",
+ "test/buildtest_c_rc4",
+ "test/buildtest_c_ripemd",
+ "test/buildtest_c_rsa",
+ "test/buildtest_c_safestack",
+ "test/buildtest_c_seed",
+ "test/buildtest_c_sha",
+ "test/buildtest_c_srp",
+ "test/buildtest_c_srtp",
+ "test/buildtest_c_ssl",
+ "test/buildtest_c_ssl2",
+ "test/buildtest_c_stack",
+ "test/buildtest_c_store",
+ "test/buildtest_c_symhacks",
+ "test/buildtest_c_tls1",
+ "test/buildtest_c_ts",
+ "test/buildtest_c_txt_db",
+ "test/buildtest_c_ui",
+ "test/buildtest_c_whrlpool",
+ "test/buildtest_c_x509",
+ "test/buildtest_c_x509_vfy",
+ "test/buildtest_c_x509v3",
"test/casttest",
"test/chacha_internal_test",
"test/cipher_overhead_test",
@@ -14192,545 +14195,545 @@ our %unified_info = (
[
"test/bntest.c",
],
- "test/buildtest_aes" =>
- [
- "test/buildtest_aes.o",
- ],
"test/buildtest_aes.o" =>
[
"test/buildtest_aes.c",
],
- "test/buildtest_asn1" =>
- [
- "test/buildtest_asn1.o",
- ],
"test/buildtest_asn1.o" =>
[
"test/buildtest_asn1.c",
],
- "test/buildtest_asn1t" =>
- [
- "test/buildtest_asn1t.o",
- ],
"test/buildtest_asn1t.o" =>
[
"test/buildtest_asn1t.c",
],
- "test/buildtest_async" =>
- [
- "test/buildtest_async.o",
- ],
"test/buildtest_async.o" =>
[
"test/buildtest_async.c",
],
- "test/buildtest_bio" =>
- [
- "test/buildtest_bio.o",
- ],
"test/buildtest_bio.o" =>
[
"test/buildtest_bio.c",
],
- "test/buildtest_blowfish" =>
- [
- "test/buildtest_blowfish.o",
- ],
"test/buildtest_blowfish.o" =>
[
"test/buildtest_blowfish.c",
],
- "test/buildtest_bn" =>
- [
- "test/buildtest_bn.o",
- ],
"test/buildtest_bn.o" =>
[
"test/buildtest_bn.c",
],
- "test/buildtest_buffer" =>
- [
- "test/buildtest_buffer.o",
- ],
"test/buildtest_buffer.o" =>
[
"test/buildtest_buffer.c",
],
- "test/buildtest_camellia" =>
+ "test/buildtest_c_aes" =>
[
- "test/buildtest_camellia.o",
+ "test/buildtest_aes.o",
],
- "test/buildtest_camellia.o" =>
+ "test/buildtest_c_asn1" =>
[
- "test/buildtest_camellia.c",
+ "test/buildtest_asn1.o",
],
- "test/buildtest_cast" =>
+ "test/buildtest_c_asn1t" =>
[
- "test/buildtest_cast.o",
+ "test/buildtest_asn1t.o",
],
- "test/buildtest_cast.o" =>
+ "test/buildtest_c_async" =>
[
- "test/buildtest_cast.c",
+ "test/buildtest_async.o",
],
- "test/buildtest_cmac" =>
+ "test/buildtest_c_bio" =>
[
- "test/buildtest_cmac.o",
+ "test/buildtest_bio.o",
],
- "test/buildtest_cmac.o" =>
+ "test/buildtest_c_blowfish" =>
[
- "test/buildtest_cmac.c",
+ "test/buildtest_blowfish.o",
],
- "test/buildtest_cms" =>
+ "test/buildtest_c_bn" =>
[
- "test/buildtest_cms.o",
+ "test/buildtest_bn.o",
],
- "test/buildtest_cms.o" =>
+ "test/buildtest_c_buffer" =>
[
- "test/buildtest_cms.c",
+ "test/buildtest_buffer.o",
],
- "test/buildtest_conf" =>
+ "test/buildtest_c_camellia" =>
[
- "test/buildtest_conf.o",
+ "test/buildtest_camellia.o",
],
- "test/buildtest_conf.o" =>
+ "test/buildtest_c_cast" =>
[
- "test/buildtest_conf.c",
+ "test/buildtest_cast.o",
],
- "test/buildtest_conf_api" =>
+ "test/buildtest_c_cmac" =>
[
- "test/buildtest_conf_api.o",
+ "test/buildtest_cmac.o",
],
- "test/buildtest_conf_api.o" =>
+ "test/buildtest_c_cms" =>
[
- "test/buildtest_conf_api.c",
+ "test/buildtest_cms.o",
],
- "test/buildtest_crypto" =>
+ "test/buildtest_c_conf" =>
[
- "test/buildtest_crypto.o",
+ "test/buildtest_conf.o",
],
- "test/buildtest_crypto.o" =>
+ "test/buildtest_c_conf_api" =>
[
- "test/buildtest_crypto.c",
+ "test/buildtest_conf_api.o",
],
- "test/buildtest_ct" =>
+ "test/buildtest_c_crypto" =>
[
- "test/buildtest_ct.o",
+ "test/buildtest_crypto.o",
],
- "test/buildtest_ct.o" =>
+ "test/buildtest_c_ct" =>
[
- "test/buildtest_ct.c",
+ "test/buildtest_ct.o",
],
- "test/buildtest_des" =>
+ "test/buildtest_c_des" =>
[
"test/buildtest_des.o",
],
- "test/buildtest_des.o" =>
+ "test/buildtest_c_dh" =>
[
- "test/buildtest_des.c",
+ "test/buildtest_dh.o",
],
- "test/buildtest_dh" =>
+ "test/buildtest_c_dsa" =>
[
- "test/buildtest_dh.o",
+ "test/buildtest_dsa.o",
],
- "test/buildtest_dh.o" =>
+ "test/buildtest_c_dtls1" =>
[
- "test/buildtest_dh.c",
+ "test/buildtest_dtls1.o",
],
- "test/buildtest_dsa" =>
+ "test/buildtest_c_e_os2" =>
[
- "test/buildtest_dsa.o",
+ "test/buildtest_e_os2.o",
],
- "test/buildtest_dsa.o" =>
+ "test/buildtest_c_ebcdic" =>
[
- "test/buildtest_dsa.c",
+ "test/buildtest_ebcdic.o",
],
- "test/buildtest_dtls1" =>
+ "test/buildtest_c_ec" =>
[
- "test/buildtest_dtls1.o",
+ "test/buildtest_ec.o",
],
- "test/buildtest_dtls1.o" =>
+ "test/buildtest_c_ecdh" =>
[
- "test/buildtest_dtls1.c",
+ "test/buildtest_ecdh.o",
],
- "test/buildtest_e_os2" =>
+ "test/buildtest_c_ecdsa" =>
[
- "test/buildtest_e_os2.o",
+ "test/buildtest_ecdsa.o",
],
- "test/buildtest_e_os2.o" =>
+ "test/buildtest_c_engine" =>
[
- "test/buildtest_e_os2.c",
+ "test/buildtest_engine.o",
],
- "test/buildtest_ebcdic" =>
+ "test/buildtest_c_evp" =>
[
- "test/buildtest_ebcdic.o",
+ "test/buildtest_evp.o",
],
- "test/buildtest_ebcdic.o" =>
+ "test/buildtest_c_hmac" =>
[
- "test/buildtest_ebcdic.c",
+ "test/buildtest_hmac.o",
],
- "test/buildtest_ec" =>
+ "test/buildtest_c_idea" =>
[
- "test/buildtest_ec.o",
+ "test/buildtest_idea.o",
],
- "test/buildtest_ec.o" =>
+ "test/buildtest_c_kdf" =>
[
- "test/buildtest_ec.c",
+ "test/buildtest_kdf.o",
],
- "test/buildtest_ecdh" =>
+ "test/buildtest_c_lhash" =>
[
- "test/buildtest_ecdh.o",
+ "test/buildtest_lhash.o",
],
- "test/buildtest_ecdh.o" =>
+ "test/buildtest_c_md4" =>
[
- "test/buildtest_ecdh.c",
+ "test/buildtest_md4.o",
],
- "test/buildtest_ecdsa" =>
+ "test/buildtest_c_md5" =>
[
- "test/buildtest_ecdsa.o",
+ "test/buildtest_md5.o",
],
- "test/buildtest_ecdsa.o" =>
+ "test/buildtest_c_mdc2" =>
[
- "test/buildtest_ecdsa.c",
+ "test/buildtest_mdc2.o",
],
- "test/buildtest_engine" =>
+ "test/buildtest_c_modes" =>
[
- "test/buildtest_engine.o",
+ "test/buildtest_modes.o",
],
- "test/buildtest_engine.o" =>
+ "test/buildtest_c_obj_mac" =>
[
- "test/buildtest_engine.c",
+ "test/buildtest_obj_mac.o",
],
- "test/buildtest_evp" =>
+ "test/buildtest_c_objects" =>
[
- "test/buildtest_evp.o",
+ "test/buildtest_objects.o",
],
- "test/buildtest_evp.o" =>
+ "test/buildtest_c_ocsp" =>
[
- "test/buildtest_evp.c",
+ "test/buildtest_ocsp.o",
],
- "test/buildtest_hmac" =>
+ "test/buildtest_c_opensslv" =>
[
- "test/buildtest_hmac.o",
+ "test/buildtest_opensslv.o",
],
- "test/buildtest_hmac.o" =>
+ "test/buildtest_c_ossl_typ" =>
[
- "test/buildtest_hmac.c",
+ "test/buildtest_ossl_typ.o",
],
- "test/buildtest_idea" =>
+ "test/buildtest_c_pem" =>
[
- "test/buildtest_idea.o",
+ "test/buildtest_pem.o",
],
- "test/buildtest_idea.o" =>
+ "test/buildtest_c_pem2" =>
[
- "test/buildtest_idea.c",
+ "test/buildtest_pem2.o",
],
- "test/buildtest_kdf" =>
+ "test/buildtest_c_pkcs12" =>
[
- "test/buildtest_kdf.o",
+ "test/buildtest_pkcs12.o",
],
- "test/buildtest_kdf.o" =>
+ "test/buildtest_c_pkcs7" =>
[
- "test/buildtest_kdf.c",
+ "test/buildtest_pkcs7.o",
],
- "test/buildtest_lhash" =>
+ "test/buildtest_c_rand" =>
[
- "test/buildtest_lhash.o",
+ "test/buildtest_rand.o",
],
- "test/buildtest_lhash.o" =>
+ "test/buildtest_c_rand_drbg" =>
[
- "test/buildtest_lhash.c",
+ "test/buildtest_rand_drbg.o",
],
- "test/buildtest_md4" =>
+ "test/buildtest_c_rc2" =>
[
- "test/buildtest_md4.o",
+ "test/buildtest_rc2.o",
],
- "test/buildtest_md4.o" =>
+ "test/buildtest_c_rc4" =>
[
- "test/buildtest_md4.c",
+ "test/buildtest_rc4.o",
],
- "test/buildtest_md5" =>
+ "test/buildtest_c_ripemd" =>
[
- "test/buildtest_md5.o",
+ "test/buildtest_ripemd.o",
],
- "test/buildtest_md5.o" =>
+ "test/buildtest_c_rsa" =>
[
- "test/buildtest_md5.c",
+ "test/buildtest_rsa.o",
],
- "test/buildtest_mdc2" =>
+ "test/buildtest_c_safestack" =>
[
- "test/buildtest_mdc2.o",
+ "test/buildtest_safestack.o",
],
- "test/buildtest_mdc2.o" =>
+ "test/buildtest_c_seed" =>
[
- "test/buildtest_mdc2.c",
+ "test/buildtest_seed.o",
],
- "test/buildtest_modes" =>
+ "test/buildtest_c_sha" =>
[
- "test/buildtest_modes.o",
+ "test/buildtest_sha.o",
],
- "test/buildtest_modes.o" =>
+ "test/buildtest_c_srp" =>
[
- "test/buildtest_modes.c",
+ "test/buildtest_srp.o",
],
- "test/buildtest_obj_mac" =>
+ "test/buildtest_c_srtp" =>
[
- "test/buildtest_obj_mac.o",
+ "test/buildtest_srtp.o",
],
- "test/buildtest_obj_mac.o" =>
+ "test/buildtest_c_ssl" =>
[
- "test/buildtest_obj_mac.c",
+ "test/buildtest_ssl.o",
],
- "test/buildtest_objects" =>
+ "test/buildtest_c_ssl2" =>
[
- "test/buildtest_objects.o",
+ "test/buildtest_ssl2.o",
],
- "test/buildtest_objects.o" =>
+ "test/buildtest_c_stack" =>
[
- "test/buildtest_objects.c",
+ "test/buildtest_stack.o",
],
- "test/buildtest_ocsp" =>
+ "test/buildtest_c_store" =>
[
- "test/buildtest_ocsp.o",
+ "test/buildtest_store.o",
],
- "test/buildtest_ocsp.o" =>
+ "test/buildtest_c_symhacks" =>
[
- "test/buildtest_ocsp.c",
+ "test/buildtest_symhacks.o",
],
- "test/buildtest_opensslv" =>
+ "test/buildtest_c_tls1" =>
[
- "test/buildtest_opensslv.o",
+ "test/buildtest_tls1.o",
],
- "test/buildtest_opensslv.o" =>
+ "test/buildtest_c_ts" =>
[
- "test/buildtest_opensslv.c",
+ "test/buildtest_ts.o",
],
- "test/buildtest_ossl_typ" =>
+ "test/buildtest_c_txt_db" =>
[
- "test/buildtest_ossl_typ.o",
+ "test/buildtest_txt_db.o",
],
- "test/buildtest_ossl_typ.o" =>
+ "test/buildtest_c_ui" =>
[
- "test/buildtest_ossl_typ.c",
+ "test/buildtest_ui.o",
],
- "test/buildtest_pem" =>
+ "test/buildtest_c_whrlpool" =>
[
- "test/buildtest_pem.o",
+ "test/buildtest_whrlpool.o",
],
- "test/buildtest_pem.o" =>
+ "test/buildtest_c_x509" =>
[
- "test/buildtest_pem.c",
+ "test/buildtest_x509.o",
],
- "test/buildtest_pem2" =>
+ "test/buildtest_c_x509_vfy" =>
[
- "test/buildtest_pem2.o",
+ "test/buildtest_x509_vfy.o",
],
- "test/buildtest_pem2.o" =>
+ "test/buildtest_c_x509v3" =>
[
- "test/buildtest_pem2.c",
+ "test/buildtest_x509v3.o",
],
- "test/buildtest_pkcs12" =>
+ "test/buildtest_camellia.o" =>
[
- "test/buildtest_pkcs12.o",
+ "test/buildtest_camellia.c",
],
- "test/buildtest_pkcs12.o" =>
+ "test/buildtest_cast.o" =>
[
- "test/buildtest_pkcs12.c",
+ "test/buildtest_cast.c",
],
- "test/buildtest_pkcs7" =>
+ "test/buildtest_cmac.o" =>
[
- "test/buildtest_pkcs7.o",
+ "test/buildtest_cmac.c",
],
- "test/buildtest_pkcs7.o" =>
+ "test/buildtest_cms.o" =>
[
- "test/buildtest_pkcs7.c",
+ "test/buildtest_cms.c",
],
- "test/buildtest_rand" =>
+ "test/buildtest_conf.o" =>
[
- "test/buildtest_rand.o",
+ "test/buildtest_conf.c",
],
- "test/buildtest_rand.o" =>
+ "test/buildtest_conf_api.o" =>
[
- "test/buildtest_rand.c",
+ "test/buildtest_conf_api.c",
],
- "test/buildtest_rand_drbg" =>
+ "test/buildtest_crypto.o" =>
[
- "test/buildtest_rand_drbg.o",
+ "test/buildtest_crypto.c",
],
- "test/buildtest_rand_drbg.o" =>
+ "test/buildtest_ct.o" =>
[
- "test/buildtest_rand_drbg.c",
+ "test/buildtest_ct.c",
],
- "test/buildtest_rc2" =>
+ "test/buildtest_des.o" =>
[
- "test/buildtest_rc2.o",
+ "test/buildtest_des.c",
],
- "test/buildtest_rc2.o" =>
+ "test/buildtest_dh.o" =>
[
- "test/buildtest_rc2.c",
+ "test/buildtest_dh.c",
],
- "test/buildtest_rc4" =>
+ "test/buildtest_dsa.o" =>
[
- "test/buildtest_rc4.o",
+ "test/buildtest_dsa.c",
],
- "test/buildtest_rc4.o" =>
+ "test/buildtest_dtls1.o" =>
[
- "test/buildtest_rc4.c",
+ "test/buildtest_dtls1.c",
],
- "test/buildtest_ripemd" =>
+ "test/buildtest_e_os2.o" =>
[
- "test/buildtest_ripemd.o",
+ "test/buildtest_e_os2.c",
],
- "test/buildtest_ripemd.o" =>
+ "test/buildtest_ebcdic.o" =>
[
- "test/buildtest_ripemd.c",
+ "test/buildtest_ebcdic.c",
],
- "test/buildtest_rsa" =>
+ "test/buildtest_ec.o" =>
[
- "test/buildtest_rsa.o",
+ "test/buildtest_ec.c",
],
- "test/buildtest_rsa.o" =>
+ "test/buildtest_ecdh.o" =>
[
- "test/buildtest_rsa.c",
+ "test/buildtest_ecdh.c",
],
- "test/buildtest_safestack" =>
+ "test/buildtest_ecdsa.o" =>
[
- "test/buildtest_safestack.o",
+ "test/buildtest_ecdsa.c",
],
- "test/buildtest_safestack.o" =>
+ "test/buildtest_engine.o" =>
[
- "test/buildtest_safestack.c",
+ "test/buildtest_engine.c",
],
- "test/buildtest_seed" =>
+ "test/buildtest_evp.o" =>
[
- "test/buildtest_seed.o",
+ "test/buildtest_evp.c",
],
- "test/buildtest_seed.o" =>
+ "test/buildtest_hmac.o" =>
[
- "test/buildtest_seed.c",
+ "test/buildtest_hmac.c",
],
- "test/buildtest_sha" =>
+ "test/buildtest_idea.o" =>
[
- "test/buildtest_sha.o",
+ "test/buildtest_idea.c",
],
- "test/buildtest_sha.o" =>
+ "test/buildtest_kdf.o" =>
[
- "test/buildtest_sha.c",
+ "test/buildtest_kdf.c",
],
- "test/buildtest_srp" =>
+ "test/buildtest_lhash.o" =>
[
- "test/buildtest_srp.o",
+ "test/buildtest_lhash.c",
],
- "test/buildtest_srp.o" =>
+ "test/buildtest_md4.o" =>
[
- "test/buildtest_srp.c",
+ "test/buildtest_md4.c",
],
- "test/buildtest_srtp" =>
+ "test/buildtest_md5.o" =>
[
- "test/buildtest_srtp.o",
+ "test/buildtest_md5.c",
],
- "test/buildtest_srtp.o" =>
+ "test/buildtest_mdc2.o" =>
[
- "test/buildtest_srtp.c",
+ "test/buildtest_mdc2.c",
],
- "test/buildtest_ssl" =>
+ "test/buildtest_modes.o" =>
[
- "test/buildtest_ssl.o",
+ "test/buildtest_modes.c",
],
- "test/buildtest_ssl.o" =>
+ "test/buildtest_obj_mac.o" =>
[
- "test/buildtest_ssl.c",
+ "test/buildtest_obj_mac.c",
],
- "test/buildtest_ssl2" =>
+ "test/buildtest_objects.o" =>
[
- "test/buildtest_ssl2.o",
+ "test/buildtest_objects.c",
],
- "test/buildtest_ssl2.o" =>
+ "test/buildtest_ocsp.o" =>
[
- "test/buildtest_ssl2.c",
+ "test/buildtest_ocsp.c",
],
- "test/buildtest_stack" =>
+ "test/buildtest_opensslv.o" =>
[
- "test/buildtest_stack.o",
+ "test/buildtest_opensslv.c",
],
- "test/buildtest_stack.o" =>
+ "test/buildtest_ossl_typ.o" =>
[
- "test/buildtest_stack.c",
+ "test/buildtest_ossl_typ.c",
],
- "test/buildtest_store" =>
+ "test/buildtest_pem.o" =>
[
- "test/buildtest_store.o",
+ "test/buildtest_pem.c",
],
- "test/buildtest_store.o" =>
+ "test/buildtest_pem2.o" =>
[
- "test/buildtest_store.c",
+ "test/buildtest_pem2.c",
],
- "test/buildtest_symhacks" =>
+ "test/buildtest_pkcs12.o" =>
[
- "test/buildtest_symhacks.o",
+ "test/buildtest_pkcs12.c",
],
- "test/buildtest_symhacks.o" =>
+ "test/buildtest_pkcs7.o" =>
[
- "test/buildtest_symhacks.c",
+ "test/buildtest_pkcs7.c",
],
- "test/buildtest_tls1" =>
+ "test/buildtest_rand.o" =>
[
- "test/buildtest_tls1.o",
+ "test/buildtest_rand.c",
],
- "test/buildtest_tls1.o" =>
+ "test/buildtest_rand_drbg.o" =>
[
- "test/buildtest_tls1.c",
+ "test/buildtest_rand_drbg.c",
],
- "test/buildtest_ts" =>
+ "test/buildtest_rc2.o" =>
[
- "test/buildtest_ts.o",
+ "test/buildtest_rc2.c",
],
- "test/buildtest_ts.o" =>
+ "test/buildtest_rc4.o" =>
[
- "test/buildtest_ts.c",
+ "test/buildtest_rc4.c",
],
- "test/buildtest_txt_db" =>
+ "test/buildtest_ripemd.o" =>
[
- "test/buildtest_txt_db.o",
+ "test/buildtest_ripemd.c",
],
- "test/buildtest_txt_db.o" =>
+ "test/buildtest_rsa.o" =>
[
- "test/buildtest_txt_db.c",
+ "test/buildtest_rsa.c",
],
- "test/buildtest_ui" =>
+ "test/buildtest_safestack.o" =>
[
- "test/buildtest_ui.o",
+ "test/buildtest_safestack.c",
],
- "test/buildtest_ui.o" =>
+ "test/buildtest_seed.o" =>
[
- "test/buildtest_ui.c",
+ "test/buildtest_seed.c",
],
- "test/buildtest_whrlpool" =>
+ "test/buildtest_sha.o" =>
[
- "test/buildtest_whrlpool.o",
+ "test/buildtest_sha.c",
],
- "test/buildtest_whrlpool.o" =>
+ "test/buildtest_srp.o" =>
[
- "test/buildtest_whrlpool.c",
+ "test/buildtest_srp.c",
+ ],
+ "test/buildtest_srtp.o" =>
+ [
+ "test/buildtest_srtp.c",
],
- "test/buildtest_x509" =>
+ "test/buildtest_ssl.o" =>
[
- "test/buildtest_x509.o",
+ "test/buildtest_ssl.c",
],
- "test/buildtest_x509.o" =>
+ "test/buildtest_ssl2.o" =>
[
- "test/buildtest_x509.c",
+ "test/buildtest_ssl2.c",
],
- "test/buildtest_x509_vfy" =>
+ "test/buildtest_stack.o" =>
[
- "test/buildtest_x509_vfy.o",
+ "test/buildtest_stack.c",
],
- "test/buildtest_x509_vfy.o" =>
+ "test/buildtest_store.o" =>
[
- "test/buildtest_x509_vfy.c",
+ "test/buildtest_store.c",
],
- "test/buildtest_x509v3" =>
+ "test/buildtest_symhacks.o" =>
[
- "test/buildtest_x509v3.o",
+ "test/buildtest_symhacks.c",
+ ],
+ "test/buildtest_tls1.o" =>
+ [
+ "test/buildtest_tls1.c",
+ ],
+ "test/buildtest_ts.o" =>
+ [
+ "test/buildtest_ts.c",
+ ],
+ "test/buildtest_txt_db.o" =>
+ [
+ "test/buildtest_txt_db.c",
+ ],
+ "test/buildtest_ui.o" =>
+ [
+ "test/buildtest_ui.c",
+ ],
+ "test/buildtest_whrlpool.o" =>
+ [
+ "test/buildtest_whrlpool.c",
+ ],
+ "test/buildtest_x509.o" =>
+ [
+ "test/buildtest_x509.c",
+ ],
+ "test/buildtest_x509_vfy.o" =>
+ [
+ "test/buildtest_x509_vfy.c",
],
"test/buildtest_x509v3.o" =>
[
@@ -15094,6 +15097,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15439,6 +15443,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
@@ -15839,9 +15847,9 @@ _____
if ($reconf) {
if ($verbose) {
print 'Reconfiguring with: ', join(' ',@{$config{perlargv}}), "\n";
- foreach (sort keys %{$config{perlenv}}) {
- print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n";
- }
+ foreach (sort keys %{$config{perlenv}}) {
+ print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n";
+ }
}
chdir $here;
diff --git a/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h
index 2bfaa3f4e7e85b..3c6ad34101ddd7 100644
--- a/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux64-mips64"
-#define DATE "built on: Thu May 30 02:16:22 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:04 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/include/internal/dso_conf.h b/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/include/internal/dso_conf.h
index 18f6ac3bffad0f..252266ec2acad6 100644
--- a/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/include/internal/dso_conf.h
+++ b/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/include/internal/dso_conf.h
@@ -1,7 +1,7 @@
/* WARNING: do not edit! */
/* Generated by Makefile from crypto/include/internal/dso_conf.h.in */
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -11,9 +11,7 @@
#ifndef HEADER_DSO_CONF_H
# define HEADER_DSO_CONF_H
-
# define DSO_DLFCN
# define HAVE_DLFCN_H
# define DSO_EXTENSION ".so"
-
#endif
diff --git a/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm b/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm
index 10ece17d8b35ba..e31688fe1aceae 100644
--- a/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm
+++ b/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux64-s390x",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3246,6 +3246,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7849,7 +7850,6 @@ our %unified_info = (
".",
"crypto/include",
"include",
- "crypto",
],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
@@ -9955,6 +9955,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15158,6 +15162,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15503,6 +15508,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h
index dbffd333d87621..6d2d3ce3fd2bc9 100644
--- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux64-s390x"
-#define DATE "built on: Wed Jun 12 20:56:01 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:44 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm
index 164f7e9bb1249b..8aa79776f95c01 100644
--- a/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux64-s390x",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3246,6 +3246,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7849,7 +7850,6 @@ our %unified_info = (
".",
"crypto/include",
"include",
- "crypto",
],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
@@ -9955,6 +9955,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15158,6 +15162,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15503,6 +15508,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h
index 445909d45cf40b..34799d14b191e1 100644
--- a/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux64-s390x"
-#define DATE "built on: Wed Jun 12 20:56:04 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:49 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm b/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm
index 4ae8116e24b8c0..0a65365f26b154 100644
--- a/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "linux64-s390x",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3226,6 +3226,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7827,10 +7828,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9923,6 +9920,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15096,6 +15097,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15441,6 +15443,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h
index 683fc457ead162..e0fd887860b698 100644
--- a/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: linux64-s390x"
-#define DATE "built on: Wed Jun 12 20:56:06 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:01:53 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm
index 37fb216c9caab6..c14020e995aa16 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "solaris-x86-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1693,8 +1693,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3235,6 +3236,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4860,12 +4862,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4882,12 +4878,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7866,10 +7874,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10004,6 +10008,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10637,14 +10645,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13334,8 +13346,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15237,6 +15250,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15582,6 +15596,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h
index 7e5f29968f0319..15030d59077278 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: solaris-x86-gcc"
-#define DATE "built on: Wed Jun 12 20:56:08 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:08 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -37,11 +37,10 @@ static const char compiler_flags[] = {
'A','2','5','6','_','A','S','M',' ','-','D','S','H','A','5','1',
'2','_','A','S','M',' ','-','D','R','C','4','_','A','S','M',' ',
'-','D','M','D','5','_','A','S','M',' ','-','D','R','M','D','1',
- '6','0','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',
- ' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D','W',
- 'H','I','R','L','P','O','O','L','_','A','S','M',' ','-','D','G',
- 'H','A','S','H','_','A','S','M',' ','-','D','E','C','P','_','N',
- 'I','S','T','Z','2','5','6','_','A','S','M',' ','-','D','P','O',
- 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E',
- 'B','U','G','\0'
+ '6','0','_','A','S','M',' ','-','D','V','P','A','E','S','_','A',
+ 'S','M',' ','-','D','W','H','I','R','L','P','O','O','L','_','A',
+ 'S','M',' ','-','D','G','H','A','S','H','_','A','S','M',' ','-',
+ 'D','E','C','P','_','N','I','S','T','Z','2','5','6','_','A','S',
+ 'M',' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',
+ ' ','-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl-cl.gypi b/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl-cl.gypi
index fb2932b9cca64d..3f5a755eebce3f 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl-cl.gypi
@@ -16,7 +16,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi b/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi
index 8a9f372caec0aa..69bded9b4f426e 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_solaris-x86-gcc': [
- './config/archs/solaris-x86-gcc/asm/crypto/aes/aes-586.s',
'./config/archs/solaris-x86-gcc/asm/crypto/aes/aesni-x86.s',
'./config/archs/solaris-x86-gcc/asm/crypto/aes/vpaes-x86.s',
'./config/archs/solaris-x86-gcc/asm/crypto/bf/bf-586.s',
@@ -712,7 +713,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm
index 3adf98d2e6d32d..7663c71cf63596 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "AES_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_BN_ASM_PART_WORDS", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "RC4_ASM", "MD5_ASM", "RMD160_ASM", "VPAES_ASM", "WHIRLPOOL_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "solaris-x86-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
- aes_obj => "aes-586.o vpaes-x86.o aesni-x86.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1693,8 +1693,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -3235,6 +3236,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4860,12 +4862,6 @@ our %unified_info = (
"include",
"apps",
],
- "crypto/aes/aes-586.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/aes-armv4.o" =>
[
"crypto",
@@ -4882,12 +4878,24 @@ our %unified_info = (
[
"crypto",
],
+ "crypto/aes/aes_cbc.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_cfb.o" =>
[
".",
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -7866,10 +7874,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10004,6 +10008,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10637,14 +10645,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-586.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-586.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -13334,8 +13346,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-586.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -15237,6 +15250,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15582,6 +15596,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h
index 2e89c2e52452a9..78995b8d82a7e3 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: solaris-x86-gcc"
-#define DATE "built on: Wed Jun 12 20:56:12 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:14 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -38,11 +38,10 @@ static const char compiler_flags[] = {
'S','H','A','2','5','6','_','A','S','M',' ','-','D','S','H','A',
'5','1','2','_','A','S','M',' ','-','D','R','C','4','_','A','S',
'M',' ','-','D','M','D','5','_','A','S','M',' ','-','D','R','M',
- 'D','1','6','0','_','A','S','M',' ','-','D','A','E','S','_','A',
- 'S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-',
- 'D','W','H','I','R','L','P','O','O','L','_','A','S','M',' ','-',
- 'D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C','P',
- '_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-','D',
- 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N',
- 'D','E','B','U','G','\0'
+ 'D','1','6','0','_','A','S','M',' ','-','D','V','P','A','E','S',
+ '_','A','S','M',' ','-','D','W','H','I','R','L','P','O','O','L',
+ '_','A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M',
+ ' ','-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_',
+ 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A',
+ 'S','M',' ','-','D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl-cl.gypi
index fb2932b9cca64d..3f5a755eebce3f 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl-cl.gypi
@@ -16,7 +16,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl.gypi b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl.gypi
index 71532ed4abeed3..2e4804695fb92e 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -671,7 +673,6 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_solaris-x86-gcc': [
- './config/archs/solaris-x86-gcc/asm_avx2/crypto/aes/aes-586.s',
'./config/archs/solaris-x86-gcc/asm_avx2/crypto/aes/aesni-x86.s',
'./config/archs/solaris-x86-gcc/asm_avx2/crypto/aes/vpaes-x86.s',
'./config/archs/solaris-x86-gcc/asm_avx2/crypto/bf/bf-586.s',
@@ -712,7 +713,6 @@
'RC4_ASM',
'MD5_ASM',
'RMD160_ASM',
- 'AES_ASM',
'VPAES_ASM',
'WHIRLPOOL_ASM',
'GHASH_ASM',
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm
index be95effc73d403..b0d7b13f2220d9 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "solaris-x86-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3220,6 +3220,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7821,10 +7822,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9917,6 +9914,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15090,6 +15091,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15435,6 +15437,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h
index 378ae44c48645f..e606a3cd7599e4 100644
--- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: solaris-x86-gcc"
-#define DATE "built on: Wed Jun 12 20:56:16 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:21 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm
index ccdee274367b2b..d651ee1e5ffe7c 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)gcc",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "solaris64-x86_64-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1694,8 +1694,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1705,7 +1706,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3260,6 +3260,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4901,7 +4902,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4913,6 +4914,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4983,12 +4990,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7951,10 +7952,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10095,6 +10092,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10728,14 +10729,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10772,10 +10777,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13469,8 +13470,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13480,7 +13482,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15383,6 +15384,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15728,6 +15730,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h
index 2a445527f5408d..cc89c88b1cefa1 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: solaris64-x86_64-gcc"
-#define DATE "built on: Wed Jun 12 20:56:18 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:25 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -36,11 +36,10 @@ static const char compiler_flags[] = {
'A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M',
' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A','S',
'M',' ','-','D','R','C','4','_','A','S','M',' ','-','D','M','D',
- '5','_','A','S','M',' ','-','D','A','E','S','_','A','S','M',' ',
- '-','D','V','P','A','E','S','_','A','S','M',' ','-','D','B','S',
- 'A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H','_',
- 'A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z','2',
- '5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9','_',
- 'A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_','A',
- 'S','M',' ','-','D','N','D','E','B','U','G','\0'
+ '5','_','A','S','M',' ','-','D','V','P','A','E','S','_','A','S',
+ 'M',' ','-','D','G','H','A','S','H','_','A','S','M',' ','-','D',
+ 'E','C','P','_','N','I','S','T','Z','2','5','6','_','A','S','M',
+ ' ','-','D','X','2','5','5','1','9','_','A','S','M',' ','-','D',
+ 'P','O','L','Y','1','3','0','5','_','A','S','M',' ','-','D','N',
+ 'D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl-cl.gypi b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl-cl.gypi
index 3f1cc15d57f749..ca28a8cbd3dede 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl-cl.gypi
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl-cl.gypi
@@ -16,9 +16,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi
index 6b4f25afd2fd40..0a3feb2ad53f17 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_solaris64-x86_64-gcc': [
- './config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aes-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-x86_64.s',
- './config/archs/solaris64-x86_64-gcc/asm/crypto/aes/bsaes-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm/crypto/aes/vpaes-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-avx2.s',
'./config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm
index 6671dcb01b3f31..f10bb2324203ea 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm
@@ -48,7 +48,7 @@ our %config = (
export_var_as_fn => "0",
includes => [ ],
lflags => [ ],
- lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "AES_ASM", "VPAES_ASM", "BSAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
+ lib_defines => [ "OPENSSL_PIC", "OPENSSL_CPUID_OBJ", "OPENSSL_IA32_SSE2", "OPENSSL_BN_ASM_MONT", "OPENSSL_BN_ASM_MONT5", "OPENSSL_BN_ASM_GF2m", "SHA1_ASM", "SHA256_ASM", "SHA512_ASM", "KECCAK1600_ASM", "RC4_ASM", "MD5_ASM", "VPAES_ASM", "GHASH_ASM", "ECP_NISTZ256_ASM", "X25519_ASM", "POLY1305_ASM" ],
libdir => "",
major => "1",
makedepprog => "\$(CROSS_COMPILE)../config/fake_gcc.pl",
@@ -111,8 +111,8 @@ our %config = (
sourcedir => ".",
target => "solaris64-x86_64-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -124,8 +124,8 @@ our %target = (
RANLIB => "ranlib",
RC => "windres",
_conf_fname_int => [ "Configurations/00-base-templates.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/00-base-templates.conf", "Configurations/10-main.conf", "Configurations/shared-info.pl" ],
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
- aes_obj => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
apps_aux_src => "",
apps_init_src => "",
apps_obj => "",
@@ -1694,8 +1694,9 @@ our %unified_info = (
{
"deps" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -1705,7 +1706,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
],
"products" =>
@@ -3260,6 +3260,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -4901,7 +4902,7 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
".",
"crypto/include",
@@ -4913,6 +4914,12 @@ our %unified_info = (
"crypto/include",
"include",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ ".",
+ "crypto/include",
+ "include",
+ ],
"crypto/aes/aes_ecb.o" =>
[
".",
@@ -4983,12 +4990,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- ".",
- "crypto/include",
- "include",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
".",
@@ -7951,10 +7952,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -10095,6 +10092,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -10728,14 +10729,18 @@ our %unified_info = (
[
"apps/x509.c",
],
- "crypto/aes/aes-x86_64.o" =>
+ "crypto/aes/aes_cbc.o" =>
[
- "crypto/aes/aes-x86_64.s",
+ "crypto/aes/aes_cbc.c",
],
"crypto/aes/aes_cfb.o" =>
[
"crypto/aes/aes_cfb.c",
],
+ "crypto/aes/aes_core.o" =>
+ [
+ "crypto/aes/aes_core.c",
+ ],
"crypto/aes/aes_ecb.o" =>
[
"crypto/aes/aes_ecb.c",
@@ -10772,10 +10777,6 @@ our %unified_info = (
[
"crypto/aes/aesni-x86_64.s",
],
- "crypto/aes/bsaes-x86_64.o" =>
- [
- "crypto/aes/bsaes-x86_64.s",
- ],
"crypto/aes/vpaes-x86_64.o" =>
[
"crypto/aes/vpaes-x86_64.s",
@@ -13469,8 +13470,9 @@ our %unified_info = (
],
"libcrypto" =>
[
- "crypto/aes/aes-x86_64.o",
+ "crypto/aes/aes_cbc.o",
"crypto/aes/aes_cfb.o",
+ "crypto/aes/aes_core.o",
"crypto/aes/aes_ecb.o",
"crypto/aes/aes_ige.o",
"crypto/aes/aes_misc.o",
@@ -13480,7 +13482,6 @@ our %unified_info = (
"crypto/aes/aesni-sha1-x86_64.o",
"crypto/aes/aesni-sha256-x86_64.o",
"crypto/aes/aesni-x86_64.o",
- "crypto/aes/bsaes-x86_64.o",
"crypto/aes/vpaes-x86_64.o",
"crypto/aria/aria.o",
"crypto/asn1/a_bitstr.o",
@@ -15383,6 +15384,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15728,6 +15730,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h
index 520fa202d728df..c7f32e0bb8b008 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: solaris64-x86_64-gcc"
-#define DATE "built on: Wed Jun 12 20:56:28 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:40 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
@@ -37,11 +37,10 @@ static const char compiler_flags[] = {
'6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A',
'S','M',' ','-','D','K','E','C','C','A','K','1','6','0','0','_',
'A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D',
- 'M','D','5','_','A','S','M',' ','-','D','A','E','S','_','A','S',
- 'M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D',
- 'B','S','A','E','S','_','A','S','M',' ','-','D','G','H','A','S',
- 'H','_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T',
- 'Z','2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1',
- '9','_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5',
- '_','A','S','M',' ','-','D','N','D','E','B','U','G','\0'
+ 'M','D','5','_','A','S','M',' ','-','D','V','P','A','E','S','_',
+ 'A','S','M',' ','-','D','G','H','A','S','H','_','A','S','M',' ',
+ '-','D','E','C','P','_','N','I','S','T','Z','2','5','6','_','A',
+ 'S','M',' ','-','D','X','2','5','5','1','9','_','A','S','M',' ',
+ '-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ','-',
+ 'D','N','D','E','B','U','G','\0'
};
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl-cl.gypi b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl-cl.gypi
index 3f1cc15d57f749..ca28a8cbd3dede 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl-cl.gypi
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl-cl.gypi
@@ -16,9 +16,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl.gypi b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl.gypi
index 62c6704228678c..a634c666572987 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl.gypi
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/openssl.gypi
@@ -45,7 +45,9 @@
'openssl/ssl/t1_trce.c',
'openssl/ssl/tls13_enc.c',
'openssl/ssl/tls_srp.c',
+ 'openssl/crypto/aes/aes_cbc.c',
'openssl/crypto/aes/aes_cfb.c',
+ 'openssl/crypto/aes/aes_core.c',
'openssl/crypto/aes/aes_ecb.c',
'openssl/crypto/aes/aes_ige.c',
'openssl/crypto/aes/aes_misc.c',
@@ -675,12 +677,10 @@
'openssl/engines/e_padlock.c',
],
'openssl_sources_solaris64-x86_64-gcc': [
- './config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/aes/aes-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/aes/aesni-mb-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/aes/aesni-sha1-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/aes/aesni-sha256-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/aes/aesni-x86_64.s',
- './config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/aes/bsaes-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/aes/vpaes-x86_64.s',
'./config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/bn/rsaz-avx2.s',
'./config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/bn/rsaz-x86_64.s',
@@ -723,9 +723,7 @@
'KECCAK1600_ASM',
'RC4_ASM',
'MD5_ASM',
- 'AES_ASM',
'VPAES_ASM',
- 'BSAES_ASM',
'GHASH_ASM',
'ECP_NISTZ256_ASM',
'X25519_ASM',
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm
index 79ed1305fa5e2b..50438e79f77475 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm
@@ -110,8 +110,8 @@ our %config = (
sourcedir => ".",
target => "solaris64-x86_64-gcc",
tdirs => [ "ossl_shim" ],
- version => "1.1.1c",
- version_num => "0x1010103fL",
+ version => "1.1.1d",
+ version_num => "0x1010104fL",
);
our %target = (
@@ -3222,6 +3222,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -7823,10 +7824,6 @@ our %unified_info = (
[
"crypto",
],
- "crypto/poly1305/poly1305-s390x.o" =>
- [
- "crypto",
- ],
"crypto/poly1305/poly1305-sparcv9.o" =>
[
"crypto",
@@ -9919,6 +9916,10 @@ our %unified_info = (
[
"include",
],
+ "test/testutil/random.o" =>
+ [
+ "include",
+ ],
"test/testutil/stanza.o" =>
[
"include",
@@ -15092,6 +15093,7 @@ our %unified_info = (
"test/testutil/init.o",
"test/testutil/main.o",
"test/testutil/output_helpers.o",
+ "test/testutil/random.o",
"test/testutil/stanza.o",
"test/testutil/tap_bio.o",
"test/testutil/test_cleanup.o",
@@ -15437,6 +15439,10 @@ our %unified_info = (
[
"test/testutil/output_helpers.c",
],
+ "test/testutil/random.o" =>
+ [
+ "test/testutil/random.c",
+ ],
"test/testutil/stanza.o" =>
[
"test/testutil/stanza.c",
diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h
index c2dadd29d23e56..ae3b2d62e6e569 100644
--- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h
+++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h
@@ -11,7 +11,7 @@
*/
#define PLATFORM "platform: solaris64-x86_64-gcc"
-#define DATE "built on: Wed Jun 12 20:56:38 2019 UTC"
+#define DATE "built on: Fri Sep 13 16:02:54 2019 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
diff --git a/deps/openssl/openssl/CHANGES b/deps/openssl/openssl/CHANGES
index c8662c392a7ff9..c6ca3439480e94 100644
--- a/deps/openssl/openssl/CHANGES
+++ b/deps/openssl/openssl/CHANGES
@@ -7,6 +7,101 @@
https://github.com/openssl/openssl/commits/ and pick the appropriate
release branch.
+ Changes between 1.1.1c and 1.1.1d [10 Sep 2019]
+
+ *) Fixed a fork protection issue. OpenSSL 1.1.1 introduced a rewritten random
+ number generator (RNG). This was intended to include protection in the
+ event of a fork() system call in order to ensure that the parent and child
+ processes did not share the same RNG state. However this protection was not
+ being used in the default case.
+
+ A partial mitigation for this issue is that the output from a high
+ precision timer is mixed into the RNG state so the likelihood of a parent
+ and child process sharing state is significantly reduced.
+
+ If an application already calls OPENSSL_init_crypto() explicitly using
+ OPENSSL_INIT_ATFORK then this problem does not occur at all.
+ (CVE-2019-1549)
+ [Matthias St. Pierre]
+
+ *) For built-in EC curves, ensure an EC_GROUP built from the curve name is
+ used even when parsing explicit parameters, when loading a serialized key
+ or calling `EC_GROUP_new_from_ecpkparameters()`/
+ `EC_GROUP_new_from_ecparameters()`.
+ This prevents bypass of security hardening and performance gains,
+ especially for curves with specialized EC_METHODs.
+ By default, if a key encoded with explicit parameters is loaded and later
+ serialized, the output is still encoded with explicit parameters, even if
+ internally a "named" EC_GROUP is used for computation.
+ [Nicola Tuveri]
+
+ *) Compute ECC cofactors if not provided during EC_GROUP construction. Before
+ this change, EC_GROUP_set_generator would accept order and/or cofactor as
+ NULL. After this change, only the cofactor parameter can be NULL. It also
+ does some minimal sanity checks on the passed order.
+ (CVE-2019-1547)
+ [Billy Bob Brumley]
+
+ *) Fixed a padding oracle in PKCS7_dataDecode and CMS_decrypt_set1_pkey.
+ An attack is simple, if the first CMS_recipientInfo is valid but the
+ second CMS_recipientInfo is chosen ciphertext. If the second
+ recipientInfo decodes to PKCS #1 v1.5 form plaintext, the correct
+ encryption key will be replaced by garbage, and the message cannot be
+ decoded, but if the RSA decryption fails, the correct encryption key is
+ used and the recipient will not notice the attack.
+ As a work around for this potential attack the length of the decrypted
+ key must be equal to the cipher default key length, in case the
+ certifiate is not given and all recipientInfo are tried out.
+ The old behaviour can be re-enabled in the CMS code by setting the
+ CMS_DEBUG_DECRYPT flag.
+ (CVE-2019-1563)
+ [Bernd Edlinger]
+
+ *) Early start up entropy quality from the DEVRANDOM seed source has been
+ improved for older Linux systems. The RAND subsystem will wait for
+ /dev/random to be producing output before seeding from /dev/urandom.
+ The seeded state is stored for future library initialisations using
+ a system global shared memory segment. The shared memory identifier
+ can be configured by defining OPENSSL_RAND_SEED_DEVRANDOM_SHM_ID to
+ the desired value. The default identifier is 114.
+ [Paul Dale]
+
+ *) Correct the extended master secret constant on EBCDIC systems. Without this
+ fix TLS connections between an EBCDIC system and a non-EBCDIC system that
+ negotiate EMS will fail. Unfortunately this also means that TLS connections
+ between EBCDIC systems with this fix, and EBCDIC systems without this
+ fix will fail if they negotiate EMS.
+ [Matt Caswell]
+
+ *) Use Windows installation paths in the mingw builds
+
+ Mingw isn't a POSIX environment per se, which means that Windows
+ paths should be used for installation.
+ (CVE-2019-1552)
+ [Richard Levitte]
+
+ *) Changed DH_check to accept parameters with order q and 2q subgroups.
+ With order 2q subgroups the bit 0 of the private key is not secret
+ but DH_generate_key works around that by clearing bit 0 of the
+ private key for those. This avoids leaking bit 0 of the private key.
+ [Bernd Edlinger]
+
+ *) Significantly reduce secure memory usage by the randomness pools.
+ [Paul Dale]
+
+ *) Revert the DEVRANDOM_WAIT feature for Linux systems
+
+ The DEVRANDOM_WAIT feature added a select() call to wait for the
+ /dev/random device to become readable before reading from the
+ /dev/urandom device.
+
+ It turned out that this change had negative side effects on
+ performance which were not acceptable. After some discussion it
+ was decided to revert this feature and leave it up to the OS
+ resp. the platform maintainer to ensure a proper initialization
+ during early boot time.
+ [Matthias St. Pierre]
+
Changes between 1.1.1b and 1.1.1c [28 May 2019]
*) Add build tests for C++. These are generated files that only do one
@@ -75,6 +170,16 @@
(CVE-2019-1543)
[Matt Caswell]
+ *) Add DEVRANDOM_WAIT feature for Linux systems
+
+ On older Linux systems where the getrandom() system call is not available,
+ OpenSSL normally uses the /dev/urandom device for seeding its CSPRNG.
+ Contrary to getrandom(), the /dev/urandom device will not block during
+ early boot when the kernel CSPRNG has not been seeded yet.
+
+ To mitigate this known weakness, use select() to wait for /dev/random to
+ become readable before reading from /dev/urandom.
+
*) Ensure that SM2 only uses SM3 as digest algorithm
[Paul Yang]
@@ -322,7 +427,7 @@
SSL_set_ciphersuites()
[Matt Caswell]
- *) Memory allocation failures consistenly add an error to the error
+ *) Memory allocation failures consistently add an error to the error
stack.
[Rich Salz]
@@ -6860,7 +6965,7 @@
reason texts, thereby removing some of the footprint that may not
be interesting if those errors aren't displayed anyway.
- NOTE: it's still possible for any application or module to have it's
+ NOTE: it's still possible for any application or module to have its
own set of error texts inserted. The routines are there, just not
used by default when no-err is given.
[Richard Levitte]
@@ -8826,7 +8931,7 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
Changes between 0.9.6g and 0.9.6h [5 Dec 2002]
*) New function OPENSSL_cleanse(), which is used to cleanse a section of
- memory from it's contents. This is done with a counter that will
+ memory from its contents. This is done with a counter that will
place alternating values in each byte. This can be used to solve
two issues: 1) the removal of calls to memset() by highly optimizing
compilers, and 2) cleansing with other values than 0, since those can
diff --git a/deps/openssl/openssl/Configurations/00-base-templates.conf b/deps/openssl/openssl/Configurations/00-base-templates.conf
index 5fd995cb3392eb..e01dc63a8bf408 100644
--- a/deps/openssl/openssl/Configurations/00-base-templates.conf
+++ b/deps/openssl/openssl/Configurations/00-base-templates.conf
@@ -198,7 +198,7 @@ my %targets=(
bn_asm_src => "bn-586.s co-586.s x86-mont.s x86-gf2m.s",
ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86.s",
des_asm_src => "des-586.s crypt586.s",
- aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
bf_asm_src => "bf-586.s",
md5_asm_src => "md5-586.s",
cast_asm_src => "cast-586.s",
@@ -223,7 +223,7 @@ my %targets=(
cpuid_asm_src => "x86_64cpuid.s",
bn_asm_src => "asm/x86_64-gcc.c x86_64-mont.s x86_64-mont5.s x86_64-gf2m.s rsaz_exp.c rsaz-x86_64.s rsaz-avx2.s",
ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86_64.s x25519-x86_64.s",
- aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
+ aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
md5_asm_src => "md5-x86_64.s",
sha1_asm_src => "sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s sha1-mb-x86_64.s sha256-mb-x86_64.s",
rc4_asm_src => "rc4-x86_64.s rc4-md5-x86_64.s",
diff --git a/deps/openssl/openssl/Configurations/10-main.conf b/deps/openssl/openssl/Configurations/10-main.conf
index 930f2d3c920d7f..3c4299d2640488 100644
--- a/deps/openssl/openssl/Configurations/10-main.conf
+++ b/deps/openssl/openssl/Configurations/10-main.conf
@@ -1111,7 +1111,7 @@ my %targets = (
thread_scheme => "pthreads",
dso_scheme => "dlfcn",
shared_target => "self",
- module_ldflags => "-Wl,-G,-bsymbolic,-bexpall",
+ module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
shared_ldflag => "-Wl,-G,-bsymbolic,-bnoentry",
shared_defflag => "-Wl,-bE:",
shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
@@ -1397,6 +1397,10 @@ my %targets = (
shared_extension => ".dll",
multilib => "",
apps_aux_src => add("win32_init.c"),
+ # "WOW" stands for "Windows on Windows", and that word engages
+ # some installation path heuristics in unix-Makefile.tmpl...
+ build_scheme => add("WOW", { separator => undef }),
+
},
"mingw64" => {
# As for OPENSSL_USE_APPLINK. Applink makes it possible to use
diff --git a/deps/openssl/openssl/Configurations/15-ios.conf b/deps/openssl/openssl/Configurations/15-ios.conf
index 1bb9f48d065052..f404077fda0370 100644
--- a/deps/openssl/openssl/Configurations/15-ios.conf
+++ b/deps/openssl/openssl/Configurations/15-ios.conf
@@ -1,6 +1,6 @@
#### iPhoneOS/iOS
#
-# It takes recent enough XCode to use following two targets. It shouldn't
+# It takes recent enough Xcode to use following two targets. It shouldn't
# be a problem by now, but if they don't work, original targets below
# that depend on manual definition of environment variables should still
# work...
diff --git a/deps/openssl/openssl/Configurations/50-win-onecore.conf b/deps/openssl/openssl/Configurations/50-win-onecore.conf
index 51cb3819cb9907..d478f42b0f8d2b 100644
--- a/deps/openssl/openssl/Configurations/50-win-onecore.conf
+++ b/deps/openssl/openssl/Configurations/50-win-onecore.conf
@@ -1,6 +1,6 @@
# Windows OneCore targets.
#
-# OneCore is new API stability "contract" that transends Desktop, IoT and
+# OneCore is new API stability "contract" that transcends Desktop, IoT and
# Mobile[?] Windows editions. It's a set up "umbrella" libraries that
# export subset of Win32 API that are common to all Windows 10 devices.
#
diff --git a/deps/openssl/openssl/Configurations/common0.tmpl b/deps/openssl/openssl/Configurations/common0.tmpl
index 03acb3e0b35bd9..852b1fb3e8a03c 100644
--- a/deps/openssl/openssl/Configurations/common0.tmpl
+++ b/deps/openssl/openssl/Configurations/common0.tmpl
@@ -22,7 +22,7 @@
our @generated =
sort ( ( grep { defined $unified_info{generate}->{$_} }
sort keys %generatables ),
- # Scripts are assumed to be generated, so add thhem too
+ # Scripts are assumed to be generated, so add them too
( grep { defined $unified_info{sources}->{$_} }
@{$unified_info{scripts}} ) );
diff --git a/deps/openssl/openssl/Configurations/unix-Makefile.tmpl b/deps/openssl/openssl/Configurations/unix-Makefile.tmpl
index 1292053546f5f6..7db7578a4b64ab 100644
--- a/deps/openssl/openssl/Configurations/unix-Makefile.tmpl
+++ b/deps/openssl/openssl/Configurations/unix-Makefile.tmpl
@@ -14,6 +14,26 @@
our $dsoext = $target{dso_extension} || ".so";
our $makedepprog = $disabled{makedepend} ? undef : $config{makedepprog};
+ # $mingw_installroot and $mingw_commonroot is relevant for mingw only.
+ my $build_scheme = $target{build_scheme};
+ my $install_flavour = $build_scheme->[$#$build_scheme]; # last element
+ my $mingw_installenv = $install_flavour eq "WOW" ? "ProgramFiles(x86)"
+ : "ProgramW6432";
+ my $mingw_commonenv = $install_flavour eq "WOW" ? "CommonProgramFiles(x86)"
+ : "CommonProgramW6432";
+ our $mingw_installroot =
+ defined($ENV{$mingw_installenv}) ? $mingw_installenv : 'ProgramFiles';
+ our $mingw_commonroot =
+ defined($ENV{$mingw_commonenv}) ? $mingw_commonenv : 'CommonProgramFiles';
+ my $mingw_installdflt =
+ $install_flavour eq "WOW" ? "C:/Program Files (x86)"
+ : "C:/Program Files";
+ my $mingw_commondflt = "$mingw_installdflt/Common Files";
+
+ # expand variables early
+ $mingw_installroot = $ENV{$mingw_installroot} // $mingw_installdflt;
+ $mingw_commonroot = $ENV{$mingw_commonroot} // $mingw_commondflt;
+
sub windowsdll { $config{target} =~ /^(?:Cygwin|mingw)/ }
# Shared AIX support is special. We put libcrypto[64].so.ver into
@@ -132,6 +152,7 @@ APPS_OPENSSL={- use File::Spec::Functions;
# Normally it is left empty.
DESTDIR=
+{- output_off() if $config{target} =~ /^mingw/; "" -}
# Do not edit these manually. Use Configure with --prefix or --openssldir
# to change this! Short explanation in the top comment in Configure
INSTALLTOP={- # $prefix is used in the OPENSSLDIR perl snippet
@@ -175,6 +196,83 @@ ENGINESDIR=$(libdir)/engines-{- $sover_dirname -}
# Convenience variable for those who want to set the rpath in shared
# libraries and applications
LIBRPATH=$(libdir)
+{- output_on() if $config{target} =~ /^mingw/;
+ output_off() if $config{target} !~ /^mingw/;
+ "" -}
+# Do not edit these manually. Use Configure with --prefix or --openssldir
+# to change this! Short explanation in the top comment in Configure
+INSTALLTOP_dev={- # $prefix is used in the OPENSSLDIR perl snippet
+ #
+ use File::Spec::Win32;
+ my $prefix_default = "$mingw_installroot/OpenSSL";
+ our $prefix =
+ File::Spec::Win32->canonpath($config{prefix}
+ || $prefix_default);
+ our ($prefix_dev, $prefix_dir, $prefix_file) =
+ File::Spec::Win32->splitpath($prefix, 1);
+ $prefix =~ s|\\|/|g;
+ $prefix_dir =~ s|\\|/|g;
+ $prefix_dev -}
+INSTALLTOP_dir={- my $x = File::Spec::Win32->canonpath($prefix_dir);
+ $x =~ s|\\|/|g;
+ $x -}
+OPENSSLDIR_dev={- #
+ # The logic here is that if no --openssldir was given,
+ # OPENSSLDIR will get the value "$mingw_commonroot/SSL".
+ # If --openssldir was given and the value is an absolute
+ # path, OPENSSLDIR will get its value without change.
+ # If the value from --openssldir is a relative path,
+ # OPENSSLDIR will get $prefix with the --openssldir
+ # value appended as a subdirectory.
+ #
+ use File::Spec::Win32;
+ our $openssldir =
+ $config{openssldir} ?
+ (File::Spec::Win32->file_name_is_absolute($config{openssldir}) ?
+ File::Spec::Win32->canonpath($config{openssldir})
+ : File::Spec::Win32->catdir($prefix, $config{openssldir}))
+ : File::Spec::Win32->canonpath("$mingw_commonroot/SSL");
+ our ($openssldir_dev, $openssldir_dir, $openssldir_file) =
+ File::Spec::Win32->splitpath($openssldir, 1);
+ $openssldir =~ s|\\|/|g;
+ $openssldir_dir =~ s|\\|/|g;
+ $openssldir_dev -}
+OPENSSLDIR_dir={- my $x = File::Spec::Win32->canonpath($openssldir_dir);
+ $x =~ s|\\|/|g;
+ $x -}
+LIBDIR={- our $libdir = $config{libdir} || "lib";
+ File::Spec::Win32->file_name_is_absolute($libdir) ? "" : $libdir -}
+ENGINESDIR_dev={- use File::Spec::Win32;
+ our $enginesdir =
+ File::Spec::Win32->catdir($prefix,$libdir,
+ "engines-$sover_dirname");
+ our ($enginesdir_dev, $enginesdir_dir, $enginesdir_file) =
+ File::Spec::Win32->splitpath($enginesdir, 1);
+ $enginesdir =~ s|\\|/|g;
+ $enginesdir_dir =~ s|\\|/|g;
+ $enginesdir_dev -}
+ENGINESDIR_dir={- my $x = File::Spec::Win32->canonpath($enginesdir_dir);
+ $x =~ s|\\|/|g;
+ $x -}
+# In a Windows environment, $(DESTDIR) is harder to contatenate with other
+# directory variables, because both may contain devices. What we do here is
+# to adapt INSTALLTOP, OPENSSLDIR and ENGINESDIR depending on if $(DESTDIR)
+# has a value or not, to ensure that concatenation will always work further
+# down.
+ifneq "$(DESTDIR)" ""
+INSTALLTOP=$(INSTALLTOP_dir)
+OPENSSLDIR=$(OPENSSLDIR_dir)
+ENGINESDIR=$(ENGINESDIR_dir)
+else
+INSTALLTOP=$(INSTALLTOP_dev)$(INSTALLTOP_dir)
+OPENSSLDIR=$(OPENSSLDIR_dev)$(OPENSSLDIR_dir)
+ENGINESDIR=$(ENGINESDIR_dev)$(ENGINESDIR_dir)
+endif
+
+# $(libdir) is chosen to be compatible with the GNU coding standards
+libdir={- File::Spec::Win32->file_name_is_absolute($libdir)
+ ? $libdir : '$(INSTALLTOP)/$(LIBDIR)' -}
+{- output_on() if $config{target} !~ /^mingw/; "" -}
MANDIR=$(INSTALLTOP)/share/man
DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME)
@@ -418,13 +516,13 @@ libclean:
clean: libclean
$(RM) $(PROGRAMS) $(TESTPROGS) $(ENGINES) $(SCRIPTS)
$(RM) $(GENERATED_MANDATORY) $(GENERATED)
- -$(RM) `find . -name .git -prune -o -name '*{- $depext -}' -print`
- -$(RM) `find . -name .git -prune -o -name '*{- $objext -}' -print`
+ -$(RM) `find . -name '*{- $depext -}' \! -name '.*' -print`
+ -$(RM) `find . -name '*{- $objext -}' \! -name '.*' -print`
$(RM) core
$(RM) tags TAGS doc-nits
$(RM) -r test/test-runs
$(RM) openssl.pc libcrypto.pc libssl.pc
- -$(RM) `find . -name .git -prune -o -type l -print`
+ -$(RM) `find . -type l \! -name '.*' -print`
$(RM) $(TARFILE)
distclean: clean
@@ -449,7 +547,7 @@ uninstall_sw: uninstall_runtime uninstall_engines uninstall_dev
install_docs: install_man_docs install_html_docs
uninstall_docs: uninstall_man_docs uninstall_html_docs
- $(RM) -r -v $(DESTDIR)$(DOCDIR)
+ $(RM) -r $(DESTDIR)$(DOCDIR)
install_ssldirs:
@$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/certs
diff --git a/deps/openssl/openssl/Configure b/deps/openssl/openssl/Configure
index 254b04c95d95d9..5a699836f32a09 100755
--- a/deps/openssl/openssl/Configure
+++ b/deps/openssl/openssl/Configure
@@ -87,9 +87,6 @@ my $usage="Usage: Configure [no- ...] [enable- ...] [-Dxxx] [-lx
# linked openssl executable has rather debugging value than
# production quality.
#
-# DEBUG_SAFESTACK use type-safe stacks to enforce type-safety on stack items
-# provided to stack calls. Generates unique stack functions for
-# each possible stack type.
# BN_LLONG use the type 'long long' in crypto/bn/bn.h
# RC4_CHAR use 'char' instead of 'int' for RC4_INT in crypto/rc4/rc4.h
# Following are set automatically by this script
@@ -145,13 +142,13 @@ my @gcc_devteam_warn = qw(
# -Wunused-macros -- no, too tricky for BN and _XOPEN_SOURCE etc
# -Wextended-offsetof -- no, needed in CMS ASN1 code
my @clang_devteam_warn = qw(
+ -Wno-unknown-warning-option
-Wswitch-default
-Wno-parentheses-equality
-Wno-language-extension-token
-Wno-extended-offsetof
-Wconditional-uninitialized
-Wincompatible-pointer-types-discards-qualifiers
- -Wno-unknown-warning-option
-Wmissing-variable-declarations
);
diff --git a/deps/openssl/openssl/INSTALL b/deps/openssl/openssl/INSTALL
index 0b6a3fd1ec399a..2119cbae9e597d 100644
--- a/deps/openssl/openssl/INSTALL
+++ b/deps/openssl/openssl/INSTALL
@@ -98,6 +98,9 @@
$ nmake test
$ nmake install
+ Note that in order to perform the install step above you need to have
+ appropriate permissions to write to the installation directory.
+
If any of these steps fails, see section Installation in Detail below.
This will build and install OpenSSL in the default location, which is:
@@ -107,6 +110,12 @@
OpenSSL version number with underscores instead of periods.
Windows: C:\Program Files\OpenSSL or C:\Program Files (x86)\OpenSSL
+ The installation directory should be appropriately protected to ensure
+ unprivileged users cannot make changes to OpenSSL binaries or files, or install
+ engines. If you already have a pre-installed version of OpenSSL as part of
+ your Operating System it is recommended that you do not overwrite the system
+ version and instead install to somewhere else.
+
If you want to install it anywhere else, run config like this:
On Unix:
@@ -135,7 +144,10 @@
Don't build with support for deprecated APIs below the
specified version number. For example "--api=1.1.0" will
remove support for all APIS that were deprecated in OpenSSL
- version 1.1.0 or below.
+ version 1.1.0 or below. This is a rather specialized option
+ for developers. If you just intend to remove all deprecated
+ APIs entirely (up to the current version), it is easier
+ to add the 'no-deprecated' option instead (see below).
--cross-compile-prefix=PREFIX
The PREFIX to include in front of commands for your
@@ -229,7 +241,7 @@
source exists.
getrandom: Use the L or equivalent system
call.
- devrandom: Use the the first device from the DEVRANDOM list
+ devrandom: Use the first device from the DEVRANDOM list
which can be opened to read random bytes. The
DEVRANDOM preprocessor constant expands to
"/dev/urandom","/dev/random","/dev/srandom" on
@@ -908,8 +920,11 @@
$ mms install ! OpenVMS
$ nmake install # Windows
- This will install all the software components in this directory
- tree under PREFIX (the directory given with --prefix or its
+ Note that in order to perform the install step above you need to have
+ appropriate permissions to write to the installation directory.
+
+ The above commands will install all the software components in this
+ directory tree under PREFIX (the directory given with --prefix or its
default):
Unix:
@@ -965,6 +980,12 @@
for private key files.
misc Various scripts.
+ The installation directory should be appropriately protected to ensure
+ unprivileged users cannot make changes to OpenSSL binaries or files, or
+ install engines. If you already have a pre-installed version of OpenSSL as
+ part of your Operating System it is recommended that you do not overwrite
+ the system version and instead install to somewhere else.
+
Package builders who want to configure the library for standard
locations, but have the package installed somewhere else so that
it can easily be packaged, can use
diff --git a/deps/openssl/openssl/NEWS b/deps/openssl/openssl/NEWS
index 0e38f69dbbaad8..1c88dee35389bb 100644
--- a/deps/openssl/openssl/NEWS
+++ b/deps/openssl/openssl/NEWS
@@ -5,6 +5,23 @@
This file gives a brief overview of the major changes between each OpenSSL
release. For more details please read the CHANGES file.
+ Major changes between OpenSSL 1.1.1c and OpenSSL 1.1.1d [10 Sep 2019]
+
+ o Fixed a fork protection issue (CVE-2019-1549)
+ o Fixed a padding oracle in PKCS7_dataDecode and CMS_decrypt_set1_pkey
+ (CVE-2019-1563)
+ o For built-in EC curves, ensure an EC_GROUP built from the curve name is
+ used even when parsing explicit parameters
+ o Compute ECC cofactors if not provided during EC_GROUP construction
+ (CVE-2019-1547)
+ o Early start up entropy quality from the DEVRANDOM seed source has been
+ improved for older Linux systems
+ o Correct the extended master secret constant on EBCDIC systems
+ o Use Windows installation paths in the mingw builds (CVE-2019-1552)
+ o Changed DH_check to accept parameters with order q and 2q subgroups
+ o Significantly reduce secure memory usage by the randomness pools
+ o Revert the DEVRANDOM_WAIT feature for Linux systems
+
Major changes between OpenSSL 1.1.1b and OpenSSL 1.1.1c [28 May 2019]
o Prevent over long nonces in ChaCha20-Poly1305 (CVE-2019-1543)
@@ -601,7 +618,7 @@
Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i [14 Oct 2005]:
- o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build.
+ o Give EVP_MAX_MD_SIZE its old value, except for a FIPS build.
Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h [11 Oct 2005]:
diff --git a/deps/openssl/openssl/NOTES.WIN b/deps/openssl/openssl/NOTES.WIN
index 4d39d06f32ad10..b1cb542d09085e 100644
--- a/deps/openssl/openssl/NOTES.WIN
+++ b/deps/openssl/openssl/NOTES.WIN
@@ -109,6 +109,21 @@
This naturally implies that you've installed corresponding add-on
packages.
+ Independently of the method chosen to build for mingw, the installation
+ paths are similar to those used when building with VC-* targets, except
+ that in case the fallbacks mentioned there aren't possible (typically
+ when cross compiling on Linux), the paths will be the following:
+
+ For mingw:
+
+ PREFIX: C:/Program Files (x86)/OpenSSL
+ OPENSSLDIR C:/Program Files (x86)/Common Files/SSL
+
+ For mingw64:
+
+ PREFIX: C:/Program Files/OpenSSL
+ OPENSSLDIR C:/Program Files/Common Files/SSL
+
Linking your application
========================
diff --git a/deps/openssl/openssl/README b/deps/openssl/openssl/README
index 29757157c3841b..51bb4789be2a9a 100644
--- a/deps/openssl/openssl/README
+++ b/deps/openssl/openssl/README
@@ -1,5 +1,5 @@
- OpenSSL 1.1.1c 28 May 2019
+ OpenSSL 1.1.1d 10 Sep 2019
Copyright (c) 1998-2019 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
diff --git a/deps/openssl/openssl/apps/apps.c b/deps/openssl/openssl/apps/apps.c
index 36cb0b27833780..7177c5d9826612 100644
--- a/deps/openssl/openssl/apps/apps.c
+++ b/deps/openssl/openssl/apps/apps.c
@@ -40,7 +40,6 @@
#endif
#include
#include
-#include "s_apps.h"
#include "apps.h"
#ifdef _WIN32
@@ -48,6 +47,14 @@ static int WIN32_rename(const char *from, const char *to);
# define rename(from,to) WIN32_rename((from),(to))
#endif
+#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
+# include
+#endif
+
+#if defined(OPENSSL_SYS_MSDOS) && !defined(_WIN32)
+# define _kbhit kbhit
+#endif
+
typedef struct {
const char *name;
unsigned long flag;
diff --git a/deps/openssl/openssl/apps/apps.h b/deps/openssl/openssl/apps/apps.h
index d9eb650eb21197..4a3e1a88573eed 100644
--- a/deps/openssl/openssl/apps/apps.h
+++ b/deps/openssl/openssl/apps/apps.h
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -444,11 +444,9 @@ void destroy_ui_method(void);
const UI_METHOD *get_ui_method(void);
int chopup_args(ARGS *arg, char *buf);
-# ifdef HEADER_X509_H
int dump_cert_text(BIO *out, X509 *x);
void print_name(BIO *out, const char *title, X509_NAME *nm,
unsigned long lflags);
-# endif
void print_bignum_var(BIO *, const BIGNUM *, const char*,
int, unsigned char *);
void print_array(BIO *, const char *, int, const unsigned char *);
diff --git a/deps/openssl/openssl/apps/ca.c b/deps/openssl/openssl/apps/ca.c
index 69207c0662ed7f..a4a77126f2f228 100644
--- a/deps/openssl/openssl/apps/ca.c
+++ b/deps/openssl/openssl/apps/ca.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -722,7 +722,7 @@ int ca_main(int argc, char **argv)
/*****************************************************************/
if (req || gencrl) {
- if (spkac_file != NULL) {
+ if (spkac_file != NULL && outfile != NULL) {
output_der = 1;
batch = 1;
}
diff --git a/deps/openssl/openssl/apps/dgst.c b/deps/openssl/openssl/apps/dgst.c
index d158a0ccb2843a..d6f5a0e2e71253 100644
--- a/deps/openssl/openssl/apps/dgst.c
+++ b/deps/openssl/openssl/apps/dgst.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -421,7 +421,7 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
size_t len;
int i;
- for (;;) {
+ while (BIO_pending(bp) || !BIO_eof(bp)) {
i = BIO_read(bp, (char *)buf, BUFSIZE);
if (i < 0) {
BIO_printf(bio_err, "Read Error in %s\n", file);
diff --git a/deps/openssl/openssl/apps/enc.c b/deps/openssl/openssl/apps/enc.c
index de33e57a5f49a5..d1772f3eb9f25e 100644
--- a/deps/openssl/openssl/apps/enc.c
+++ b/deps/openssl/openssl/apps/enc.c
@@ -586,7 +586,7 @@ int enc_main(int argc, char **argv)
if (benc != NULL)
wbio = BIO_push(benc, wbio);
- for (;;) {
+ while (BIO_pending(rbio) || !BIO_eof(rbio)) {
inl = BIO_read(rbio, (char *)buff, bsize);
if (inl <= 0)
break;
diff --git a/deps/openssl/openssl/apps/ocsp.c b/deps/openssl/openssl/apps/ocsp.c
index 066a2e43af2b1e..5d2391816995c3 100644
--- a/deps/openssl/openssl/apps/ocsp.c
+++ b/deps/openssl/openssl/apps/ocsp.c
@@ -1416,9 +1416,11 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
*q = '\0';
/*
- * Skip "GET / HTTP..." requests often used by load-balancers
+ * Skip "GET / HTTP..." requests often used by load-balancers. Note:
+ * 'p' was incremented above to point to the first byte *after* the
+ * leading slash, so with 'GET / ' it is now an empty string.
*/
- if (p[1] == '\0')
+ if (p[0] == '\0')
goto out;
len = urldecode(p);
diff --git a/deps/openssl/openssl/apps/openssl.c b/deps/openssl/openssl/apps/openssl.c
index a872e2c5eeec8b..9648f35b028446 100644
--- a/deps/openssl/openssl/apps/openssl.c
+++ b/deps/openssl/openssl/apps/openssl.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -22,7 +22,6 @@
# include
#endif
#include
-#include "s_apps.h"
/* Needed to get the other O_xxx flags. */
#ifdef OPENSSL_SYS_VMS
# include
diff --git a/deps/openssl/openssl/apps/pkcs12.c b/deps/openssl/openssl/apps/pkcs12.c
index 719a309a860c3c..d0600b376043b8 100644
--- a/deps/openssl/openssl/apps/pkcs12.c
+++ b/deps/openssl/openssl/apps/pkcs12.c
@@ -838,7 +838,7 @@ static int alg_print(const X509_ALGOR *alg)
goto done;
}
BIO_printf(bio_err, ", Salt length: %d, Cost(N): %ld, "
- "Block size(r): %ld, Paralelizm(p): %ld",
+ "Block size(r): %ld, Parallelism(p): %ld",
ASN1_STRING_length(kdf->salt),
ASN1_INTEGER_get(kdf->costParameter),
ASN1_INTEGER_get(kdf->blockSize),
diff --git a/deps/openssl/openssl/apps/req.c b/deps/openssl/openssl/apps/req.c
index 6fd28a2aba2406..f9d6fba1094da7 100644
--- a/deps/openssl/openssl/apps/req.c
+++ b/deps/openssl/openssl/apps/req.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -881,9 +881,19 @@ int req_main(int argc, char **argv)
if (text) {
if (x509)
- X509_print_ex(out, x509ss, get_nameopt(), reqflag);
+ ret = X509_print_ex(out, x509ss, get_nameopt(), reqflag);
else
- X509_REQ_print_ex(out, req, get_nameopt(), reqflag);
+ ret = X509_REQ_print_ex(out, req, get_nameopt(), reqflag);
+
+ if (ret == 0) {
+ if (x509)
+ BIO_printf(bio_err, "Error printing certificate\n");
+ else
+ BIO_printf(bio_err, "Error printing certificate request\n");
+
+ ERR_print_errors(bio_err);
+ goto end;
+ }
}
if (subject) {
diff --git a/deps/openssl/openssl/apps/s_apps.h b/deps/openssl/openssl/apps/s_apps.h
index 0a3bc962808be2..f94e659e71e32e 100644
--- a/deps/openssl/openssl/apps/s_apps.h
+++ b/deps/openssl/openssl/apps/s_apps.h
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -9,13 +9,7 @@
#include
-#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
-# include
-#endif
-
-#if defined(OPENSSL_SYS_MSDOS) && !defined(_WIN32)
-# define _kbhit kbhit
-#endif
+#include
#define PORT "4433"
#define PROTOCOL "tcp"
@@ -24,17 +18,15 @@ typedef int (*do_server_cb)(int s, int stype, int prot, unsigned char *context);
int do_server(int *accept_sock, const char *host, const char *port,
int family, int type, int protocol, do_server_cb cb,
unsigned char *context, int naccept, BIO *bio_s_out);
-#ifdef HEADER_X509_H
+
int verify_callback(int ok, X509_STORE_CTX *ctx);
-#endif
-#ifdef HEADER_SSL_H
+
int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file);
int set_cert_key_stuff(SSL_CTX *ctx, X509 *cert, EVP_PKEY *key,
STACK_OF(X509) *chain, int build_chain);
int ssl_print_sigalgs(BIO *out, SSL *s);
int ssl_print_point_formats(BIO *out, SSL *s);
int ssl_print_groups(BIO *out, SSL *s, int noshared);
-#endif
int ssl_print_tmp_key(BIO *out, SSL *s);
int init_client(int *sock, const char *host, const char *port,
const char *bindhost, const char *bindport,
@@ -44,13 +36,11 @@ int should_retry(int i);
long bio_dump_callback(BIO *bio, int cmd, const char *argp,
int argi, long argl, long ret);
-#ifdef HEADER_SSL_H
void apps_ssl_info_callback(const SSL *s, int where, int ret);
void msg_cb(int write_p, int version, int content_type, const void *buf,
size_t len, SSL *ssl, void *arg);
void tlsext_cb(SSL *s, int client_server, int type, const unsigned char *data,
int len, void *arg);
-#endif
int generate_cookie_callback(SSL *ssl, unsigned char *cookie,
unsigned int *cookie_len);
@@ -75,7 +65,6 @@ int args_excert(int option, SSL_EXCERT **pexc);
int load_excert(SSL_EXCERT **pexc);
void print_verify_detail(SSL *s, BIO *bio);
void print_ssl_summary(SSL *s);
-#ifdef HEADER_SSL_H
int config_ctx(SSL_CONF_CTX *cctx, STACK_OF(OPENSSL_STRING) *str, SSL_CTX *ctx);
int ssl_ctx_add_crls(SSL_CTX *ctx, STACK_OF(X509_CRL) *crls,
int crl_download);
@@ -86,4 +75,3 @@ int ssl_load_stores(SSL_CTX *ctx, const char *vfyCApath,
void ssl_ctx_security_debug(SSL_CTX *ctx, int verbose);
int set_keylog_file(SSL_CTX *ctx, const char *keylog_file);
void print_ca_names(BIO *bio, SSL *s);
-#endif
diff --git a/deps/openssl/openssl/apps/s_cb.c b/deps/openssl/openssl/apps/s_cb.c
index 520323c8b05cfe..5dc1d03f28837a 100644
--- a/deps/openssl/openssl/apps/s_cb.c
+++ b/deps/openssl/openssl/apps/s_cb.c
@@ -1525,7 +1525,8 @@ void print_ca_names(BIO *bio, SSL *s)
int i;
if (sk == NULL || sk_X509_NAME_num(sk) == 0) {
- BIO_printf(bio, "---\nNo %s certificate CA names sent\n", cs);
+ if (!SSL_is_server(s))
+ BIO_printf(bio, "---\nNo %s certificate CA names sent\n", cs);
return;
}
diff --git a/deps/openssl/openssl/apps/s_client.c b/deps/openssl/openssl/apps/s_client.c
index d24d03a0166469..4873be9d00ef5f 100644
--- a/deps/openssl/openssl/apps/s_client.c
+++ b/deps/openssl/openssl/apps/s_client.c
@@ -2345,7 +2345,7 @@ int s_client_main(int argc, char **argv)
(void)BIO_flush(fbio);
/*
* The first line is the HTTP response. According to RFC 7230,
- * it's formated exactly like this:
+ * it's formatted exactly like this:
*
* HTTP/d.d ddd Reason text\r\n
*/
diff --git a/deps/openssl/openssl/apps/speed.c b/deps/openssl/openssl/apps/speed.c
index 8d4b1695d8514d..20149506cc746e 100644
--- a/deps/openssl/openssl/apps/speed.c
+++ b/deps/openssl/openssl/apps/speed.c
@@ -1790,7 +1790,7 @@ int speed_main(int argc, char **argv)
}
buflen = lengths[size_num - 1];
- if (buflen < 36) /* size of random vector in RSA bencmark */
+ if (buflen < 36) /* size of random vector in RSA benchmark */
buflen = 36;
buflen += MAX_MISALIGNMENT + 1;
loopargs[i].buf_malloc = app_malloc(buflen, "input buffer");
diff --git a/deps/openssl/openssl/apps/storeutl.c b/deps/openssl/openssl/apps/storeutl.c
index 50007f6e8b69ee..644fe28499d67c 100644
--- a/deps/openssl/openssl/apps/storeutl.c
+++ b/deps/openssl/openssl/apps/storeutl.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -125,7 +125,7 @@ int storeutl_main(int argc, char *argv[])
}
/*
* If expected wasn't set at this point, it means the map
- * isn't syncronised with the possible options leading here.
+ * isn't synchronised with the possible options leading here.
*/
OPENSSL_assert(expected != 0);
}
diff --git a/deps/openssl/openssl/config b/deps/openssl/openssl/config
index d0e31b6512ef0e..c1a94d4e42fae8 100755
--- a/deps/openssl/openssl/config
+++ b/deps/openssl/openssl/config
@@ -498,12 +498,12 @@ case "$GUESSOS" in
OUT="darwin64-x86_64-cc"
fi ;;
armv6+7-*-iphoneos)
- __CNF_CFLAGS="$__CNF_CFLAGS -arch%20armv6 -arch%20armv7"
- __CNF_CXXFLAGS="$__CNF_CXXFLAGS -arch%20armv6 -arch%20armv7"
+ __CNF_CFLAGS="$__CNF_CFLAGS -arch armv6 -arch armv7"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -arch armv6 -arch armv7"
OUT="iphoneos-cross" ;;
*-*-iphoneos)
- __CNF_CFLAGS="$__CNF_CFLAGS -arch%20${MACHINE}"
- __CNF_CXXFLAGS="$__CNF_CXXFLAGS -arch%20${MACHINE}"
+ __CNF_CFLAGS="$__CNF_CFLAGS -arch ${MACHINE}"
+ __CNF_CXXFLAGS="$__CNF_CXXFLAGS -arch ${MACHINE}"
OUT="iphoneos-cross" ;;
arm64-*-iphoneos|*-*-ios64)
OUT="ios64-cross" ;;
diff --git a/deps/openssl/openssl/crypto/aes/asm/aes-586.pl b/deps/openssl/openssl/crypto/aes/asm/aes-586.pl
deleted file mode 100755
index 29059edf8b7a6b..00000000000000
--- a/deps/openssl/openssl/crypto/aes/asm/aes-586.pl
+++ /dev/null
@@ -1,3000 +0,0 @@
-#! /usr/bin/env perl
-# Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License"). You may not use
-# this file except in compliance with the License. You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-#
-# ====================================================================
-# Written by Andy Polyakov for the OpenSSL
-# project. The module is, however, dual licensed under OpenSSL and
-# CRYPTOGAMS licenses depending on where you obtain it. For further
-# details see http://www.openssl.org/~appro/cryptogams/.
-# ====================================================================
-#
-# Version 4.3.
-#
-# You might fail to appreciate this module performance from the first
-# try. If compared to "vanilla" linux-ia32-icc target, i.e. considered
-# to be *the* best Intel C compiler without -KPIC, performance appears
-# to be virtually identical... But try to re-configure with shared
-# library support... Aha! Intel compiler "suddenly" lags behind by 30%
-# [on P4, more on others]:-) And if compared to position-independent
-# code generated by GNU C, this code performs *more* than *twice* as
-# fast! Yes, all this buzz about PIC means that unlike other hand-
-# coded implementations, this one was explicitly designed to be safe
-# to use even in shared library context... This also means that this
-# code isn't necessarily absolutely fastest "ever," because in order
-# to achieve position independence an extra register has to be
-# off-loaded to stack, which affects the benchmark result.
-#
-# Special note about instruction choice. Do you recall RC4_INT code
-# performing poorly on P4? It might be the time to figure out why.
-# RC4_INT code implies effective address calculations in base+offset*4
-# form. Trouble is that it seems that offset scaling turned to be
-# critical path... At least eliminating scaling resulted in 2.8x RC4
-# performance improvement [as you might recall]. As AES code is hungry
-# for scaling too, I [try to] avoid the latter by favoring off-by-2
-# shifts and masking the result with 0xFF<<2 instead of "boring" 0xFF.
-#
-# As was shown by Dean Gaudet, the above note turned out to be
-# void. Performance improvement with off-by-2 shifts was observed on
-# intermediate implementation, which was spilling yet another register
-# to stack... Final offset*4 code below runs just a tad faster on P4,
-# but exhibits up to 10% improvement on other cores.
-#
-# Second version is "monolithic" replacement for aes_core.c, which in
-# addition to AES_[de|en]crypt implements AES_set_[de|en]cryption_key.
-# This made it possible to implement little-endian variant of the
-# algorithm without modifying the base C code. Motivating factor for
-# the undertaken effort was that it appeared that in tight IA-32
-# register window little-endian flavor could achieve slightly higher
-# Instruction Level Parallelism, and it indeed resulted in up to 15%
-# better performance on most recent µ-archs...
-#
-# Third version adds AES_cbc_encrypt implementation, which resulted in
-# up to 40% performance improvement of CBC benchmark results. 40% was
-# observed on P4 core, where "overall" improvement coefficient, i.e. if
-# compared to PIC generated by GCC and in CBC mode, was observed to be
-# as large as 4x:-) CBC performance is virtually identical to ECB now
-# and on some platforms even better, e.g. 17.6 "small" cycles/byte on
-# Opteron, because certain function prologues and epilogues are
-# effectively taken out of the loop...
-#
-# Version 3.2 implements compressed tables and prefetch of these tables
-# in CBC[!] mode. Former means that 3/4 of table references are now
-# misaligned, which unfortunately has negative impact on elder IA-32
-# implementations, Pentium suffered 30% penalty, PIII - 10%.
-#
-# Version 3.3 avoids L1 cache aliasing between stack frame and
-# S-boxes, and 3.4 - L1 cache aliasing even between key schedule. The
-# latter is achieved by copying the key schedule to controlled place in
-# stack. This unfortunately has rather strong impact on small block CBC
-# performance, ~2x deterioration on 16-byte block if compared to 3.3.
-#
-# Version 3.5 checks if there is L1 cache aliasing between user-supplied
-# key schedule and S-boxes and abstains from copying the former if
-# there is no. This allows end-user to consciously retain small block
-# performance by aligning key schedule in specific manner.
-#
-# Version 3.6 compresses Td4 to 256 bytes and prefetches it in ECB.
-#
-# Current ECB performance numbers for 128-bit key in CPU cycles per
-# processed byte [measure commonly used by AES benchmarkers] are:
-#
-# small footprint fully unrolled
-# P4 24 22
-# AMD K8 20 19
-# PIII 25 23
-# Pentium 81 78
-#
-# Version 3.7 reimplements outer rounds as "compact." Meaning that
-# first and last rounds reference compact 256 bytes S-box. This means
-# that first round consumes a lot more CPU cycles and that encrypt
-# and decrypt performance becomes asymmetric. Encrypt performance
-# drops by 10-12%, while decrypt - by 20-25%:-( 256 bytes S-box is
-# aggressively pre-fetched.
-#
-# Version 4.0 effectively rolls back to 3.6 and instead implements
-# additional set of functions, _[x86|sse]_AES_[en|de]crypt_compact,
-# which use exclusively 256 byte S-box. These functions are to be
-# called in modes not concealing plain text, such as ECB, or when
-# we're asked to process smaller amount of data [or unconditionally
-# on hyper-threading CPU]. Currently it's called unconditionally from
-# AES_[en|de]crypt, which affects all modes, but CBC. CBC routine
-# still needs to be modified to switch between slower and faster
-# mode when appropriate... But in either case benchmark landscape
-# changes dramatically and below numbers are CPU cycles per processed
-# byte for 128-bit key.
-#
-# ECB encrypt ECB decrypt CBC large chunk
-# P4 52[54] 83[95] 23
-# AMD K8 46[41] 66[70] 18
-# PIII 41[50] 60[77] 24
-# Core 2 31[36] 45[64] 18.5
-# Atom 76[100] 96[138] 60
-# Pentium 115 150 77
-#
-# Version 4.1 switches to compact S-box even in key schedule setup.
-#
-# Version 4.2 prefetches compact S-box in every SSE round or in other
-# words every cache-line is *guaranteed* to be accessed within ~50
-# cycles window. Why just SSE? Because it's needed on hyper-threading
-# CPU! Which is also why it's prefetched with 64 byte stride. Best
-# part is that it has no negative effect on performance:-)
-#
-# Version 4.3 implements switch between compact and non-compact block
-# functions in AES_cbc_encrypt depending on how much data was asked
-# to be processed in one stroke.
-#
-######################################################################
-# Timing attacks are classified in two classes: synchronous when
-# attacker consciously initiates cryptographic operation and collects
-# timing data of various character afterwards, and asynchronous when
-# malicious code is executed on same CPU simultaneously with AES,
-# instruments itself and performs statistical analysis of this data.
-#
-# As far as synchronous attacks go the root to the AES timing
-# vulnerability is twofold. Firstly, of 256 S-box elements at most 160
-# are referred to in single 128-bit block operation. Well, in C
-# implementation with 4 distinct tables it's actually as little as 40
-# references per 256 elements table, but anyway... Secondly, even
-# though S-box elements are clustered into smaller amount of cache-
-# lines, smaller than 160 and even 40, it turned out that for certain
-# plain-text pattern[s] or simply put chosen plain-text and given key
-# few cache-lines remain unaccessed during block operation. Now, if
-# attacker can figure out this access pattern, he can deduct the key
-# [or at least part of it]. The natural way to mitigate this kind of
-# attacks is to minimize the amount of cache-lines in S-box and/or
-# prefetch them to ensure that every one is accessed for more uniform
-# timing. But note that *if* plain-text was concealed in such way that
-# input to block function is distributed *uniformly*, then attack
-# wouldn't apply. Now note that some encryption modes, most notably
-# CBC, do mask the plain-text in this exact way [secure cipher output
-# is distributed uniformly]. Yes, one still might find input that
-# would reveal the information about given key, but if amount of
-# candidate inputs to be tried is larger than amount of possible key
-# combinations then attack becomes infeasible. This is why revised
-# AES_cbc_encrypt "dares" to switch to larger S-box when larger chunk
-# of data is to be processed in one stroke. The current size limit of
-# 512 bytes is chosen to provide same [diminishingly low] probability
-# for cache-line to remain untouched in large chunk operation with
-# large S-box as for single block operation with compact S-box and
-# surely needs more careful consideration...
-#
-# As for asynchronous attacks. There are two flavours: attacker code
-# being interleaved with AES on hyper-threading CPU at *instruction*
-# level, and two processes time sharing single core. As for latter.
-# Two vectors. 1. Given that attacker process has higher priority,
-# yield execution to process performing AES just before timer fires
-# off the scheduler, immediately regain control of CPU and analyze the
-# cache state. For this attack to be efficient attacker would have to
-# effectively slow down the operation by several *orders* of magnitude,
-# by ratio of time slice to duration of handful of AES rounds, which
-# unlikely to remain unnoticed. Not to mention that this also means
-# that he would spend correspondingly more time to collect enough
-# statistical data to mount the attack. It's probably appropriate to
-# say that if adversary reckons that this attack is beneficial and
-# risks to be noticed, you probably have larger problems having him
-# mere opportunity. In other words suggested code design expects you
-# to preclude/mitigate this attack by overall system security design.
-# 2. Attacker manages to make his code interrupt driven. In order for
-# this kind of attack to be feasible, interrupt rate has to be high
-# enough, again comparable to duration of handful of AES rounds. But
-# is there interrupt source of such rate? Hardly, not even 1Gbps NIC
-# generates interrupts at such raging rate...
-#
-# And now back to the former, hyper-threading CPU or more specifically
-# Intel P4. Recall that asynchronous attack implies that malicious
-# code instruments itself. And naturally instrumentation granularity
-# has be noticeably lower than duration of codepath accessing S-box.
-# Given that all cache-lines are accessed during that time that is.
-# Current implementation accesses *all* cache-lines within ~50 cycles
-# window, which is actually *less* than RDTSC latency on Intel P4!
-
-$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-push(@INC,"${dir}","${dir}../../perlasm");
-require "x86asm.pl";
-
-$output = pop;
-open OUT,">$output";
-*STDOUT=*OUT;
-
-&asm_init($ARGV[0],$x86only = $ARGV[$#ARGV] eq "386");
-&static_label("AES_Te");
-&static_label("AES_Td");
-
-$s0="eax";
-$s1="ebx";
-$s2="ecx";
-$s3="edx";
-$key="edi";
-$acc="esi";
-$tbl="ebp";
-
-# stack frame layout in _[x86|sse]_AES_* routines, frame is allocated
-# by caller
-$__ra=&DWP(0,"esp"); # return address
-$__s0=&DWP(4,"esp"); # s0 backing store
-$__s1=&DWP(8,"esp"); # s1 backing store
-$__s2=&DWP(12,"esp"); # s2 backing store
-$__s3=&DWP(16,"esp"); # s3 backing store
-$__key=&DWP(20,"esp"); # pointer to key schedule
-$__end=&DWP(24,"esp"); # pointer to end of key schedule
-$__tbl=&DWP(28,"esp"); # %ebp backing store
-
-# stack frame layout in AES_[en|crypt] routines, which differs from
-# above by 4 and overlaps by %ebp backing store
-$_tbl=&DWP(24,"esp");
-$_esp=&DWP(28,"esp");
-
-sub _data_word() { my $i; while(defined($i=shift)) { &data_word($i,$i); } }
-
-$speed_limit=512; # chunks smaller than $speed_limit are
- # processed with compact routine in CBC mode
-$small_footprint=1; # $small_footprint=1 code is ~5% slower [on
- # recent µ-archs], but ~5 times smaller!
- # I favor compact code to minimize cache
- # contention and in hope to "collect" 5% back
- # in real-life applications...
-
-$vertical_spin=0; # shift "vertically" defaults to 0, because of
- # its proof-of-concept status...
-# Note that there is no decvert(), as well as last encryption round is
-# performed with "horizontal" shifts. This is because this "vertical"
-# implementation [one which groups shifts on a given $s[i] to form a
-# "column," unlike "horizontal" one, which groups shifts on different
-# $s[i] to form a "row"] is work in progress. It was observed to run
-# few percents faster on Intel cores, but not AMD. On AMD K8 core it's
-# whole 12% slower:-( So we face a trade-off... Shall it be resolved
-# some day? Till then the code is considered experimental and by
-# default remains dormant...
-
-sub encvert()
-{ my ($te,@s) = @_;
- my ($v0,$v1) = ($acc,$key);
-
- &mov ($v0,$s[3]); # copy s3
- &mov (&DWP(4,"esp"),$s[2]); # save s2
- &mov ($v1,$s[0]); # copy s0
- &mov (&DWP(8,"esp"),$s[1]); # save s1
-
- &movz ($s[2],&HB($s[0]));
- &and ($s[0],0xFF);
- &mov ($s[0],&DWP(0,$te,$s[0],8)); # s0>>0
- &shr ($v1,16);
- &mov ($s[3],&DWP(3,$te,$s[2],8)); # s0>>8
- &movz ($s[1],&HB($v1));
- &and ($v1,0xFF);
- &mov ($s[2],&DWP(2,$te,$v1,8)); # s0>>16
- &mov ($v1,$v0);
- &mov ($s[1],&DWP(1,$te,$s[1],8)); # s0>>24
-
- &and ($v0,0xFF);
- &xor ($s[3],&DWP(0,$te,$v0,8)); # s3>>0
- &movz ($v0,&HB($v1));
- &shr ($v1,16);
- &xor ($s[2],&DWP(3,$te,$v0,8)); # s3>>8
- &movz ($v0,&HB($v1));
- &and ($v1,0xFF);
- &xor ($s[1],&DWP(2,$te,$v1,8)); # s3>>16
- &mov ($v1,&DWP(4,"esp")); # restore s2
- &xor ($s[0],&DWP(1,$te,$v0,8)); # s3>>24
-
- &mov ($v0,$v1);
- &and ($v1,0xFF);
- &xor ($s[2],&DWP(0,$te,$v1,8)); # s2>>0
- &movz ($v1,&HB($v0));
- &shr ($v0,16);
- &xor ($s[1],&DWP(3,$te,$v1,8)); # s2>>8
- &movz ($v1,&HB($v0));
- &and ($v0,0xFF);
- &xor ($s[0],&DWP(2,$te,$v0,8)); # s2>>16
- &mov ($v0,&DWP(8,"esp")); # restore s1
- &xor ($s[3],&DWP(1,$te,$v1,8)); # s2>>24
-
- &mov ($v1,$v0);
- &and ($v0,0xFF);
- &xor ($s[1],&DWP(0,$te,$v0,8)); # s1>>0
- &movz ($v0,&HB($v1));
- &shr ($v1,16);
- &xor ($s[0],&DWP(3,$te,$v0,8)); # s1>>8
- &movz ($v0,&HB($v1));
- &and ($v1,0xFF);
- &xor ($s[3],&DWP(2,$te,$v1,8)); # s1>>16
- &mov ($key,$__key); # reincarnate v1 as key
- &xor ($s[2],&DWP(1,$te,$v0,8)); # s1>>24
-}
-
-# Another experimental routine, which features "horizontal spin," but
-# eliminates one reference to stack. Strangely enough runs slower...
-sub enchoriz()
-{ my ($v0,$v1) = ($key,$acc);
-
- &movz ($v0,&LB($s0)); # 3, 2, 1, 0*
- &rotr ($s2,8); # 8,11,10, 9
- &mov ($v1,&DWP(0,$te,$v0,8)); # 0
- &movz ($v0,&HB($s1)); # 7, 6, 5*, 4
- &rotr ($s3,16); # 13,12,15,14
- &xor ($v1,&DWP(3,$te,$v0,8)); # 5
- &movz ($v0,&HB($s2)); # 8,11,10*, 9
- &rotr ($s0,16); # 1, 0, 3, 2
- &xor ($v1,&DWP(2,$te,$v0,8)); # 10
- &movz ($v0,&HB($s3)); # 13,12,15*,14
- &xor ($v1,&DWP(1,$te,$v0,8)); # 15, t[0] collected
- &mov ($__s0,$v1); # t[0] saved
-
- &movz ($v0,&LB($s1)); # 7, 6, 5, 4*
- &shr ($s1,16); # -, -, 7, 6
- &mov ($v1,&DWP(0,$te,$v0,8)); # 4
- &movz ($v0,&LB($s3)); # 13,12,15,14*
- &xor ($v1,&DWP(2,$te,$v0,8)); # 14
- &movz ($v0,&HB($s0)); # 1, 0, 3*, 2
- &and ($s3,0xffff0000); # 13,12, -, -
- &xor ($v1,&DWP(1,$te,$v0,8)); # 3
- &movz ($v0,&LB($s2)); # 8,11,10, 9*
- &or ($s3,$s1); # 13,12, 7, 6
- &xor ($v1,&DWP(3,$te,$v0,8)); # 9, t[1] collected
- &mov ($s1,$v1); # s[1]=t[1]
-
- &movz ($v0,&LB($s0)); # 1, 0, 3, 2*
- &shr ($s2,16); # -, -, 8,11
- &mov ($v1,&DWP(2,$te,$v0,8)); # 2
- &movz ($v0,&HB($s3)); # 13,12, 7*, 6
- &xor ($v1,&DWP(1,$te,$v0,8)); # 7
- &movz ($v0,&HB($s2)); # -, -, 8*,11
- &xor ($v1,&DWP(0,$te,$v0,8)); # 8
- &mov ($v0,$s3);
- &shr ($v0,24); # 13
- &xor ($v1,&DWP(3,$te,$v0,8)); # 13, t[2] collected
-
- &movz ($v0,&LB($s2)); # -, -, 8,11*
- &shr ($s0,24); # 1*
- &mov ($s2,&DWP(1,$te,$v0,8)); # 11
- &xor ($s2,&DWP(3,$te,$s0,8)); # 1
- &mov ($s0,$__s0); # s[0]=t[0]
- &movz ($v0,&LB($s3)); # 13,12, 7, 6*
- &shr ($s3,16); # , ,13,12
- &xor ($s2,&DWP(2,$te,$v0,8)); # 6
- &mov ($key,$__key); # reincarnate v0 as key
- &and ($s3,0xff); # , ,13,12*
- &mov ($s3,&DWP(0,$te,$s3,8)); # 12
- &xor ($s3,$s2); # s[2]=t[3] collected
- &mov ($s2,$v1); # s[2]=t[2]
-}
-
-# More experimental code... SSE one... Even though this one eliminates
-# *all* references to stack, it's not faster...
-sub sse_encbody()
-{
- &movz ($acc,&LB("eax")); # 0
- &mov ("ecx",&DWP(0,$tbl,$acc,8)); # 0
- &pshufw ("mm2","mm0",0x0d); # 7, 6, 3, 2
- &movz ("edx",&HB("eax")); # 1
- &mov ("edx",&DWP(3,$tbl,"edx",8)); # 1
- &shr ("eax",16); # 5, 4
-
- &movz ($acc,&LB("ebx")); # 10
- &xor ("ecx",&DWP(2,$tbl,$acc,8)); # 10
- &pshufw ("mm6","mm4",0x08); # 13,12, 9, 8
- &movz ($acc,&HB("ebx")); # 11
- &xor ("edx",&DWP(1,$tbl,$acc,8)); # 11
- &shr ("ebx",16); # 15,14
-
- &movz ($acc,&HB("eax")); # 5
- &xor ("ecx",&DWP(3,$tbl,$acc,8)); # 5
- &movq ("mm3",QWP(16,$key));
- &movz ($acc,&HB("ebx")); # 15
- &xor ("ecx",&DWP(1,$tbl,$acc,8)); # 15
- &movd ("mm0","ecx"); # t[0] collected
-
- &movz ($acc,&LB("eax")); # 4
- &mov ("ecx",&DWP(0,$tbl,$acc,8)); # 4
- &movd ("eax","mm2"); # 7, 6, 3, 2
- &movz ($acc,&LB("ebx")); # 14
- &xor ("ecx",&DWP(2,$tbl,$acc,8)); # 14
- &movd ("ebx","mm6"); # 13,12, 9, 8
-
- &movz ($acc,&HB("eax")); # 3
- &xor ("ecx",&DWP(1,$tbl,$acc,8)); # 3
- &movz ($acc,&HB("ebx")); # 9
- &xor ("ecx",&DWP(3,$tbl,$acc,8)); # 9
- &movd ("mm1","ecx"); # t[1] collected
-
- &movz ($acc,&LB("eax")); # 2
- &mov ("ecx",&DWP(2,$tbl,$acc,8)); # 2
- &shr ("eax",16); # 7, 6
- &punpckldq ("mm0","mm1"); # t[0,1] collected
- &movz ($acc,&LB("ebx")); # 8
- &xor ("ecx",&DWP(0,$tbl,$acc,8)); # 8
- &shr ("ebx",16); # 13,12
-
- &movz ($acc,&HB("eax")); # 7
- &xor ("ecx",&DWP(1,$tbl,$acc,8)); # 7
- &pxor ("mm0","mm3");
- &movz ("eax",&LB("eax")); # 6
- &xor ("edx",&DWP(2,$tbl,"eax",8)); # 6
- &pshufw ("mm1","mm0",0x08); # 5, 4, 1, 0
- &movz ($acc,&HB("ebx")); # 13
- &xor ("ecx",&DWP(3,$tbl,$acc,8)); # 13
- &xor ("ecx",&DWP(24,$key)); # t[2]
- &movd ("mm4","ecx"); # t[2] collected
- &movz ("ebx",&LB("ebx")); # 12
- &xor ("edx",&DWP(0,$tbl,"ebx",8)); # 12
- &shr ("ecx",16);
- &movd ("eax","mm1"); # 5, 4, 1, 0
- &mov ("ebx",&DWP(28,$key)); # t[3]
- &xor ("ebx","edx");
- &movd ("mm5","ebx"); # t[3] collected
- &and ("ebx",0xffff0000);
- &or ("ebx","ecx");
-
- &punpckldq ("mm4","mm5"); # t[2,3] collected
-}
-
-######################################################################
-# "Compact" block function
-######################################################################
-
-sub enccompact()
-{ my $Fn = \&mov;
- while ($#_>5) { pop(@_); $Fn=sub{}; }
- my ($i,$te,@s)=@_;
- my $tmp = $key;
- my $out = $i==3?$s[0]:$acc;
-
- # $Fn is used in first compact round and its purpose is to
- # void restoration of some values from stack, so that after
- # 4xenccompact with extra argument $key value is left there...
- if ($i==3) { &$Fn ($key,$__key); }##%edx
- else { &mov ($out,$s[0]); }
- &and ($out,0xFF);
- if ($i==1) { &shr ($s[0],16); }#%ebx[1]
- if ($i==2) { &shr ($s[0],24); }#%ecx[2]
- &movz ($out,&BP(-128,$te,$out,1));
-
- if ($i==3) { $tmp=$s[1]; }##%eax
- &movz ($tmp,&HB($s[1]));
- &movz ($tmp,&BP(-128,$te,$tmp,1));
- &shl ($tmp,8);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[2]; &mov ($s[1],$__s0); }##%ebx
- else { &mov ($tmp,$s[2]);
- &shr ($tmp,16); }
- if ($i==2) { &and ($s[1],0xFF); }#%edx[2]
- &and ($tmp,0xFF);
- &movz ($tmp,&BP(-128,$te,$tmp,1));
- &shl ($tmp,16);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[3]; &mov ($s[2],$__s1); }##%ecx
- elsif($i==2){ &movz ($tmp,&HB($s[3])); }#%ebx[2]
- else { &mov ($tmp,$s[3]);
- &shr ($tmp,24); }
- &movz ($tmp,&BP(-128,$te,$tmp,1));
- &shl ($tmp,24);
- &xor ($out,$tmp);
- if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
- if ($i==3) { &mov ($s[3],$acc); }
- &comment();
-}
-
-sub enctransform()
-{ my @s = ($s0,$s1,$s2,$s3);
- my $i = shift;
- my $tmp = $tbl;
- my $r2 = $key ;
-
- &and ($tmp,$s[$i]);
- &lea ($r2,&DWP(0,$s[$i],$s[$i]));
- &mov ($acc,$tmp);
- &shr ($tmp,7);
- &and ($r2,0xfefefefe);
- &sub ($acc,$tmp);
- &mov ($tmp,$s[$i]);
- &and ($acc,0x1b1b1b1b);
- &rotr ($tmp,16);
- &xor ($acc,$r2); # r2
- &mov ($r2,$s[$i]);
-
- &xor ($s[$i],$acc); # r0 ^ r2
- &rotr ($r2,16+8);
- &xor ($acc,$tmp);
- &rotl ($s[$i],24);
- &xor ($acc,$r2);
- &mov ($tmp,0x80808080) if ($i!=1);
- &xor ($s[$i],$acc); # ROTATE(r2^r0,24) ^ r2
-}
-
-&function_begin_B("_x86_AES_encrypt_compact");
- # note that caller is expected to allocate stack frame for me!
- &mov ($__key,$key); # save key
-
- &xor ($s0,&DWP(0,$key)); # xor with key
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &mov ($acc,&DWP(240,$key)); # load key->rounds
- &lea ($acc,&DWP(-2,$acc,$acc));
- &lea ($acc,&DWP(0,$key,$acc,8));
- &mov ($__end,$acc); # end of key schedule
-
- # prefetch Te4
- &mov ($key,&DWP(0-128,$tbl));
- &mov ($acc,&DWP(32-128,$tbl));
- &mov ($key,&DWP(64-128,$tbl));
- &mov ($acc,&DWP(96-128,$tbl));
- &mov ($key,&DWP(128-128,$tbl));
- &mov ($acc,&DWP(160-128,$tbl));
- &mov ($key,&DWP(192-128,$tbl));
- &mov ($acc,&DWP(224-128,$tbl));
-
- &set_label("loop",16);
-
- &enccompact(0,$tbl,$s0,$s1,$s2,$s3,1);
- &enccompact(1,$tbl,$s1,$s2,$s3,$s0,1);
- &enccompact(2,$tbl,$s2,$s3,$s0,$s1,1);
- &enccompact(3,$tbl,$s3,$s0,$s1,$s2,1);
- &mov ($tbl,0x80808080);
- &enctransform(2);
- &enctransform(3);
- &enctransform(0);
- &enctransform(1);
- &mov ($key,$__key);
- &mov ($tbl,$__tbl);
- &add ($key,16); # advance rd_key
- &xor ($s0,&DWP(0,$key));
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &cmp ($key,$__end);
- &mov ($__key,$key);
- &jb (&label("loop"));
-
- &enccompact(0,$tbl,$s0,$s1,$s2,$s3);
- &enccompact(1,$tbl,$s1,$s2,$s3,$s0);
- &enccompact(2,$tbl,$s2,$s3,$s0,$s1);
- &enccompact(3,$tbl,$s3,$s0,$s1,$s2);
-
- &xor ($s0,&DWP(16,$key));
- &xor ($s1,&DWP(20,$key));
- &xor ($s2,&DWP(24,$key));
- &xor ($s3,&DWP(28,$key));
-
- &ret ();
-&function_end_B("_x86_AES_encrypt_compact");
-
-######################################################################
-# "Compact" SSE block function.
-######################################################################
-#
-# Performance is not actually extraordinary in comparison to pure
-# x86 code. In particular encrypt performance is virtually the same.
-# Decrypt performance on the other hand is 15-20% better on newer
-# µ-archs [but we're thankful for *any* improvement here], and ~50%
-# better on PIII:-) And additionally on the pros side this code
-# eliminates redundant references to stack and thus relieves/
-# minimizes the pressure on the memory bus.
-#
-# MMX register layout lsb
-# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
-# | mm4 | mm0 |
-# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
-# | s3 | s2 | s1 | s0 |
-# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
-# |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
-# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
-#
-# Indexes translate as s[N/4]>>(8*(N%4)), e.g. 5 means s1>>8.
-# In this terms encryption and decryption "compact" permutation
-# matrices can be depicted as following:
-#
-# encryption lsb # decryption lsb
-# +----++----+----+----+----+ # +----++----+----+----+----+
-# | t0 || 15 | 10 | 5 | 0 | # | t0 || 7 | 10 | 13 | 0 |
-# +----++----+----+----+----+ # +----++----+----+----+----+
-# | t1 || 3 | 14 | 9 | 4 | # | t1 || 11 | 14 | 1 | 4 |
-# +----++----+----+----+----+ # +----++----+----+----+----+
-# | t2 || 7 | 2 | 13 | 8 | # | t2 || 15 | 2 | 5 | 8 |
-# +----++----+----+----+----+ # +----++----+----+----+----+
-# | t3 || 11 | 6 | 1 | 12 | # | t3 || 3 | 6 | 9 | 12 |
-# +----++----+----+----+----+ # +----++----+----+----+----+
-#
-######################################################################
-# Why not xmm registers? Short answer. It was actually tested and
-# was not any faster, but *contrary*, most notably on Intel CPUs.
-# Longer answer. Main advantage of using mm registers is that movd
-# latency is lower, especially on Intel P4. While arithmetic
-# instructions are twice as many, they can be scheduled every cycle
-# and not every second one when they are operating on xmm register,
-# so that "arithmetic throughput" remains virtually the same. And
-# finally the code can be executed even on elder SSE-only CPUs:-)
-
-sub sse_enccompact()
-{
- &pshufw ("mm1","mm0",0x08); # 5, 4, 1, 0
- &pshufw ("mm5","mm4",0x0d); # 15,14,11,10
- &movd ("eax","mm1"); # 5, 4, 1, 0
- &movd ("ebx","mm5"); # 15,14,11,10
- &mov ($__key,$key);
-
- &movz ($acc,&LB("eax")); # 0
- &movz ("edx",&HB("eax")); # 1
- &pshufw ("mm2","mm0",0x0d); # 7, 6, 3, 2
- &movz ("ecx",&BP(-128,$tbl,$acc,1)); # 0
- &movz ($key,&LB("ebx")); # 10
- &movz ("edx",&BP(-128,$tbl,"edx",1)); # 1
- &shr ("eax",16); # 5, 4
- &shl ("edx",8); # 1
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 10
- &movz ($key,&HB("ebx")); # 11
- &shl ($acc,16); # 10
- &pshufw ("mm6","mm4",0x08); # 13,12, 9, 8
- &or ("ecx",$acc); # 10
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 11
- &movz ($key,&HB("eax")); # 5
- &shl ($acc,24); # 11
- &shr ("ebx",16); # 15,14
- &or ("edx",$acc); # 11
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 5
- &movz ($key,&HB("ebx")); # 15
- &shl ($acc,8); # 5
- &or ("ecx",$acc); # 5
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 15
- &movz ($key,&LB("eax")); # 4
- &shl ($acc,24); # 15
- &or ("ecx",$acc); # 15
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 4
- &movz ($key,&LB("ebx")); # 14
- &movd ("eax","mm2"); # 7, 6, 3, 2
- &movd ("mm0","ecx"); # t[0] collected
- &movz ("ecx",&BP(-128,$tbl,$key,1)); # 14
- &movz ($key,&HB("eax")); # 3
- &shl ("ecx",16); # 14
- &movd ("ebx","mm6"); # 13,12, 9, 8
- &or ("ecx",$acc); # 14
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 3
- &movz ($key,&HB("ebx")); # 9
- &shl ($acc,24); # 3
- &or ("ecx",$acc); # 3
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 9
- &movz ($key,&LB("ebx")); # 8
- &shl ($acc,8); # 9
- &shr ("ebx",16); # 13,12
- &or ("ecx",$acc); # 9
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 8
- &movz ($key,&LB("eax")); # 2
- &shr ("eax",16); # 7, 6
- &movd ("mm1","ecx"); # t[1] collected
- &movz ("ecx",&BP(-128,$tbl,$key,1)); # 2
- &movz ($key,&HB("eax")); # 7
- &shl ("ecx",16); # 2
- &and ("eax",0xff); # 6
- &or ("ecx",$acc); # 2
-
- &punpckldq ("mm0","mm1"); # t[0,1] collected
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 7
- &movz ($key,&HB("ebx")); # 13
- &shl ($acc,24); # 7
- &and ("ebx",0xff); # 12
- &movz ("eax",&BP(-128,$tbl,"eax",1)); # 6
- &or ("ecx",$acc); # 7
- &shl ("eax",16); # 6
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 13
- &or ("edx","eax"); # 6
- &shl ($acc,8); # 13
- &movz ("ebx",&BP(-128,$tbl,"ebx",1)); # 12
- &or ("ecx",$acc); # 13
- &or ("edx","ebx"); # 12
- &mov ($key,$__key);
- &movd ("mm4","ecx"); # t[2] collected
- &movd ("mm5","edx"); # t[3] collected
-
- &punpckldq ("mm4","mm5"); # t[2,3] collected
-}
-
- if (!$x86only) {
-&function_begin_B("_sse_AES_encrypt_compact");
- &pxor ("mm0",&QWP(0,$key)); # 7, 6, 5, 4, 3, 2, 1, 0
- &pxor ("mm4",&QWP(8,$key)); # 15,14,13,12,11,10, 9, 8
-
- # note that caller is expected to allocate stack frame for me!
- &mov ($acc,&DWP(240,$key)); # load key->rounds
- &lea ($acc,&DWP(-2,$acc,$acc));
- &lea ($acc,&DWP(0,$key,$acc,8));
- &mov ($__end,$acc); # end of key schedule
-
- &mov ($s0,0x1b1b1b1b); # magic constant
- &mov (&DWP(8,"esp"),$s0);
- &mov (&DWP(12,"esp"),$s0);
-
- # prefetch Te4
- &mov ($s0,&DWP(0-128,$tbl));
- &mov ($s1,&DWP(32-128,$tbl));
- &mov ($s2,&DWP(64-128,$tbl));
- &mov ($s3,&DWP(96-128,$tbl));
- &mov ($s0,&DWP(128-128,$tbl));
- &mov ($s1,&DWP(160-128,$tbl));
- &mov ($s2,&DWP(192-128,$tbl));
- &mov ($s3,&DWP(224-128,$tbl));
-
- &set_label("loop",16);
- &sse_enccompact();
- &add ($key,16);
- &cmp ($key,$__end);
- &ja (&label("out"));
-
- &movq ("mm2",&QWP(8,"esp"));
- &pxor ("mm3","mm3"); &pxor ("mm7","mm7");
- &movq ("mm1","mm0"); &movq ("mm5","mm4"); # r0
- &pcmpgtb("mm3","mm0"); &pcmpgtb("mm7","mm4");
- &pand ("mm3","mm2"); &pand ("mm7","mm2");
- &pshufw ("mm2","mm0",0xb1); &pshufw ("mm6","mm4",0xb1);# ROTATE(r0,16)
- &paddb ("mm0","mm0"); &paddb ("mm4","mm4");
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # = r2
- &pshufw ("mm3","mm2",0xb1); &pshufw ("mm7","mm6",0xb1);# r0
- &pxor ("mm1","mm0"); &pxor ("mm5","mm4"); # r0^r2
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6"); # ^= ROTATE(r0,16)
-
- &movq ("mm2","mm3"); &movq ("mm6","mm7");
- &pslld ("mm3",8); &pslld ("mm7",8);
- &psrld ("mm2",24); &psrld ("mm6",24);
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= r0<<8
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6"); # ^= r0>>24
-
- &movq ("mm3","mm1"); &movq ("mm7","mm5");
- &movq ("mm2",&QWP(0,$key)); &movq ("mm6",&QWP(8,$key));
- &psrld ("mm1",8); &psrld ("mm5",8);
- &mov ($s0,&DWP(0-128,$tbl));
- &pslld ("mm3",24); &pslld ("mm7",24);
- &mov ($s1,&DWP(64-128,$tbl));
- &pxor ("mm0","mm1"); &pxor ("mm4","mm5"); # ^= (r2^r0)<<8
- &mov ($s2,&DWP(128-128,$tbl));
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= (r2^r0)>>24
- &mov ($s3,&DWP(192-128,$tbl));
-
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6");
- &jmp (&label("loop"));
-
- &set_label("out",16);
- &pxor ("mm0",&QWP(0,$key));
- &pxor ("mm4",&QWP(8,$key));
-
- &ret ();
-&function_end_B("_sse_AES_encrypt_compact");
- }
-
-######################################################################
-# Vanilla block function.
-######################################################################
-
-sub encstep()
-{ my ($i,$te,@s) = @_;
- my $tmp = $key;
- my $out = $i==3?$s[0]:$acc;
-
- # lines marked with #%e?x[i] denote "reordered" instructions...
- if ($i==3) { &mov ($key,$__key); }##%edx
- else { &mov ($out,$s[0]);
- &and ($out,0xFF); }
- if ($i==1) { &shr ($s[0],16); }#%ebx[1]
- if ($i==2) { &shr ($s[0],24); }#%ecx[2]
- &mov ($out,&DWP(0,$te,$out,8));
-
- if ($i==3) { $tmp=$s[1]; }##%eax
- &movz ($tmp,&HB($s[1]));
- &xor ($out,&DWP(3,$te,$tmp,8));
-
- if ($i==3) { $tmp=$s[2]; &mov ($s[1],$__s0); }##%ebx
- else { &mov ($tmp,$s[2]);
- &shr ($tmp,16); }
- if ($i==2) { &and ($s[1],0xFF); }#%edx[2]
- &and ($tmp,0xFF);
- &xor ($out,&DWP(2,$te,$tmp,8));
-
- if ($i==3) { $tmp=$s[3]; &mov ($s[2],$__s1); }##%ecx
- elsif($i==2){ &movz ($tmp,&HB($s[3])); }#%ebx[2]
- else { &mov ($tmp,$s[3]);
- &shr ($tmp,24) }
- &xor ($out,&DWP(1,$te,$tmp,8));
- if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
- if ($i==3) { &mov ($s[3],$acc); }
- &comment();
-}
-
-sub enclast()
-{ my ($i,$te,@s)=@_;
- my $tmp = $key;
- my $out = $i==3?$s[0]:$acc;
-
- if ($i==3) { &mov ($key,$__key); }##%edx
- else { &mov ($out,$s[0]); }
- &and ($out,0xFF);
- if ($i==1) { &shr ($s[0],16); }#%ebx[1]
- if ($i==2) { &shr ($s[0],24); }#%ecx[2]
- &mov ($out,&DWP(2,$te,$out,8));
- &and ($out,0x000000ff);
-
- if ($i==3) { $tmp=$s[1]; }##%eax
- &movz ($tmp,&HB($s[1]));
- &mov ($tmp,&DWP(0,$te,$tmp,8));
- &and ($tmp,0x0000ff00);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[2]; &mov ($s[1],$__s0); }##%ebx
- else { &mov ($tmp,$s[2]);
- &shr ($tmp,16); }
- if ($i==2) { &and ($s[1],0xFF); }#%edx[2]
- &and ($tmp,0xFF);
- &mov ($tmp,&DWP(0,$te,$tmp,8));
- &and ($tmp,0x00ff0000);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[3]; &mov ($s[2],$__s1); }##%ecx
- elsif($i==2){ &movz ($tmp,&HB($s[3])); }#%ebx[2]
- else { &mov ($tmp,$s[3]);
- &shr ($tmp,24); }
- &mov ($tmp,&DWP(2,$te,$tmp,8));
- &and ($tmp,0xff000000);
- &xor ($out,$tmp);
- if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
- if ($i==3) { &mov ($s[3],$acc); }
-}
-
-&function_begin_B("_x86_AES_encrypt");
- if ($vertical_spin) {
- # I need high parts of volatile registers to be accessible...
- &exch ($s1="edi",$key="ebx");
- &mov ($s2="esi",$acc="ecx");
- }
-
- # note that caller is expected to allocate stack frame for me!
- &mov ($__key,$key); # save key
-
- &xor ($s0,&DWP(0,$key)); # xor with key
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &mov ($acc,&DWP(240,$key)); # load key->rounds
-
- if ($small_footprint) {
- &lea ($acc,&DWP(-2,$acc,$acc));
- &lea ($acc,&DWP(0,$key,$acc,8));
- &mov ($__end,$acc); # end of key schedule
-
- &set_label("loop",16);
- if ($vertical_spin) {
- &encvert($tbl,$s0,$s1,$s2,$s3);
- } else {
- &encstep(0,$tbl,$s0,$s1,$s2,$s3);
- &encstep(1,$tbl,$s1,$s2,$s3,$s0);
- &encstep(2,$tbl,$s2,$s3,$s0,$s1);
- &encstep(3,$tbl,$s3,$s0,$s1,$s2);
- }
- &add ($key,16); # advance rd_key
- &xor ($s0,&DWP(0,$key));
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
- &cmp ($key,$__end);
- &mov ($__key,$key);
- &jb (&label("loop"));
- }
- else {
- &cmp ($acc,10);
- &jle (&label("10rounds"));
- &cmp ($acc,12);
- &jle (&label("12rounds"));
-
- &set_label("14rounds",4);
- for ($i=1;$i<3;$i++) {
- if ($vertical_spin) {
- &encvert($tbl,$s0,$s1,$s2,$s3);
- } else {
- &encstep(0,$tbl,$s0,$s1,$s2,$s3);
- &encstep(1,$tbl,$s1,$s2,$s3,$s0);
- &encstep(2,$tbl,$s2,$s3,$s0,$s1);
- &encstep(3,$tbl,$s3,$s0,$s1,$s2);
- }
- &xor ($s0,&DWP(16*$i+0,$key));
- &xor ($s1,&DWP(16*$i+4,$key));
- &xor ($s2,&DWP(16*$i+8,$key));
- &xor ($s3,&DWP(16*$i+12,$key));
- }
- &add ($key,32);
- &mov ($__key,$key); # advance rd_key
- &set_label("12rounds",4);
- for ($i=1;$i<3;$i++) {
- if ($vertical_spin) {
- &encvert($tbl,$s0,$s1,$s2,$s3);
- } else {
- &encstep(0,$tbl,$s0,$s1,$s2,$s3);
- &encstep(1,$tbl,$s1,$s2,$s3,$s0);
- &encstep(2,$tbl,$s2,$s3,$s0,$s1);
- &encstep(3,$tbl,$s3,$s0,$s1,$s2);
- }
- &xor ($s0,&DWP(16*$i+0,$key));
- &xor ($s1,&DWP(16*$i+4,$key));
- &xor ($s2,&DWP(16*$i+8,$key));
- &xor ($s3,&DWP(16*$i+12,$key));
- }
- &add ($key,32);
- &mov ($__key,$key); # advance rd_key
- &set_label("10rounds",4);
- for ($i=1;$i<10;$i++) {
- if ($vertical_spin) {
- &encvert($tbl,$s0,$s1,$s2,$s3);
- } else {
- &encstep(0,$tbl,$s0,$s1,$s2,$s3);
- &encstep(1,$tbl,$s1,$s2,$s3,$s0);
- &encstep(2,$tbl,$s2,$s3,$s0,$s1);
- &encstep(3,$tbl,$s3,$s0,$s1,$s2);
- }
- &xor ($s0,&DWP(16*$i+0,$key));
- &xor ($s1,&DWP(16*$i+4,$key));
- &xor ($s2,&DWP(16*$i+8,$key));
- &xor ($s3,&DWP(16*$i+12,$key));
- }
- }
-
- if ($vertical_spin) {
- # "reincarnate" some registers for "horizontal" spin...
- &mov ($s1="ebx",$key="edi");
- &mov ($s2="ecx",$acc="esi");
- }
- &enclast(0,$tbl,$s0,$s1,$s2,$s3);
- &enclast(1,$tbl,$s1,$s2,$s3,$s0);
- &enclast(2,$tbl,$s2,$s3,$s0,$s1);
- &enclast(3,$tbl,$s3,$s0,$s1,$s2);
-
- &add ($key,$small_footprint?16:160);
- &xor ($s0,&DWP(0,$key));
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &ret ();
-
-&set_label("AES_Te",64); # Yes! I keep it in the code segment!
- &_data_word(0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6);
- &_data_word(0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591);
- &_data_word(0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56);
- &_data_word(0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec);
- &_data_word(0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa);
- &_data_word(0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb);
- &_data_word(0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45);
- &_data_word(0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b);
- &_data_word(0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c);
- &_data_word(0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83);
- &_data_word(0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9);
- &_data_word(0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a);
- &_data_word(0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d);
- &_data_word(0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f);
- &_data_word(0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df);
- &_data_word(0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea);
- &_data_word(0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34);
- &_data_word(0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b);
- &_data_word(0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d);
- &_data_word(0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413);
- &_data_word(0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1);
- &_data_word(0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6);
- &_data_word(0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972);
- &_data_word(0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85);
- &_data_word(0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed);
- &_data_word(0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511);
- &_data_word(0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe);
- &_data_word(0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b);
- &_data_word(0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05);
- &_data_word(0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1);
- &_data_word(0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142);
- &_data_word(0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf);
- &_data_word(0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3);
- &_data_word(0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e);
- &_data_word(0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a);
- &_data_word(0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6);
- &_data_word(0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3);
- &_data_word(0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b);
- &_data_word(0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428);
- &_data_word(0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad);
- &_data_word(0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14);
- &_data_word(0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8);
- &_data_word(0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4);
- &_data_word(0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2);
- &_data_word(0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda);
- &_data_word(0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949);
- &_data_word(0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf);
- &_data_word(0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810);
- &_data_word(0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c);
- &_data_word(0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697);
- &_data_word(0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e);
- &_data_word(0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f);
- &_data_word(0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc);
- &_data_word(0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c);
- &_data_word(0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969);
- &_data_word(0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27);
- &_data_word(0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122);
- &_data_word(0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433);
- &_data_word(0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9);
- &_data_word(0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5);
- &_data_word(0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a);
- &_data_word(0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0);
- &_data_word(0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e);
- &_data_word(0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c);
-
-#Te4 # four copies of Te4 to choose from to avoid L1 aliasing
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-#rcon:
- &data_word(0x00000001, 0x00000002, 0x00000004, 0x00000008);
- &data_word(0x00000010, 0x00000020, 0x00000040, 0x00000080);
- &data_word(0x0000001b, 0x00000036, 0x00000000, 0x00000000);
- &data_word(0x00000000, 0x00000000, 0x00000000, 0x00000000);
-&function_end_B("_x86_AES_encrypt");
-
-# void AES_encrypt (const void *inp,void *out,const AES_KEY *key);
-&function_begin("AES_encrypt");
- &mov ($acc,&wparam(0)); # load inp
- &mov ($key,&wparam(2)); # load key
-
- &mov ($s0,"esp");
- &sub ("esp",36);
- &and ("esp",-64); # align to cache-line
-
- # place stack frame just "above" the key schedule
- &lea ($s1,&DWP(-64-63,$key));
- &sub ($s1,"esp");
- &neg ($s1);
- &and ($s1,0x3C0); # modulo 1024, but aligned to cache-line
- &sub ("esp",$s1);
- &add ("esp",4); # 4 is reserved for caller's return address
- &mov ($_esp,$s0); # save stack pointer
-
- &call (&label("pic_point")); # make it PIC!
- &set_label("pic_point");
- &blindpop($tbl);
- &picmeup($s0,"OPENSSL_ia32cap_P",$tbl,&label("pic_point")) if (!$x86only);
- &lea ($tbl,&DWP(&label("AES_Te")."-".&label("pic_point"),$tbl));
-
- # pick Te4 copy which can't "overlap" with stack frame or key schedule
- &lea ($s1,&DWP(768-4,"esp"));
- &sub ($s1,$tbl);
- &and ($s1,0x300);
- &lea ($tbl,&DWP(2048+128,$tbl,$s1));
-
- if (!$x86only) {
- &bt (&DWP(0,$s0),25); # check for SSE bit
- &jnc (&label("x86"));
-
- &movq ("mm0",&QWP(0,$acc));
- &movq ("mm4",&QWP(8,$acc));
- &call ("_sse_AES_encrypt_compact");
- &mov ("esp",$_esp); # restore stack pointer
- &mov ($acc,&wparam(1)); # load out
- &movq (&QWP(0,$acc),"mm0"); # write output data
- &movq (&QWP(8,$acc),"mm4");
- &emms ();
- &function_end_A();
- }
- &set_label("x86",16);
- &mov ($_tbl,$tbl);
- &mov ($s0,&DWP(0,$acc)); # load input data
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
- &call ("_x86_AES_encrypt_compact");
- &mov ("esp",$_esp); # restore stack pointer
- &mov ($acc,&wparam(1)); # load out
- &mov (&DWP(0,$acc),$s0); # write output data
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
-&function_end("AES_encrypt");
-
-#--------------------------------------------------------------------#
-
-######################################################################
-# "Compact" block function
-######################################################################
-
-sub deccompact()
-{ my $Fn = \&mov;
- while ($#_>5) { pop(@_); $Fn=sub{}; }
- my ($i,$td,@s)=@_;
- my $tmp = $key;
- my $out = $i==3?$s[0]:$acc;
-
- # $Fn is used in first compact round and its purpose is to
- # void restoration of some values from stack, so that after
- # 4xdeccompact with extra argument $key, $s0 and $s1 values
- # are left there...
- if($i==3) { &$Fn ($key,$__key); }
- else { &mov ($out,$s[0]); }
- &and ($out,0xFF);
- &movz ($out,&BP(-128,$td,$out,1));
-
- if ($i==3) { $tmp=$s[1]; }
- &movz ($tmp,&HB($s[1]));
- &movz ($tmp,&BP(-128,$td,$tmp,1));
- &shl ($tmp,8);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[2]; &mov ($s[1],$acc); }
- else { mov ($tmp,$s[2]); }
- &shr ($tmp,16);
- &and ($tmp,0xFF);
- &movz ($tmp,&BP(-128,$td,$tmp,1));
- &shl ($tmp,16);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[3]; &$Fn ($s[2],$__s1); }
- else { &mov ($tmp,$s[3]); }
- &shr ($tmp,24);
- &movz ($tmp,&BP(-128,$td,$tmp,1));
- &shl ($tmp,24);
- &xor ($out,$tmp);
- if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
- if ($i==3) { &$Fn ($s[3],$__s0); }
-}
-
-# must be called with 2,3,0,1 as argument sequence!!!
-sub dectransform()
-{ my @s = ($s0,$s1,$s2,$s3);
- my $i = shift;
- my $tmp = $key;
- my $tp2 = @s[($i+2)%4]; $tp2 = @s[2] if ($i==1);
- my $tp4 = @s[($i+3)%4]; $tp4 = @s[3] if ($i==1);
- my $tp8 = $tbl;
-
- &mov ($tmp,0x80808080);
- &and ($tmp,$s[$i]);
- &mov ($acc,$tmp);
- &shr ($tmp,7);
- &lea ($tp2,&DWP(0,$s[$i],$s[$i]));
- &sub ($acc,$tmp);
- &and ($tp2,0xfefefefe);
- &and ($acc,0x1b1b1b1b);
- &xor ($tp2,$acc);
- &mov ($tmp,0x80808080);
-
- &and ($tmp,$tp2);
- &mov ($acc,$tmp);
- &shr ($tmp,7);
- &lea ($tp4,&DWP(0,$tp2,$tp2));
- &sub ($acc,$tmp);
- &and ($tp4,0xfefefefe);
- &and ($acc,0x1b1b1b1b);
- &xor ($tp2,$s[$i]); # tp2^tp1
- &xor ($tp4,$acc);
- &mov ($tmp,0x80808080);
-
- &and ($tmp,$tp4);
- &mov ($acc,$tmp);
- &shr ($tmp,7);
- &lea ($tp8,&DWP(0,$tp4,$tp4));
- &sub ($acc,$tmp);
- &and ($tp8,0xfefefefe);
- &and ($acc,0x1b1b1b1b);
- &xor ($tp4,$s[$i]); # tp4^tp1
- &rotl ($s[$i],8); # = ROTATE(tp1,8)
- &xor ($tp8,$acc);
-
- &xor ($s[$i],$tp2);
- &xor ($tp2,$tp8);
- &xor ($s[$i],$tp4);
- &xor ($tp4,$tp8);
- &rotl ($tp2,24);
- &xor ($s[$i],$tp8); # ^= tp8^(tp4^tp1)^(tp2^tp1)
- &rotl ($tp4,16);
- &xor ($s[$i],$tp2); # ^= ROTATE(tp8^tp2^tp1,24)
- &rotl ($tp8,8);
- &xor ($s[$i],$tp4); # ^= ROTATE(tp8^tp4^tp1,16)
- &mov ($s[0],$__s0) if($i==2); #prefetch $s0
- &mov ($s[1],$__s1) if($i==3); #prefetch $s1
- &mov ($s[2],$__s2) if($i==1);
- &xor ($s[$i],$tp8); # ^= ROTATE(tp8,8)
-
- &mov ($s[3],$__s3) if($i==1);
- &mov (&DWP(4+4*$i,"esp"),$s[$i]) if($i>=2);
-}
-
-&function_begin_B("_x86_AES_decrypt_compact");
- # note that caller is expected to allocate stack frame for me!
- &mov ($__key,$key); # save key
-
- &xor ($s0,&DWP(0,$key)); # xor with key
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &mov ($acc,&DWP(240,$key)); # load key->rounds
-
- &lea ($acc,&DWP(-2,$acc,$acc));
- &lea ($acc,&DWP(0,$key,$acc,8));
- &mov ($__end,$acc); # end of key schedule
-
- # prefetch Td4
- &mov ($key,&DWP(0-128,$tbl));
- &mov ($acc,&DWP(32-128,$tbl));
- &mov ($key,&DWP(64-128,$tbl));
- &mov ($acc,&DWP(96-128,$tbl));
- &mov ($key,&DWP(128-128,$tbl));
- &mov ($acc,&DWP(160-128,$tbl));
- &mov ($key,&DWP(192-128,$tbl));
- &mov ($acc,&DWP(224-128,$tbl));
-
- &set_label("loop",16);
-
- &deccompact(0,$tbl,$s0,$s3,$s2,$s1,1);
- &deccompact(1,$tbl,$s1,$s0,$s3,$s2,1);
- &deccompact(2,$tbl,$s2,$s1,$s0,$s3,1);
- &deccompact(3,$tbl,$s3,$s2,$s1,$s0,1);
- &dectransform(2);
- &dectransform(3);
- &dectransform(0);
- &dectransform(1);
- &mov ($key,$__key);
- &mov ($tbl,$__tbl);
- &add ($key,16); # advance rd_key
- &xor ($s0,&DWP(0,$key));
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &cmp ($key,$__end);
- &mov ($__key,$key);
- &jb (&label("loop"));
-
- &deccompact(0,$tbl,$s0,$s3,$s2,$s1);
- &deccompact(1,$tbl,$s1,$s0,$s3,$s2);
- &deccompact(2,$tbl,$s2,$s1,$s0,$s3);
- &deccompact(3,$tbl,$s3,$s2,$s1,$s0);
-
- &xor ($s0,&DWP(16,$key));
- &xor ($s1,&DWP(20,$key));
- &xor ($s2,&DWP(24,$key));
- &xor ($s3,&DWP(28,$key));
-
- &ret ();
-&function_end_B("_x86_AES_decrypt_compact");
-
-######################################################################
-# "Compact" SSE block function.
-######################################################################
-
-sub sse_deccompact()
-{
- &pshufw ("mm1","mm0",0x0c); # 7, 6, 1, 0
- &pshufw ("mm5","mm4",0x09); # 13,12,11,10
- &movd ("eax","mm1"); # 7, 6, 1, 0
- &movd ("ebx","mm5"); # 13,12,11,10
- &mov ($__key,$key);
-
- &movz ($acc,&LB("eax")); # 0
- &movz ("edx",&HB("eax")); # 1
- &pshufw ("mm2","mm0",0x06); # 3, 2, 5, 4
- &movz ("ecx",&BP(-128,$tbl,$acc,1)); # 0
- &movz ($key,&LB("ebx")); # 10
- &movz ("edx",&BP(-128,$tbl,"edx",1)); # 1
- &shr ("eax",16); # 7, 6
- &shl ("edx",8); # 1
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 10
- &movz ($key,&HB("ebx")); # 11
- &shl ($acc,16); # 10
- &pshufw ("mm6","mm4",0x03); # 9, 8,15,14
- &or ("ecx",$acc); # 10
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 11
- &movz ($key,&HB("eax")); # 7
- &shl ($acc,24); # 11
- &shr ("ebx",16); # 13,12
- &or ("edx",$acc); # 11
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 7
- &movz ($key,&HB("ebx")); # 13
- &shl ($acc,24); # 7
- &or ("ecx",$acc); # 7
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 13
- &movz ($key,&LB("eax")); # 6
- &shl ($acc,8); # 13
- &movd ("eax","mm2"); # 3, 2, 5, 4
- &or ("ecx",$acc); # 13
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 6
- &movz ($key,&LB("ebx")); # 12
- &shl ($acc,16); # 6
- &movd ("ebx","mm6"); # 9, 8,15,14
- &movd ("mm0","ecx"); # t[0] collected
- &movz ("ecx",&BP(-128,$tbl,$key,1)); # 12
- &movz ($key,&LB("eax")); # 4
- &or ("ecx",$acc); # 12
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 4
- &movz ($key,&LB("ebx")); # 14
- &or ("edx",$acc); # 4
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 14
- &movz ($key,&HB("eax")); # 5
- &shl ($acc,16); # 14
- &shr ("eax",16); # 3, 2
- &or ("edx",$acc); # 14
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 5
- &movz ($key,&HB("ebx")); # 15
- &shr ("ebx",16); # 9, 8
- &shl ($acc,8); # 5
- &movd ("mm1","edx"); # t[1] collected
- &movz ("edx",&BP(-128,$tbl,$key,1)); # 15
- &movz ($key,&HB("ebx")); # 9
- &shl ("edx",24); # 15
- &and ("ebx",0xff); # 8
- &or ("edx",$acc); # 15
-
- &punpckldq ("mm0","mm1"); # t[0,1] collected
-
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 9
- &movz ($key,&LB("eax")); # 2
- &shl ($acc,8); # 9
- &movz ("eax",&HB("eax")); # 3
- &movz ("ebx",&BP(-128,$tbl,"ebx",1)); # 8
- &or ("ecx",$acc); # 9
- &movz ($acc,&BP(-128,$tbl,$key,1)); # 2
- &or ("edx","ebx"); # 8
- &shl ($acc,16); # 2
- &movz ("eax",&BP(-128,$tbl,"eax",1)); # 3
- &or ("edx",$acc); # 2
- &shl ("eax",24); # 3
- &or ("ecx","eax"); # 3
- &mov ($key,$__key);
- &movd ("mm4","edx"); # t[2] collected
- &movd ("mm5","ecx"); # t[3] collected
-
- &punpckldq ("mm4","mm5"); # t[2,3] collected
-}
-
- if (!$x86only) {
-&function_begin_B("_sse_AES_decrypt_compact");
- &pxor ("mm0",&QWP(0,$key)); # 7, 6, 5, 4, 3, 2, 1, 0
- &pxor ("mm4",&QWP(8,$key)); # 15,14,13,12,11,10, 9, 8
-
- # note that caller is expected to allocate stack frame for me!
- &mov ($acc,&DWP(240,$key)); # load key->rounds
- &lea ($acc,&DWP(-2,$acc,$acc));
- &lea ($acc,&DWP(0,$key,$acc,8));
- &mov ($__end,$acc); # end of key schedule
-
- &mov ($s0,0x1b1b1b1b); # magic constant
- &mov (&DWP(8,"esp"),$s0);
- &mov (&DWP(12,"esp"),$s0);
-
- # prefetch Td4
- &mov ($s0,&DWP(0-128,$tbl));
- &mov ($s1,&DWP(32-128,$tbl));
- &mov ($s2,&DWP(64-128,$tbl));
- &mov ($s3,&DWP(96-128,$tbl));
- &mov ($s0,&DWP(128-128,$tbl));
- &mov ($s1,&DWP(160-128,$tbl));
- &mov ($s2,&DWP(192-128,$tbl));
- &mov ($s3,&DWP(224-128,$tbl));
-
- &set_label("loop",16);
- &sse_deccompact();
- &add ($key,16);
- &cmp ($key,$__end);
- &ja (&label("out"));
-
- # ROTATE(x^y,N) == ROTATE(x,N)^ROTATE(y,N)
- &movq ("mm3","mm0"); &movq ("mm7","mm4");
- &movq ("mm2","mm0",1); &movq ("mm6","mm4",1);
- &movq ("mm1","mm0"); &movq ("mm5","mm4");
- &pshufw ("mm0","mm0",0xb1); &pshufw ("mm4","mm4",0xb1);# = ROTATE(tp0,16)
- &pslld ("mm2",8); &pslld ("mm6",8);
- &psrld ("mm3",8); &psrld ("mm7",8);
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6"); # ^= tp0<<8
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= tp0>>8
- &pslld ("mm2",16); &pslld ("mm6",16);
- &psrld ("mm3",16); &psrld ("mm7",16);
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6"); # ^= tp0<<24
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= tp0>>24
-
- &movq ("mm3",&QWP(8,"esp"));
- &pxor ("mm2","mm2"); &pxor ("mm6","mm6");
- &pcmpgtb("mm2","mm1"); &pcmpgtb("mm6","mm5");
- &pand ("mm2","mm3"); &pand ("mm6","mm3");
- &paddb ("mm1","mm1"); &paddb ("mm5","mm5");
- &pxor ("mm1","mm2"); &pxor ("mm5","mm6"); # tp2
- &movq ("mm3","mm1"); &movq ("mm7","mm5");
- &movq ("mm2","mm1"); &movq ("mm6","mm5");
- &pxor ("mm0","mm1"); &pxor ("mm4","mm5"); # ^= tp2
- &pslld ("mm3",24); &pslld ("mm7",24);
- &psrld ("mm2",8); &psrld ("mm6",8);
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= tp2<<24
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6"); # ^= tp2>>8
-
- &movq ("mm2",&QWP(8,"esp"));
- &pxor ("mm3","mm3"); &pxor ("mm7","mm7");
- &pcmpgtb("mm3","mm1"); &pcmpgtb("mm7","mm5");
- &pand ("mm3","mm2"); &pand ("mm7","mm2");
- &paddb ("mm1","mm1"); &paddb ("mm5","mm5");
- &pxor ("mm1","mm3"); &pxor ("mm5","mm7"); # tp4
- &pshufw ("mm3","mm1",0xb1); &pshufw ("mm7","mm5",0xb1);
- &pxor ("mm0","mm1"); &pxor ("mm4","mm5"); # ^= tp4
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= ROTATE(tp4,16)
-
- &pxor ("mm3","mm3"); &pxor ("mm7","mm7");
- &pcmpgtb("mm3","mm1"); &pcmpgtb("mm7","mm5");
- &pand ("mm3","mm2"); &pand ("mm7","mm2");
- &paddb ("mm1","mm1"); &paddb ("mm5","mm5");
- &pxor ("mm1","mm3"); &pxor ("mm5","mm7"); # tp8
- &pxor ("mm0","mm1"); &pxor ("mm4","mm5"); # ^= tp8
- &movq ("mm3","mm1"); &movq ("mm7","mm5");
- &pshufw ("mm2","mm1",0xb1); &pshufw ("mm6","mm5",0xb1);
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6"); # ^= ROTATE(tp8,16)
- &pslld ("mm1",8); &pslld ("mm5",8);
- &psrld ("mm3",8); &psrld ("mm7",8);
- &movq ("mm2",&QWP(0,$key)); &movq ("mm6",&QWP(8,$key));
- &pxor ("mm0","mm1"); &pxor ("mm4","mm5"); # ^= tp8<<8
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= tp8>>8
- &mov ($s0,&DWP(0-128,$tbl));
- &pslld ("mm1",16); &pslld ("mm5",16);
- &mov ($s1,&DWP(64-128,$tbl));
- &psrld ("mm3",16); &psrld ("mm7",16);
- &mov ($s2,&DWP(128-128,$tbl));
- &pxor ("mm0","mm1"); &pxor ("mm4","mm5"); # ^= tp8<<24
- &mov ($s3,&DWP(192-128,$tbl));
- &pxor ("mm0","mm3"); &pxor ("mm4","mm7"); # ^= tp8>>24
-
- &pxor ("mm0","mm2"); &pxor ("mm4","mm6");
- &jmp (&label("loop"));
-
- &set_label("out",16);
- &pxor ("mm0",&QWP(0,$key));
- &pxor ("mm4",&QWP(8,$key));
-
- &ret ();
-&function_end_B("_sse_AES_decrypt_compact");
- }
-
-######################################################################
-# Vanilla block function.
-######################################################################
-
-sub decstep()
-{ my ($i,$td,@s) = @_;
- my $tmp = $key;
- my $out = $i==3?$s[0]:$acc;
-
- # no instructions are reordered, as performance appears
- # optimal... or rather that all attempts to reorder didn't
- # result in better performance [which by the way is not a
- # bit lower than encryption].
- if($i==3) { &mov ($key,$__key); }
- else { &mov ($out,$s[0]); }
- &and ($out,0xFF);
- &mov ($out,&DWP(0,$td,$out,8));
-
- if ($i==3) { $tmp=$s[1]; }
- &movz ($tmp,&HB($s[1]));
- &xor ($out,&DWP(3,$td,$tmp,8));
-
- if ($i==3) { $tmp=$s[2]; &mov ($s[1],$acc); }
- else { &mov ($tmp,$s[2]); }
- &shr ($tmp,16);
- &and ($tmp,0xFF);
- &xor ($out,&DWP(2,$td,$tmp,8));
-
- if ($i==3) { $tmp=$s[3]; &mov ($s[2],$__s1); }
- else { &mov ($tmp,$s[3]); }
- &shr ($tmp,24);
- &xor ($out,&DWP(1,$td,$tmp,8));
- if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
- if ($i==3) { &mov ($s[3],$__s0); }
- &comment();
-}
-
-sub declast()
-{ my ($i,$td,@s)=@_;
- my $tmp = $key;
- my $out = $i==3?$s[0]:$acc;
-
- if($i==0) { &lea ($td,&DWP(2048+128,$td));
- &mov ($tmp,&DWP(0-128,$td));
- &mov ($acc,&DWP(32-128,$td));
- &mov ($tmp,&DWP(64-128,$td));
- &mov ($acc,&DWP(96-128,$td));
- &mov ($tmp,&DWP(128-128,$td));
- &mov ($acc,&DWP(160-128,$td));
- &mov ($tmp,&DWP(192-128,$td));
- &mov ($acc,&DWP(224-128,$td));
- &lea ($td,&DWP(-128,$td)); }
- if($i==3) { &mov ($key,$__key); }
- else { &mov ($out,$s[0]); }
- &and ($out,0xFF);
- &movz ($out,&BP(0,$td,$out,1));
-
- if ($i==3) { $tmp=$s[1]; }
- &movz ($tmp,&HB($s[1]));
- &movz ($tmp,&BP(0,$td,$tmp,1));
- &shl ($tmp,8);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[2]; &mov ($s[1],$acc); }
- else { mov ($tmp,$s[2]); }
- &shr ($tmp,16);
- &and ($tmp,0xFF);
- &movz ($tmp,&BP(0,$td,$tmp,1));
- &shl ($tmp,16);
- &xor ($out,$tmp);
-
- if ($i==3) { $tmp=$s[3]; &mov ($s[2],$__s1); }
- else { &mov ($tmp,$s[3]); }
- &shr ($tmp,24);
- &movz ($tmp,&BP(0,$td,$tmp,1));
- &shl ($tmp,24);
- &xor ($out,$tmp);
- if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
- if ($i==3) { &mov ($s[3],$__s0);
- &lea ($td,&DWP(-2048,$td)); }
-}
-
-&function_begin_B("_x86_AES_decrypt");
- # note that caller is expected to allocate stack frame for me!
- &mov ($__key,$key); # save key
-
- &xor ($s0,&DWP(0,$key)); # xor with key
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &mov ($acc,&DWP(240,$key)); # load key->rounds
-
- if ($small_footprint) {
- &lea ($acc,&DWP(-2,$acc,$acc));
- &lea ($acc,&DWP(0,$key,$acc,8));
- &mov ($__end,$acc); # end of key schedule
- &set_label("loop",16);
- &decstep(0,$tbl,$s0,$s3,$s2,$s1);
- &decstep(1,$tbl,$s1,$s0,$s3,$s2);
- &decstep(2,$tbl,$s2,$s1,$s0,$s3);
- &decstep(3,$tbl,$s3,$s2,$s1,$s0);
- &add ($key,16); # advance rd_key
- &xor ($s0,&DWP(0,$key));
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
- &cmp ($key,$__end);
- &mov ($__key,$key);
- &jb (&label("loop"));
- }
- else {
- &cmp ($acc,10);
- &jle (&label("10rounds"));
- &cmp ($acc,12);
- &jle (&label("12rounds"));
-
- &set_label("14rounds",4);
- for ($i=1;$i<3;$i++) {
- &decstep(0,$tbl,$s0,$s3,$s2,$s1);
- &decstep(1,$tbl,$s1,$s0,$s3,$s2);
- &decstep(2,$tbl,$s2,$s1,$s0,$s3);
- &decstep(3,$tbl,$s3,$s2,$s1,$s0);
- &xor ($s0,&DWP(16*$i+0,$key));
- &xor ($s1,&DWP(16*$i+4,$key));
- &xor ($s2,&DWP(16*$i+8,$key));
- &xor ($s3,&DWP(16*$i+12,$key));
- }
- &add ($key,32);
- &mov ($__key,$key); # advance rd_key
- &set_label("12rounds",4);
- for ($i=1;$i<3;$i++) {
- &decstep(0,$tbl,$s0,$s3,$s2,$s1);
- &decstep(1,$tbl,$s1,$s0,$s3,$s2);
- &decstep(2,$tbl,$s2,$s1,$s0,$s3);
- &decstep(3,$tbl,$s3,$s2,$s1,$s0);
- &xor ($s0,&DWP(16*$i+0,$key));
- &xor ($s1,&DWP(16*$i+4,$key));
- &xor ($s2,&DWP(16*$i+8,$key));
- &xor ($s3,&DWP(16*$i+12,$key));
- }
- &add ($key,32);
- &mov ($__key,$key); # advance rd_key
- &set_label("10rounds",4);
- for ($i=1;$i<10;$i++) {
- &decstep(0,$tbl,$s0,$s3,$s2,$s1);
- &decstep(1,$tbl,$s1,$s0,$s3,$s2);
- &decstep(2,$tbl,$s2,$s1,$s0,$s3);
- &decstep(3,$tbl,$s3,$s2,$s1,$s0);
- &xor ($s0,&DWP(16*$i+0,$key));
- &xor ($s1,&DWP(16*$i+4,$key));
- &xor ($s2,&DWP(16*$i+8,$key));
- &xor ($s3,&DWP(16*$i+12,$key));
- }
- }
-
- &declast(0,$tbl,$s0,$s3,$s2,$s1);
- &declast(1,$tbl,$s1,$s0,$s3,$s2);
- &declast(2,$tbl,$s2,$s1,$s0,$s3);
- &declast(3,$tbl,$s3,$s2,$s1,$s0);
-
- &add ($key,$small_footprint?16:160);
- &xor ($s0,&DWP(0,$key));
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &ret ();
-
-&set_label("AES_Td",64); # Yes! I keep it in the code segment!
- &_data_word(0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a);
- &_data_word(0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b);
- &_data_word(0x55fa3020, 0xf66d76ad, 0x9176cc88, 0x254c02f5);
- &_data_word(0xfcd7e54f, 0xd7cb2ac5, 0x80443526, 0x8fa362b5);
- &_data_word(0x495ab1de, 0x671bba25, 0x980eea45, 0xe1c0fe5d);
- &_data_word(0x02752fc3, 0x12f04c81, 0xa397468d, 0xc6f9d36b);
- &_data_word(0xe75f8f03, 0x959c9215, 0xeb7a6dbf, 0xda595295);
- &_data_word(0x2d83bed4, 0xd3217458, 0x2969e049, 0x44c8c98e);
- &_data_word(0x6a89c275, 0x78798ef4, 0x6b3e5899, 0xdd71b927);
- &_data_word(0xb64fe1be, 0x17ad88f0, 0x66ac20c9, 0xb43ace7d);
- &_data_word(0x184adf63, 0x82311ae5, 0x60335197, 0x457f5362);
- &_data_word(0xe07764b1, 0x84ae6bbb, 0x1ca081fe, 0x942b08f9);
- &_data_word(0x58684870, 0x19fd458f, 0x876cde94, 0xb7f87b52);
- &_data_word(0x23d373ab, 0xe2024b72, 0x578f1fe3, 0x2aab5566);
- &_data_word(0x0728ebb2, 0x03c2b52f, 0x9a7bc586, 0xa50837d3);
- &_data_word(0xf2872830, 0xb2a5bf23, 0xba6a0302, 0x5c8216ed);
- &_data_word(0x2b1ccf8a, 0x92b479a7, 0xf0f207f3, 0xa1e2694e);
- &_data_word(0xcdf4da65, 0xd5be0506, 0x1f6234d1, 0x8afea6c4);
- &_data_word(0x9d532e34, 0xa055f3a2, 0x32e18a05, 0x75ebf6a4);
- &_data_word(0x39ec830b, 0xaaef6040, 0x069f715e, 0x51106ebd);
- &_data_word(0xf98a213e, 0x3d06dd96, 0xae053edd, 0x46bde64d);
- &_data_word(0xb58d5491, 0x055dc471, 0x6fd40604, 0xff155060);
- &_data_word(0x24fb9819, 0x97e9bdd6, 0xcc434089, 0x779ed967);
- &_data_word(0xbd42e8b0, 0x888b8907, 0x385b19e7, 0xdbeec879);
- &_data_word(0x470a7ca1, 0xe90f427c, 0xc91e84f8, 0x00000000);
- &_data_word(0x83868009, 0x48ed2b32, 0xac70111e, 0x4e725a6c);
- &_data_word(0xfbff0efd, 0x5638850f, 0x1ed5ae3d, 0x27392d36);
- &_data_word(0x64d90f0a, 0x21a65c68, 0xd1545b9b, 0x3a2e3624);
- &_data_word(0xb1670a0c, 0x0fe75793, 0xd296eeb4, 0x9e919b1b);
- &_data_word(0x4fc5c080, 0xa220dc61, 0x694b775a, 0x161a121c);
- &_data_word(0x0aba93e2, 0xe52aa0c0, 0x43e0223c, 0x1d171b12);
- &_data_word(0x0b0d090e, 0xadc78bf2, 0xb9a8b62d, 0xc8a91e14);
- &_data_word(0x8519f157, 0x4c0775af, 0xbbdd99ee, 0xfd607fa3);
- &_data_word(0x9f2601f7, 0xbcf5725c, 0xc53b6644, 0x347efb5b);
- &_data_word(0x7629438b, 0xdcc623cb, 0x68fcedb6, 0x63f1e4b8);
- &_data_word(0xcadc31d7, 0x10856342, 0x40229713, 0x2011c684);
- &_data_word(0x7d244a85, 0xf83dbbd2, 0x1132f9ae, 0x6da129c7);
- &_data_word(0x4b2f9e1d, 0xf330b2dc, 0xec52860d, 0xd0e3c177);
- &_data_word(0x6c16b32b, 0x99b970a9, 0xfa489411, 0x2264e947);
- &_data_word(0xc48cfca8, 0x1a3ff0a0, 0xd82c7d56, 0xef903322);
- &_data_word(0xc74e4987, 0xc1d138d9, 0xfea2ca8c, 0x360bd498);
- &_data_word(0xcf81f5a6, 0x28de7aa5, 0x268eb7da, 0xa4bfad3f);
- &_data_word(0xe49d3a2c, 0x0d927850, 0x9bcc5f6a, 0x62467e54);
- &_data_word(0xc2138df6, 0xe8b8d890, 0x5ef7392e, 0xf5afc382);
- &_data_word(0xbe805d9f, 0x7c93d069, 0xa92dd56f, 0xb31225cf);
- &_data_word(0x3b99acc8, 0xa77d1810, 0x6e639ce8, 0x7bbb3bdb);
- &_data_word(0x097826cd, 0xf418596e, 0x01b79aec, 0xa89a4f83);
- &_data_word(0x656e95e6, 0x7ee6ffaa, 0x08cfbc21, 0xe6e815ef);
- &_data_word(0xd99be7ba, 0xce366f4a, 0xd4099fea, 0xd67cb029);
- &_data_word(0xafb2a431, 0x31233f2a, 0x3094a5c6, 0xc066a235);
- &_data_word(0x37bc4e74, 0xa6ca82fc, 0xb0d090e0, 0x15d8a733);
- &_data_word(0x4a9804f1, 0xf7daec41, 0x0e50cd7f, 0x2ff69117);
- &_data_word(0x8dd64d76, 0x4db0ef43, 0x544daacc, 0xdf0496e4);
- &_data_word(0xe3b5d19e, 0x1b886a4c, 0xb81f2cc1, 0x7f516546);
- &_data_word(0x04ea5e9d, 0x5d358c01, 0x737487fa, 0x2e410bfb);
- &_data_word(0x5a1d67b3, 0x52d2db92, 0x335610e9, 0x1347d66d);
- &_data_word(0x8c61d79a, 0x7a0ca137, 0x8e14f859, 0x893c13eb);
- &_data_word(0xee27a9ce, 0x35c961b7, 0xede51ce1, 0x3cb1477a);
- &_data_word(0x59dfd29c, 0x3f73f255, 0x79ce1418, 0xbf37c773);
- &_data_word(0xeacdf753, 0x5baafd5f, 0x146f3ddf, 0x86db4478);
- &_data_word(0x81f3afca, 0x3ec468b9, 0x2c342438, 0x5f40a3c2);
- &_data_word(0x72c31d16, 0x0c25e2bc, 0x8b493c28, 0x41950dff);
- &_data_word(0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664);
- &_data_word(0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0);
-
-#Td4: # four copies of Td4 to choose from to avoid L1 aliasing
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-&function_end_B("_x86_AES_decrypt");
-
-# void AES_decrypt (const void *inp,void *out,const AES_KEY *key);
-&function_begin("AES_decrypt");
- &mov ($acc,&wparam(0)); # load inp
- &mov ($key,&wparam(2)); # load key
-
- &mov ($s0,"esp");
- &sub ("esp",36);
- &and ("esp",-64); # align to cache-line
-
- # place stack frame just "above" the key schedule
- &lea ($s1,&DWP(-64-63,$key));
- &sub ($s1,"esp");
- &neg ($s1);
- &and ($s1,0x3C0); # modulo 1024, but aligned to cache-line
- &sub ("esp",$s1);
- &add ("esp",4); # 4 is reserved for caller's return address
- &mov ($_esp,$s0); # save stack pointer
-
- &call (&label("pic_point")); # make it PIC!
- &set_label("pic_point");
- &blindpop($tbl);
- &picmeup($s0,"OPENSSL_ia32cap_P",$tbl,&label("pic_point")) if(!$x86only);
- &lea ($tbl,&DWP(&label("AES_Td")."-".&label("pic_point"),$tbl));
-
- # pick Td4 copy which can't "overlap" with stack frame or key schedule
- &lea ($s1,&DWP(768-4,"esp"));
- &sub ($s1,$tbl);
- &and ($s1,0x300);
- &lea ($tbl,&DWP(2048+128,$tbl,$s1));
-
- if (!$x86only) {
- &bt (&DWP(0,$s0),25); # check for SSE bit
- &jnc (&label("x86"));
-
- &movq ("mm0",&QWP(0,$acc));
- &movq ("mm4",&QWP(8,$acc));
- &call ("_sse_AES_decrypt_compact");
- &mov ("esp",$_esp); # restore stack pointer
- &mov ($acc,&wparam(1)); # load out
- &movq (&QWP(0,$acc),"mm0"); # write output data
- &movq (&QWP(8,$acc),"mm4");
- &emms ();
- &function_end_A();
- }
- &set_label("x86",16);
- &mov ($_tbl,$tbl);
- &mov ($s0,&DWP(0,$acc)); # load input data
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
- &call ("_x86_AES_decrypt_compact");
- &mov ("esp",$_esp); # restore stack pointer
- &mov ($acc,&wparam(1)); # load out
- &mov (&DWP(0,$acc),$s0); # write output data
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
-&function_end("AES_decrypt");
-
-# void AES_cbc_encrypt (const void char *inp, unsigned char *out,
-# size_t length, const AES_KEY *key,
-# unsigned char *ivp,const int enc);
-{
-# stack frame layout
-# -4(%esp) # return address 0(%esp)
-# 0(%esp) # s0 backing store 4(%esp)
-# 4(%esp) # s1 backing store 8(%esp)
-# 8(%esp) # s2 backing store 12(%esp)
-# 12(%esp) # s3 backing store 16(%esp)
-# 16(%esp) # key backup 20(%esp)
-# 20(%esp) # end of key schedule 24(%esp)
-# 24(%esp) # %ebp backup 28(%esp)
-# 28(%esp) # %esp backup
-my $_inp=&DWP(32,"esp"); # copy of wparam(0)
-my $_out=&DWP(36,"esp"); # copy of wparam(1)
-my $_len=&DWP(40,"esp"); # copy of wparam(2)
-my $_key=&DWP(44,"esp"); # copy of wparam(3)
-my $_ivp=&DWP(48,"esp"); # copy of wparam(4)
-my $_tmp=&DWP(52,"esp"); # volatile variable
-#
-my $ivec=&DWP(60,"esp"); # ivec[16]
-my $aes_key=&DWP(76,"esp"); # copy of aes_key
-my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds
-
-&function_begin("AES_cbc_encrypt");
- &mov ($s2 eq "ecx"? $s2 : "",&wparam(2)); # load len
- &cmp ($s2,0);
- &je (&label("drop_out"));
-
- &call (&label("pic_point")); # make it PIC!
- &set_label("pic_point");
- &blindpop($tbl);
- &picmeup($s0,"OPENSSL_ia32cap_P",$tbl,&label("pic_point")) if(!$x86only);
-
- &cmp (&wparam(5),0);
- &lea ($tbl,&DWP(&label("AES_Te")."-".&label("pic_point"),$tbl));
- &jne (&label("picked_te"));
- &lea ($tbl,&DWP(&label("AES_Td")."-".&label("AES_Te"),$tbl));
- &set_label("picked_te");
-
- # one can argue if this is required
- &pushf ();
- &cld ();
-
- &cmp ($s2,$speed_limit);
- &jb (&label("slow_way"));
- &test ($s2,15);
- &jnz (&label("slow_way"));
- if (!$x86only) {
- &bt (&DWP(0,$s0),28); # check for hyper-threading bit
- &jc (&label("slow_way"));
- }
- # pre-allocate aligned stack frame...
- &lea ($acc,&DWP(-80-244,"esp"));
- &and ($acc,-64);
-
- # ... and make sure it doesn't alias with $tbl modulo 4096
- &mov ($s0,$tbl);
- &lea ($s1,&DWP(2048+256,$tbl));
- &mov ($s3,$acc);
- &and ($s0,0xfff); # s = %ebp&0xfff
- &and ($s1,0xfff); # e = (%ebp+2048+256)&0xfff
- &and ($s3,0xfff); # p = %esp&0xfff
-
- &cmp ($s3,$s1); # if (p>=e) %esp =- (p-e);
- &jb (&label("tbl_break_out"));
- &sub ($s3,$s1);
- &sub ($acc,$s3);
- &jmp (&label("tbl_ok"));
- &set_label("tbl_break_out",4); # else %esp -= (p-s)&0xfff + framesz;
- &sub ($s3,$s0);
- &and ($s3,0xfff);
- &add ($s3,384);
- &sub ($acc,$s3);
- &set_label("tbl_ok",4);
-
- &lea ($s3,&wparam(0)); # obtain pointer to parameter block
- &exch ("esp",$acc); # allocate stack frame
- &add ("esp",4); # reserve for return address!
- &mov ($_tbl,$tbl); # save %ebp
- &mov ($_esp,$acc); # save %esp
-
- &mov ($s0,&DWP(0,$s3)); # load inp
- &mov ($s1,&DWP(4,$s3)); # load out
- #&mov ($s2,&DWP(8,$s3)); # load len
- &mov ($key,&DWP(12,$s3)); # load key
- &mov ($acc,&DWP(16,$s3)); # load ivp
- &mov ($s3,&DWP(20,$s3)); # load enc flag
-
- &mov ($_inp,$s0); # save copy of inp
- &mov ($_out,$s1); # save copy of out
- &mov ($_len,$s2); # save copy of len
- &mov ($_key,$key); # save copy of key
- &mov ($_ivp,$acc); # save copy of ivp
-
- &mov ($mark,0); # copy of aes_key->rounds = 0;
- # do we copy key schedule to stack?
- &mov ($s1 eq "ebx" ? $s1 : "",$key);
- &mov ($s2 eq "ecx" ? $s2 : "",244/4);
- &sub ($s1,$tbl);
- &mov ("esi",$key);
- &and ($s1,0xfff);
- &lea ("edi",$aes_key);
- &cmp ($s1,2048+256);
- &jb (&label("do_copy"));
- &cmp ($s1,4096-244);
- &jb (&label("skip_copy"));
- &set_label("do_copy",4);
- &mov ($_key,"edi");
- &data_word(0xA5F3F689); # rep movsd
- &set_label("skip_copy");
-
- &mov ($key,16);
- &set_label("prefetch_tbl",4);
- &mov ($s0,&DWP(0,$tbl));
- &mov ($s1,&DWP(32,$tbl));
- &mov ($s2,&DWP(64,$tbl));
- &mov ($acc,&DWP(96,$tbl));
- &lea ($tbl,&DWP(128,$tbl));
- &sub ($key,1);
- &jnz (&label("prefetch_tbl"));
- &sub ($tbl,2048);
-
- &mov ($acc,$_inp);
- &mov ($key,$_ivp);
-
- &cmp ($s3,0);
- &je (&label("fast_decrypt"));
-
-#----------------------------- ENCRYPT -----------------------------#
- &mov ($s0,&DWP(0,$key)); # load iv
- &mov ($s1,&DWP(4,$key));
-
- &set_label("fast_enc_loop",16);
- &mov ($s2,&DWP(8,$key));
- &mov ($s3,&DWP(12,$key));
-
- &xor ($s0,&DWP(0,$acc)); # xor input data
- &xor ($s1,&DWP(4,$acc));
- &xor ($s2,&DWP(8,$acc));
- &xor ($s3,&DWP(12,$acc));
-
- &mov ($key,$_key); # load key
- &call ("_x86_AES_encrypt");
-
- &mov ($acc,$_inp); # load inp
- &mov ($key,$_out); # load out
-
- &mov (&DWP(0,$key),$s0); # save output data
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &lea ($acc,&DWP(16,$acc)); # advance inp
- &mov ($s2,$_len); # load len
- &mov ($_inp,$acc); # save inp
- &lea ($s3,&DWP(16,$key)); # advance out
- &mov ($_out,$s3); # save out
- &sub ($s2,16); # decrease len
- &mov ($_len,$s2); # save len
- &jnz (&label("fast_enc_loop"));
- &mov ($acc,$_ivp); # load ivp
- &mov ($s2,&DWP(8,$key)); # restore last 2 dwords
- &mov ($s3,&DWP(12,$key));
- &mov (&DWP(0,$acc),$s0); # save ivec
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
-
- &cmp ($mark,0); # was the key schedule copied?
- &mov ("edi",$_key);
- &je (&label("skip_ezero"));
- # zero copy of key schedule
- &mov ("ecx",240/4);
- &xor ("eax","eax");
- &align (4);
- &data_word(0xABF3F689); # rep stosd
- &set_label("skip_ezero");
- &mov ("esp",$_esp);
- &popf ();
- &set_label("drop_out");
- &function_end_A();
- &pushf (); # kludge, never executed
-
-#----------------------------- DECRYPT -----------------------------#
-&set_label("fast_decrypt",16);
-
- &cmp ($acc,$_out);
- &je (&label("fast_dec_in_place")); # in-place processing...
-
- &mov ($_tmp,$key);
-
- &align (4);
- &set_label("fast_dec_loop",16);
- &mov ($s0,&DWP(0,$acc)); # read input
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
-
- &mov ($key,$_key); # load key
- &call ("_x86_AES_decrypt");
-
- &mov ($key,$_tmp); # load ivp
- &mov ($acc,$_len); # load len
- &xor ($s0,&DWP(0,$key)); # xor iv
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &mov ($key,$_out); # load out
- &mov ($acc,$_inp); # load inp
-
- &mov (&DWP(0,$key),$s0); # write output
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &mov ($s2,$_len); # load len
- &mov ($_tmp,$acc); # save ivp
- &lea ($acc,&DWP(16,$acc)); # advance inp
- &mov ($_inp,$acc); # save inp
- &lea ($key,&DWP(16,$key)); # advance out
- &mov ($_out,$key); # save out
- &sub ($s2,16); # decrease len
- &mov ($_len,$s2); # save len
- &jnz (&label("fast_dec_loop"));
- &mov ($key,$_tmp); # load temp ivp
- &mov ($acc,$_ivp); # load user ivp
- &mov ($s0,&DWP(0,$key)); # load iv
- &mov ($s1,&DWP(4,$key));
- &mov ($s2,&DWP(8,$key));
- &mov ($s3,&DWP(12,$key));
- &mov (&DWP(0,$acc),$s0); # copy back to user
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
- &jmp (&label("fast_dec_out"));
-
- &set_label("fast_dec_in_place",16);
- &set_label("fast_dec_in_place_loop");
- &mov ($s0,&DWP(0,$acc)); # read input
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
-
- &lea ($key,$ivec);
- &mov (&DWP(0,$key),$s0); # copy to temp
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &mov ($key,$_key); # load key
- &call ("_x86_AES_decrypt");
-
- &mov ($key,$_ivp); # load ivp
- &mov ($acc,$_out); # load out
- &xor ($s0,&DWP(0,$key)); # xor iv
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &mov (&DWP(0,$acc),$s0); # write output
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
-
- &lea ($acc,&DWP(16,$acc)); # advance out
- &mov ($_out,$acc); # save out
-
- &lea ($acc,$ivec);
- &mov ($s0,&DWP(0,$acc)); # read temp
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
-
- &mov (&DWP(0,$key),$s0); # copy iv
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &mov ($acc,$_inp); # load inp
- &mov ($s2,$_len); # load len
- &lea ($acc,&DWP(16,$acc)); # advance inp
- &mov ($_inp,$acc); # save inp
- &sub ($s2,16); # decrease len
- &mov ($_len,$s2); # save len
- &jnz (&label("fast_dec_in_place_loop"));
-
- &set_label("fast_dec_out",4);
- &cmp ($mark,0); # was the key schedule copied?
- &mov ("edi",$_key);
- &je (&label("skip_dzero"));
- # zero copy of key schedule
- &mov ("ecx",240/4);
- &xor ("eax","eax");
- &align (4);
- &data_word(0xABF3F689); # rep stosd
- &set_label("skip_dzero");
- &mov ("esp",$_esp);
- &popf ();
- &function_end_A();
- &pushf (); # kludge, never executed
-
-#--------------------------- SLOW ROUTINE ---------------------------#
-&set_label("slow_way",16);
-
- &mov ($s0,&DWP(0,$s0)) if (!$x86only);# load OPENSSL_ia32cap
- &mov ($key,&wparam(3)); # load key
-
- # pre-allocate aligned stack frame...
- &lea ($acc,&DWP(-80,"esp"));
- &and ($acc,-64);
-
- # ... and make sure it doesn't alias with $key modulo 1024
- &lea ($s1,&DWP(-80-63,$key));
- &sub ($s1,$acc);
- &neg ($s1);
- &and ($s1,0x3C0); # modulo 1024, but aligned to cache-line
- &sub ($acc,$s1);
-
- # pick S-box copy which can't overlap with stack frame or $key
- &lea ($s1,&DWP(768,$acc));
- &sub ($s1,$tbl);
- &and ($s1,0x300);
- &lea ($tbl,&DWP(2048+128,$tbl,$s1));
-
- &lea ($s3,&wparam(0)); # pointer to parameter block
-
- &exch ("esp",$acc);
- &add ("esp",4); # reserve for return address!
- &mov ($_tbl,$tbl); # save %ebp
- &mov ($_esp,$acc); # save %esp
- &mov ($_tmp,$s0); # save OPENSSL_ia32cap
-
- &mov ($s0,&DWP(0,$s3)); # load inp
- &mov ($s1,&DWP(4,$s3)); # load out
- #&mov ($s2,&DWP(8,$s3)); # load len
- #&mov ($key,&DWP(12,$s3)); # load key
- &mov ($acc,&DWP(16,$s3)); # load ivp
- &mov ($s3,&DWP(20,$s3)); # load enc flag
-
- &mov ($_inp,$s0); # save copy of inp
- &mov ($_out,$s1); # save copy of out
- &mov ($_len,$s2); # save copy of len
- &mov ($_key,$key); # save copy of key
- &mov ($_ivp,$acc); # save copy of ivp
-
- &mov ($key,$acc);
- &mov ($acc,$s0);
-
- &cmp ($s3,0);
- &je (&label("slow_decrypt"));
-
-#--------------------------- SLOW ENCRYPT ---------------------------#
- &cmp ($s2,16);
- &mov ($s3,$s1);
- &jb (&label("slow_enc_tail"));
-
- if (!$x86only) {
- &bt ($_tmp,25); # check for SSE bit
- &jnc (&label("slow_enc_x86"));
-
- &movq ("mm0",&QWP(0,$key)); # load iv
- &movq ("mm4",&QWP(8,$key));
-
- &set_label("slow_enc_loop_sse",16);
- &pxor ("mm0",&QWP(0,$acc)); # xor input data
- &pxor ("mm4",&QWP(8,$acc));
-
- &mov ($key,$_key);
- &call ("_sse_AES_encrypt_compact");
-
- &mov ($acc,$_inp); # load inp
- &mov ($key,$_out); # load out
- &mov ($s2,$_len); # load len
-
- &movq (&QWP(0,$key),"mm0"); # save output data
- &movq (&QWP(8,$key),"mm4");
-
- &lea ($acc,&DWP(16,$acc)); # advance inp
- &mov ($_inp,$acc); # save inp
- &lea ($s3,&DWP(16,$key)); # advance out
- &mov ($_out,$s3); # save out
- &sub ($s2,16); # decrease len
- &cmp ($s2,16);
- &mov ($_len,$s2); # save len
- &jae (&label("slow_enc_loop_sse"));
- &test ($s2,15);
- &jnz (&label("slow_enc_tail"));
- &mov ($acc,$_ivp); # load ivp
- &movq (&QWP(0,$acc),"mm0"); # save ivec
- &movq (&QWP(8,$acc),"mm4");
- &emms ();
- &mov ("esp",$_esp);
- &popf ();
- &function_end_A();
- &pushf (); # kludge, never executed
- }
- &set_label("slow_enc_x86",16);
- &mov ($s0,&DWP(0,$key)); # load iv
- &mov ($s1,&DWP(4,$key));
-
- &set_label("slow_enc_loop_x86",4);
- &mov ($s2,&DWP(8,$key));
- &mov ($s3,&DWP(12,$key));
-
- &xor ($s0,&DWP(0,$acc)); # xor input data
- &xor ($s1,&DWP(4,$acc));
- &xor ($s2,&DWP(8,$acc));
- &xor ($s3,&DWP(12,$acc));
-
- &mov ($key,$_key); # load key
- &call ("_x86_AES_encrypt_compact");
-
- &mov ($acc,$_inp); # load inp
- &mov ($key,$_out); # load out
-
- &mov (&DWP(0,$key),$s0); # save output data
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &mov ($s2,$_len); # load len
- &lea ($acc,&DWP(16,$acc)); # advance inp
- &mov ($_inp,$acc); # save inp
- &lea ($s3,&DWP(16,$key)); # advance out
- &mov ($_out,$s3); # save out
- &sub ($s2,16); # decrease len
- &cmp ($s2,16);
- &mov ($_len,$s2); # save len
- &jae (&label("slow_enc_loop_x86"));
- &test ($s2,15);
- &jnz (&label("slow_enc_tail"));
- &mov ($acc,$_ivp); # load ivp
- &mov ($s2,&DWP(8,$key)); # restore last dwords
- &mov ($s3,&DWP(12,$key));
- &mov (&DWP(0,$acc),$s0); # save ivec
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
-
- &mov ("esp",$_esp);
- &popf ();
- &function_end_A();
- &pushf (); # kludge, never executed
-
- &set_label("slow_enc_tail",16);
- &emms () if (!$x86only);
- &mov ($key eq "edi"? $key:"",$s3); # load out to edi
- &mov ($s1,16);
- &sub ($s1,$s2);
- &cmp ($key,$acc eq "esi"? $acc:""); # compare with inp
- &je (&label("enc_in_place"));
- &align (4);
- &data_word(0xA4F3F689); # rep movsb # copy input
- &jmp (&label("enc_skip_in_place"));
- &set_label("enc_in_place");
- &lea ($key,&DWP(0,$key,$s2));
- &set_label("enc_skip_in_place");
- &mov ($s2,$s1);
- &xor ($s0,$s0);
- &align (4);
- &data_word(0xAAF3F689); # rep stosb # zero tail
-
- &mov ($key,$_ivp); # restore ivp
- &mov ($acc,$s3); # output as input
- &mov ($s0,&DWP(0,$key));
- &mov ($s1,&DWP(4,$key));
- &mov ($_len,16); # len=16
- &jmp (&label("slow_enc_loop_x86")); # one more spin...
-
-#--------------------------- SLOW DECRYPT ---------------------------#
-&set_label("slow_decrypt",16);
- if (!$x86only) {
- &bt ($_tmp,25); # check for SSE bit
- &jnc (&label("slow_dec_loop_x86"));
-
- &set_label("slow_dec_loop_sse",4);
- &movq ("mm0",&QWP(0,$acc)); # read input
- &movq ("mm4",&QWP(8,$acc));
-
- &mov ($key,$_key);
- &call ("_sse_AES_decrypt_compact");
-
- &mov ($acc,$_inp); # load inp
- &lea ($s0,$ivec);
- &mov ($s1,$_out); # load out
- &mov ($s2,$_len); # load len
- &mov ($key,$_ivp); # load ivp
-
- &movq ("mm1",&QWP(0,$acc)); # re-read input
- &movq ("mm5",&QWP(8,$acc));
-
- &pxor ("mm0",&QWP(0,$key)); # xor iv
- &pxor ("mm4",&QWP(8,$key));
-
- &movq (&QWP(0,$key),"mm1"); # copy input to iv
- &movq (&QWP(8,$key),"mm5");
-
- &sub ($s2,16); # decrease len
- &jc (&label("slow_dec_partial_sse"));
-
- &movq (&QWP(0,$s1),"mm0"); # write output
- &movq (&QWP(8,$s1),"mm4");
-
- &lea ($s1,&DWP(16,$s1)); # advance out
- &mov ($_out,$s1); # save out
- &lea ($acc,&DWP(16,$acc)); # advance inp
- &mov ($_inp,$acc); # save inp
- &mov ($_len,$s2); # save len
- &jnz (&label("slow_dec_loop_sse"));
- &emms ();
- &mov ("esp",$_esp);
- &popf ();
- &function_end_A();
- &pushf (); # kludge, never executed
-
- &set_label("slow_dec_partial_sse",16);
- &movq (&QWP(0,$s0),"mm0"); # save output to temp
- &movq (&QWP(8,$s0),"mm4");
- &emms ();
-
- &add ($s2 eq "ecx" ? "ecx":"",16);
- &mov ("edi",$s1); # out
- &mov ("esi",$s0); # temp
- &align (4);
- &data_word(0xA4F3F689); # rep movsb # copy partial output
-
- &mov ("esp",$_esp);
- &popf ();
- &function_end_A();
- &pushf (); # kludge, never executed
- }
- &set_label("slow_dec_loop_x86",16);
- &mov ($s0,&DWP(0,$acc)); # read input
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
-
- &lea ($key,$ivec);
- &mov (&DWP(0,$key),$s0); # copy to temp
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &mov ($key,$_key); # load key
- &call ("_x86_AES_decrypt_compact");
-
- &mov ($key,$_ivp); # load ivp
- &mov ($acc,$_len); # load len
- &xor ($s0,&DWP(0,$key)); # xor iv
- &xor ($s1,&DWP(4,$key));
- &xor ($s2,&DWP(8,$key));
- &xor ($s3,&DWP(12,$key));
-
- &sub ($acc,16);
- &jc (&label("slow_dec_partial_x86"));
-
- &mov ($_len,$acc); # save len
- &mov ($acc,$_out); # load out
-
- &mov (&DWP(0,$acc),$s0); # write output
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
-
- &lea ($acc,&DWP(16,$acc)); # advance out
- &mov ($_out,$acc); # save out
-
- &lea ($acc,$ivec);
- &mov ($s0,&DWP(0,$acc)); # read temp
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
-
- &mov (&DWP(0,$key),$s0); # copy it to iv
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &mov ($acc,$_inp); # load inp
- &lea ($acc,&DWP(16,$acc)); # advance inp
- &mov ($_inp,$acc); # save inp
- &jnz (&label("slow_dec_loop_x86"));
- &mov ("esp",$_esp);
- &popf ();
- &function_end_A();
- &pushf (); # kludge, never executed
-
- &set_label("slow_dec_partial_x86",16);
- &lea ($acc,$ivec);
- &mov (&DWP(0,$acc),$s0); # save output to temp
- &mov (&DWP(4,$acc),$s1);
- &mov (&DWP(8,$acc),$s2);
- &mov (&DWP(12,$acc),$s3);
-
- &mov ($acc,$_inp);
- &mov ($s0,&DWP(0,$acc)); # re-read input
- &mov ($s1,&DWP(4,$acc));
- &mov ($s2,&DWP(8,$acc));
- &mov ($s3,&DWP(12,$acc));
-
- &mov (&DWP(0,$key),$s0); # copy it to iv
- &mov (&DWP(4,$key),$s1);
- &mov (&DWP(8,$key),$s2);
- &mov (&DWP(12,$key),$s3);
-
- &mov ("ecx",$_len);
- &mov ("edi",$_out);
- &lea ("esi",$ivec);
- &align (4);
- &data_word(0xA4F3F689); # rep movsb # copy partial output
-
- &mov ("esp",$_esp);
- &popf ();
-&function_end("AES_cbc_encrypt");
-}
-
-#------------------------------------------------------------------#
-
-sub enckey()
-{
- &movz ("esi",&LB("edx")); # rk[i]>>0
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &movz ("esi",&HB("edx")); # rk[i]>>8
- &shl ("ebx",24);
- &xor ("eax","ebx");
-
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &shr ("edx",16);
- &movz ("esi",&LB("edx")); # rk[i]>>16
- &xor ("eax","ebx");
-
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &movz ("esi",&HB("edx")); # rk[i]>>24
- &shl ("ebx",8);
- &xor ("eax","ebx");
-
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &shl ("ebx",16);
- &xor ("eax","ebx");
-
- &xor ("eax",&DWP(1024-128,$tbl,"ecx",4)); # rcon
-}
-
-&function_begin("_x86_AES_set_encrypt_key");
- &mov ("esi",&wparam(1)); # user supplied key
- &mov ("edi",&wparam(3)); # private key schedule
-
- &test ("esi",-1);
- &jz (&label("badpointer"));
- &test ("edi",-1);
- &jz (&label("badpointer"));
-
- &call (&label("pic_point"));
- &set_label("pic_point");
- &blindpop($tbl);
- &lea ($tbl,&DWP(&label("AES_Te")."-".&label("pic_point"),$tbl));
- &lea ($tbl,&DWP(2048+128,$tbl));
-
- # prefetch Te4
- &mov ("eax",&DWP(0-128,$tbl));
- &mov ("ebx",&DWP(32-128,$tbl));
- &mov ("ecx",&DWP(64-128,$tbl));
- &mov ("edx",&DWP(96-128,$tbl));
- &mov ("eax",&DWP(128-128,$tbl));
- &mov ("ebx",&DWP(160-128,$tbl));
- &mov ("ecx",&DWP(192-128,$tbl));
- &mov ("edx",&DWP(224-128,$tbl));
-
- &mov ("ecx",&wparam(2)); # number of bits in key
- &cmp ("ecx",128);
- &je (&label("10rounds"));
- &cmp ("ecx",192);
- &je (&label("12rounds"));
- &cmp ("ecx",256);
- &je (&label("14rounds"));
- &mov ("eax",-2); # invalid number of bits
- &jmp (&label("exit"));
-
- &set_label("10rounds");
- &mov ("eax",&DWP(0,"esi")); # copy first 4 dwords
- &mov ("ebx",&DWP(4,"esi"));
- &mov ("ecx",&DWP(8,"esi"));
- &mov ("edx",&DWP(12,"esi"));
- &mov (&DWP(0,"edi"),"eax");
- &mov (&DWP(4,"edi"),"ebx");
- &mov (&DWP(8,"edi"),"ecx");
- &mov (&DWP(12,"edi"),"edx");
-
- &xor ("ecx","ecx");
- &jmp (&label("10shortcut"));
-
- &align (4);
- &set_label("10loop");
- &mov ("eax",&DWP(0,"edi")); # rk[0]
- &mov ("edx",&DWP(12,"edi")); # rk[3]
- &set_label("10shortcut");
- &enckey ();
-
- &mov (&DWP(16,"edi"),"eax"); # rk[4]
- &xor ("eax",&DWP(4,"edi"));
- &mov (&DWP(20,"edi"),"eax"); # rk[5]
- &xor ("eax",&DWP(8,"edi"));
- &mov (&DWP(24,"edi"),"eax"); # rk[6]
- &xor ("eax",&DWP(12,"edi"));
- &mov (&DWP(28,"edi"),"eax"); # rk[7]
- &inc ("ecx");
- &add ("edi",16);
- &cmp ("ecx",10);
- &jl (&label("10loop"));
-
- &mov (&DWP(80,"edi"),10); # setup number of rounds
- &xor ("eax","eax");
- &jmp (&label("exit"));
-
- &set_label("12rounds");
- &mov ("eax",&DWP(0,"esi")); # copy first 6 dwords
- &mov ("ebx",&DWP(4,"esi"));
- &mov ("ecx",&DWP(8,"esi"));
- &mov ("edx",&DWP(12,"esi"));
- &mov (&DWP(0,"edi"),"eax");
- &mov (&DWP(4,"edi"),"ebx");
- &mov (&DWP(8,"edi"),"ecx");
- &mov (&DWP(12,"edi"),"edx");
- &mov ("ecx",&DWP(16,"esi"));
- &mov ("edx",&DWP(20,"esi"));
- &mov (&DWP(16,"edi"),"ecx");
- &mov (&DWP(20,"edi"),"edx");
-
- &xor ("ecx","ecx");
- &jmp (&label("12shortcut"));
-
- &align (4);
- &set_label("12loop");
- &mov ("eax",&DWP(0,"edi")); # rk[0]
- &mov ("edx",&DWP(20,"edi")); # rk[5]
- &set_label("12shortcut");
- &enckey ();
-
- &mov (&DWP(24,"edi"),"eax"); # rk[6]
- &xor ("eax",&DWP(4,"edi"));
- &mov (&DWP(28,"edi"),"eax"); # rk[7]
- &xor ("eax",&DWP(8,"edi"));
- &mov (&DWP(32,"edi"),"eax"); # rk[8]
- &xor ("eax",&DWP(12,"edi"));
- &mov (&DWP(36,"edi"),"eax"); # rk[9]
-
- &cmp ("ecx",7);
- &je (&label("12break"));
- &inc ("ecx");
-
- &xor ("eax",&DWP(16,"edi"));
- &mov (&DWP(40,"edi"),"eax"); # rk[10]
- &xor ("eax",&DWP(20,"edi"));
- &mov (&DWP(44,"edi"),"eax"); # rk[11]
-
- &add ("edi",24);
- &jmp (&label("12loop"));
-
- &set_label("12break");
- &mov (&DWP(72,"edi"),12); # setup number of rounds
- &xor ("eax","eax");
- &jmp (&label("exit"));
-
- &set_label("14rounds");
- &mov ("eax",&DWP(0,"esi")); # copy first 8 dwords
- &mov ("ebx",&DWP(4,"esi"));
- &mov ("ecx",&DWP(8,"esi"));
- &mov ("edx",&DWP(12,"esi"));
- &mov (&DWP(0,"edi"),"eax");
- &mov (&DWP(4,"edi"),"ebx");
- &mov (&DWP(8,"edi"),"ecx");
- &mov (&DWP(12,"edi"),"edx");
- &mov ("eax",&DWP(16,"esi"));
- &mov ("ebx",&DWP(20,"esi"));
- &mov ("ecx",&DWP(24,"esi"));
- &mov ("edx",&DWP(28,"esi"));
- &mov (&DWP(16,"edi"),"eax");
- &mov (&DWP(20,"edi"),"ebx");
- &mov (&DWP(24,"edi"),"ecx");
- &mov (&DWP(28,"edi"),"edx");
-
- &xor ("ecx","ecx");
- &jmp (&label("14shortcut"));
-
- &align (4);
- &set_label("14loop");
- &mov ("edx",&DWP(28,"edi")); # rk[7]
- &set_label("14shortcut");
- &mov ("eax",&DWP(0,"edi")); # rk[0]
-
- &enckey ();
-
- &mov (&DWP(32,"edi"),"eax"); # rk[8]
- &xor ("eax",&DWP(4,"edi"));
- &mov (&DWP(36,"edi"),"eax"); # rk[9]
- &xor ("eax",&DWP(8,"edi"));
- &mov (&DWP(40,"edi"),"eax"); # rk[10]
- &xor ("eax",&DWP(12,"edi"));
- &mov (&DWP(44,"edi"),"eax"); # rk[11]
-
- &cmp ("ecx",6);
- &je (&label("14break"));
- &inc ("ecx");
-
- &mov ("edx","eax");
- &mov ("eax",&DWP(16,"edi")); # rk[4]
- &movz ("esi",&LB("edx")); # rk[11]>>0
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &movz ("esi",&HB("edx")); # rk[11]>>8
- &xor ("eax","ebx");
-
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &shr ("edx",16);
- &shl ("ebx",8);
- &movz ("esi",&LB("edx")); # rk[11]>>16
- &xor ("eax","ebx");
-
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &movz ("esi",&HB("edx")); # rk[11]>>24
- &shl ("ebx",16);
- &xor ("eax","ebx");
-
- &movz ("ebx",&BP(-128,$tbl,"esi",1));
- &shl ("ebx",24);
- &xor ("eax","ebx");
-
- &mov (&DWP(48,"edi"),"eax"); # rk[12]
- &xor ("eax",&DWP(20,"edi"));
- &mov (&DWP(52,"edi"),"eax"); # rk[13]
- &xor ("eax",&DWP(24,"edi"));
- &mov (&DWP(56,"edi"),"eax"); # rk[14]
- &xor ("eax",&DWP(28,"edi"));
- &mov (&DWP(60,"edi"),"eax"); # rk[15]
-
- &add ("edi",32);
- &jmp (&label("14loop"));
-
- &set_label("14break");
- &mov (&DWP(48,"edi"),14); # setup number of rounds
- &xor ("eax","eax");
- &jmp (&label("exit"));
-
- &set_label("badpointer");
- &mov ("eax",-1);
- &set_label("exit");
-&function_end("_x86_AES_set_encrypt_key");
-
-# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
-# AES_KEY *key)
-&function_begin_B("AES_set_encrypt_key");
- &call ("_x86_AES_set_encrypt_key");
- &ret ();
-&function_end_B("AES_set_encrypt_key");
-
-sub deckey()
-{ my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_;
- my $tmp = $tbl;
-
- &mov ($tmp,0x80808080);
- &and ($tmp,$tp1);
- &lea ($tp2,&DWP(0,$tp1,$tp1));
- &mov ($acc,$tmp);
- &shr ($tmp,7);
- &sub ($acc,$tmp);
- &and ($tp2,0xfefefefe);
- &and ($acc,0x1b1b1b1b);
- &xor ($tp2,$acc);
- &mov ($tmp,0x80808080);
-
- &and ($tmp,$tp2);
- &lea ($tp4,&DWP(0,$tp2,$tp2));
- &mov ($acc,$tmp);
- &shr ($tmp,7);
- &sub ($acc,$tmp);
- &and ($tp4,0xfefefefe);
- &and ($acc,0x1b1b1b1b);
- &xor ($tp2,$tp1); # tp2^tp1
- &xor ($tp4,$acc);
- &mov ($tmp,0x80808080);
-
- &and ($tmp,$tp4);
- &lea ($tp8,&DWP(0,$tp4,$tp4));
- &mov ($acc,$tmp);
- &shr ($tmp,7);
- &xor ($tp4,$tp1); # tp4^tp1
- &sub ($acc,$tmp);
- &and ($tp8,0xfefefefe);
- &and ($acc,0x1b1b1b1b);
- &rotl ($tp1,8); # = ROTATE(tp1,8)
- &xor ($tp8,$acc);
-
- &mov ($tmp,&DWP(4*($i+1),$key)); # modulo-scheduled load
-
- &xor ($tp1,$tp2);
- &xor ($tp2,$tp8);
- &xor ($tp1,$tp4);
- &rotl ($tp2,24);
- &xor ($tp4,$tp8);
- &xor ($tp1,$tp8); # ^= tp8^(tp4^tp1)^(tp2^tp1)
- &rotl ($tp4,16);
- &xor ($tp1,$tp2); # ^= ROTATE(tp8^tp2^tp1,24)
- &rotl ($tp8,8);
- &xor ($tp1,$tp4); # ^= ROTATE(tp8^tp4^tp1,16)
- &mov ($tp2,$tmp);
- &xor ($tp1,$tp8); # ^= ROTATE(tp8,8)
-
- &mov (&DWP(4*$i,$key),$tp1);
-}
-
-# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
-# AES_KEY *key)
-&function_begin_B("AES_set_decrypt_key");
- &call ("_x86_AES_set_encrypt_key");
- &cmp ("eax",0);
- &je (&label("proceed"));
- &ret ();
-
- &set_label("proceed");
- &push ("ebp");
- &push ("ebx");
- &push ("esi");
- &push ("edi");
-
- &mov ("esi",&wparam(2));
- &mov ("ecx",&DWP(240,"esi")); # pull number of rounds
- &lea ("ecx",&DWP(0,"","ecx",4));
- &lea ("edi",&DWP(0,"esi","ecx",4)); # pointer to last chunk
-
- &set_label("invert",4); # invert order of chunks
- &mov ("eax",&DWP(0,"esi"));
- &mov ("ebx",&DWP(4,"esi"));
- &mov ("ecx",&DWP(0,"edi"));
- &mov ("edx",&DWP(4,"edi"));
- &mov (&DWP(0,"edi"),"eax");
- &mov (&DWP(4,"edi"),"ebx");
- &mov (&DWP(0,"esi"),"ecx");
- &mov (&DWP(4,"esi"),"edx");
- &mov ("eax",&DWP(8,"esi"));
- &mov ("ebx",&DWP(12,"esi"));
- &mov ("ecx",&DWP(8,"edi"));
- &mov ("edx",&DWP(12,"edi"));
- &mov (&DWP(8,"edi"),"eax");
- &mov (&DWP(12,"edi"),"ebx");
- &mov (&DWP(8,"esi"),"ecx");
- &mov (&DWP(12,"esi"),"edx");
- &add ("esi",16);
- &sub ("edi",16);
- &cmp ("esi","edi");
- &jne (&label("invert"));
-
- &mov ($key,&wparam(2));
- &mov ($acc,&DWP(240,$key)); # pull number of rounds
- &lea ($acc,&DWP(-2,$acc,$acc));
- &lea ($acc,&DWP(0,$key,$acc,8));
- &mov (&wparam(2),$acc);
-
- &mov ($s0,&DWP(16,$key)); # modulo-scheduled load
- &set_label("permute",4); # permute the key schedule
- &add ($key,16);
- &deckey (0,$key,$s0,$s1,$s2,$s3);
- &deckey (1,$key,$s1,$s2,$s3,$s0);
- &deckey (2,$key,$s2,$s3,$s0,$s1);
- &deckey (3,$key,$s3,$s0,$s1,$s2);
- &cmp ($key,&wparam(2));
- &jb (&label("permute"));
-
- &xor ("eax","eax"); # return success
-&function_end("AES_set_decrypt_key");
-&asciz("AES for x86, CRYPTOGAMS by ");
-
-&asm_finish();
-
-close STDOUT;
diff --git a/deps/openssl/openssl/crypto/aes/asm/aes-s390x.pl b/deps/openssl/openssl/crypto/aes/asm/aes-s390x.pl
index 0c40059066508d..815fde8fcd7e2b 100644
--- a/deps/openssl/openssl/crypto/aes/asm/aes-s390x.pl
+++ b/deps/openssl/openssl/crypto/aes/asm/aes-s390x.pl
@@ -1,5 +1,5 @@
#! /usr/bin/env perl
-# Copyright 2007-2018 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2007-2019 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -38,14 +38,14 @@
# Implement AES_set_[en|de]crypt_key. Key schedule setup is avoided
# for 128-bit keys, if hardware support is detected.
-# Januray 2009.
+# January 2009.
#
# Add support for hardware AES192/256 and reschedule instructions to
# minimize/avoid Address Generation Interlock hazard and to favour
# dual-issue z10 pipeline. This gave ~25% improvement on z10 and
# almost 50% on z9. The gain is smaller on z10, because being dual-
# issue z10 makes it impossible to eliminate the interlock condition:
-# critial path is not long enough. Yet it spends ~24 cycles per byte
+# critical path is not long enough. Yet it spends ~24 cycles per byte
# processed with 128-bit key.
#
# Unlike previous version hardware support detection takes place only
diff --git a/deps/openssl/openssl/crypto/aes/asm/aes-x86_64.pl b/deps/openssl/openssl/crypto/aes/asm/aes-x86_64.pl
deleted file mode 100755
index d87e2011477109..00000000000000
--- a/deps/openssl/openssl/crypto/aes/asm/aes-x86_64.pl
+++ /dev/null
@@ -1,2916 +0,0 @@
-#! /usr/bin/env perl
-# Copyright 2005-2019 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License"). You may not use
-# this file except in compliance with the License. You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-#
-# ====================================================================
-# Written by Andy Polyakov for the OpenSSL
-# project. The module is, however, dual licensed under OpenSSL and
-# CRYPTOGAMS licenses depending on where you obtain it. For further
-# details see http://www.openssl.org/~appro/cryptogams/.
-# ====================================================================
-#
-# Version 2.1.
-#
-# aes-*-cbc benchmarks are improved by >70% [compared to gcc 3.3.2 on
-# Opteron 240 CPU] plus all the bells-n-whistles from 32-bit version
-# [you'll notice a lot of resemblance], such as compressed S-boxes
-# in little-endian byte order, prefetch of these tables in CBC mode,
-# as well as avoiding L1 cache aliasing between stack frame and key
-# schedule and already mentioned tables, compressed Td4...
-#
-# Performance in number of cycles per processed byte for 128-bit key:
-#
-# ECB encrypt ECB decrypt CBC large chunk
-# AMD64 33 43 13.0
-# EM64T 38 56 18.6(*)
-# Core 2 30 42 14.5(*)
-# Atom 65 86 32.1(*)
-#
-# (*) with hyper-threading off
-
-$flavour = shift;
-$output = shift;
-if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
-
-$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
-
-$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
-( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
-die "can't locate x86_64-xlate.pl";
-
-open OUT,"| \"$^X\" \"$xlate\" $flavour \"$output\"";
-*STDOUT=*OUT;
-
-$verticalspin=1; # unlike 32-bit version $verticalspin performs
- # ~15% better on both AMD and Intel cores
-$speed_limit=512; # see aes-586.pl for details
-
-$code=".text\n";
-
-$s0="%eax";
-$s1="%ebx";
-$s2="%ecx";
-$s3="%edx";
-$acc0="%esi"; $mask80="%rsi";
-$acc1="%edi"; $maskfe="%rdi";
-$acc2="%ebp"; $mask1b="%rbp";
-$inp="%r8";
-$out="%r9";
-$t0="%r10d";
-$t1="%r11d";
-$t2="%r12d";
-$rnds="%r13d";
-$sbox="%r14";
-$key="%r15";
-
-sub hi() { my $r=shift; $r =~ s/%[er]([a-d])x/%\1h/; $r; }
-sub lo() { my $r=shift; $r =~ s/%[er]([a-d])x/%\1l/;
- $r =~ s/%[er]([sd]i)/%\1l/;
- $r =~ s/%(r[0-9]+)[d]?/%\1b/; $r; }
-sub LO() { my $r=shift; $r =~ s/%r([a-z]+)/%e\1/;
- $r =~ s/%r([0-9]+)/%r\1d/; $r; }
-sub _data_word()
-{ my $i;
- while(defined($i=shift)) { $code.=sprintf".long\t0x%08x,0x%08x\n",$i,$i; }
-}
-sub data_word()
-{ my $i;
- my $last=pop(@_);
- $code.=".long\t";
- while(defined($i=shift)) { $code.=sprintf"0x%08x,",$i; }
- $code.=sprintf"0x%08x\n",$last;
-}
-
-sub data_byte()
-{ my $i;
- my $last=pop(@_);
- $code.=".byte\t";
- while(defined($i=shift)) { $code.=sprintf"0x%02x,",$i&0xff; }
- $code.=sprintf"0x%02x\n",$last&0xff;
-}
-
-sub encvert()
-{ my $t3="%r8d"; # zaps $inp!
-
-$code.=<<___;
- # favor 3-way issue Opteron pipeline...
- movzb `&lo("$s0")`,$acc0
- movzb `&lo("$s1")`,$acc1
- movzb `&lo("$s2")`,$acc2
- mov 0($sbox,$acc0,8),$t0
- mov 0($sbox,$acc1,8),$t1
- mov 0($sbox,$acc2,8),$t2
-
- movzb `&hi("$s1")`,$acc0
- movzb `&hi("$s2")`,$acc1
- movzb `&lo("$s3")`,$acc2
- xor 3($sbox,$acc0,8),$t0
- xor 3($sbox,$acc1,8),$t1
- mov 0($sbox,$acc2,8),$t3
-
- movzb `&hi("$s3")`,$acc0
- shr \$16,$s2
- movzb `&hi("$s0")`,$acc2
- xor 3($sbox,$acc0,8),$t2
- shr \$16,$s3
- xor 3($sbox,$acc2,8),$t3
-
- shr \$16,$s1
- lea 16($key),$key
- shr \$16,$s0
-
- movzb `&lo("$s2")`,$acc0
- movzb `&lo("$s3")`,$acc1
- movzb `&lo("$s0")`,$acc2
- xor 2($sbox,$acc0,8),$t0
- xor 2($sbox,$acc1,8),$t1
- xor 2($sbox,$acc2,8),$t2
-
- movzb `&hi("$s3")`,$acc0
- movzb `&hi("$s0")`,$acc1
- movzb `&lo("$s1")`,$acc2
- xor 1($sbox,$acc0,8),$t0
- xor 1($sbox,$acc1,8),$t1
- xor 2($sbox,$acc2,8),$t3
-
- mov 12($key),$s3
- movzb `&hi("$s1")`,$acc1
- movzb `&hi("$s2")`,$acc2
- mov 0($key),$s0
- xor 1($sbox,$acc1,8),$t2
- xor 1($sbox,$acc2,8),$t3
-
- mov 4($key),$s1
- mov 8($key),$s2
- xor $t0,$s0
- xor $t1,$s1
- xor $t2,$s2
- xor $t3,$s3
-___
-}
-
-sub enclastvert()
-{ my $t3="%r8d"; # zaps $inp!
-
-$code.=<<___;
- movzb `&lo("$s0")`,$acc0
- movzb `&lo("$s1")`,$acc1
- movzb `&lo("$s2")`,$acc2
- movzb 2($sbox,$acc0,8),$t0
- movzb 2($sbox,$acc1,8),$t1
- movzb 2($sbox,$acc2,8),$t2
-
- movzb `&lo("$s3")`,$acc0
- movzb `&hi("$s1")`,$acc1
- movzb `&hi("$s2")`,$acc2
- movzb 2($sbox,$acc0,8),$t3
- mov 0($sbox,$acc1,8),$acc1 #$t0
- mov 0($sbox,$acc2,8),$acc2 #$t1
-
- and \$0x0000ff00,$acc1
- and \$0x0000ff00,$acc2
-
- xor $acc1,$t0
- xor $acc2,$t1
- shr \$16,$s2
-
- movzb `&hi("$s3")`,$acc0
- movzb `&hi("$s0")`,$acc1
- shr \$16,$s3
- mov 0($sbox,$acc0,8),$acc0 #$t2
- mov 0($sbox,$acc1,8),$acc1 #$t3
-
- and \$0x0000ff00,$acc0
- and \$0x0000ff00,$acc1
- shr \$16,$s1
- xor $acc0,$t2
- xor $acc1,$t3
- shr \$16,$s0
-
- movzb `&lo("$s2")`,$acc0
- movzb `&lo("$s3")`,$acc1
- movzb `&lo("$s0")`,$acc2
- mov 0($sbox,$acc0,8),$acc0 #$t0
- mov 0($sbox,$acc1,8),$acc1 #$t1
- mov 0($sbox,$acc2,8),$acc2 #$t2
-
- and \$0x00ff0000,$acc0
- and \$0x00ff0000,$acc1
- and \$0x00ff0000,$acc2
-
- xor $acc0,$t0
- xor $acc1,$t1
- xor $acc2,$t2
-
- movzb `&lo("$s1")`,$acc0
- movzb `&hi("$s3")`,$acc1
- movzb `&hi("$s0")`,$acc2
- mov 0($sbox,$acc0,8),$acc0 #$t3
- mov 2($sbox,$acc1,8),$acc1 #$t0
- mov 2($sbox,$acc2,8),$acc2 #$t1
-
- and \$0x00ff0000,$acc0
- and \$0xff000000,$acc1
- and \$0xff000000,$acc2
-
- xor $acc0,$t3
- xor $acc1,$t0
- xor $acc2,$t1
-
- movzb `&hi("$s1")`,$acc0
- movzb `&hi("$s2")`,$acc1
- mov 16+12($key),$s3
- mov 2($sbox,$acc0,8),$acc0 #$t2
- mov 2($sbox,$acc1,8),$acc1 #$t3
- mov 16+0($key),$s0
-
- and \$0xff000000,$acc0
- and \$0xff000000,$acc1
-
- xor $acc0,$t2
- xor $acc1,$t3
-
- mov 16+4($key),$s1
- mov 16+8($key),$s2
- xor $t0,$s0
- xor $t1,$s1
- xor $t2,$s2
- xor $t3,$s3
-___
-}
-
-sub encstep()
-{ my ($i,@s) = @_;
- my $tmp0=$acc0;
- my $tmp1=$acc1;
- my $tmp2=$acc2;
- my $out=($t0,$t1,$t2,$s[0])[$i];
-
- if ($i==3) {
- $tmp0=$s[1];
- $tmp1=$s[2];
- $tmp2=$s[3];
- }
- $code.=" movzb ".&lo($s[0]).",$out\n";
- $code.=" mov $s[2],$tmp1\n" if ($i!=3);
- $code.=" lea 16($key),$key\n" if ($i==0);
-
- $code.=" movzb ".&hi($s[1]).",$tmp0\n";
- $code.=" mov 0($sbox,$out,8),$out\n";
-
- $code.=" shr \$16,$tmp1\n";
- $code.=" mov $s[3],$tmp2\n" if ($i!=3);
- $code.=" xor 3($sbox,$tmp0,8),$out\n";
-
- $code.=" movzb ".&lo($tmp1).",$tmp1\n";
- $code.=" shr \$24,$tmp2\n";
- $code.=" xor 4*$i($key),$out\n";
-
- $code.=" xor 2($sbox,$tmp1,8),$out\n";
- $code.=" xor 1($sbox,$tmp2,8),$out\n";
-
- $code.=" mov $t0,$s[1]\n" if ($i==3);
- $code.=" mov $t1,$s[2]\n" if ($i==3);
- $code.=" mov $t2,$s[3]\n" if ($i==3);
- $code.="\n";
-}
-
-sub enclast()
-{ my ($i,@s)=@_;
- my $tmp0=$acc0;
- my $tmp1=$acc1;
- my $tmp2=$acc2;
- my $out=($t0,$t1,$t2,$s[0])[$i];
-
- if ($i==3) {
- $tmp0=$s[1];
- $tmp1=$s[2];
- $tmp2=$s[3];
- }
- $code.=" movzb ".&lo($s[0]).",$out\n";
- $code.=" mov $s[2],$tmp1\n" if ($i!=3);
-
- $code.=" mov 2($sbox,$out,8),$out\n";
- $code.=" shr \$16,$tmp1\n";
- $code.=" mov $s[3],$tmp2\n" if ($i!=3);
-
- $code.=" and \$0x000000ff,$out\n";
- $code.=" movzb ".&hi($s[1]).",$tmp0\n";
- $code.=" movzb ".&lo($tmp1).",$tmp1\n";
- $code.=" shr \$24,$tmp2\n";
-
- $code.=" mov 0($sbox,$tmp0,8),$tmp0\n";
- $code.=" mov 0($sbox,$tmp1,8),$tmp1\n";
- $code.=" mov 2($sbox,$tmp2,8),$tmp2\n";
-
- $code.=" and \$0x0000ff00,$tmp0\n";
- $code.=" and \$0x00ff0000,$tmp1\n";
- $code.=" and \$0xff000000,$tmp2\n";
-
- $code.=" xor $tmp0,$out\n";
- $code.=" mov $t0,$s[1]\n" if ($i==3);
- $code.=" xor $tmp1,$out\n";
- $code.=" mov $t1,$s[2]\n" if ($i==3);
- $code.=" xor $tmp2,$out\n";
- $code.=" mov $t2,$s[3]\n" if ($i==3);
- $code.="\n";
-}
-
-$code.=<<___;
-.type _x86_64_AES_encrypt,\@abi-omnipotent
-.align 16
-_x86_64_AES_encrypt:
- xor 0($key),$s0 # xor with key
- xor 4($key),$s1
- xor 8($key),$s2
- xor 12($key),$s3
-
- mov 240($key),$rnds # load key->rounds
- sub \$1,$rnds
- jmp .Lenc_loop
-.align 16
-.Lenc_loop:
-___
- if ($verticalspin) { &encvert(); }
- else { &encstep(0,$s0,$s1,$s2,$s3);
- &encstep(1,$s1,$s2,$s3,$s0);
- &encstep(2,$s2,$s3,$s0,$s1);
- &encstep(3,$s3,$s0,$s1,$s2);
- }
-$code.=<<___;
- sub \$1,$rnds
- jnz .Lenc_loop
-___
- if ($verticalspin) { &enclastvert(); }
- else { &enclast(0,$s0,$s1,$s2,$s3);
- &enclast(1,$s1,$s2,$s3,$s0);
- &enclast(2,$s2,$s3,$s0,$s1);
- &enclast(3,$s3,$s0,$s1,$s2);
- $code.=<<___;
- xor 16+0($key),$s0 # xor with key
- xor 16+4($key),$s1
- xor 16+8($key),$s2
- xor 16+12($key),$s3
-___
- }
-$code.=<<___;
- .byte 0xf3,0xc3 # rep ret
-.size _x86_64_AES_encrypt,.-_x86_64_AES_encrypt
-___
-
-# it's possible to implement this by shifting tN by 8, filling least
-# significant byte with byte load and finally bswap-ing at the end,
-# but such partial register load kills Core 2...
-sub enccompactvert()
-{ my ($t3,$t4,$t5)=("%r8d","%r9d","%r13d");
-
-$code.=<<___;
- movzb `&lo("$s0")`,$t0
- movzb `&lo("$s1")`,$t1
- movzb `&lo("$s2")`,$t2
- movzb `&lo("$s3")`,$t3
- movzb `&hi("$s1")`,$acc0
- movzb `&hi("$s2")`,$acc1
- shr \$16,$s2
- movzb `&hi("$s3")`,$acc2
- movzb ($sbox,$t0,1),$t0
- movzb ($sbox,$t1,1),$t1
- movzb ($sbox,$t2,1),$t2
- movzb ($sbox,$t3,1),$t3
-
- movzb ($sbox,$acc0,1),$t4 #$t0
- movzb `&hi("$s0")`,$acc0
- movzb ($sbox,$acc1,1),$t5 #$t1
- movzb `&lo("$s2")`,$acc1
- movzb ($sbox,$acc2,1),$acc2 #$t2
- movzb ($sbox,$acc0,1),$acc0 #$t3
-
- shl \$8,$t4
- shr \$16,$s3
- shl \$8,$t5
- xor $t4,$t0
- shr \$16,$s0
- movzb `&lo("$s3")`,$t4
- shr \$16,$s1
- xor $t5,$t1
- shl \$8,$acc2
- movzb `&lo("$s0")`,$t5
- movzb ($sbox,$acc1,1),$acc1 #$t0
- xor $acc2,$t2
-
- shl \$8,$acc0
- movzb `&lo("$s1")`,$acc2
- shl \$16,$acc1
- xor $acc0,$t3
- movzb ($sbox,$t4,1),$t4 #$t1
- movzb `&hi("$s3")`,$acc0
- movzb ($sbox,$t5,1),$t5 #$t2
- xor $acc1,$t0
-
- shr \$8,$s2
- movzb `&hi("$s0")`,$acc1
- shl \$16,$t4
- shr \$8,$s1
- shl \$16,$t5
- xor $t4,$t1
- movzb ($sbox,$acc2,1),$acc2 #$t3
- movzb ($sbox,$acc0,1),$acc0 #$t0
- movzb ($sbox,$acc1,1),$acc1 #$t1
- movzb ($sbox,$s2,1),$s3 #$t3
- movzb ($sbox,$s1,1),$s2 #$t2
-
- shl \$16,$acc2
- xor $t5,$t2
- shl \$24,$acc0
- xor $acc2,$t3
- shl \$24,$acc1
- xor $acc0,$t0
- shl \$24,$s3
- xor $acc1,$t1
- shl \$24,$s2
- mov $t0,$s0
- mov $t1,$s1
- xor $t2,$s2
- xor $t3,$s3
-___
-}
-
-sub enctransform_ref()
-{ my $sn = shift;
- my ($acc,$r2,$tmp)=("%r8d","%r9d","%r13d");
-
-$code.=<<___;
- mov $sn,$acc
- and \$0x80808080,$acc
- mov $acc,$tmp
- shr \$7,$tmp
- lea ($sn,$sn),$r2
- sub $tmp,$acc
- and \$0xfefefefe,$r2
- and \$0x1b1b1b1b,$acc
- mov $sn,$tmp
- xor $acc,$r2
-
- xor $r2,$sn
- rol \$24,$sn
- xor $r2,$sn
- ror \$16,$tmp
- xor $tmp,$sn
- ror \$8,$tmp
- xor $tmp,$sn
-___
-}
-
-# unlike decrypt case it does not pay off to parallelize enctransform
-sub enctransform()
-{ my ($t3,$r20,$r21)=($acc2,"%r8d","%r9d");
-
-$code.=<<___;
- mov \$0x80808080,$t0
- mov \$0x80808080,$t1
- and $s0,$t0
- and $s1,$t1
- mov $t0,$acc0
- mov $t1,$acc1
- shr \$7,$t0
- lea ($s0,$s0),$r20
- shr \$7,$t1
- lea ($s1,$s1),$r21
- sub $t0,$acc0
- sub $t1,$acc1
- and \$0xfefefefe,$r20
- and \$0xfefefefe,$r21
- and \$0x1b1b1b1b,$acc0
- and \$0x1b1b1b1b,$acc1
- mov $s0,$t0
- mov $s1,$t1
- xor $acc0,$r20
- xor $acc1,$r21
-
- xor $r20,$s0
- xor $r21,$s1
- mov \$0x80808080,$t2
- rol \$24,$s0
- mov \$0x80808080,$t3
- rol \$24,$s1
- and $s2,$t2
- and $s3,$t3
- xor $r20,$s0
- xor $r21,$s1
- mov $t2,$acc0
- ror \$16,$t0
- mov $t3,$acc1
- ror \$16,$t1
- lea ($s2,$s2),$r20
- shr \$7,$t2
- xor $t0,$s0
- shr \$7,$t3
- xor $t1,$s1
- ror \$8,$t0
- lea ($s3,$s3),$r21
- ror \$8,$t1
- sub $t2,$acc0
- sub $t3,$acc1
- xor $t0,$s0
- xor $t1,$s1
-
- and \$0xfefefefe,$r20
- and \$0xfefefefe,$r21
- and \$0x1b1b1b1b,$acc0
- and \$0x1b1b1b1b,$acc1
- mov $s2,$t2
- mov $s3,$t3
- xor $acc0,$r20
- xor $acc1,$r21
-
- ror \$16,$t2
- xor $r20,$s2
- ror \$16,$t3
- xor $r21,$s3
- rol \$24,$s2
- mov 0($sbox),$acc0 # prefetch Te4
- rol \$24,$s3
- xor $r20,$s2
- mov 64($sbox),$acc1
- xor $r21,$s3
- mov 128($sbox),$r20
- xor $t2,$s2
- ror \$8,$t2
- xor $t3,$s3
- ror \$8,$t3
- xor $t2,$s2
- mov 192($sbox),$r21
- xor $t3,$s3
-___
-}
-
-$code.=<<___;
-.type _x86_64_AES_encrypt_compact,\@abi-omnipotent
-.align 16
-_x86_64_AES_encrypt_compact:
-.cfi_startproc
- lea 128($sbox),$inp # size optimization
- mov 0-128($inp),$acc1 # prefetch Te4
- mov 32-128($inp),$acc2
- mov 64-128($inp),$t0
- mov 96-128($inp),$t1
- mov 128-128($inp),$acc1
- mov 160-128($inp),$acc2
- mov 192-128($inp),$t0
- mov 224-128($inp),$t1
- jmp .Lenc_loop_compact
-.align 16
-.Lenc_loop_compact:
- xor 0($key),$s0 # xor with key
- xor 4($key),$s1
- xor 8($key),$s2
- xor 12($key),$s3
- lea 16($key),$key
-___
- &enccompactvert();
-$code.=<<___;
- cmp 16(%rsp),$key
- je .Lenc_compact_done
-___
- &enctransform();
-$code.=<<___;
- jmp .Lenc_loop_compact
-.align 16
-.Lenc_compact_done:
- xor 0($key),$s0
- xor 4($key),$s1
- xor 8($key),$s2
- xor 12($key),$s3
- .byte 0xf3,0xc3 # rep ret
-.cfi_endproc
-.size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact
-___
-
-# void AES_encrypt (const void *inp,void *out,const AES_KEY *key);
-$code.=<<___;
-.globl AES_encrypt
-.type AES_encrypt,\@function,3
-.align 16
-.globl asm_AES_encrypt
-.hidden asm_AES_encrypt
-asm_AES_encrypt:
-AES_encrypt:
-.cfi_startproc
- mov %rsp,%rax
-.cfi_def_cfa_register %rax
- push %rbx
-.cfi_push %rbx
- push %rbp
-.cfi_push %rbp
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
-
- # allocate frame "above" key schedule
- lea -63(%rdx),%rcx # %rdx is key argument
- and \$-64,%rsp
- sub %rsp,%rcx
- neg %rcx
- and \$0x3c0,%rcx
- sub %rcx,%rsp
- sub \$32,%rsp
-
- mov %rsi,16(%rsp) # save out
- mov %rax,24(%rsp) # save original stack pointer
-.cfi_cfa_expression %rsp+24,deref,+8
-.Lenc_prologue:
-
- mov %rdx,$key
- mov 240($key),$rnds # load rounds
-
- mov 0(%rdi),$s0 # load input vector
- mov 4(%rdi),$s1
- mov 8(%rdi),$s2
- mov 12(%rdi),$s3
-
- shl \$4,$rnds
- lea ($key,$rnds),%rbp
- mov $key,(%rsp) # key schedule
- mov %rbp,8(%rsp) # end of key schedule
-
- # pick Te4 copy which can't "overlap" with stack frame or key schedule
- lea .LAES_Te+2048(%rip),$sbox
- lea 768(%rsp),%rbp
- sub $sbox,%rbp
- and \$0x300,%rbp
- lea ($sbox,%rbp),$sbox
-
- call _x86_64_AES_encrypt_compact
-
- mov 16(%rsp),$out # restore out
- mov 24(%rsp),%rsi # restore saved stack pointer
-.cfi_def_cfa %rsi,8
- mov $s0,0($out) # write output vector
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- mov -48(%rsi),%r15
-.cfi_restore %r15
- mov -40(%rsi),%r14
-.cfi_restore %r14
- mov -32(%rsi),%r13
-.cfi_restore %r13
- mov -24(%rsi),%r12
-.cfi_restore %r12
- mov -16(%rsi),%rbp
-.cfi_restore %rbp
- mov -8(%rsi),%rbx
-.cfi_restore %rbx
- lea (%rsi),%rsp
-.cfi_def_cfa_register %rsp
-.Lenc_epilogue:
- ret
-.cfi_endproc
-.size AES_encrypt,.-AES_encrypt
-___
-
-#------------------------------------------------------------------#
-
-sub decvert()
-{ my $t3="%r8d"; # zaps $inp!
-
-$code.=<<___;
- # favor 3-way issue Opteron pipeline...
- movzb `&lo("$s0")`,$acc0
- movzb `&lo("$s1")`,$acc1
- movzb `&lo("$s2")`,$acc2
- mov 0($sbox,$acc0,8),$t0
- mov 0($sbox,$acc1,8),$t1
- mov 0($sbox,$acc2,8),$t2
-
- movzb `&hi("$s3")`,$acc0
- movzb `&hi("$s0")`,$acc1
- movzb `&lo("$s3")`,$acc2
- xor 3($sbox,$acc0,8),$t0
- xor 3($sbox,$acc1,8),$t1
- mov 0($sbox,$acc2,8),$t3
-
- movzb `&hi("$s1")`,$acc0
- shr \$16,$s0
- movzb `&hi("$s2")`,$acc2
- xor 3($sbox,$acc0,8),$t2
- shr \$16,$s3
- xor 3($sbox,$acc2,8),$t3
-
- shr \$16,$s1
- lea 16($key),$key
- shr \$16,$s2
-
- movzb `&lo("$s2")`,$acc0
- movzb `&lo("$s3")`,$acc1
- movzb `&lo("$s0")`,$acc2
- xor 2($sbox,$acc0,8),$t0
- xor 2($sbox,$acc1,8),$t1
- xor 2($sbox,$acc2,8),$t2
-
- movzb `&hi("$s1")`,$acc0
- movzb `&hi("$s2")`,$acc1
- movzb `&lo("$s1")`,$acc2
- xor 1($sbox,$acc0,8),$t0
- xor 1($sbox,$acc1,8),$t1
- xor 2($sbox,$acc2,8),$t3
-
- movzb `&hi("$s3")`,$acc0
- mov 12($key),$s3
- movzb `&hi("$s0")`,$acc2
- xor 1($sbox,$acc0,8),$t2
- mov 0($key),$s0
- xor 1($sbox,$acc2,8),$t3
-
- xor $t0,$s0
- mov 4($key),$s1
- mov 8($key),$s2
- xor $t2,$s2
- xor $t1,$s1
- xor $t3,$s3
-___
-}
-
-sub declastvert()
-{ my $t3="%r8d"; # zaps $inp!
-
-$code.=<<___;
- lea 2048($sbox),$sbox # size optimization
- movzb `&lo("$s0")`,$acc0
- movzb `&lo("$s1")`,$acc1
- movzb `&lo("$s2")`,$acc2
- movzb ($sbox,$acc0,1),$t0
- movzb ($sbox,$acc1,1),$t1
- movzb ($sbox,$acc2,1),$t2
-
- movzb `&lo("$s3")`,$acc0
- movzb `&hi("$s3")`,$acc1
- movzb `&hi("$s0")`,$acc2
- movzb ($sbox,$acc0,1),$t3
- movzb ($sbox,$acc1,1),$acc1 #$t0
- movzb ($sbox,$acc2,1),$acc2 #$t1
-
- shl \$8,$acc1
- shl \$8,$acc2
-
- xor $acc1,$t0
- xor $acc2,$t1
- shr \$16,$s3
-
- movzb `&hi("$s1")`,$acc0
- movzb `&hi("$s2")`,$acc1
- shr \$16,$s0
- movzb ($sbox,$acc0,1),$acc0 #$t2
- movzb ($sbox,$acc1,1),$acc1 #$t3
-
- shl \$8,$acc0
- shl \$8,$acc1
- shr \$16,$s1
- xor $acc0,$t2
- xor $acc1,$t3
- shr \$16,$s2
-
- movzb `&lo("$s2")`,$acc0
- movzb `&lo("$s3")`,$acc1
- movzb `&lo("$s0")`,$acc2
- movzb ($sbox,$acc0,1),$acc0 #$t0
- movzb ($sbox,$acc1,1),$acc1 #$t1
- movzb ($sbox,$acc2,1),$acc2 #$t2
-
- shl \$16,$acc0
- shl \$16,$acc1
- shl \$16,$acc2
-
- xor $acc0,$t0
- xor $acc1,$t1
- xor $acc2,$t2
-
- movzb `&lo("$s1")`,$acc0
- movzb `&hi("$s1")`,$acc1
- movzb `&hi("$s2")`,$acc2
- movzb ($sbox,$acc0,1),$acc0 #$t3
- movzb ($sbox,$acc1,1),$acc1 #$t0
- movzb ($sbox,$acc2,1),$acc2 #$t1
-
- shl \$16,$acc0
- shl \$24,$acc1
- shl \$24,$acc2
-
- xor $acc0,$t3
- xor $acc1,$t0
- xor $acc2,$t1
-
- movzb `&hi("$s3")`,$acc0
- movzb `&hi("$s0")`,$acc1
- mov 16+12($key),$s3
- movzb ($sbox,$acc0,1),$acc0 #$t2
- movzb ($sbox,$acc1,1),$acc1 #$t3
- mov 16+0($key),$s0
-
- shl \$24,$acc0
- shl \$24,$acc1
-
- xor $acc0,$t2
- xor $acc1,$t3
-
- mov 16+4($key),$s1
- mov 16+8($key),$s2
- lea -2048($sbox),$sbox
- xor $t0,$s0
- xor $t1,$s1
- xor $t2,$s2
- xor $t3,$s3
-___
-}
-
-sub decstep()
-{ my ($i,@s) = @_;
- my $tmp0=$acc0;
- my $tmp1=$acc1;
- my $tmp2=$acc2;
- my $out=($t0,$t1,$t2,$s[0])[$i];
-
- $code.=" mov $s[0],$out\n" if ($i!=3);
- $tmp1=$s[2] if ($i==3);
- $code.=" mov $s[2],$tmp1\n" if ($i!=3);
- $code.=" and \$0xFF,$out\n";
-
- $code.=" mov 0($sbox,$out,8),$out\n";
- $code.=" shr \$16,$tmp1\n";
- $tmp2=$s[3] if ($i==3);
- $code.=" mov $s[3],$tmp2\n" if ($i!=3);
-
- $tmp0=$s[1] if ($i==3);
- $code.=" movzb ".&hi($s[1]).",$tmp0\n";
- $code.=" and \$0xFF,$tmp1\n";
- $code.=" shr \$24,$tmp2\n";
-
- $code.=" xor 3($sbox,$tmp0,8),$out\n";
- $code.=" xor 2($sbox,$tmp1,8),$out\n";
- $code.=" xor 1($sbox,$tmp2,8),$out\n";
-
- $code.=" mov $t2,$s[1]\n" if ($i==3);
- $code.=" mov $t1,$s[2]\n" if ($i==3);
- $code.=" mov $t0,$s[3]\n" if ($i==3);
- $code.="\n";
-}
-
-sub declast()
-{ my ($i,@s)=@_;
- my $tmp0=$acc0;
- my $tmp1=$acc1;
- my $tmp2=$acc2;
- my $out=($t0,$t1,$t2,$s[0])[$i];
-
- $code.=" mov $s[0],$out\n" if ($i!=3);
- $tmp1=$s[2] if ($i==3);
- $code.=" mov $s[2],$tmp1\n" if ($i!=3);
- $code.=" and \$0xFF,$out\n";
-
- $code.=" movzb 2048($sbox,$out,1),$out\n";
- $code.=" shr \$16,$tmp1\n";
- $tmp2=$s[3] if ($i==3);
- $code.=" mov $s[3],$tmp2\n" if ($i!=3);
-
- $tmp0=$s[1] if ($i==3);
- $code.=" movzb ".&hi($s[1]).",$tmp0\n";
- $code.=" and \$0xFF,$tmp1\n";
- $code.=" shr \$24,$tmp2\n";
-
- $code.=" movzb 2048($sbox,$tmp0,1),$tmp0\n";
- $code.=" movzb 2048($sbox,$tmp1,1),$tmp1\n";
- $code.=" movzb 2048($sbox,$tmp2,1),$tmp2\n";
-
- $code.=" shl \$8,$tmp0\n";
- $code.=" shl \$16,$tmp1\n";
- $code.=" shl \$24,$tmp2\n";
-
- $code.=" xor $tmp0,$out\n";
- $code.=" mov $t2,$s[1]\n" if ($i==3);
- $code.=" xor $tmp1,$out\n";
- $code.=" mov $t1,$s[2]\n" if ($i==3);
- $code.=" xor $tmp2,$out\n";
- $code.=" mov $t0,$s[3]\n" if ($i==3);
- $code.="\n";
-}
-
-$code.=<<___;
-.type _x86_64_AES_decrypt,\@abi-omnipotent
-.align 16
-_x86_64_AES_decrypt:
- xor 0($key),$s0 # xor with key
- xor 4($key),$s1
- xor 8($key),$s2
- xor 12($key),$s3
-
- mov 240($key),$rnds # load key->rounds
- sub \$1,$rnds
- jmp .Ldec_loop
-.align 16
-.Ldec_loop:
-___
- if ($verticalspin) { &decvert(); }
- else { &decstep(0,$s0,$s3,$s2,$s1);
- &decstep(1,$s1,$s0,$s3,$s2);
- &decstep(2,$s2,$s1,$s0,$s3);
- &decstep(3,$s3,$s2,$s1,$s0);
- $code.=<<___;
- lea 16($key),$key
- xor 0($key),$s0 # xor with key
- xor 4($key),$s1
- xor 8($key),$s2
- xor 12($key),$s3
-___
- }
-$code.=<<___;
- sub \$1,$rnds
- jnz .Ldec_loop
-___
- if ($verticalspin) { &declastvert(); }
- else { &declast(0,$s0,$s3,$s2,$s1);
- &declast(1,$s1,$s0,$s3,$s2);
- &declast(2,$s2,$s1,$s0,$s3);
- &declast(3,$s3,$s2,$s1,$s0);
- $code.=<<___;
- xor 16+0($key),$s0 # xor with key
- xor 16+4($key),$s1
- xor 16+8($key),$s2
- xor 16+12($key),$s3
-___
- }
-$code.=<<___;
- .byte 0xf3,0xc3 # rep ret
-.size _x86_64_AES_decrypt,.-_x86_64_AES_decrypt
-___
-
-sub deccompactvert()
-{ my ($t3,$t4,$t5)=("%r8d","%r9d","%r13d");
-
-$code.=<<___;
- movzb `&lo("$s0")`,$t0
- movzb `&lo("$s1")`,$t1
- movzb `&lo("$s2")`,$t2
- movzb `&lo("$s3")`,$t3
- movzb `&hi("$s3")`,$acc0
- movzb `&hi("$s0")`,$acc1
- shr \$16,$s3
- movzb `&hi("$s1")`,$acc2
- movzb ($sbox,$t0,1),$t0
- movzb ($sbox,$t1,1),$t1
- movzb ($sbox,$t2,1),$t2
- movzb ($sbox,$t3,1),$t3
-
- movzb ($sbox,$acc0,1),$t4 #$t0
- movzb `&hi("$s2")`,$acc0
- movzb ($sbox,$acc1,1),$t5 #$t1
- movzb ($sbox,$acc2,1),$acc2 #$t2
- movzb ($sbox,$acc0,1),$acc0 #$t3
-
- shr \$16,$s2
- shl \$8,$t5
- shl \$8,$t4
- movzb `&lo("$s2")`,$acc1
- shr \$16,$s0
- xor $t4,$t0
- shr \$16,$s1
- movzb `&lo("$s3")`,$t4
-
- shl \$8,$acc2
- xor $t5,$t1
- shl \$8,$acc0
- movzb `&lo("$s0")`,$t5
- movzb ($sbox,$acc1,1),$acc1 #$t0
- xor $acc2,$t2
- movzb `&lo("$s1")`,$acc2
-
- shl \$16,$acc1
- xor $acc0,$t3
- movzb ($sbox,$t4,1),$t4 #$t1
- movzb `&hi("$s1")`,$acc0
- movzb ($sbox,$acc2,1),$acc2 #$t3
- xor $acc1,$t0
- movzb ($sbox,$t5,1),$t5 #$t2
- movzb `&hi("$s2")`,$acc1
-
- shl \$16,$acc2
- shl \$16,$t4
- shl \$16,$t5
- xor $acc2,$t3
- movzb `&hi("$s3")`,$acc2
- xor $t4,$t1
- shr \$8,$s0
- xor $t5,$t2
-
- movzb ($sbox,$acc0,1),$acc0 #$t0
- movzb ($sbox,$acc1,1),$s1 #$t1
- movzb ($sbox,$acc2,1),$s2 #$t2
- movzb ($sbox,$s0,1),$s3 #$t3
-
- mov $t0,$s0
- shl \$24,$acc0
- shl \$24,$s1
- shl \$24,$s2
- xor $acc0,$s0
- shl \$24,$s3
- xor $t1,$s1
- xor $t2,$s2
- xor $t3,$s3
-___
-}
-
-# parallelized version! input is pair of 64-bit values: %rax=s1.s0
-# and %rcx=s3.s2, output is four 32-bit values in %eax=s0, %ebx=s1,
-# %ecx=s2 and %edx=s3.
-sub dectransform()
-{ my ($tp10,$tp20,$tp40,$tp80,$acc0)=("%rax","%r8", "%r9", "%r10","%rbx");
- my ($tp18,$tp28,$tp48,$tp88,$acc8)=("%rcx","%r11","%r12","%r13","%rdx");
- my $prefetch = shift;
-
-$code.=<<___;
- mov $mask80,$tp40
- mov $mask80,$tp48
- and $tp10,$tp40
- and $tp18,$tp48
- mov $tp40,$acc0
- mov $tp48,$acc8
- shr \$7,$tp40
- lea ($tp10,$tp10),$tp20
- shr \$7,$tp48
- lea ($tp18,$tp18),$tp28
- sub $tp40,$acc0
- sub $tp48,$acc8
- and $maskfe,$tp20
- and $maskfe,$tp28
- and $mask1b,$acc0
- and $mask1b,$acc8
- xor $acc0,$tp20
- xor $acc8,$tp28
- mov $mask80,$tp80
- mov $mask80,$tp88
-
- and $tp20,$tp80
- and $tp28,$tp88
- mov $tp80,$acc0
- mov $tp88,$acc8
- shr \$7,$tp80
- lea ($tp20,$tp20),$tp40
- shr \$7,$tp88
- lea ($tp28,$tp28),$tp48
- sub $tp80,$acc0
- sub $tp88,$acc8
- and $maskfe,$tp40
- and $maskfe,$tp48
- and $mask1b,$acc0
- and $mask1b,$acc8
- xor $acc0,$tp40
- xor $acc8,$tp48
- mov $mask80,$tp80
- mov $mask80,$tp88
-
- and $tp40,$tp80
- and $tp48,$tp88
- mov $tp80,$acc0
- mov $tp88,$acc8
- shr \$7,$tp80
- xor $tp10,$tp20 # tp2^=tp1
- shr \$7,$tp88
- xor $tp18,$tp28 # tp2^=tp1
- sub $tp80,$acc0
- sub $tp88,$acc8
- lea ($tp40,$tp40),$tp80
- lea ($tp48,$tp48),$tp88
- xor $tp10,$tp40 # tp4^=tp1
- xor $tp18,$tp48 # tp4^=tp1
- and $maskfe,$tp80
- and $maskfe,$tp88
- and $mask1b,$acc0
- and $mask1b,$acc8
- xor $acc0,$tp80
- xor $acc8,$tp88
-
- xor $tp80,$tp10 # tp1^=tp8
- xor $tp88,$tp18 # tp1^=tp8
- xor $tp80,$tp20 # tp2^tp1^=tp8
- xor $tp88,$tp28 # tp2^tp1^=tp8
- mov $tp10,$acc0
- mov $tp18,$acc8
- xor $tp80,$tp40 # tp4^tp1^=tp8
- shr \$32,$acc0
- xor $tp88,$tp48 # tp4^tp1^=tp8
- shr \$32,$acc8
- xor $tp20,$tp80 # tp8^=tp8^tp2^tp1=tp2^tp1
- rol \$8,`&LO("$tp10")` # ROTATE(tp1^tp8,8)
- xor $tp28,$tp88 # tp8^=tp8^tp2^tp1=tp2^tp1
- rol \$8,`&LO("$tp18")` # ROTATE(tp1^tp8,8)
- xor $tp40,$tp80 # tp2^tp1^=tp8^tp4^tp1=tp8^tp4^tp2
- rol \$8,`&LO("$acc0")` # ROTATE(tp1^tp8,8)
- xor $tp48,$tp88 # tp2^tp1^=tp8^tp4^tp1=tp8^tp4^tp2
-
- rol \$8,`&LO("$acc8")` # ROTATE(tp1^tp8,8)
- xor `&LO("$tp80")`,`&LO("$tp10")`
- shr \$32,$tp80
- xor `&LO("$tp88")`,`&LO("$tp18")`
- shr \$32,$tp88
- xor `&LO("$tp80")`,`&LO("$acc0")`
- xor `&LO("$tp88")`,`&LO("$acc8")`
-
- mov $tp20,$tp80
- rol \$24,`&LO("$tp20")` # ROTATE(tp2^tp1^tp8,24)
- mov $tp28,$tp88
- rol \$24,`&LO("$tp28")` # ROTATE(tp2^tp1^tp8,24)
- shr \$32,$tp80
- xor `&LO("$tp20")`,`&LO("$tp10")`
- shr \$32,$tp88
- xor `&LO("$tp28")`,`&LO("$tp18")`
- rol \$24,`&LO("$tp80")` # ROTATE(tp2^tp1^tp8,24)
- mov $tp40,$tp20
- rol \$24,`&LO("$tp88")` # ROTATE(tp2^tp1^tp8,24)
- mov $tp48,$tp28
- shr \$32,$tp20
- xor `&LO("$tp80")`,`&LO("$acc0")`
- shr \$32,$tp28
- xor `&LO("$tp88")`,`&LO("$acc8")`
-
- `"mov 0($sbox),$mask80" if ($prefetch)`
- rol \$16,`&LO("$tp40")` # ROTATE(tp4^tp1^tp8,16)
- `"mov 64($sbox),$maskfe" if ($prefetch)`
- rol \$16,`&LO("$tp48")` # ROTATE(tp4^tp1^tp8,16)
- `"mov 128($sbox),$mask1b" if ($prefetch)`
- rol \$16,`&LO("$tp20")` # ROTATE(tp4^tp1^tp8,16)
- `"mov 192($sbox),$tp80" if ($prefetch)`
- xor `&LO("$tp40")`,`&LO("$tp10")`
- rol \$16,`&LO("$tp28")` # ROTATE(tp4^tp1^tp8,16)
- xor `&LO("$tp48")`,`&LO("$tp18")`
- `"mov 256($sbox),$tp88" if ($prefetch)`
- xor `&LO("$tp20")`,`&LO("$acc0")`
- xor `&LO("$tp28")`,`&LO("$acc8")`
-___
-}
-
-$code.=<<___;
-.type _x86_64_AES_decrypt_compact,\@abi-omnipotent
-.align 16
-_x86_64_AES_decrypt_compact:
-.cfi_startproc
- lea 128($sbox),$inp # size optimization
- mov 0-128($inp),$acc1 # prefetch Td4
- mov 32-128($inp),$acc2
- mov 64-128($inp),$t0
- mov 96-128($inp),$t1
- mov 128-128($inp),$acc1
- mov 160-128($inp),$acc2
- mov 192-128($inp),$t0
- mov 224-128($inp),$t1
- jmp .Ldec_loop_compact
-
-.align 16
-.Ldec_loop_compact:
- xor 0($key),$s0 # xor with key
- xor 4($key),$s1
- xor 8($key),$s2
- xor 12($key),$s3
- lea 16($key),$key
-___
- &deccompactvert();
-$code.=<<___;
- cmp 16(%rsp),$key
- je .Ldec_compact_done
-
- mov 256+0($sbox),$mask80
- shl \$32,%rbx
- shl \$32,%rdx
- mov 256+8($sbox),$maskfe
- or %rbx,%rax
- or %rdx,%rcx
- mov 256+16($sbox),$mask1b
-___
- &dectransform(1);
-$code.=<<___;
- jmp .Ldec_loop_compact
-.align 16
-.Ldec_compact_done:
- xor 0($key),$s0
- xor 4($key),$s1
- xor 8($key),$s2
- xor 12($key),$s3
- .byte 0xf3,0xc3 # rep ret
-.cfi_endproc
-.size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact
-___
-
-# void AES_decrypt (const void *inp,void *out,const AES_KEY *key);
-$code.=<<___;
-.globl AES_decrypt
-.type AES_decrypt,\@function,3
-.align 16
-.globl asm_AES_decrypt
-.hidden asm_AES_decrypt
-asm_AES_decrypt:
-AES_decrypt:
-.cfi_startproc
- mov %rsp,%rax
-.cfi_def_cfa_register %rax
- push %rbx
-.cfi_push %rbx
- push %rbp
-.cfi_push %rbp
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
-
- # allocate frame "above" key schedule
- lea -63(%rdx),%rcx # %rdx is key argument
- and \$-64,%rsp
- sub %rsp,%rcx
- neg %rcx
- and \$0x3c0,%rcx
- sub %rcx,%rsp
- sub \$32,%rsp
-
- mov %rsi,16(%rsp) # save out
- mov %rax,24(%rsp) # save original stack pointer
-.cfi_cfa_expression %rsp+24,deref,+8
-.Ldec_prologue:
-
- mov %rdx,$key
- mov 240($key),$rnds # load rounds
-
- mov 0(%rdi),$s0 # load input vector
- mov 4(%rdi),$s1
- mov 8(%rdi),$s2
- mov 12(%rdi),$s3
-
- shl \$4,$rnds
- lea ($key,$rnds),%rbp
- mov $key,(%rsp) # key schedule
- mov %rbp,8(%rsp) # end of key schedule
-
- # pick Td4 copy which can't "overlap" with stack frame or key schedule
- lea .LAES_Td+2048(%rip),$sbox
- lea 768(%rsp),%rbp
- sub $sbox,%rbp
- and \$0x300,%rbp
- lea ($sbox,%rbp),$sbox
- shr \$3,%rbp # recall "magic" constants!
- add %rbp,$sbox
-
- call _x86_64_AES_decrypt_compact
-
- mov 16(%rsp),$out # restore out
- mov 24(%rsp),%rsi # restore saved stack pointer
-.cfi_def_cfa %rsi,8
- mov $s0,0($out) # write output vector
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- mov -48(%rsi),%r15
-.cfi_restore %r15
- mov -40(%rsi),%r14
-.cfi_restore %r14
- mov -32(%rsi),%r13
-.cfi_restore %r13
- mov -24(%rsi),%r12
-.cfi_restore %r12
- mov -16(%rsi),%rbp
-.cfi_restore %rbp
- mov -8(%rsi),%rbx
-.cfi_restore %rbx
- lea (%rsi),%rsp
-.cfi_def_cfa_register %rsp
-.Ldec_epilogue:
- ret
-.cfi_endproc
-.size AES_decrypt,.-AES_decrypt
-___
-#------------------------------------------------------------------#
-
-sub enckey()
-{
-$code.=<<___;
- movz %dl,%esi # rk[i]>>0
- movzb -128(%rbp,%rsi),%ebx
- movz %dh,%esi # rk[i]>>8
- shl \$24,%ebx
- xor %ebx,%eax
-
- movzb -128(%rbp,%rsi),%ebx
- shr \$16,%edx
- movz %dl,%esi # rk[i]>>16
- xor %ebx,%eax
-
- movzb -128(%rbp,%rsi),%ebx
- movz %dh,%esi # rk[i]>>24
- shl \$8,%ebx
- xor %ebx,%eax
-
- movzb -128(%rbp,%rsi),%ebx
- shl \$16,%ebx
- xor %ebx,%eax
-
- xor 1024-128(%rbp,%rcx,4),%eax # rcon
-___
-}
-
-# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
-# AES_KEY *key)
-$code.=<<___;
-.globl AES_set_encrypt_key
-.type AES_set_encrypt_key,\@function,3
-.align 16
-AES_set_encrypt_key:
-.cfi_startproc
- push %rbx
-.cfi_push %rbx
- push %rbp
-.cfi_push %rbp
- push %r12 # redundant, but allows to share
-.cfi_push %r12
- push %r13 # exception handler...
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- sub \$8,%rsp
-.cfi_adjust_cfa_offset 8
-.Lenc_key_prologue:
-
- call _x86_64_AES_set_encrypt_key
-
- mov 40(%rsp),%rbp
-.cfi_restore %rbp
- mov 48(%rsp),%rbx
-.cfi_restore %rbx
- add \$56,%rsp
-.cfi_adjust_cfa_offset -56
-.Lenc_key_epilogue:
- ret
-.cfi_endproc
-.size AES_set_encrypt_key,.-AES_set_encrypt_key
-
-.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent
-.align 16
-_x86_64_AES_set_encrypt_key:
-.cfi_startproc
- mov %esi,%ecx # %ecx=bits
- mov %rdi,%rsi # %rsi=userKey
- mov %rdx,%rdi # %rdi=key
-
- test \$-1,%rsi
- jz .Lbadpointer
- test \$-1,%rdi
- jz .Lbadpointer
-
- lea .LAES_Te(%rip),%rbp
- lea 2048+128(%rbp),%rbp
-
- # prefetch Te4
- mov 0-128(%rbp),%eax
- mov 32-128(%rbp),%ebx
- mov 64-128(%rbp),%r8d
- mov 96-128(%rbp),%edx
- mov 128-128(%rbp),%eax
- mov 160-128(%rbp),%ebx
- mov 192-128(%rbp),%r8d
- mov 224-128(%rbp),%edx
-
- cmp \$128,%ecx
- je .L10rounds
- cmp \$192,%ecx
- je .L12rounds
- cmp \$256,%ecx
- je .L14rounds
- mov \$-2,%rax # invalid number of bits
- jmp .Lexit
-
-.L10rounds:
- mov 0(%rsi),%rax # copy first 4 dwords
- mov 8(%rsi),%rdx
- mov %rax,0(%rdi)
- mov %rdx,8(%rdi)
-
- shr \$32,%rdx
- xor %ecx,%ecx
- jmp .L10shortcut
-.align 4
-.L10loop:
- mov 0(%rdi),%eax # rk[0]
- mov 12(%rdi),%edx # rk[3]
-.L10shortcut:
-___
- &enckey ();
-$code.=<<___;
- mov %eax,16(%rdi) # rk[4]
- xor 4(%rdi),%eax
- mov %eax,20(%rdi) # rk[5]
- xor 8(%rdi),%eax
- mov %eax,24(%rdi) # rk[6]
- xor 12(%rdi),%eax
- mov %eax,28(%rdi) # rk[7]
- add \$1,%ecx
- lea 16(%rdi),%rdi
- cmp \$10,%ecx
- jl .L10loop
-
- movl \$10,80(%rdi) # setup number of rounds
- xor %rax,%rax
- jmp .Lexit
-
-.L12rounds:
- mov 0(%rsi),%rax # copy first 6 dwords
- mov 8(%rsi),%rbx
- mov 16(%rsi),%rdx
- mov %rax,0(%rdi)
- mov %rbx,8(%rdi)
- mov %rdx,16(%rdi)
-
- shr \$32,%rdx
- xor %ecx,%ecx
- jmp .L12shortcut
-.align 4
-.L12loop:
- mov 0(%rdi),%eax # rk[0]
- mov 20(%rdi),%edx # rk[5]
-.L12shortcut:
-___
- &enckey ();
-$code.=<<___;
- mov %eax,24(%rdi) # rk[6]
- xor 4(%rdi),%eax
- mov %eax,28(%rdi) # rk[7]
- xor 8(%rdi),%eax
- mov %eax,32(%rdi) # rk[8]
- xor 12(%rdi),%eax
- mov %eax,36(%rdi) # rk[9]
-
- cmp \$7,%ecx
- je .L12break
- add \$1,%ecx
-
- xor 16(%rdi),%eax
- mov %eax,40(%rdi) # rk[10]
- xor 20(%rdi),%eax
- mov %eax,44(%rdi) # rk[11]
-
- lea 24(%rdi),%rdi
- jmp .L12loop
-.L12break:
- movl \$12,72(%rdi) # setup number of rounds
- xor %rax,%rax
- jmp .Lexit
-
-.L14rounds:
- mov 0(%rsi),%rax # copy first 8 dwords
- mov 8(%rsi),%rbx
- mov 16(%rsi),%rcx
- mov 24(%rsi),%rdx
- mov %rax,0(%rdi)
- mov %rbx,8(%rdi)
- mov %rcx,16(%rdi)
- mov %rdx,24(%rdi)
-
- shr \$32,%rdx
- xor %ecx,%ecx
- jmp .L14shortcut
-.align 4
-.L14loop:
- mov 0(%rdi),%eax # rk[0]
- mov 28(%rdi),%edx # rk[4]
-.L14shortcut:
-___
- &enckey ();
-$code.=<<___;
- mov %eax,32(%rdi) # rk[8]
- xor 4(%rdi),%eax
- mov %eax,36(%rdi) # rk[9]
- xor 8(%rdi),%eax
- mov %eax,40(%rdi) # rk[10]
- xor 12(%rdi),%eax
- mov %eax,44(%rdi) # rk[11]
-
- cmp \$6,%ecx
- je .L14break
- add \$1,%ecx
-
- mov %eax,%edx
- mov 16(%rdi),%eax # rk[4]
- movz %dl,%esi # rk[11]>>0
- movzb -128(%rbp,%rsi),%ebx
- movz %dh,%esi # rk[11]>>8
- xor %ebx,%eax
-
- movzb -128(%rbp,%rsi),%ebx
- shr \$16,%edx
- shl \$8,%ebx
- movz %dl,%esi # rk[11]>>16
- xor %ebx,%eax
-
- movzb -128(%rbp,%rsi),%ebx
- movz %dh,%esi # rk[11]>>24
- shl \$16,%ebx
- xor %ebx,%eax
-
- movzb -128(%rbp,%rsi),%ebx
- shl \$24,%ebx
- xor %ebx,%eax
-
- mov %eax,48(%rdi) # rk[12]
- xor 20(%rdi),%eax
- mov %eax,52(%rdi) # rk[13]
- xor 24(%rdi),%eax
- mov %eax,56(%rdi) # rk[14]
- xor 28(%rdi),%eax
- mov %eax,60(%rdi) # rk[15]
-
- lea 32(%rdi),%rdi
- jmp .L14loop
-.L14break:
- movl \$14,48(%rdi) # setup number of rounds
- xor %rax,%rax
- jmp .Lexit
-
-.Lbadpointer:
- mov \$-1,%rax
-.Lexit:
- .byte 0xf3,0xc3 # rep ret
-.cfi_endproc
-.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
-___
-
-sub deckey_ref()
-{ my ($i,$ptr,$te,$td) = @_;
- my ($tp1,$tp2,$tp4,$tp8,$acc)=("%eax","%ebx","%edi","%edx","%r8d");
-$code.=<<___;
- mov $i($ptr),$tp1
- mov $tp1,$acc
- and \$0x80808080,$acc
- mov $acc,$tp4
- shr \$7,$tp4
- lea 0($tp1,$tp1),$tp2
- sub $tp4,$acc
- and \$0xfefefefe,$tp2
- and \$0x1b1b1b1b,$acc
- xor $tp2,$acc
- mov $acc,$tp2
-
- and \$0x80808080,$acc
- mov $acc,$tp8
- shr \$7,$tp8
- lea 0($tp2,$tp2),$tp4
- sub $tp8,$acc
- and \$0xfefefefe,$tp4
- and \$0x1b1b1b1b,$acc
- xor $tp1,$tp2 # tp2^tp1
- xor $tp4,$acc
- mov $acc,$tp4
-
- and \$0x80808080,$acc
- mov $acc,$tp8
- shr \$7,$tp8
- sub $tp8,$acc
- lea 0($tp4,$tp4),$tp8
- xor $tp1,$tp4 # tp4^tp1
- and \$0xfefefefe,$tp8
- and \$0x1b1b1b1b,$acc
- xor $acc,$tp8
-
- xor $tp8,$tp1 # tp1^tp8
- rol \$8,$tp1 # ROTATE(tp1^tp8,8)
- xor $tp8,$tp2 # tp2^tp1^tp8
- xor $tp8,$tp4 # tp4^tp1^tp8
- xor $tp2,$tp8
- xor $tp4,$tp8 # tp8^(tp8^tp4^tp1)^(tp8^tp2^tp1)=tp8^tp4^tp2
-
- xor $tp8,$tp1
- rol \$24,$tp2 # ROTATE(tp2^tp1^tp8,24)
- xor $tp2,$tp1
- rol \$16,$tp4 # ROTATE(tp4^tp1^tp8,16)
- xor $tp4,$tp1
-
- mov $tp1,$i($ptr)
-___
-}
-
-# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
-# AES_KEY *key)
-$code.=<<___;
-.globl AES_set_decrypt_key
-.type AES_set_decrypt_key,\@function,3
-.align 16
-AES_set_decrypt_key:
-.cfi_startproc
- push %rbx
-.cfi_push %rbx
- push %rbp
-.cfi_push %rbp
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- push %rdx # save key schedule
-.cfi_adjust_cfa_offset 8
-.Ldec_key_prologue:
-
- call _x86_64_AES_set_encrypt_key
- mov (%rsp),%r8 # restore key schedule
- cmp \$0,%eax
- jne .Labort
-
- mov 240(%r8),%r14d # pull number of rounds
- xor %rdi,%rdi
- lea (%rdi,%r14d,4),%rcx
- mov %r8,%rsi
- lea (%r8,%rcx,4),%rdi # pointer to last chunk
-.align 4
-.Linvert:
- mov 0(%rsi),%rax
- mov 8(%rsi),%rbx
- mov 0(%rdi),%rcx
- mov 8(%rdi),%rdx
- mov %rax,0(%rdi)
- mov %rbx,8(%rdi)
- mov %rcx,0(%rsi)
- mov %rdx,8(%rsi)
- lea 16(%rsi),%rsi
- lea -16(%rdi),%rdi
- cmp %rsi,%rdi
- jne .Linvert
-
- lea .LAES_Te+2048+1024(%rip),%rax # rcon
-
- mov 40(%rax),$mask80
- mov 48(%rax),$maskfe
- mov 56(%rax),$mask1b
-
- mov %r8,$key
- sub \$1,%r14d
-.align 4
-.Lpermute:
- lea 16($key),$key
- mov 0($key),%rax
- mov 8($key),%rcx
-___
- &dectransform ();
-$code.=<<___;
- mov %eax,0($key)
- mov %ebx,4($key)
- mov %ecx,8($key)
- mov %edx,12($key)
- sub \$1,%r14d
- jnz .Lpermute
-
- xor %rax,%rax
-.Labort:
- mov 8(%rsp),%r15
-.cfi_restore %r15
- mov 16(%rsp),%r14
-.cfi_restore %r14
- mov 24(%rsp),%r13
-.cfi_restore %r13
- mov 32(%rsp),%r12
-.cfi_restore %r12
- mov 40(%rsp),%rbp
-.cfi_restore %rbp
- mov 48(%rsp),%rbx
-.cfi_restore %rbx
- add \$56,%rsp
-.cfi_adjust_cfa_offset -56
-.Ldec_key_epilogue:
- ret
-.cfi_endproc
-.size AES_set_decrypt_key,.-AES_set_decrypt_key
-___
-
-# void AES_cbc_encrypt (const void char *inp, unsigned char *out,
-# size_t length, const AES_KEY *key,
-# unsigned char *ivp,const int enc);
-{
-# stack frame layout
-# -8(%rsp) return address
-my $keyp="0(%rsp)"; # one to pass as $key
-my $keyend="8(%rsp)"; # &(keyp->rd_key[4*keyp->rounds])
-my $_rsp="16(%rsp)"; # saved %rsp
-my $_inp="24(%rsp)"; # copy of 1st parameter, inp
-my $_out="32(%rsp)"; # copy of 2nd parameter, out
-my $_len="40(%rsp)"; # copy of 3rd parameter, length
-my $_key="48(%rsp)"; # copy of 4th parameter, key
-my $_ivp="56(%rsp)"; # copy of 5th parameter, ivp
-my $ivec="64(%rsp)"; # ivec[16]
-my $aes_key="80(%rsp)"; # copy of aes_key
-my $mark="80+240(%rsp)"; # copy of aes_key->rounds
-
-$code.=<<___;
-.globl AES_cbc_encrypt
-.type AES_cbc_encrypt,\@function,6
-.align 16
-.extern OPENSSL_ia32cap_P
-.globl asm_AES_cbc_encrypt
-.hidden asm_AES_cbc_encrypt
-asm_AES_cbc_encrypt:
-AES_cbc_encrypt:
-.cfi_startproc
- cmp \$0,%rdx # check length
- je .Lcbc_epilogue
- pushfq
-# This could be .cfi_push 49, but libunwind fails on registers it does not
-# recognize. See https://bugzilla.redhat.com/show_bug.cgi?id=217087.
-.cfi_adjust_cfa_offset 8
- push %rbx
-.cfi_push %rbx
- push %rbp
-.cfi_push %rbp
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
-.Lcbc_prologue:
-
- cld
- mov %r9d,%r9d # clear upper half of enc
-
- lea .LAES_Te(%rip),$sbox
- lea .LAES_Td(%rip),%r10
- cmp \$0,%r9
- cmoveq %r10,$sbox
-
-.cfi_remember_state
- mov OPENSSL_ia32cap_P(%rip),%r10d
- cmp \$$speed_limit,%rdx
- jb .Lcbc_slow_prologue
- test \$15,%rdx
- jnz .Lcbc_slow_prologue
- bt \$28,%r10d
- jc .Lcbc_slow_prologue
-
- # allocate aligned stack frame...
- lea -88-248(%rsp),$key
- and \$-64,$key
-
- # ... and make sure it doesn't alias with AES_T[ed] modulo 4096
- mov $sbox,%r10
- lea 2304($sbox),%r11
- mov $key,%r12
- and \$0xFFF,%r10 # s = $sbox&0xfff
- and \$0xFFF,%r11 # e = ($sbox+2048)&0xfff
- and \$0xFFF,%r12 # p = %rsp&0xfff
-
- cmp %r11,%r12 # if (p=>e) %rsp =- (p-e);
- jb .Lcbc_te_break_out
- sub %r11,%r12
- sub %r12,$key
- jmp .Lcbc_te_ok
-.Lcbc_te_break_out: # else %rsp -= (p-s)&0xfff + framesz
- sub %r10,%r12
- and \$0xFFF,%r12
- add \$320,%r12
- sub %r12,$key
-.align 4
-.Lcbc_te_ok:
-
- xchg %rsp,$key
-.cfi_def_cfa_register $key
- #add \$8,%rsp # reserve for return address!
- mov $key,$_rsp # save %rsp
-.cfi_cfa_expression $_rsp,deref,+64
-.Lcbc_fast_body:
- mov %rdi,$_inp # save copy of inp
- mov %rsi,$_out # save copy of out
- mov %rdx,$_len # save copy of len
- mov %rcx,$_key # save copy of key
- mov %r8,$_ivp # save copy of ivp
- movl \$0,$mark # copy of aes_key->rounds = 0;
- mov %r8,%rbp # rearrange input arguments
- mov %r9,%rbx
- mov %rsi,$out
- mov %rdi,$inp
- mov %rcx,$key
-
- mov 240($key),%eax # key->rounds
- # do we copy key schedule to stack?
- mov $key,%r10
- sub $sbox,%r10
- and \$0xfff,%r10
- cmp \$2304,%r10
- jb .Lcbc_do_ecopy
- cmp \$4096-248,%r10
- jb .Lcbc_skip_ecopy
-.align 4
-.Lcbc_do_ecopy:
- mov $key,%rsi
- lea $aes_key,%rdi
- lea $aes_key,$key
- mov \$240/8,%ecx
- .long 0x90A548F3 # rep movsq
- mov %eax,(%rdi) # copy aes_key->rounds
-.Lcbc_skip_ecopy:
- mov $key,$keyp # save key pointer
-
- mov \$18,%ecx
-.align 4
-.Lcbc_prefetch_te:
- mov 0($sbox),%r10
- mov 32($sbox),%r11
- mov 64($sbox),%r12
- mov 96($sbox),%r13
- lea 128($sbox),$sbox
- sub \$1,%ecx
- jnz .Lcbc_prefetch_te
- lea -2304($sbox),$sbox
-
- cmp \$0,%rbx
- je .LFAST_DECRYPT
-
-#----------------------------- ENCRYPT -----------------------------#
- mov 0(%rbp),$s0 # load iv
- mov 4(%rbp),$s1
- mov 8(%rbp),$s2
- mov 12(%rbp),$s3
-
-.align 4
-.Lcbc_fast_enc_loop:
- xor 0($inp),$s0
- xor 4($inp),$s1
- xor 8($inp),$s2
- xor 12($inp),$s3
- mov $keyp,$key # restore key
- mov $inp,$_inp # if ($verticalspin) save inp
-
- call _x86_64_AES_encrypt
-
- mov $_inp,$inp # if ($verticalspin) restore inp
- mov $_len,%r10
- mov $s0,0($out)
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- lea 16($inp),$inp
- lea 16($out),$out
- sub \$16,%r10
- test \$-16,%r10
- mov %r10,$_len
- jnz .Lcbc_fast_enc_loop
- mov $_ivp,%rbp # restore ivp
- mov $s0,0(%rbp) # save ivec
- mov $s1,4(%rbp)
- mov $s2,8(%rbp)
- mov $s3,12(%rbp)
-
- jmp .Lcbc_fast_cleanup
-
-#----------------------------- DECRYPT -----------------------------#
-.align 16
-.LFAST_DECRYPT:
- cmp $inp,$out
- je .Lcbc_fast_dec_in_place
-
- mov %rbp,$ivec
-.align 4
-.Lcbc_fast_dec_loop:
- mov 0($inp),$s0 # read input
- mov 4($inp),$s1
- mov 8($inp),$s2
- mov 12($inp),$s3
- mov $keyp,$key # restore key
- mov $inp,$_inp # if ($verticalspin) save inp
-
- call _x86_64_AES_decrypt
-
- mov $ivec,%rbp # load ivp
- mov $_inp,$inp # if ($verticalspin) restore inp
- mov $_len,%r10 # load len
- xor 0(%rbp),$s0 # xor iv
- xor 4(%rbp),$s1
- xor 8(%rbp),$s2
- xor 12(%rbp),$s3
- mov $inp,%rbp # current input, next iv
-
- sub \$16,%r10
- mov %r10,$_len # update len
- mov %rbp,$ivec # update ivp
-
- mov $s0,0($out) # write output
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- lea 16($inp),$inp
- lea 16($out),$out
- jnz .Lcbc_fast_dec_loop
- mov $_ivp,%r12 # load user ivp
- mov 0(%rbp),%r10 # load iv
- mov 8(%rbp),%r11
- mov %r10,0(%r12) # copy back to user
- mov %r11,8(%r12)
- jmp .Lcbc_fast_cleanup
-
-.align 16
-.Lcbc_fast_dec_in_place:
- mov 0(%rbp),%r10 # copy iv to stack
- mov 8(%rbp),%r11
- mov %r10,0+$ivec
- mov %r11,8+$ivec
-.align 4
-.Lcbc_fast_dec_in_place_loop:
- mov 0($inp),$s0 # load input
- mov 4($inp),$s1
- mov 8($inp),$s2
- mov 12($inp),$s3
- mov $keyp,$key # restore key
- mov $inp,$_inp # if ($verticalspin) save inp
-
- call _x86_64_AES_decrypt
-
- mov $_inp,$inp # if ($verticalspin) restore inp
- mov $_len,%r10
- xor 0+$ivec,$s0
- xor 4+$ivec,$s1
- xor 8+$ivec,$s2
- xor 12+$ivec,$s3
-
- mov 0($inp),%r11 # load input
- mov 8($inp),%r12
- sub \$16,%r10
- jz .Lcbc_fast_dec_in_place_done
-
- mov %r11,0+$ivec # copy input to iv
- mov %r12,8+$ivec
-
- mov $s0,0($out) # save output [zaps input]
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- lea 16($inp),$inp
- lea 16($out),$out
- mov %r10,$_len
- jmp .Lcbc_fast_dec_in_place_loop
-.Lcbc_fast_dec_in_place_done:
- mov $_ivp,%rdi
- mov %r11,0(%rdi) # copy iv back to user
- mov %r12,8(%rdi)
-
- mov $s0,0($out) # save output [zaps input]
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
-.align 4
-.Lcbc_fast_cleanup:
- cmpl \$0,$mark # was the key schedule copied?
- lea $aes_key,%rdi
- je .Lcbc_exit
- mov \$240/8,%ecx
- xor %rax,%rax
- .long 0x90AB48F3 # rep stosq
-
- jmp .Lcbc_exit
-
-#--------------------------- SLOW ROUTINE ---------------------------#
-.align 16
-.Lcbc_slow_prologue:
-.cfi_restore_state
- # allocate aligned stack frame...
- lea -88(%rsp),%rbp
- and \$-64,%rbp
- # ... just "above" key schedule
- lea -88-63(%rcx),%r10
- sub %rbp,%r10
- neg %r10
- and \$0x3c0,%r10
- sub %r10,%rbp
-
- xchg %rsp,%rbp
-.cfi_def_cfa_register %rbp
- #add \$8,%rsp # reserve for return address!
- mov %rbp,$_rsp # save %rsp
-.cfi_cfa_expression $_rsp,deref,+64
-.Lcbc_slow_body:
- #mov %rdi,$_inp # save copy of inp
- #mov %rsi,$_out # save copy of out
- #mov %rdx,$_len # save copy of len
- #mov %rcx,$_key # save copy of key
- mov %r8,$_ivp # save copy of ivp
- mov %r8,%rbp # rearrange input arguments
- mov %r9,%rbx
- mov %rsi,$out
- mov %rdi,$inp
- mov %rcx,$key
- mov %rdx,%r10
-
- mov 240($key),%eax
- mov $key,$keyp # save key pointer
- shl \$4,%eax
- lea ($key,%rax),%rax
- mov %rax,$keyend
-
- # pick Te4 copy which can't "overlap" with stack frame or key schedule
- lea 2048($sbox),$sbox
- lea 768-8(%rsp),%rax
- sub $sbox,%rax
- and \$0x300,%rax
- lea ($sbox,%rax),$sbox
-
- cmp \$0,%rbx
- je .LSLOW_DECRYPT
-
-#--------------------------- SLOW ENCRYPT ---------------------------#
- test \$-16,%r10 # check upon length
- mov 0(%rbp),$s0 # load iv
- mov 4(%rbp),$s1
- mov 8(%rbp),$s2
- mov 12(%rbp),$s3
- jz .Lcbc_slow_enc_tail # short input...
-
-.align 4
-.Lcbc_slow_enc_loop:
- xor 0($inp),$s0
- xor 4($inp),$s1
- xor 8($inp),$s2
- xor 12($inp),$s3
- mov $keyp,$key # restore key
- mov $inp,$_inp # save inp
- mov $out,$_out # save out
- mov %r10,$_len # save len
-
- call _x86_64_AES_encrypt_compact
-
- mov $_inp,$inp # restore inp
- mov $_out,$out # restore out
- mov $_len,%r10 # restore len
- mov $s0,0($out)
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- lea 16($inp),$inp
- lea 16($out),$out
- sub \$16,%r10
- test \$-16,%r10
- jnz .Lcbc_slow_enc_loop
- test \$15,%r10
- jnz .Lcbc_slow_enc_tail
- mov $_ivp,%rbp # restore ivp
- mov $s0,0(%rbp) # save ivec
- mov $s1,4(%rbp)
- mov $s2,8(%rbp)
- mov $s3,12(%rbp)
-
- jmp .Lcbc_exit
-
-.align 4
-.Lcbc_slow_enc_tail:
- mov %rax,%r11
- mov %rcx,%r12
- mov %r10,%rcx
- mov $inp,%rsi
- mov $out,%rdi
- .long 0x9066A4F3 # rep movsb
- mov \$16,%rcx # zero tail
- sub %r10,%rcx
- xor %rax,%rax
- .long 0x9066AAF3 # rep stosb
- mov $out,$inp # this is not a mistake!
- mov \$16,%r10 # len=16
- mov %r11,%rax
- mov %r12,%rcx
- jmp .Lcbc_slow_enc_loop # one more spin...
-#--------------------------- SLOW DECRYPT ---------------------------#
-.align 16
-.LSLOW_DECRYPT:
- shr \$3,%rax
- add %rax,$sbox # recall "magic" constants!
-
- mov 0(%rbp),%r11 # copy iv to stack
- mov 8(%rbp),%r12
- mov %r11,0+$ivec
- mov %r12,8+$ivec
-
-.align 4
-.Lcbc_slow_dec_loop:
- mov 0($inp),$s0 # load input
- mov 4($inp),$s1
- mov 8($inp),$s2
- mov 12($inp),$s3
- mov $keyp,$key # restore key
- mov $inp,$_inp # save inp
- mov $out,$_out # save out
- mov %r10,$_len # save len
-
- call _x86_64_AES_decrypt_compact
-
- mov $_inp,$inp # restore inp
- mov $_out,$out # restore out
- mov $_len,%r10
- xor 0+$ivec,$s0
- xor 4+$ivec,$s1
- xor 8+$ivec,$s2
- xor 12+$ivec,$s3
-
- mov 0($inp),%r11 # load input
- mov 8($inp),%r12
- sub \$16,%r10
- jc .Lcbc_slow_dec_partial
- jz .Lcbc_slow_dec_done
-
- mov %r11,0+$ivec # copy input to iv
- mov %r12,8+$ivec
-
- mov $s0,0($out) # save output [can zap input]
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- lea 16($inp),$inp
- lea 16($out),$out
- jmp .Lcbc_slow_dec_loop
-.Lcbc_slow_dec_done:
- mov $_ivp,%rdi
- mov %r11,0(%rdi) # copy iv back to user
- mov %r12,8(%rdi)
-
- mov $s0,0($out) # save output [can zap input]
- mov $s1,4($out)
- mov $s2,8($out)
- mov $s3,12($out)
-
- jmp .Lcbc_exit
-
-.align 4
-.Lcbc_slow_dec_partial:
- mov $_ivp,%rdi
- mov %r11,0(%rdi) # copy iv back to user
- mov %r12,8(%rdi)
-
- mov $s0,0+$ivec # save output to stack
- mov $s1,4+$ivec
- mov $s2,8+$ivec
- mov $s3,12+$ivec
-
- mov $out,%rdi
- lea $ivec,%rsi
- lea 16(%r10),%rcx
- .long 0x9066A4F3 # rep movsb
- jmp .Lcbc_exit
-
-.align 16
-.Lcbc_exit:
- mov $_rsp,%rsi
-.cfi_def_cfa %rsi,64
- mov (%rsi),%r15
-.cfi_restore %r15
- mov 8(%rsi),%r14
-.cfi_restore %r14
- mov 16(%rsi),%r13
-.cfi_restore %r13
- mov 24(%rsi),%r12
-.cfi_restore %r12
- mov 32(%rsi),%rbp
-.cfi_restore %rbp
- mov 40(%rsi),%rbx
-.cfi_restore %rbx
- lea 48(%rsi),%rsp
-.cfi_def_cfa %rsp,16
-.Lcbc_popfq:
- popfq
-# This could be .cfi_pop 49, but libunwind fails on registers it does not
-# recognize. See https://bugzilla.redhat.com/show_bug.cgi?id=217087.
-.cfi_adjust_cfa_offset -8
-.Lcbc_epilogue:
- ret
-.cfi_endproc
-.size AES_cbc_encrypt,.-AES_cbc_encrypt
-___
-}
-
-$code.=<<___;
-.align 64
-.LAES_Te:
-___
- &_data_word(0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6);
- &_data_word(0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591);
- &_data_word(0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56);
- &_data_word(0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec);
- &_data_word(0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa);
- &_data_word(0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb);
- &_data_word(0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45);
- &_data_word(0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b);
- &_data_word(0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c);
- &_data_word(0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83);
- &_data_word(0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9);
- &_data_word(0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a);
- &_data_word(0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d);
- &_data_word(0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f);
- &_data_word(0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df);
- &_data_word(0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea);
- &_data_word(0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34);
- &_data_word(0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b);
- &_data_word(0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d);
- &_data_word(0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413);
- &_data_word(0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1);
- &_data_word(0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6);
- &_data_word(0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972);
- &_data_word(0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85);
- &_data_word(0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed);
- &_data_word(0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511);
- &_data_word(0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe);
- &_data_word(0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b);
- &_data_word(0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05);
- &_data_word(0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1);
- &_data_word(0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142);
- &_data_word(0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf);
- &_data_word(0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3);
- &_data_word(0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e);
- &_data_word(0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a);
- &_data_word(0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6);
- &_data_word(0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3);
- &_data_word(0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b);
- &_data_word(0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428);
- &_data_word(0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad);
- &_data_word(0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14);
- &_data_word(0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8);
- &_data_word(0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4);
- &_data_word(0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2);
- &_data_word(0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda);
- &_data_word(0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949);
- &_data_word(0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf);
- &_data_word(0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810);
- &_data_word(0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c);
- &_data_word(0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697);
- &_data_word(0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e);
- &_data_word(0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f);
- &_data_word(0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc);
- &_data_word(0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c);
- &_data_word(0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969);
- &_data_word(0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27);
- &_data_word(0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122);
- &_data_word(0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433);
- &_data_word(0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9);
- &_data_word(0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5);
- &_data_word(0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a);
- &_data_word(0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0);
- &_data_word(0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e);
- &_data_word(0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c);
-
-#Te4 # four copies of Te4 to choose from to avoid L1 aliasing
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-
- &data_byte(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5);
- &data_byte(0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76);
- &data_byte(0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0);
- &data_byte(0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0);
- &data_byte(0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc);
- &data_byte(0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15);
- &data_byte(0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a);
- &data_byte(0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75);
- &data_byte(0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0);
- &data_byte(0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84);
- &data_byte(0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b);
- &data_byte(0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf);
- &data_byte(0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85);
- &data_byte(0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8);
- &data_byte(0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5);
- &data_byte(0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2);
- &data_byte(0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17);
- &data_byte(0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73);
- &data_byte(0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88);
- &data_byte(0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb);
- &data_byte(0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c);
- &data_byte(0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79);
- &data_byte(0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9);
- &data_byte(0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08);
- &data_byte(0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6);
- &data_byte(0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a);
- &data_byte(0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e);
- &data_byte(0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e);
- &data_byte(0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94);
- &data_byte(0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf);
- &data_byte(0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68);
- &data_byte(0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
-#rcon:
-$code.=<<___;
- .long 0x00000001, 0x00000002, 0x00000004, 0x00000008
- .long 0x00000010, 0x00000020, 0x00000040, 0x00000080
- .long 0x0000001b, 0x00000036, 0x80808080, 0x80808080
- .long 0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b
-___
-$code.=<<___;
-.align 64
-.LAES_Td:
-___
- &_data_word(0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a);
- &_data_word(0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b);
- &_data_word(0x55fa3020, 0xf66d76ad, 0x9176cc88, 0x254c02f5);
- &_data_word(0xfcd7e54f, 0xd7cb2ac5, 0x80443526, 0x8fa362b5);
- &_data_word(0x495ab1de, 0x671bba25, 0x980eea45, 0xe1c0fe5d);
- &_data_word(0x02752fc3, 0x12f04c81, 0xa397468d, 0xc6f9d36b);
- &_data_word(0xe75f8f03, 0x959c9215, 0xeb7a6dbf, 0xda595295);
- &_data_word(0x2d83bed4, 0xd3217458, 0x2969e049, 0x44c8c98e);
- &_data_word(0x6a89c275, 0x78798ef4, 0x6b3e5899, 0xdd71b927);
- &_data_word(0xb64fe1be, 0x17ad88f0, 0x66ac20c9, 0xb43ace7d);
- &_data_word(0x184adf63, 0x82311ae5, 0x60335197, 0x457f5362);
- &_data_word(0xe07764b1, 0x84ae6bbb, 0x1ca081fe, 0x942b08f9);
- &_data_word(0x58684870, 0x19fd458f, 0x876cde94, 0xb7f87b52);
- &_data_word(0x23d373ab, 0xe2024b72, 0x578f1fe3, 0x2aab5566);
- &_data_word(0x0728ebb2, 0x03c2b52f, 0x9a7bc586, 0xa50837d3);
- &_data_word(0xf2872830, 0xb2a5bf23, 0xba6a0302, 0x5c8216ed);
- &_data_word(0x2b1ccf8a, 0x92b479a7, 0xf0f207f3, 0xa1e2694e);
- &_data_word(0xcdf4da65, 0xd5be0506, 0x1f6234d1, 0x8afea6c4);
- &_data_word(0x9d532e34, 0xa055f3a2, 0x32e18a05, 0x75ebf6a4);
- &_data_word(0x39ec830b, 0xaaef6040, 0x069f715e, 0x51106ebd);
- &_data_word(0xf98a213e, 0x3d06dd96, 0xae053edd, 0x46bde64d);
- &_data_word(0xb58d5491, 0x055dc471, 0x6fd40604, 0xff155060);
- &_data_word(0x24fb9819, 0x97e9bdd6, 0xcc434089, 0x779ed967);
- &_data_word(0xbd42e8b0, 0x888b8907, 0x385b19e7, 0xdbeec879);
- &_data_word(0x470a7ca1, 0xe90f427c, 0xc91e84f8, 0x00000000);
- &_data_word(0x83868009, 0x48ed2b32, 0xac70111e, 0x4e725a6c);
- &_data_word(0xfbff0efd, 0x5638850f, 0x1ed5ae3d, 0x27392d36);
- &_data_word(0x64d90f0a, 0x21a65c68, 0xd1545b9b, 0x3a2e3624);
- &_data_word(0xb1670a0c, 0x0fe75793, 0xd296eeb4, 0x9e919b1b);
- &_data_word(0x4fc5c080, 0xa220dc61, 0x694b775a, 0x161a121c);
- &_data_word(0x0aba93e2, 0xe52aa0c0, 0x43e0223c, 0x1d171b12);
- &_data_word(0x0b0d090e, 0xadc78bf2, 0xb9a8b62d, 0xc8a91e14);
- &_data_word(0x8519f157, 0x4c0775af, 0xbbdd99ee, 0xfd607fa3);
- &_data_word(0x9f2601f7, 0xbcf5725c, 0xc53b6644, 0x347efb5b);
- &_data_word(0x7629438b, 0xdcc623cb, 0x68fcedb6, 0x63f1e4b8);
- &_data_word(0xcadc31d7, 0x10856342, 0x40229713, 0x2011c684);
- &_data_word(0x7d244a85, 0xf83dbbd2, 0x1132f9ae, 0x6da129c7);
- &_data_word(0x4b2f9e1d, 0xf330b2dc, 0xec52860d, 0xd0e3c177);
- &_data_word(0x6c16b32b, 0x99b970a9, 0xfa489411, 0x2264e947);
- &_data_word(0xc48cfca8, 0x1a3ff0a0, 0xd82c7d56, 0xef903322);
- &_data_word(0xc74e4987, 0xc1d138d9, 0xfea2ca8c, 0x360bd498);
- &_data_word(0xcf81f5a6, 0x28de7aa5, 0x268eb7da, 0xa4bfad3f);
- &_data_word(0xe49d3a2c, 0x0d927850, 0x9bcc5f6a, 0x62467e54);
- &_data_word(0xc2138df6, 0xe8b8d890, 0x5ef7392e, 0xf5afc382);
- &_data_word(0xbe805d9f, 0x7c93d069, 0xa92dd56f, 0xb31225cf);
- &_data_word(0x3b99acc8, 0xa77d1810, 0x6e639ce8, 0x7bbb3bdb);
- &_data_word(0x097826cd, 0xf418596e, 0x01b79aec, 0xa89a4f83);
- &_data_word(0x656e95e6, 0x7ee6ffaa, 0x08cfbc21, 0xe6e815ef);
- &_data_word(0xd99be7ba, 0xce366f4a, 0xd4099fea, 0xd67cb029);
- &_data_word(0xafb2a431, 0x31233f2a, 0x3094a5c6, 0xc066a235);
- &_data_word(0x37bc4e74, 0xa6ca82fc, 0xb0d090e0, 0x15d8a733);
- &_data_word(0x4a9804f1, 0xf7daec41, 0x0e50cd7f, 0x2ff69117);
- &_data_word(0x8dd64d76, 0x4db0ef43, 0x544daacc, 0xdf0496e4);
- &_data_word(0xe3b5d19e, 0x1b886a4c, 0xb81f2cc1, 0x7f516546);
- &_data_word(0x04ea5e9d, 0x5d358c01, 0x737487fa, 0x2e410bfb);
- &_data_word(0x5a1d67b3, 0x52d2db92, 0x335610e9, 0x1347d66d);
- &_data_word(0x8c61d79a, 0x7a0ca137, 0x8e14f859, 0x893c13eb);
- &_data_word(0xee27a9ce, 0x35c961b7, 0xede51ce1, 0x3cb1477a);
- &_data_word(0x59dfd29c, 0x3f73f255, 0x79ce1418, 0xbf37c773);
- &_data_word(0xeacdf753, 0x5baafd5f, 0x146f3ddf, 0x86db4478);
- &_data_word(0x81f3afca, 0x3ec468b9, 0x2c342438, 0x5f40a3c2);
- &_data_word(0x72c31d16, 0x0c25e2bc, 0x8b493c28, 0x41950dff);
- &_data_word(0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664);
- &_data_word(0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0);
-
-#Td4: # four copies of Td4 to choose from to avoid L1 aliasing
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-$code.=<<___;
- .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
- .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0
-___
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-$code.=<<___;
- .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
- .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0
-___
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-$code.=<<___;
- .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
- .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0
-___
- &data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
- &data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
- &data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
- &data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
- &data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
- &data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
- &data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
- &data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
- &data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
- &data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
- &data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
- &data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
- &data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
- &data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
- &data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
- &data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
- &data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
- &data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
- &data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
- &data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
- &data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
- &data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
- &data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
- &data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
- &data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
- &data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
- &data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
- &data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
- &data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
- &data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
- &data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
- &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
-$code.=<<___;
- .long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
- .long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0
-.asciz "AES for x86_64, CRYPTOGAMS by "
-.align 64
-___
-
-# EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
-# CONTEXT *context,DISPATCHER_CONTEXT *disp)
-if ($win64) {
-$rec="%rcx";
-$frame="%rdx";
-$context="%r8";
-$disp="%r9";
-
-$code.=<<___;
-.extern __imp_RtlVirtualUnwind
-.type block_se_handler,\@abi-omnipotent
-.align 16
-block_se_handler:
- push %rsi
- push %rdi
- push %rbx
- push %rbp
- push %r12
- push %r13
- push %r14
- push %r15
- pushfq
- sub \$64,%rsp
-
- mov 120($context),%rax # pull context->Rax
- mov 248($context),%rbx # pull context->Rip
-
- mov 8($disp),%rsi # disp->ImageBase
- mov 56($disp),%r11 # disp->HandlerData
-
- mov 0(%r11),%r10d # HandlerData[0]
- lea (%rsi,%r10),%r10 # prologue label
- cmp %r10,%rbx # context->RipRsp
-
- mov 4(%r11),%r10d # HandlerData[1]
- lea (%rsi,%r10),%r10 # epilogue label
- cmp %r10,%rbx # context->Rip>=epilogue label
- jae .Lin_block_prologue
-
- mov 24(%rax),%rax # pull saved real stack pointer
-
- mov -8(%rax),%rbx
- mov -16(%rax),%rbp
- mov -24(%rax),%r12
- mov -32(%rax),%r13
- mov -40(%rax),%r14
- mov -48(%rax),%r15
- mov %rbx,144($context) # restore context->Rbx
- mov %rbp,160($context) # restore context->Rbp
- mov %r12,216($context) # restore context->R12
- mov %r13,224($context) # restore context->R13
- mov %r14,232($context) # restore context->R14
- mov %r15,240($context) # restore context->R15
-
-.Lin_block_prologue:
- mov 8(%rax),%rdi
- mov 16(%rax),%rsi
- mov %rax,152($context) # restore context->Rsp
- mov %rsi,168($context) # restore context->Rsi
- mov %rdi,176($context) # restore context->Rdi
-
- jmp .Lcommon_seh_exit
-.size block_se_handler,.-block_se_handler
-
-.type key_se_handler,\@abi-omnipotent
-.align 16
-key_se_handler:
- push %rsi
- push %rdi
- push %rbx
- push %rbp
- push %r12
- push %r13
- push %r14
- push %r15
- pushfq
- sub \$64,%rsp
-
- mov 120($context),%rax # pull context->Rax
- mov 248($context),%rbx # pull context->Rip
-
- mov 8($disp),%rsi # disp->ImageBase
- mov 56($disp),%r11 # disp->HandlerData
-
- mov 0(%r11),%r10d # HandlerData[0]
- lea (%rsi,%r10),%r10 # prologue label
- cmp %r10,%rbx # context->RipRsp
-
- mov 4(%r11),%r10d # HandlerData[1]
- lea (%rsi,%r10),%r10 # epilogue label
- cmp %r10,%rbx # context->Rip>=epilogue label
- jae .Lin_key_prologue
-
- lea 56(%rax),%rax
-
- mov -8(%rax),%rbx
- mov -16(%rax),%rbp
- mov -24(%rax),%r12
- mov -32(%rax),%r13
- mov -40(%rax),%r14
- mov -48(%rax),%r15
- mov %rbx,144($context) # restore context->Rbx
- mov %rbp,160($context) # restore context->Rbp
- mov %r12,216($context) # restore context->R12
- mov %r13,224($context) # restore context->R13
- mov %r14,232($context) # restore context->R14
- mov %r15,240($context) # restore context->R15
-
-.Lin_key_prologue:
- mov 8(%rax),%rdi
- mov 16(%rax),%rsi
- mov %rax,152($context) # restore context->Rsp
- mov %rsi,168($context) # restore context->Rsi
- mov %rdi,176($context) # restore context->Rdi
-
- jmp .Lcommon_seh_exit
-.size key_se_handler,.-key_se_handler
-
-.type cbc_se_handler,\@abi-omnipotent
-.align 16
-cbc_se_handler:
- push %rsi
- push %rdi
- push %rbx
- push %rbp
- push %r12
- push %r13
- push %r14
- push %r15
- pushfq
- sub \$64,%rsp
-
- mov 120($context),%rax # pull context->Rax
- mov 248($context),%rbx # pull context->Rip
-
- lea .Lcbc_prologue(%rip),%r10
- cmp %r10,%rbx # context->Rip<.Lcbc_prologue
- jb .Lin_cbc_prologue
-
- lea .Lcbc_fast_body(%rip),%r10
- cmp %r10,%rbx # context->Rip<.Lcbc_fast_body
- jb .Lin_cbc_frame_setup
-
- lea .Lcbc_slow_prologue(%rip),%r10
- cmp %r10,%rbx # context->Rip<.Lcbc_slow_prologue
- jb .Lin_cbc_body
-
- lea .Lcbc_slow_body(%rip),%r10
- cmp %r10,%rbx # context->Rip<.Lcbc_slow_body
- jb .Lin_cbc_frame_setup
-
-.Lin_cbc_body:
- mov 152($context),%rax # pull context->Rsp
-
- lea .Lcbc_epilogue(%rip),%r10
- cmp %r10,%rbx # context->Rip>=.Lcbc_epilogue
- jae .Lin_cbc_prologue
-
- lea 8(%rax),%rax
-
- lea .Lcbc_popfq(%rip),%r10
- cmp %r10,%rbx # context->Rip>=.Lcbc_popfq
- jae .Lin_cbc_prologue
-
- mov `16-8`(%rax),%rax # biased $_rsp
- lea 56(%rax),%rax
-
-.Lin_cbc_frame_setup:
- mov -16(%rax),%rbx
- mov -24(%rax),%rbp
- mov -32(%rax),%r12
- mov -40(%rax),%r13
- mov -48(%rax),%r14
- mov -56(%rax),%r15
- mov %rbx,144($context) # restore context->Rbx
- mov %rbp,160($context) # restore context->Rbp
- mov %r12,216($context) # restore context->R12
- mov %r13,224($context) # restore context->R13
- mov %r14,232($context) # restore context->R14
- mov %r15,240($context) # restore context->R15
-
-.Lin_cbc_prologue:
- mov 8(%rax),%rdi
- mov 16(%rax),%rsi
- mov %rax,152($context) # restore context->Rsp
- mov %rsi,168($context) # restore context->Rsi
- mov %rdi,176($context) # restore context->Rdi
-
-.Lcommon_seh_exit:
-
- mov 40($disp),%rdi # disp->ContextRecord
- mov $context,%rsi # context
- mov \$`1232/8`,%ecx # sizeof(CONTEXT)
- .long 0xa548f3fc # cld; rep movsq
-
- mov $disp,%rsi
- xor %rcx,%rcx # arg1, UNW_FLAG_NHANDLER
- mov 8(%rsi),%rdx # arg2, disp->ImageBase
- mov 0(%rsi),%r8 # arg3, disp->ControlPc
- mov 16(%rsi),%r9 # arg4, disp->FunctionEntry
- mov 40(%rsi),%r10 # disp->ContextRecord
- lea 56(%rsi),%r11 # &disp->HandlerData
- lea 24(%rsi),%r12 # &disp->EstablisherFrame
- mov %r10,32(%rsp) # arg5
- mov %r11,40(%rsp) # arg6
- mov %r12,48(%rsp) # arg7
- mov %rcx,56(%rsp) # arg8, (NULL)
- call *__imp_RtlVirtualUnwind(%rip)
-
- mov \$1,%eax # ExceptionContinueSearch
- add \$64,%rsp
- popfq
- pop %r15
- pop %r14
- pop %r13
- pop %r12
- pop %rbp
- pop %rbx
- pop %rdi
- pop %rsi
- ret
-.size cbc_se_handler,.-cbc_se_handler
-
-.section .pdata
-.align 4
- .rva .LSEH_begin_AES_encrypt
- .rva .LSEH_end_AES_encrypt
- .rva .LSEH_info_AES_encrypt
-
- .rva .LSEH_begin_AES_decrypt
- .rva .LSEH_end_AES_decrypt
- .rva .LSEH_info_AES_decrypt
-
- .rva .LSEH_begin_AES_set_encrypt_key
- .rva .LSEH_end_AES_set_encrypt_key
- .rva .LSEH_info_AES_set_encrypt_key
-
- .rva .LSEH_begin_AES_set_decrypt_key
- .rva .LSEH_end_AES_set_decrypt_key
- .rva .LSEH_info_AES_set_decrypt_key
-
- .rva .LSEH_begin_AES_cbc_encrypt
- .rva .LSEH_end_AES_cbc_encrypt
- .rva .LSEH_info_AES_cbc_encrypt
-
-.section .xdata
-.align 8
-.LSEH_info_AES_encrypt:
- .byte 9,0,0,0
- .rva block_se_handler
- .rva .Lenc_prologue,.Lenc_epilogue # HandlerData[]
-.LSEH_info_AES_decrypt:
- .byte 9,0,0,0
- .rva block_se_handler
- .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[]
-.LSEH_info_AES_set_encrypt_key:
- .byte 9,0,0,0
- .rva key_se_handler
- .rva .Lenc_key_prologue,.Lenc_key_epilogue # HandlerData[]
-.LSEH_info_AES_set_decrypt_key:
- .byte 9,0,0,0
- .rva key_se_handler
- .rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[]
-.LSEH_info_AES_cbc_encrypt:
- .byte 9,0,0,0
- .rva cbc_se_handler
-___
-}
-
-$code =~ s/\`([^\`]*)\`/eval($1)/gem;
-
-print $code;
-
-close STDOUT;
diff --git a/deps/openssl/openssl/crypto/aes/asm/bsaes-x86_64.pl b/deps/openssl/openssl/crypto/aes/asm/bsaes-x86_64.pl
deleted file mode 100644
index e62342729e7fa5..00000000000000
--- a/deps/openssl/openssl/crypto/aes/asm/bsaes-x86_64.pl
+++ /dev/null
@@ -1,3239 +0,0 @@
-#! /usr/bin/env perl
-# Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License"). You may not use
-# this file except in compliance with the License. You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-
-###################################################################
-### AES-128 [originally in CTR mode] ###
-### bitsliced implementation for Intel Core 2 processors ###
-### requires support of SSE extensions up to SSSE3 ###
-### Author: Emilia Käsper and Peter Schwabe ###
-### Date: 2009-03-19 ###
-### Public domain ###
-### ###
-### See http://homes.esat.kuleuven.be/~ekasper/#software for ###
-### further information. ###
-###################################################################
-#
-# September 2011.
-#
-# Started as transliteration to "perlasm" the original code has
-# undergone following changes:
-#
-# - code was made position-independent;
-# - rounds were folded into a loop resulting in >5x size reduction
-# from 12.5KB to 2.2KB;
-# - above was possibile thanks to mixcolumns() modification that
-# allowed to feed its output back to aesenc[last], this was
-# achieved at cost of two additional inter-registers moves;
-# - some instruction reordering and interleaving;
-# - this module doesn't implement key setup subroutine, instead it
-# relies on conversion of "conventional" key schedule as returned
-# by AES_set_encrypt_key (see discussion below);
-# - first and last round keys are treated differently, which allowed
-# to skip one shiftrows(), reduce bit-sliced key schedule and
-# speed-up conversion by 22%;
-# - support for 192- and 256-bit keys was added;
-#
-# Resulting performance in CPU cycles spent to encrypt one byte out
-# of 4096-byte buffer with 128-bit key is:
-#
-# Emilia's this(*) difference
-#
-# Core 2 9.30 8.69 +7%
-# Nehalem(**) 7.63 6.88 +11%
-# Atom 17.1 16.4 +4%
-# Silvermont - 12.9
-# Goldmont - 8.85
-#
-# (*) Comparison is not completely fair, because "this" is ECB,
-# i.e. no extra processing such as counter values calculation
-# and xor-ing input as in Emilia's CTR implementation is
-# performed. However, the CTR calculations stand for not more
-# than 1% of total time, so comparison is *rather* fair.
-#
-# (**) Results were collected on Westmere, which is considered to
-# be equivalent to Nehalem for this code.
-#
-# As for key schedule conversion subroutine. Interface to OpenSSL
-# relies on per-invocation on-the-fly conversion. This naturally
-# has impact on performance, especially for short inputs. Conversion
-# time in CPU cycles and its ratio to CPU cycles spent in 8x block
-# function is:
-#
-# conversion conversion/8x block
-# Core 2 240 0.22
-# Nehalem 180 0.20
-# Atom 430 0.20
-#
-# The ratio values mean that 128-byte blocks will be processed
-# 16-18% slower, 256-byte blocks - 9-10%, 384-byte blocks - 6-7%,
-# etc. Then keep in mind that input sizes not divisible by 128 are
-# *effectively* slower, especially shortest ones, e.g. consecutive
-# 144-byte blocks are processed 44% slower than one would expect,
-# 272 - 29%, 400 - 22%, etc. Yet, despite all these "shortcomings"
-# it's still faster than ["hyper-threading-safe" code path in]
-# aes-x86_64.pl on all lengths above 64 bytes...
-#
-# October 2011.
-#
-# Add decryption procedure. Performance in CPU cycles spent to decrypt
-# one byte out of 4096-byte buffer with 128-bit key is:
-#
-# Core 2 9.98
-# Nehalem 7.80
-# Atom 17.9
-# Silvermont 14.0
-# Goldmont 10.2
-#
-# November 2011.
-#
-# Add bsaes_xts_[en|de]crypt. Less-than-80-bytes-block performance is
-# suboptimal, but XTS is meant to be used with larger blocks...
-#
-#
-
-$flavour = shift;
-$output = shift;
-if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
-
-$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
-
-$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
-( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
-die "can't locate x86_64-xlate.pl";
-
-open OUT,"| \"$^X\" \"$xlate\" $flavour \"$output\"";
-*STDOUT=*OUT;
-
-my ($inp,$out,$len,$key,$ivp)=("%rdi","%rsi","%rdx","%rcx");
-my @XMM=map("%xmm$_",(15,0..14)); # best on Atom, +10% over (0..15)
-my $ecb=0; # suppress unreferenced ECB subroutines, spare some space...
-
-{
-my ($key,$rounds,$const)=("%rax","%r10d","%r11");
-
-sub Sbox {
-# input in lsb > [b0, b1, b2, b3, b4, b5, b6, b7] < msb
-# output in lsb > [b0, b1, b4, b6, b3, b7, b2, b5] < msb
-my @b=@_[0..7];
-my @t=@_[8..11];
-my @s=@_[12..15];
- &InBasisChange (@b);
- &Inv_GF256 (@b[6,5,0,3,7,1,4,2],@t,@s);
- &OutBasisChange (@b[7,1,4,2,6,5,0,3]);
-}
-
-sub InBasisChange {
-# input in lsb > [b0, b1, b2, b3, b4, b5, b6, b7] < msb
-# output in lsb > [b6, b5, b0, b3, b7, b1, b4, b2] < msb
-my @b=@_[0..7];
-$code.=<<___;
- pxor @b[6], @b[5]
- pxor @b[1], @b[2]
- pxor @b[0], @b[3]
- pxor @b[2], @b[6]
- pxor @b[0], @b[5]
-
- pxor @b[3], @b[6]
- pxor @b[7], @b[3]
- pxor @b[5], @b[7]
- pxor @b[4], @b[3]
- pxor @b[5], @b[4]
- pxor @b[1], @b[3]
-
- pxor @b[7], @b[2]
- pxor @b[5], @b[1]
-___
-}
-
-sub OutBasisChange {
-# input in lsb > [b0, b1, b2, b3, b4, b5, b6, b7] < msb
-# output in lsb > [b6, b1, b2, b4, b7, b0, b3, b5] < msb
-my @b=@_[0..7];
-$code.=<<___;
- pxor @b[6], @b[0]
- pxor @b[4], @b[1]
- pxor @b[0], @b[2]
- pxor @b[6], @b[4]
- pxor @b[1], @b[6]
-
- pxor @b[5], @b[1]
- pxor @b[3], @b[5]
- pxor @b[7], @b[3]
- pxor @b[5], @b[7]
- pxor @b[5], @b[2]
-
- pxor @b[7], @b[4]
-___
-}
-
-sub InvSbox {
-# input in lsb > [b0, b1, b2, b3, b4, b5, b6, b7] < msb
-# output in lsb > [b0, b1, b6, b4, b2, b7, b3, b5] < msb
-my @b=@_[0..7];
-my @t=@_[8..11];
-my @s=@_[12..15];
- &InvInBasisChange (@b);
- &Inv_GF256 (@b[5,1,2,6,3,7,0,4],@t,@s);
- &InvOutBasisChange (@b[3,7,0,4,5,1,2,6]);
-}
-
-sub InvInBasisChange { # OutBasisChange in reverse
-my @b=@_[5,1,2,6,3,7,0,4];
-$code.=<<___
- pxor @b[7], @b[4]
-
- pxor @b[5], @b[7]
- pxor @b[5], @b[2]
- pxor @b[7], @b[3]
- pxor @b[3], @b[5]
- pxor @b[5], @b[1]
-
- pxor @b[1], @b[6]
- pxor @b[0], @b[2]
- pxor @b[6], @b[4]
- pxor @b[6], @b[0]
- pxor @b[4], @b[1]
-___
-}
-
-sub InvOutBasisChange { # InBasisChange in reverse
-my @b=@_[2,5,7,3,6,1,0,4];
-$code.=<<___;
- pxor @b[5], @b[1]
- pxor @b[7], @b[2]
-
- pxor @b[1], @b[3]
- pxor @b[5], @b[4]
- pxor @b[5], @b[7]
- pxor @b[4], @b[3]
- pxor @b[0], @b[5]
- pxor @b[7], @b[3]
- pxor @b[2], @b[6]
- pxor @b[1], @b[2]
- pxor @b[3], @b[6]
-
- pxor @b[0], @b[3]
- pxor @b[6], @b[5]
-___
-}
-
-sub Mul_GF4 {
-#;*************************************************************
-#;* Mul_GF4: Input x0-x1,y0-y1 Output x0-x1 Temp t0 (8) *
-#;*************************************************************
-my ($x0,$x1,$y0,$y1,$t0)=@_;
-$code.=<<___;
- movdqa $y0, $t0
- pxor $y1, $t0
- pand $x0, $t0
- pxor $x1, $x0
- pand $y0, $x1
- pand $y1, $x0
- pxor $x1, $x0
- pxor $t0, $x1
-___
-}
-
-sub Mul_GF4_N { # not used, see next subroutine
-# multiply and scale by N
-my ($x0,$x1,$y0,$y1,$t0)=@_;
-$code.=<<___;
- movdqa $y0, $t0
- pxor $y1, $t0
- pand $x0, $t0
- pxor $x1, $x0
- pand $y0, $x1
- pand $y1, $x0
- pxor $x0, $x1
- pxor $t0, $x0
-___
-}
-
-sub Mul_GF4_N_GF4 {
-# interleaved Mul_GF4_N and Mul_GF4
-my ($x0,$x1,$y0,$y1,$t0,
- $x2,$x3,$y2,$y3,$t1)=@_;
-$code.=<<___;
- movdqa $y0, $t0
- movdqa $y2, $t1
- pxor $y1, $t0
- pxor $y3, $t1
- pand $x0, $t0
- pand $x2, $t1
- pxor $x1, $x0
- pxor $x3, $x2
- pand $y0, $x1
- pand $y2, $x3
- pand $y1, $x0
- pand $y3, $x2
- pxor $x0, $x1
- pxor $x3, $x2
- pxor $t0, $x0
- pxor $t1, $x3
-___
-}
-sub Mul_GF16_2 {
-my @x=@_[0..7];
-my @y=@_[8..11];
-my @t=@_[12..15];
-$code.=<<___;
- movdqa @x[0], @t[0]
- movdqa @x[1], @t[1]
-___
- &Mul_GF4 (@x[0], @x[1], @y[0], @y[1], @t[2]);
-$code.=<<___;
- pxor @x[2], @t[0]
- pxor @x[3], @t[1]
- pxor @y[2], @y[0]
- pxor @y[3], @y[1]
-___
- Mul_GF4_N_GF4 (@t[0], @t[1], @y[0], @y[1], @t[3],
- @x[2], @x[3], @y[2], @y[3], @t[2]);
-$code.=<<___;
- pxor @t[0], @x[0]
- pxor @t[0], @x[2]
- pxor @t[1], @x[1]
- pxor @t[1], @x[3]
-
- movdqa @x[4], @t[0]
- movdqa @x[5], @t[1]
- pxor @x[6], @t[0]
- pxor @x[7], @t[1]
-___
- &Mul_GF4_N_GF4 (@t[0], @t[1], @y[0], @y[1], @t[3],
- @x[6], @x[7], @y[2], @y[3], @t[2]);
-$code.=<<___;
- pxor @y[2], @y[0]
- pxor @y[3], @y[1]
-___
- &Mul_GF4 (@x[4], @x[5], @y[0], @y[1], @t[3]);
-$code.=<<___;
- pxor @t[0], @x[4]
- pxor @t[0], @x[6]
- pxor @t[1], @x[5]
- pxor @t[1], @x[7]
-___
-}
-sub Inv_GF256 {
-#;********************************************************************
-#;* Inv_GF256: Input x0-x7 Output x0-x7 Temp t0-t3,s0-s3 (144) *
-#;********************************************************************
-my @x=@_[0..7];
-my @t=@_[8..11];
-my @s=@_[12..15];
-# direct optimizations from hardware
-$code.=<<___;
- movdqa @x[4], @t[3]
- movdqa @x[5], @t[2]
- movdqa @x[1], @t[1]
- movdqa @x[7], @s[1]
- movdqa @x[0], @s[0]
-
- pxor @x[6], @t[3]
- pxor @x[7], @t[2]
- pxor @x[3], @t[1]
- movdqa @t[3], @s[2]
- pxor @x[6], @s[1]
- movdqa @t[2], @t[0]
- pxor @x[2], @s[0]
- movdqa @t[3], @s[3]
-
- por @t[1], @t[2]
- por @s[0], @t[3]
- pxor @t[0], @s[3]
- pand @s[0], @s[2]
- pxor @t[1], @s[0]
- pand @t[1], @t[0]
- pand @s[0], @s[3]
- movdqa @x[3], @s[0]
- pxor @x[2], @s[0]
- pand @s[0], @s[1]
- pxor @s[1], @t[3]
- pxor @s[1], @t[2]
- movdqa @x[4], @s[1]
- movdqa @x[1], @s[0]
- pxor @x[5], @s[1]
- pxor @x[0], @s[0]
- movdqa @s[1], @t[1]
- pand @s[0], @s[1]
- por @s[0], @t[1]
- pxor @s[1], @t[0]
- pxor @s[3], @t[3]
- pxor @s[2], @t[2]
- pxor @s[3], @t[1]
- movdqa @x[7], @s[0]
- pxor @s[2], @t[0]
- movdqa @x[6], @s[1]
- pxor @s[2], @t[1]
- movdqa @x[5], @s[2]
- pand @x[3], @s[0]
- movdqa @x[4], @s[3]
- pand @x[2], @s[1]
- pand @x[1], @s[2]
- por @x[0], @s[3]
- pxor @s[0], @t[3]
- pxor @s[1], @t[2]
- pxor @s[2], @t[1]
- pxor @s[3], @t[0]
-
- #Inv_GF16 \t0, \t1, \t2, \t3, \s0, \s1, \s2, \s3
-
- # new smaller inversion
-
- movdqa @t[3], @s[0]
- pand @t[1], @t[3]
- pxor @t[2], @s[0]
-
- movdqa @t[0], @s[2]
- movdqa @s[0], @s[3]
- pxor @t[3], @s[2]
- pand @s[2], @s[3]
-
- movdqa @t[1], @s[1]
- pxor @t[2], @s[3]
- pxor @t[0], @s[1]
-
- pxor @t[2], @t[3]
-
- pand @t[3], @s[1]
-
- movdqa @s[2], @t[2]
- pxor @t[0], @s[1]
-
- pxor @s[1], @t[2]
- pxor @s[1], @t[1]
-
- pand @t[0], @t[2]
-
- pxor @t[2], @s[2]
- pxor @t[2], @t[1]
-
- pand @s[3], @s[2]
-
- pxor @s[0], @s[2]
-___
-# output in s3, s2, s1, t1
-
-# Mul_GF16_2 \x0, \x1, \x2, \x3, \x4, \x5, \x6, \x7, \t2, \t3, \t0, \t1, \s0, \s1, \s2, \s3
-
-# Mul_GF16_2 \x0, \x1, \x2, \x3, \x4, \x5, \x6, \x7, \s3, \s2, \s1, \t1, \s0, \t0, \t2, \t3
- &Mul_GF16_2(@x,@s[3,2,1],@t[1],@s[0],@t[0,2,3]);
-
-### output msb > [x3,x2,x1,x0,x7,x6,x5,x4] < lsb
-}
-
-# AES linear components
-
-sub ShiftRows {
-my @x=@_[0..7];
-my $mask=pop;
-$code.=<<___;
- pxor 0x00($key),@x[0]
- pxor 0x10($key),@x[1]
- pxor 0x20($key),@x[2]
- pxor 0x30($key),@x[3]
- pshufb $mask,@x[0]
- pshufb $mask,@x[1]
- pxor 0x40($key),@x[4]
- pxor 0x50($key),@x[5]
- pshufb $mask,@x[2]
- pshufb $mask,@x[3]
- pxor 0x60($key),@x[6]
- pxor 0x70($key),@x[7]
- pshufb $mask,@x[4]
- pshufb $mask,@x[5]
- pshufb $mask,@x[6]
- pshufb $mask,@x[7]
- lea 0x80($key),$key
-___
-}
-
-sub MixColumns {
-# modified to emit output in order suitable for feeding back to aesenc[last]
-my @x=@_[0..7];
-my @t=@_[8..15];
-my $inv=@_[16]; # optional
-$code.=<<___;
- pshufd \$0x93, @x[0], @t[0] # x0 <<< 32
- pshufd \$0x93, @x[1], @t[1]
- pxor @t[0], @x[0] # x0 ^ (x0 <<< 32)
- pshufd \$0x93, @x[2], @t[2]
- pxor @t[1], @x[1]
- pshufd \$0x93, @x[3], @t[3]
- pxor @t[2], @x[2]
- pshufd \$0x93, @x[4], @t[4]
- pxor @t[3], @x[3]
- pshufd \$0x93, @x[5], @t[5]
- pxor @t[4], @x[4]
- pshufd \$0x93, @x[6], @t[6]
- pxor @t[5], @x[5]
- pshufd \$0x93, @x[7], @t[7]
- pxor @t[6], @x[6]
- pxor @t[7], @x[7]
-
- pxor @x[0], @t[1]
- pxor @x[7], @t[0]
- pxor @x[7], @t[1]
- pshufd \$0x4E, @x[0], @x[0] # (x0 ^ (x0 <<< 32)) <<< 64)
- pxor @x[1], @t[2]
- pshufd \$0x4E, @x[1], @x[1]
- pxor @x[4], @t[5]
- pxor @t[0], @x[0]
- pxor @x[5], @t[6]
- pxor @t[1], @x[1]
- pxor @x[3], @t[4]
- pshufd \$0x4E, @x[4], @t[0]
- pxor @x[6], @t[7]
- pshufd \$0x4E, @x[5], @t[1]
- pxor @x[2], @t[3]
- pshufd \$0x4E, @x[3], @x[4]
- pxor @x[7], @t[3]
- pshufd \$0x4E, @x[7], @x[5]
- pxor @x[7], @t[4]
- pshufd \$0x4E, @x[6], @x[3]
- pxor @t[4], @t[0]
- pshufd \$0x4E, @x[2], @x[6]
- pxor @t[5], @t[1]
-___
-$code.=<<___ if (!$inv);
- pxor @t[3], @x[4]
- pxor @t[7], @x[5]
- pxor @t[6], @x[3]
- movdqa @t[0], @x[2]
- pxor @t[2], @x[6]
- movdqa @t[1], @x[7]
-___
-$code.=<<___ if ($inv);
- pxor @x[4], @t[3]
- pxor @t[7], @x[5]
- pxor @x[3], @t[6]
- movdqa @t[0], @x[3]
- pxor @t[2], @x[6]
- movdqa @t[6], @x[2]
- movdqa @t[1], @x[7]
- movdqa @x[6], @x[4]
- movdqa @t[3], @x[6]
-___
-}
-
-sub InvMixColumns_orig {
-my @x=@_[0..7];
-my @t=@_[8..15];
-
-$code.=<<___;
- # multiplication by 0x0e
- pshufd \$0x93, @x[7], @t[7]
- movdqa @x[2], @t[2]
- pxor @x[5], @x[7] # 7 5
- pxor @x[5], @x[2] # 2 5
- pshufd \$0x93, @x[0], @t[0]
- movdqa @x[5], @t[5]
- pxor @x[0], @x[5] # 5 0 [1]
- pxor @x[1], @x[0] # 0 1
- pshufd \$0x93, @x[1], @t[1]
- pxor @x[2], @x[1] # 1 25
- pxor @x[6], @x[0] # 01 6 [2]
- pxor @x[3], @x[1] # 125 3 [4]
- pshufd \$0x93, @x[3], @t[3]
- pxor @x[0], @x[2] # 25 016 [3]
- pxor @x[7], @x[3] # 3 75
- pxor @x[6], @x[7] # 75 6 [0]
- pshufd \$0x93, @x[6], @t[6]
- movdqa @x[4], @t[4]
- pxor @x[4], @x[6] # 6 4
- pxor @x[3], @x[4] # 4 375 [6]
- pxor @x[7], @x[3] # 375 756=36
- pxor @t[5], @x[6] # 64 5 [7]
- pxor @t[2], @x[3] # 36 2
- pxor @t[4], @x[3] # 362 4 [5]
- pshufd \$0x93, @t[5], @t[5]
-___
- my @y = @x[7,5,0,2,1,3,4,6];
-$code.=<<___;
- # multiplication by 0x0b
- pxor @y[0], @y[1]
- pxor @t[0], @y[0]
- pxor @t[1], @y[1]
- pshufd \$0x93, @t[2], @t[2]
- pxor @t[5], @y[0]
- pxor @t[6], @y[1]
- pxor @t[7], @y[0]
- pshufd \$0x93, @t[4], @t[4]
- pxor @t[6], @t[7] # clobber t[7]
- pxor @y[0], @y[1]
-
- pxor @t[0], @y[3]
- pshufd \$0x93, @t[0], @t[0]
- pxor @t[1], @y[2]
- pxor @t[1], @y[4]
- pxor @t[2], @y[2]
- pshufd \$0x93, @t[1], @t[1]
- pxor @t[2], @y[3]
- pxor @t[2], @y[5]
- pxor @t[7], @y[2]
- pshufd \$0x93, @t[2], @t[2]
- pxor @t[3], @y[3]
- pxor @t[3], @y[6]
- pxor @t[3], @y[4]
- pshufd \$0x93, @t[3], @t[3]
- pxor @t[4], @y[7]
- pxor @t[4], @y[5]
- pxor @t[7], @y[7]
- pxor @t[5], @y[3]
- pxor @t[4], @y[4]
- pxor @t[5], @t[7] # clobber t[7] even more
-
- pxor @t[7], @y[5]
- pshufd \$0x93, @t[4], @t[4]
- pxor @t[7], @y[6]
- pxor @t[7], @y[4]
-
- pxor @t[5], @t[7]
- pshufd \$0x93, @t[5], @t[5]
- pxor @t[6], @t[7] # restore t[7]
-
- # multiplication by 0x0d
- pxor @y[7], @y[4]
- pxor @t[4], @y[7]
- pshufd \$0x93, @t[6], @t[6]
- pxor @t[0], @y[2]
- pxor @t[5], @y[7]
- pxor @t[2], @y[2]
- pshufd \$0x93, @t[7], @t[7]
-
- pxor @y[1], @y[3]
- pxor @t[1], @y[1]
- pxor @t[0], @y[0]
- pxor @t[0], @y[3]
- pxor @t[5], @y[1]
- pxor @t[5], @y[0]
- pxor @t[7], @y[1]
- pshufd \$0x93, @t[0], @t[0]
- pxor @t[6], @y[0]
- pxor @y[1], @y[3]
- pxor @t[1], @y[4]
- pshufd \$0x93, @t[1], @t[1]
-
- pxor @t[7], @y[7]
- pxor @t[2], @y[4]
- pxor @t[2], @y[5]
- pshufd \$0x93, @t[2], @t[2]
- pxor @t[6], @y[2]
- pxor @t[3], @t[6] # clobber t[6]
- pxor @y[7], @y[4]
- pxor @t[6], @y[3]
-
- pxor @t[6], @y[6]
- pxor @t[5], @y[5]
- pxor @t[4], @y[6]
- pshufd \$0x93, @t[4], @t[4]
- pxor @t[6], @y[5]
- pxor @t[7], @y[6]
- pxor @t[3], @t[6] # restore t[6]
-
- pshufd \$0x93, @t[5], @t[5]
- pshufd \$0x93, @t[6], @t[6]
- pshufd \$0x93, @t[7], @t[7]
- pshufd \$0x93, @t[3], @t[3]
-
- # multiplication by 0x09
- pxor @y[1], @y[4]
- pxor @y[1], @t[1] # t[1]=y[1]
- pxor @t[5], @t[0] # clobber t[0]
- pxor @t[5], @t[1]
- pxor @t[0], @y[3]
- pxor @y[0], @t[0] # t[0]=y[0]
- pxor @t[6], @t[1]
- pxor @t[7], @t[6] # clobber t[6]
- pxor @t[1], @y[4]
- pxor @t[4], @y[7]
- pxor @y[4], @t[4] # t[4]=y[4]
- pxor @t[3], @y[6]
- pxor @y[3], @t[3] # t[3]=y[3]
- pxor @t[2], @y[5]
- pxor @y[2], @t[2] # t[2]=y[2]
- pxor @t[7], @t[3]
- pxor @y[5], @t[5] # t[5]=y[5]
- pxor @t[6], @t[2]
- pxor @t[6], @t[5]
- pxor @y[6], @t[6] # t[6]=y[6]
- pxor @y[7], @t[7] # t[7]=y[7]
-
- movdqa @t[0],@XMM[0]
- movdqa @t[1],@XMM[1]
- movdqa @t[2],@XMM[2]
- movdqa @t[3],@XMM[3]
- movdqa @t[4],@XMM[4]
- movdqa @t[5],@XMM[5]
- movdqa @t[6],@XMM[6]
- movdqa @t[7],@XMM[7]
-___
-}
-
-sub InvMixColumns {
-my @x=@_[0..7];
-my @t=@_[8..15];
-
-# Thanks to Jussi Kivilinna for providing pointer to
-#
-# | 0e 0b 0d 09 | | 02 03 01 01 | | 05 00 04 00 |
-# | 09 0e 0b 0d | = | 01 02 03 01 | x | 00 05 00 04 |
-# | 0d 09 0e 0b | | 01 01 02 03 | | 04 00 05 00 |
-# | 0b 0d 09 0e | | 03 01 01 02 | | 00 04 00 05 |
-
-$code.=<<___;
- # multiplication by 0x05-0x00-0x04-0x00
- pshufd \$0x4E, @x[0], @t[0]
- pshufd \$0x4E, @x[6], @t[6]
- pxor @x[0], @t[0]
- pshufd \$0x4E, @x[7], @t[7]
- pxor @x[6], @t[6]
- pshufd \$0x4E, @x[1], @t[1]
- pxor @x[7], @t[7]
- pshufd \$0x4E, @x[2], @t[2]
- pxor @x[1], @t[1]
- pshufd \$0x4E, @x[3], @t[3]
- pxor @x[2], @t[2]
- pxor @t[6], @x[0]
- pxor @t[6], @x[1]
- pshufd \$0x4E, @x[4], @t[4]
- pxor @x[3], @t[3]
- pxor @t[0], @x[2]
- pxor @t[1], @x[3]
- pshufd \$0x4E, @x[5], @t[5]
- pxor @x[4], @t[4]
- pxor @t[7], @x[1]
- pxor @t[2], @x[4]
- pxor @x[5], @t[5]
-
- pxor @t[7], @x[2]
- pxor @t[6], @x[3]
- pxor @t[6], @x[4]
- pxor @t[3], @x[5]
- pxor @t[4], @x[6]
- pxor @t[7], @x[4]
- pxor @t[7], @x[5]
- pxor @t[5], @x[7]
-___
- &MixColumns (@x,@t,1); # flipped 2<->3 and 4<->6
-}
-
-sub aesenc { # not used
-my @b=@_[0..7];
-my @t=@_[8..15];
-$code.=<<___;
- movdqa 0x30($const),@t[0] # .LSR
-___
- &ShiftRows (@b,@t[0]);
- &Sbox (@b,@t);
- &MixColumns (@b[0,1,4,6,3,7,2,5],@t);
-}
-
-sub aesenclast { # not used
-my @b=@_[0..7];
-my @t=@_[8..15];
-$code.=<<___;
- movdqa 0x40($const),@t[0] # .LSRM0
-___
- &ShiftRows (@b,@t[0]);
- &Sbox (@b,@t);
-$code.=<<___
- pxor 0x00($key),@b[0]
- pxor 0x10($key),@b[1]
- pxor 0x20($key),@b[4]
- pxor 0x30($key),@b[6]
- pxor 0x40($key),@b[3]
- pxor 0x50($key),@b[7]
- pxor 0x60($key),@b[2]
- pxor 0x70($key),@b[5]
-___
-}
-
-sub swapmove {
-my ($a,$b,$n,$mask,$t)=@_;
-$code.=<<___;
- movdqa $b,$t
- psrlq \$$n,$b
- pxor $a,$b
- pand $mask,$b
- pxor $b,$a
- psllq \$$n,$b
- pxor $t,$b
-___
-}
-sub swapmove2x {
-my ($a0,$b0,$a1,$b1,$n,$mask,$t0,$t1)=@_;
-$code.=<<___;
- movdqa $b0,$t0
- psrlq \$$n,$b0
- movdqa $b1,$t1
- psrlq \$$n,$b1
- pxor $a0,$b0
- pxor $a1,$b1
- pand $mask,$b0
- pand $mask,$b1
- pxor $b0,$a0
- psllq \$$n,$b0
- pxor $b1,$a1
- psllq \$$n,$b1
- pxor $t0,$b0
- pxor $t1,$b1
-___
-}
-
-sub bitslice {
-my @x=reverse(@_[0..7]);
-my ($t0,$t1,$t2,$t3)=@_[8..11];
-$code.=<<___;
- movdqa 0x00($const),$t0 # .LBS0
- movdqa 0x10($const),$t1 # .LBS1
-___
- &swapmove2x(@x[0,1,2,3],1,$t0,$t2,$t3);
- &swapmove2x(@x[4,5,6,7],1,$t0,$t2,$t3);
-$code.=<<___;
- movdqa 0x20($const),$t0 # .LBS2
-___
- &swapmove2x(@x[0,2,1,3],2,$t1,$t2,$t3);
- &swapmove2x(@x[4,6,5,7],2,$t1,$t2,$t3);
-
- &swapmove2x(@x[0,4,1,5],4,$t0,$t2,$t3);
- &swapmove2x(@x[2,6,3,7],4,$t0,$t2,$t3);
-}
-
-$code.=<<___;
-.text
-
-.extern asm_AES_encrypt
-.extern asm_AES_decrypt
-
-.type _bsaes_encrypt8,\@abi-omnipotent
-.align 64
-_bsaes_encrypt8:
-.cfi_startproc
- lea .LBS0(%rip), $const # constants table
-
- movdqa ($key), @XMM[9] # round 0 key
- lea 0x10($key), $key
- movdqa 0x50($const), @XMM[8] # .LM0SR
- pxor @XMM[9], @XMM[0] # xor with round0 key
- pxor @XMM[9], @XMM[1]
- pxor @XMM[9], @XMM[2]
- pxor @XMM[9], @XMM[3]
- pshufb @XMM[8], @XMM[0]
- pshufb @XMM[8], @XMM[1]
- pxor @XMM[9], @XMM[4]
- pxor @XMM[9], @XMM[5]
- pshufb @XMM[8], @XMM[2]
- pshufb @XMM[8], @XMM[3]
- pxor @XMM[9], @XMM[6]
- pxor @XMM[9], @XMM[7]
- pshufb @XMM[8], @XMM[4]
- pshufb @XMM[8], @XMM[5]
- pshufb @XMM[8], @XMM[6]
- pshufb @XMM[8], @XMM[7]
-_bsaes_encrypt8_bitslice:
-___
- &bitslice (@XMM[0..7, 8..11]);
-$code.=<<___;
- dec $rounds
- jmp .Lenc_sbox
-.align 16
-.Lenc_loop:
-___
- &ShiftRows (@XMM[0..7, 8]);
-$code.=".Lenc_sbox:\n";
- &Sbox (@XMM[0..7, 8..15]);
-$code.=<<___;
- dec $rounds
- jl .Lenc_done
-___
- &MixColumns (@XMM[0,1,4,6,3,7,2,5, 8..15]);
-$code.=<<___;
- movdqa 0x30($const), @XMM[8] # .LSR
- jnz .Lenc_loop
- movdqa 0x40($const), @XMM[8] # .LSRM0
- jmp .Lenc_loop
-.align 16
-.Lenc_done:
-___
- # output in lsb > [t0, t1, t4, t6, t3, t7, t2, t5] < msb
- &bitslice (@XMM[0,1,4,6,3,7,2,5, 8..11]);
-$code.=<<___;
- movdqa ($key), @XMM[8] # last round key
- pxor @XMM[8], @XMM[4]
- pxor @XMM[8], @XMM[6]
- pxor @XMM[8], @XMM[3]
- pxor @XMM[8], @XMM[7]
- pxor @XMM[8], @XMM[2]
- pxor @XMM[8], @XMM[5]
- pxor @XMM[8], @XMM[0]
- pxor @XMM[8], @XMM[1]
- ret
-.cfi_endproc
-.size _bsaes_encrypt8,.-_bsaes_encrypt8
-
-.type _bsaes_decrypt8,\@abi-omnipotent
-.align 64
-_bsaes_decrypt8:
-.cfi_startproc
- lea .LBS0(%rip), $const # constants table
-
- movdqa ($key), @XMM[9] # round 0 key
- lea 0x10($key), $key
- movdqa -0x30($const), @XMM[8] # .LM0ISR
- pxor @XMM[9], @XMM[0] # xor with round0 key
- pxor @XMM[9], @XMM[1]
- pxor @XMM[9], @XMM[2]
- pxor @XMM[9], @XMM[3]
- pshufb @XMM[8], @XMM[0]
- pshufb @XMM[8], @XMM[1]
- pxor @XMM[9], @XMM[4]
- pxor @XMM[9], @XMM[5]
- pshufb @XMM[8], @XMM[2]
- pshufb @XMM[8], @XMM[3]
- pxor @XMM[9], @XMM[6]
- pxor @XMM[9], @XMM[7]
- pshufb @XMM[8], @XMM[4]
- pshufb @XMM[8], @XMM[5]
- pshufb @XMM[8], @XMM[6]
- pshufb @XMM[8], @XMM[7]
-___
- &bitslice (@XMM[0..7, 8..11]);
-$code.=<<___;
- dec $rounds
- jmp .Ldec_sbox
-.align 16
-.Ldec_loop:
-___
- &ShiftRows (@XMM[0..7, 8]);
-$code.=".Ldec_sbox:\n";
- &InvSbox (@XMM[0..7, 8..15]);
-$code.=<<___;
- dec $rounds
- jl .Ldec_done
-___
- &InvMixColumns (@XMM[0,1,6,4,2,7,3,5, 8..15]);
-$code.=<<___;
- movdqa -0x10($const), @XMM[8] # .LISR
- jnz .Ldec_loop
- movdqa -0x20($const), @XMM[8] # .LISRM0
- jmp .Ldec_loop
-.align 16
-.Ldec_done:
-___
- &bitslice (@XMM[0,1,6,4,2,7,3,5, 8..11]);
-$code.=<<___;
- movdqa ($key), @XMM[8] # last round key
- pxor @XMM[8], @XMM[6]
- pxor @XMM[8], @XMM[4]
- pxor @XMM[8], @XMM[2]
- pxor @XMM[8], @XMM[7]
- pxor @XMM[8], @XMM[3]
- pxor @XMM[8], @XMM[5]
- pxor @XMM[8], @XMM[0]
- pxor @XMM[8], @XMM[1]
- ret
-.cfi_endproc
-.size _bsaes_decrypt8,.-_bsaes_decrypt8
-___
-}
-{
-my ($out,$inp,$rounds,$const)=("%rax","%rcx","%r10d","%r11");
-
-sub bitslice_key {
-my @x=reverse(@_[0..7]);
-my ($bs0,$bs1,$bs2,$t2,$t3)=@_[8..12];
-
- &swapmove (@x[0,1],1,$bs0,$t2,$t3);
-$code.=<<___;
- #&swapmove(@x[2,3],1,$t0,$t2,$t3);
- movdqa @x[0], @x[2]
- movdqa @x[1], @x[3]
-___
- #&swapmove2x(@x[4,5,6,7],1,$t0,$t2,$t3);
-
- &swapmove2x (@x[0,2,1,3],2,$bs1,$t2,$t3);
-$code.=<<___;
- #&swapmove2x(@x[4,6,5,7],2,$t1,$t2,$t3);
- movdqa @x[0], @x[4]
- movdqa @x[2], @x[6]
- movdqa @x[1], @x[5]
- movdqa @x[3], @x[7]
-___
- &swapmove2x (@x[0,4,1,5],4,$bs2,$t2,$t3);
- &swapmove2x (@x[2,6,3,7],4,$bs2,$t2,$t3);
-}
-
-$code.=<<___;
-.type _bsaes_key_convert,\@abi-omnipotent
-.align 16
-_bsaes_key_convert:
-.cfi_startproc
- lea .Lmasks(%rip), $const
- movdqu ($inp), %xmm7 # load round 0 key
- lea 0x10($inp), $inp
- movdqa 0x00($const), %xmm0 # 0x01...
- movdqa 0x10($const), %xmm1 # 0x02...
- movdqa 0x20($const), %xmm2 # 0x04...
- movdqa 0x30($const), %xmm3 # 0x08...
- movdqa 0x40($const), %xmm4 # .LM0
- pcmpeqd %xmm5, %xmm5 # .LNOT
-
- movdqu ($inp), %xmm6 # load round 1 key
- movdqa %xmm7, ($out) # save round 0 key
- lea 0x10($out), $out
- dec $rounds
- jmp .Lkey_loop
-.align 16
-.Lkey_loop:
- pshufb %xmm4, %xmm6 # .LM0
-
- movdqa %xmm0, %xmm8
- movdqa %xmm1, %xmm9
-
- pand %xmm6, %xmm8
- pand %xmm6, %xmm9
- movdqa %xmm2, %xmm10
- pcmpeqb %xmm0, %xmm8
- psllq \$4, %xmm0 # 0x10...
- movdqa %xmm3, %xmm11
- pcmpeqb %xmm1, %xmm9
- psllq \$4, %xmm1 # 0x20...
-
- pand %xmm6, %xmm10
- pand %xmm6, %xmm11
- movdqa %xmm0, %xmm12
- pcmpeqb %xmm2, %xmm10
- psllq \$4, %xmm2 # 0x40...
- movdqa %xmm1, %xmm13
- pcmpeqb %xmm3, %xmm11
- psllq \$4, %xmm3 # 0x80...
-
- movdqa %xmm2, %xmm14
- movdqa %xmm3, %xmm15
- pxor %xmm5, %xmm8 # "pnot"
- pxor %xmm5, %xmm9
-
- pand %xmm6, %xmm12
- pand %xmm6, %xmm13
- movdqa %xmm8, 0x00($out) # write bit-sliced round key
- pcmpeqb %xmm0, %xmm12
- psrlq \$4, %xmm0 # 0x01...
- movdqa %xmm9, 0x10($out)
- pcmpeqb %xmm1, %xmm13
- psrlq \$4, %xmm1 # 0x02...
- lea 0x10($inp), $inp
-
- pand %xmm6, %xmm14
- pand %xmm6, %xmm15
- movdqa %xmm10, 0x20($out)
- pcmpeqb %xmm2, %xmm14
- psrlq \$4, %xmm2 # 0x04...
- movdqa %xmm11, 0x30($out)
- pcmpeqb %xmm3, %xmm15
- psrlq \$4, %xmm3 # 0x08...
- movdqu ($inp), %xmm6 # load next round key
-
- pxor %xmm5, %xmm13 # "pnot"
- pxor %xmm5, %xmm14
- movdqa %xmm12, 0x40($out)
- movdqa %xmm13, 0x50($out)
- movdqa %xmm14, 0x60($out)
- movdqa %xmm15, 0x70($out)
- lea 0x80($out),$out
- dec $rounds
- jnz .Lkey_loop
-
- movdqa 0x50($const), %xmm7 # .L63
- #movdqa %xmm6, ($out) # don't save last round key
- ret
-.cfi_endproc
-.size _bsaes_key_convert,.-_bsaes_key_convert
-___
-}
-
-if (0 && !$win64) { # following four functions are unsupported interface
- # used for benchmarking...
-$code.=<<___;
-.globl bsaes_enc_key_convert
-.type bsaes_enc_key_convert,\@function,2
-.align 16
-bsaes_enc_key_convert:
- mov 240($inp),%r10d # pass rounds
- mov $inp,%rcx # pass key
- mov $out,%rax # pass key schedule
- call _bsaes_key_convert
- pxor %xmm6,%xmm7 # fix up last round key
- movdqa %xmm7,(%rax) # save last round key
- ret
-.size bsaes_enc_key_convert,.-bsaes_enc_key_convert
-
-.globl bsaes_encrypt_128
-.type bsaes_encrypt_128,\@function,4
-.align 16
-bsaes_encrypt_128:
-.Lenc128_loop:
- movdqu 0x00($inp), @XMM[0] # load input
- movdqu 0x10($inp), @XMM[1]
- movdqu 0x20($inp), @XMM[2]
- movdqu 0x30($inp), @XMM[3]
- movdqu 0x40($inp), @XMM[4]
- movdqu 0x50($inp), @XMM[5]
- movdqu 0x60($inp), @XMM[6]
- movdqu 0x70($inp), @XMM[7]
- mov $key, %rax # pass the $key
- lea 0x80($inp), $inp
- mov \$10,%r10d
-
- call _bsaes_encrypt8
-
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- movdqu @XMM[6], 0x30($out)
- movdqu @XMM[3], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[2], 0x60($out)
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
- sub \$0x80,$len
- ja .Lenc128_loop
- ret
-.size bsaes_encrypt_128,.-bsaes_encrypt_128
-
-.globl bsaes_dec_key_convert
-.type bsaes_dec_key_convert,\@function,2
-.align 16
-bsaes_dec_key_convert:
- mov 240($inp),%r10d # pass rounds
- mov $inp,%rcx # pass key
- mov $out,%rax # pass key schedule
- call _bsaes_key_convert
- pxor ($out),%xmm7 # fix up round 0 key
- movdqa %xmm6,(%rax) # save last round key
- movdqa %xmm7,($out)
- ret
-.size bsaes_dec_key_convert,.-bsaes_dec_key_convert
-
-.globl bsaes_decrypt_128
-.type bsaes_decrypt_128,\@function,4
-.align 16
-bsaes_decrypt_128:
-.Ldec128_loop:
- movdqu 0x00($inp), @XMM[0] # load input
- movdqu 0x10($inp), @XMM[1]
- movdqu 0x20($inp), @XMM[2]
- movdqu 0x30($inp), @XMM[3]
- movdqu 0x40($inp), @XMM[4]
- movdqu 0x50($inp), @XMM[5]
- movdqu 0x60($inp), @XMM[6]
- movdqu 0x70($inp), @XMM[7]
- mov $key, %rax # pass the $key
- lea 0x80($inp), $inp
- mov \$10,%r10d
-
- call _bsaes_decrypt8
-
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[3], 0x60($out)
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
- sub \$0x80,$len
- ja .Ldec128_loop
- ret
-.size bsaes_decrypt_128,.-bsaes_decrypt_128
-___
-}
-{
-######################################################################
-#
-# OpenSSL interface
-#
-my ($arg1,$arg2,$arg3,$arg4,$arg5,$arg6)=$win64 ? ("%rcx","%rdx","%r8","%r9","%r10","%r11d")
- : ("%rdi","%rsi","%rdx","%rcx","%r8","%r9d");
-my ($inp,$out,$len,$key)=("%r12","%r13","%r14","%r15");
-
-if ($ecb) {
-$code.=<<___;
-.globl bsaes_ecb_encrypt_blocks
-.type bsaes_ecb_encrypt_blocks,\@abi-omnipotent
-.align 16
-bsaes_ecb_encrypt_blocks:
-.cfi_startproc
- mov %rsp, %rax
-.Lecb_enc_prologue:
- push %rbp
-.cfi_push %rbp
- push %rbx
-.cfi_push %rbx
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- lea -0x48(%rsp),%rsp
-.cfi_adjust_cfa_offset 0x48
-___
-$code.=<<___ if ($win64);
- lea -0xa0(%rsp), %rsp
- movaps %xmm6, 0x40(%rsp)
- movaps %xmm7, 0x50(%rsp)
- movaps %xmm8, 0x60(%rsp)
- movaps %xmm9, 0x70(%rsp)
- movaps %xmm10, 0x80(%rsp)
- movaps %xmm11, 0x90(%rsp)
- movaps %xmm12, 0xa0(%rsp)
- movaps %xmm13, 0xb0(%rsp)
- movaps %xmm14, 0xc0(%rsp)
- movaps %xmm15, 0xd0(%rsp)
-.Lecb_enc_body:
-___
-$code.=<<___;
- mov %rsp,%rbp # backup %rsp
-.cfi_def_cfa_register %rbp
- mov 240($arg4),%eax # rounds
- mov $arg1,$inp # backup arguments
- mov $arg2,$out
- mov $arg3,$len
- mov $arg4,$key
- cmp \$8,$arg3
- jb .Lecb_enc_short
-
- mov %eax,%ebx # backup rounds
- shl \$7,%rax # 128 bytes per inner round key
- sub \$`128-32`,%rax # size of bit-sliced key schedule
- sub %rax,%rsp
- mov %rsp,%rax # pass key schedule
- mov $key,%rcx # pass key
- mov %ebx,%r10d # pass rounds
- call _bsaes_key_convert
- pxor %xmm6,%xmm7 # fix up last round key
- movdqa %xmm7,(%rax) # save last round key
-
- sub \$8,$len
-.Lecb_enc_loop:
- movdqu 0x00($inp), @XMM[0] # load input
- movdqu 0x10($inp), @XMM[1]
- movdqu 0x20($inp), @XMM[2]
- movdqu 0x30($inp), @XMM[3]
- movdqu 0x40($inp), @XMM[4]
- movdqu 0x50($inp), @XMM[5]
- mov %rsp, %rax # pass key schedule
- movdqu 0x60($inp), @XMM[6]
- mov %ebx,%r10d # pass rounds
- movdqu 0x70($inp), @XMM[7]
- lea 0x80($inp), $inp
-
- call _bsaes_encrypt8
-
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- movdqu @XMM[6], 0x30($out)
- movdqu @XMM[3], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[2], 0x60($out)
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
- sub \$8,$len
- jnc .Lecb_enc_loop
-
- add \$8,$len
- jz .Lecb_enc_done
-
- movdqu 0x00($inp), @XMM[0] # load input
- mov %rsp, %rax # pass key schedule
- mov %ebx,%r10d # pass rounds
- cmp \$2,$len
- jb .Lecb_enc_one
- movdqu 0x10($inp), @XMM[1]
- je .Lecb_enc_two
- movdqu 0x20($inp), @XMM[2]
- cmp \$4,$len
- jb .Lecb_enc_three
- movdqu 0x30($inp), @XMM[3]
- je .Lecb_enc_four
- movdqu 0x40($inp), @XMM[4]
- cmp \$6,$len
- jb .Lecb_enc_five
- movdqu 0x50($inp), @XMM[5]
- je .Lecb_enc_six
- movdqu 0x60($inp), @XMM[6]
- call _bsaes_encrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- movdqu @XMM[6], 0x30($out)
- movdqu @XMM[3], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[2], 0x60($out)
- jmp .Lecb_enc_done
-.align 16
-.Lecb_enc_six:
- call _bsaes_encrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- movdqu @XMM[6], 0x30($out)
- movdqu @XMM[3], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- jmp .Lecb_enc_done
-.align 16
-.Lecb_enc_five:
- call _bsaes_encrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- movdqu @XMM[6], 0x30($out)
- movdqu @XMM[3], 0x40($out)
- jmp .Lecb_enc_done
-.align 16
-.Lecb_enc_four:
- call _bsaes_encrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- movdqu @XMM[6], 0x30($out)
- jmp .Lecb_enc_done
-.align 16
-.Lecb_enc_three:
- call _bsaes_encrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- jmp .Lecb_enc_done
-.align 16
-.Lecb_enc_two:
- call _bsaes_encrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- jmp .Lecb_enc_done
-.align 16
-.Lecb_enc_one:
- call _bsaes_encrypt8
- movdqu @XMM[0], 0x00($out) # write output
- jmp .Lecb_enc_done
-.align 16
-.Lecb_enc_short:
- lea ($inp), $arg1
- lea ($out), $arg2
- lea ($key), $arg3
- call asm_AES_encrypt
- lea 16($inp), $inp
- lea 16($out), $out
- dec $len
- jnz .Lecb_enc_short
-
-.Lecb_enc_done:
- lea (%rsp),%rax
- pxor %xmm0, %xmm0
-.Lecb_enc_bzero: # wipe key schedule [if any]
- movdqa %xmm0, 0x00(%rax)
- movdqa %xmm0, 0x10(%rax)
- lea 0x20(%rax), %rax
- cmp %rax, %rbp
- jb .Lecb_enc_bzero
-
- lea 0x78(%rbp),%rax
-.cfi_def_cfa %rax,8
-___
-$code.=<<___ if ($win64);
- movaps 0x40(%rbp), %xmm6
- movaps 0x50(%rbp), %xmm7
- movaps 0x60(%rbp), %xmm8
- movaps 0x70(%rbp), %xmm9
- movaps 0x80(%rbp), %xmm10
- movaps 0x90(%rbp), %xmm11
- movaps 0xa0(%rbp), %xmm12
- movaps 0xb0(%rbp), %xmm13
- movaps 0xc0(%rbp), %xmm14
- movaps 0xd0(%rbp), %xmm15
- lea 0xa0(%rax), %rax
-.Lecb_enc_tail:
-___
-$code.=<<___;
- mov -48(%rax), %r15
-.cfi_restore %r15
- mov -40(%rax), %r14
-.cfi_restore %r14
- mov -32(%rax), %r13
-.cfi_restore %r13
- mov -24(%rax), %r12
-.cfi_restore %r12
- mov -16(%rax), %rbx
-.cfi_restore %rbx
- mov -8(%rax), %rbp
-.cfi_restore %rbp
- lea (%rax), %rsp # restore %rsp
-.cfi_def_cfa_register %rsp
-.Lecb_enc_epilogue:
- ret
-.cfi_endproc
-.size bsaes_ecb_encrypt_blocks,.-bsaes_ecb_encrypt_blocks
-
-.globl bsaes_ecb_decrypt_blocks
-.type bsaes_ecb_decrypt_blocks,\@abi-omnipotent
-.align 16
-bsaes_ecb_decrypt_blocks:
-.cfi_startproc
- mov %rsp, %rax
-.Lecb_dec_prologue:
- push %rbp
-.cfi_push %rbp
- push %rbx
-.cfi_push %rbx
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- lea -0x48(%rsp),%rsp
-.cfi_adjust_cfa_offset 0x48
-___
-$code.=<<___ if ($win64);
- lea -0xa0(%rsp), %rsp
- movaps %xmm6, 0x40(%rsp)
- movaps %xmm7, 0x50(%rsp)
- movaps %xmm8, 0x60(%rsp)
- movaps %xmm9, 0x70(%rsp)
- movaps %xmm10, 0x80(%rsp)
- movaps %xmm11, 0x90(%rsp)
- movaps %xmm12, 0xa0(%rsp)
- movaps %xmm13, 0xb0(%rsp)
- movaps %xmm14, 0xc0(%rsp)
- movaps %xmm15, 0xd0(%rsp)
-.Lecb_dec_body:
-___
-$code.=<<___;
- mov %rsp,%rbp # backup %rsp
-.cfi_def_cfa_register %rbp
- mov 240($arg4),%eax # rounds
- mov $arg1,$inp # backup arguments
- mov $arg2,$out
- mov $arg3,$len
- mov $arg4,$key
- cmp \$8,$arg3
- jb .Lecb_dec_short
-
- mov %eax,%ebx # backup rounds
- shl \$7,%rax # 128 bytes per inner round key
- sub \$`128-32`,%rax # size of bit-sliced key schedule
- sub %rax,%rsp
- mov %rsp,%rax # pass key schedule
- mov $key,%rcx # pass key
- mov %ebx,%r10d # pass rounds
- call _bsaes_key_convert
- pxor (%rsp),%xmm7 # fix up 0 round key
- movdqa %xmm6,(%rax) # save last round key
- movdqa %xmm7,(%rsp)
-
- sub \$8,$len
-.Lecb_dec_loop:
- movdqu 0x00($inp), @XMM[0] # load input
- movdqu 0x10($inp), @XMM[1]
- movdqu 0x20($inp), @XMM[2]
- movdqu 0x30($inp), @XMM[3]
- movdqu 0x40($inp), @XMM[4]
- movdqu 0x50($inp), @XMM[5]
- mov %rsp, %rax # pass key schedule
- movdqu 0x60($inp), @XMM[6]
- mov %ebx,%r10d # pass rounds
- movdqu 0x70($inp), @XMM[7]
- lea 0x80($inp), $inp
-
- call _bsaes_decrypt8
-
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[3], 0x60($out)
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
- sub \$8,$len
- jnc .Lecb_dec_loop
-
- add \$8,$len
- jz .Lecb_dec_done
-
- movdqu 0x00($inp), @XMM[0] # load input
- mov %rsp, %rax # pass key schedule
- mov %ebx,%r10d # pass rounds
- cmp \$2,$len
- jb .Lecb_dec_one
- movdqu 0x10($inp), @XMM[1]
- je .Lecb_dec_two
- movdqu 0x20($inp), @XMM[2]
- cmp \$4,$len
- jb .Lecb_dec_three
- movdqu 0x30($inp), @XMM[3]
- je .Lecb_dec_four
- movdqu 0x40($inp), @XMM[4]
- cmp \$6,$len
- jb .Lecb_dec_five
- movdqu 0x50($inp), @XMM[5]
- je .Lecb_dec_six
- movdqu 0x60($inp), @XMM[6]
- call _bsaes_decrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[3], 0x60($out)
- jmp .Lecb_dec_done
-.align 16
-.Lecb_dec_six:
- call _bsaes_decrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- jmp .Lecb_dec_done
-.align 16
-.Lecb_dec_five:
- call _bsaes_decrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- jmp .Lecb_dec_done
-.align 16
-.Lecb_dec_four:
- call _bsaes_decrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- jmp .Lecb_dec_done
-.align 16
-.Lecb_dec_three:
- call _bsaes_decrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- jmp .Lecb_dec_done
-.align 16
-.Lecb_dec_two:
- call _bsaes_decrypt8
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- jmp .Lecb_dec_done
-.align 16
-.Lecb_dec_one:
- call _bsaes_decrypt8
- movdqu @XMM[0], 0x00($out) # write output
- jmp .Lecb_dec_done
-.align 16
-.Lecb_dec_short:
- lea ($inp), $arg1
- lea ($out), $arg2
- lea ($key), $arg3
- call asm_AES_decrypt
- lea 16($inp), $inp
- lea 16($out), $out
- dec $len
- jnz .Lecb_dec_short
-
-.Lecb_dec_done:
- lea (%rsp),%rax
- pxor %xmm0, %xmm0
-.Lecb_dec_bzero: # wipe key schedule [if any]
- movdqa %xmm0, 0x00(%rax)
- movdqa %xmm0, 0x10(%rax)
- lea 0x20(%rax), %rax
- cmp %rax, %rbp
- jb .Lecb_dec_bzero
-
- lea 0x78(%rbp),%rax
-.cfi_def_cfa %rax,8
-___
-$code.=<<___ if ($win64);
- movaps 0x40(%rbp), %xmm6
- movaps 0x50(%rbp), %xmm7
- movaps 0x60(%rbp), %xmm8
- movaps 0x70(%rbp), %xmm9
- movaps 0x80(%rbp), %xmm10
- movaps 0x90(%rbp), %xmm11
- movaps 0xa0(%rbp), %xmm12
- movaps 0xb0(%rbp), %xmm13
- movaps 0xc0(%rbp), %xmm14
- movaps 0xd0(%rbp), %xmm15
- lea 0xa0(%rax), %rax
-.Lecb_dec_tail:
-___
-$code.=<<___;
- mov -48(%rax), %r15
-.cfi_restore %r15
- mov -40(%rax), %r14
-.cfi_restore %r14
- mov -32(%rax), %r13
-.cfi_restore %r13
- mov -24(%rax), %r12
-.cfi_restore %r12
- mov -16(%rax), %rbx
-.cfi_restore %rbx
- mov -8(%rax), %rbp
-.cfi_restore %rbp
- lea (%rax), %rsp # restore %rsp
-.cfi_def_cfa_register %rsp
-.Lecb_dec_epilogue:
- ret
-.cfi_endproc
-.size bsaes_ecb_decrypt_blocks,.-bsaes_ecb_decrypt_blocks
-___
-}
-$code.=<<___;
-.extern asm_AES_cbc_encrypt
-.globl bsaes_cbc_encrypt
-.type bsaes_cbc_encrypt,\@abi-omnipotent
-.align 16
-bsaes_cbc_encrypt:
-.cfi_startproc
-___
-$code.=<<___ if ($win64);
- mov 48(%rsp),$arg6 # pull direction flag
-___
-$code.=<<___;
- cmp \$0,$arg6
- jne asm_AES_cbc_encrypt
- cmp \$128,$arg3
- jb asm_AES_cbc_encrypt
-
- mov %rsp, %rax
-.Lcbc_dec_prologue:
- push %rbp
-.cfi_push %rbp
- push %rbx
-.cfi_push %rbx
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- lea -0x48(%rsp), %rsp
-.cfi_adjust_cfa_offset 0x48
-___
-$code.=<<___ if ($win64);
- mov 0xa0(%rsp),$arg5 # pull ivp
- lea -0xa0(%rsp), %rsp
- movaps %xmm6, 0x40(%rsp)
- movaps %xmm7, 0x50(%rsp)
- movaps %xmm8, 0x60(%rsp)
- movaps %xmm9, 0x70(%rsp)
- movaps %xmm10, 0x80(%rsp)
- movaps %xmm11, 0x90(%rsp)
- movaps %xmm12, 0xa0(%rsp)
- movaps %xmm13, 0xb0(%rsp)
- movaps %xmm14, 0xc0(%rsp)
- movaps %xmm15, 0xd0(%rsp)
-.Lcbc_dec_body:
-___
-$code.=<<___;
- mov %rsp, %rbp # backup %rsp
-.cfi_def_cfa_register %rbp
- mov 240($arg4), %eax # rounds
- mov $arg1, $inp # backup arguments
- mov $arg2, $out
- mov $arg3, $len
- mov $arg4, $key
- mov $arg5, %rbx
- shr \$4, $len # bytes to blocks
-
- mov %eax, %edx # rounds
- shl \$7, %rax # 128 bytes per inner round key
- sub \$`128-32`, %rax # size of bit-sliced key schedule
- sub %rax, %rsp
-
- mov %rsp, %rax # pass key schedule
- mov $key, %rcx # pass key
- mov %edx, %r10d # pass rounds
- call _bsaes_key_convert
- pxor (%rsp),%xmm7 # fix up 0 round key
- movdqa %xmm6,(%rax) # save last round key
- movdqa %xmm7,(%rsp)
-
- movdqu (%rbx), @XMM[15] # load IV
- sub \$8,$len
-.Lcbc_dec_loop:
- movdqu 0x00($inp), @XMM[0] # load input
- movdqu 0x10($inp), @XMM[1]
- movdqu 0x20($inp), @XMM[2]
- movdqu 0x30($inp), @XMM[3]
- movdqu 0x40($inp), @XMM[4]
- movdqu 0x50($inp), @XMM[5]
- mov %rsp, %rax # pass key schedule
- movdqu 0x60($inp), @XMM[6]
- mov %edx,%r10d # pass rounds
- movdqu 0x70($inp), @XMM[7]
- movdqa @XMM[15], 0x20(%rbp) # put aside IV
-
- call _bsaes_decrypt8
-
- pxor 0x20(%rbp), @XMM[0] # ^= IV
- movdqu 0x00($inp), @XMM[8] # re-load input
- movdqu 0x10($inp), @XMM[9]
- pxor @XMM[8], @XMM[1]
- movdqu 0x20($inp), @XMM[10]
- pxor @XMM[9], @XMM[6]
- movdqu 0x30($inp), @XMM[11]
- pxor @XMM[10], @XMM[4]
- movdqu 0x40($inp), @XMM[12]
- pxor @XMM[11], @XMM[2]
- movdqu 0x50($inp), @XMM[13]
- pxor @XMM[12], @XMM[7]
- movdqu 0x60($inp), @XMM[14]
- pxor @XMM[13], @XMM[3]
- movdqu 0x70($inp), @XMM[15] # IV
- pxor @XMM[14], @XMM[5]
- movdqu @XMM[0], 0x00($out) # write output
- lea 0x80($inp), $inp
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[3], 0x60($out)
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
- sub \$8,$len
- jnc .Lcbc_dec_loop
-
- add \$8,$len
- jz .Lcbc_dec_done
-
- movdqu 0x00($inp), @XMM[0] # load input
- mov %rsp, %rax # pass key schedule
- mov %edx, %r10d # pass rounds
- cmp \$2,$len
- jb .Lcbc_dec_one
- movdqu 0x10($inp), @XMM[1]
- je .Lcbc_dec_two
- movdqu 0x20($inp), @XMM[2]
- cmp \$4,$len
- jb .Lcbc_dec_three
- movdqu 0x30($inp), @XMM[3]
- je .Lcbc_dec_four
- movdqu 0x40($inp), @XMM[4]
- cmp \$6,$len
- jb .Lcbc_dec_five
- movdqu 0x50($inp), @XMM[5]
- je .Lcbc_dec_six
- movdqu 0x60($inp), @XMM[6]
- movdqa @XMM[15], 0x20(%rbp) # put aside IV
- call _bsaes_decrypt8
- pxor 0x20(%rbp), @XMM[0] # ^= IV
- movdqu 0x00($inp), @XMM[8] # re-load input
- movdqu 0x10($inp), @XMM[9]
- pxor @XMM[8], @XMM[1]
- movdqu 0x20($inp), @XMM[10]
- pxor @XMM[9], @XMM[6]
- movdqu 0x30($inp), @XMM[11]
- pxor @XMM[10], @XMM[4]
- movdqu 0x40($inp), @XMM[12]
- pxor @XMM[11], @XMM[2]
- movdqu 0x50($inp), @XMM[13]
- pxor @XMM[12], @XMM[7]
- movdqu 0x60($inp), @XMM[15] # IV
- pxor @XMM[13], @XMM[3]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[3], 0x60($out)
- jmp .Lcbc_dec_done
-.align 16
-.Lcbc_dec_six:
- movdqa @XMM[15], 0x20(%rbp) # put aside IV
- call _bsaes_decrypt8
- pxor 0x20(%rbp), @XMM[0] # ^= IV
- movdqu 0x00($inp), @XMM[8] # re-load input
- movdqu 0x10($inp), @XMM[9]
- pxor @XMM[8], @XMM[1]
- movdqu 0x20($inp), @XMM[10]
- pxor @XMM[9], @XMM[6]
- movdqu 0x30($inp), @XMM[11]
- pxor @XMM[10], @XMM[4]
- movdqu 0x40($inp), @XMM[12]
- pxor @XMM[11], @XMM[2]
- movdqu 0x50($inp), @XMM[15] # IV
- pxor @XMM[12], @XMM[7]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- jmp .Lcbc_dec_done
-.align 16
-.Lcbc_dec_five:
- movdqa @XMM[15], 0x20(%rbp) # put aside IV
- call _bsaes_decrypt8
- pxor 0x20(%rbp), @XMM[0] # ^= IV
- movdqu 0x00($inp), @XMM[8] # re-load input
- movdqu 0x10($inp), @XMM[9]
- pxor @XMM[8], @XMM[1]
- movdqu 0x20($inp), @XMM[10]
- pxor @XMM[9], @XMM[6]
- movdqu 0x30($inp), @XMM[11]
- pxor @XMM[10], @XMM[4]
- movdqu 0x40($inp), @XMM[15] # IV
- pxor @XMM[11], @XMM[2]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- jmp .Lcbc_dec_done
-.align 16
-.Lcbc_dec_four:
- movdqa @XMM[15], 0x20(%rbp) # put aside IV
- call _bsaes_decrypt8
- pxor 0x20(%rbp), @XMM[0] # ^= IV
- movdqu 0x00($inp), @XMM[8] # re-load input
- movdqu 0x10($inp), @XMM[9]
- pxor @XMM[8], @XMM[1]
- movdqu 0x20($inp), @XMM[10]
- pxor @XMM[9], @XMM[6]
- movdqu 0x30($inp), @XMM[15] # IV
- pxor @XMM[10], @XMM[4]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- jmp .Lcbc_dec_done
-.align 16
-.Lcbc_dec_three:
- movdqa @XMM[15], 0x20(%rbp) # put aside IV
- call _bsaes_decrypt8
- pxor 0x20(%rbp), @XMM[0] # ^= IV
- movdqu 0x00($inp), @XMM[8] # re-load input
- movdqu 0x10($inp), @XMM[9]
- pxor @XMM[8], @XMM[1]
- movdqu 0x20($inp), @XMM[15] # IV
- pxor @XMM[9], @XMM[6]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- jmp .Lcbc_dec_done
-.align 16
-.Lcbc_dec_two:
- movdqa @XMM[15], 0x20(%rbp) # put aside IV
- call _bsaes_decrypt8
- pxor 0x20(%rbp), @XMM[0] # ^= IV
- movdqu 0x00($inp), @XMM[8] # re-load input
- movdqu 0x10($inp), @XMM[15] # IV
- pxor @XMM[8], @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- jmp .Lcbc_dec_done
-.align 16
-.Lcbc_dec_one:
- lea ($inp), $arg1
- lea 0x20(%rbp), $arg2 # buffer output
- lea ($key), $arg3
- call asm_AES_decrypt # doesn't touch %xmm
- pxor 0x20(%rbp), @XMM[15] # ^= IV
- movdqu @XMM[15], ($out) # write output
- movdqa @XMM[0], @XMM[15] # IV
-
-.Lcbc_dec_done:
- movdqu @XMM[15], (%rbx) # return IV
- lea (%rsp), %rax
- pxor %xmm0, %xmm0
-.Lcbc_dec_bzero: # wipe key schedule [if any]
- movdqa %xmm0, 0x00(%rax)
- movdqa %xmm0, 0x10(%rax)
- lea 0x20(%rax), %rax
- cmp %rax, %rbp
- ja .Lcbc_dec_bzero
-
- lea 0x78(%rbp),%rax
-.cfi_def_cfa %rax,8
-___
-$code.=<<___ if ($win64);
- movaps 0x40(%rbp), %xmm6
- movaps 0x50(%rbp), %xmm7
- movaps 0x60(%rbp), %xmm8
- movaps 0x70(%rbp), %xmm9
- movaps 0x80(%rbp), %xmm10
- movaps 0x90(%rbp), %xmm11
- movaps 0xa0(%rbp), %xmm12
- movaps 0xb0(%rbp), %xmm13
- movaps 0xc0(%rbp), %xmm14
- movaps 0xd0(%rbp), %xmm15
- lea 0xa0(%rax), %rax
-.Lcbc_dec_tail:
-___
-$code.=<<___;
- mov -48(%rax), %r15
-.cfi_restore %r15
- mov -40(%rax), %r14
-.cfi_restore %r14
- mov -32(%rax), %r13
-.cfi_restore %r13
- mov -24(%rax), %r12
-.cfi_restore %r12
- mov -16(%rax), %rbx
-.cfi_restore %rbx
- mov -8(%rax), %rbp
-.cfi_restore %rbp
- lea (%rax), %rsp # restore %rsp
-.cfi_def_cfa_register %rsp
-.Lcbc_dec_epilogue:
- ret
-.cfi_endproc
-.size bsaes_cbc_encrypt,.-bsaes_cbc_encrypt
-
-.globl bsaes_ctr32_encrypt_blocks
-.type bsaes_ctr32_encrypt_blocks,\@abi-omnipotent
-.align 16
-bsaes_ctr32_encrypt_blocks:
-.cfi_startproc
- mov %rsp, %rax
-.Lctr_enc_prologue:
- push %rbp
-.cfi_push %rbp
- push %rbx
-.cfi_push %rbx
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- lea -0x48(%rsp), %rsp
-.cfi_adjust_cfa_offset 0x48
-___
-$code.=<<___ if ($win64);
- mov 0xa0(%rsp),$arg5 # pull ivp
- lea -0xa0(%rsp), %rsp
- movaps %xmm6, 0x40(%rsp)
- movaps %xmm7, 0x50(%rsp)
- movaps %xmm8, 0x60(%rsp)
- movaps %xmm9, 0x70(%rsp)
- movaps %xmm10, 0x80(%rsp)
- movaps %xmm11, 0x90(%rsp)
- movaps %xmm12, 0xa0(%rsp)
- movaps %xmm13, 0xb0(%rsp)
- movaps %xmm14, 0xc0(%rsp)
- movaps %xmm15, 0xd0(%rsp)
-.Lctr_enc_body:
-___
-$code.=<<___;
- mov %rsp, %rbp # backup %rsp
-.cfi_def_cfa_register %rbp
- movdqu ($arg5), %xmm0 # load counter
- mov 240($arg4), %eax # rounds
- mov $arg1, $inp # backup arguments
- mov $arg2, $out
- mov $arg3, $len
- mov $arg4, $key
- movdqa %xmm0, 0x20(%rbp) # copy counter
- cmp \$8, $arg3
- jb .Lctr_enc_short
-
- mov %eax, %ebx # rounds
- shl \$7, %rax # 128 bytes per inner round key
- sub \$`128-32`, %rax # size of bit-sliced key schedule
- sub %rax, %rsp
-
- mov %rsp, %rax # pass key schedule
- mov $key, %rcx # pass key
- mov %ebx, %r10d # pass rounds
- call _bsaes_key_convert
- pxor %xmm6,%xmm7 # fix up last round key
- movdqa %xmm7,(%rax) # save last round key
-
- movdqa (%rsp), @XMM[9] # load round0 key
- lea .LADD1(%rip), %r11
- movdqa 0x20(%rbp), @XMM[0] # counter copy
- movdqa -0x20(%r11), @XMM[8] # .LSWPUP
- pshufb @XMM[8], @XMM[9] # byte swap upper part
- pshufb @XMM[8], @XMM[0]
- movdqa @XMM[9], (%rsp) # save adjusted round0 key
- jmp .Lctr_enc_loop
-.align 16
-.Lctr_enc_loop:
- movdqa @XMM[0], 0x20(%rbp) # save counter
- movdqa @XMM[0], @XMM[1] # prepare 8 counter values
- movdqa @XMM[0], @XMM[2]
- paddd 0x00(%r11), @XMM[1] # .LADD1
- movdqa @XMM[0], @XMM[3]
- paddd 0x10(%r11), @XMM[2] # .LADD2
- movdqa @XMM[0], @XMM[4]
- paddd 0x20(%r11), @XMM[3] # .LADD3
- movdqa @XMM[0], @XMM[5]
- paddd 0x30(%r11), @XMM[4] # .LADD4
- movdqa @XMM[0], @XMM[6]
- paddd 0x40(%r11), @XMM[5] # .LADD5
- movdqa @XMM[0], @XMM[7]
- paddd 0x50(%r11), @XMM[6] # .LADD6
- paddd 0x60(%r11), @XMM[7] # .LADD7
-
- # Borrow prologue from _bsaes_encrypt8 to use the opportunity
- # to flip byte order in 32-bit counter
- movdqa (%rsp), @XMM[9] # round 0 key
- lea 0x10(%rsp), %rax # pass key schedule
- movdqa -0x10(%r11), @XMM[8] # .LSWPUPM0SR
- pxor @XMM[9], @XMM[0] # xor with round0 key
- pxor @XMM[9], @XMM[1]
- pxor @XMM[9], @XMM[2]
- pxor @XMM[9], @XMM[3]
- pshufb @XMM[8], @XMM[0]
- pshufb @XMM[8], @XMM[1]
- pxor @XMM[9], @XMM[4]
- pxor @XMM[9], @XMM[5]
- pshufb @XMM[8], @XMM[2]
- pshufb @XMM[8], @XMM[3]
- pxor @XMM[9], @XMM[6]
- pxor @XMM[9], @XMM[7]
- pshufb @XMM[8], @XMM[4]
- pshufb @XMM[8], @XMM[5]
- pshufb @XMM[8], @XMM[6]
- pshufb @XMM[8], @XMM[7]
- lea .LBS0(%rip), %r11 # constants table
- mov %ebx,%r10d # pass rounds
-
- call _bsaes_encrypt8_bitslice
-
- sub \$8,$len
- jc .Lctr_enc_loop_done
-
- movdqu 0x00($inp), @XMM[8] # load input
- movdqu 0x10($inp), @XMM[9]
- movdqu 0x20($inp), @XMM[10]
- movdqu 0x30($inp), @XMM[11]
- movdqu 0x40($inp), @XMM[12]
- movdqu 0x50($inp), @XMM[13]
- movdqu 0x60($inp), @XMM[14]
- movdqu 0x70($inp), @XMM[15]
- lea 0x80($inp),$inp
- pxor @XMM[0], @XMM[8]
- movdqa 0x20(%rbp), @XMM[0] # load counter
- pxor @XMM[9], @XMM[1]
- movdqu @XMM[8], 0x00($out) # write output
- pxor @XMM[10], @XMM[4]
- movdqu @XMM[1], 0x10($out)
- pxor @XMM[11], @XMM[6]
- movdqu @XMM[4], 0x20($out)
- pxor @XMM[12], @XMM[3]
- movdqu @XMM[6], 0x30($out)
- pxor @XMM[13], @XMM[7]
- movdqu @XMM[3], 0x40($out)
- pxor @XMM[14], @XMM[2]
- movdqu @XMM[7], 0x50($out)
- pxor @XMM[15], @XMM[5]
- movdqu @XMM[2], 0x60($out)
- lea .LADD1(%rip), %r11
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
- paddd 0x70(%r11), @XMM[0] # .LADD8
- jnz .Lctr_enc_loop
-
- jmp .Lctr_enc_done
-.align 16
-.Lctr_enc_loop_done:
- add \$8, $len
- movdqu 0x00($inp), @XMM[8] # load input
- pxor @XMM[8], @XMM[0]
- movdqu @XMM[0], 0x00($out) # write output
- cmp \$2,$len
- jb .Lctr_enc_done
- movdqu 0x10($inp), @XMM[9]
- pxor @XMM[9], @XMM[1]
- movdqu @XMM[1], 0x10($out)
- je .Lctr_enc_done
- movdqu 0x20($inp), @XMM[10]
- pxor @XMM[10], @XMM[4]
- movdqu @XMM[4], 0x20($out)
- cmp \$4,$len
- jb .Lctr_enc_done
- movdqu 0x30($inp), @XMM[11]
- pxor @XMM[11], @XMM[6]
- movdqu @XMM[6], 0x30($out)
- je .Lctr_enc_done
- movdqu 0x40($inp), @XMM[12]
- pxor @XMM[12], @XMM[3]
- movdqu @XMM[3], 0x40($out)
- cmp \$6,$len
- jb .Lctr_enc_done
- movdqu 0x50($inp), @XMM[13]
- pxor @XMM[13], @XMM[7]
- movdqu @XMM[7], 0x50($out)
- je .Lctr_enc_done
- movdqu 0x60($inp), @XMM[14]
- pxor @XMM[14], @XMM[2]
- movdqu @XMM[2], 0x60($out)
- jmp .Lctr_enc_done
-
-.align 16
-.Lctr_enc_short:
- lea 0x20(%rbp), $arg1
- lea 0x30(%rbp), $arg2
- lea ($key), $arg3
- call asm_AES_encrypt
- movdqu ($inp), @XMM[1]
- lea 16($inp), $inp
- mov 0x2c(%rbp), %eax # load 32-bit counter
- bswap %eax
- pxor 0x30(%rbp), @XMM[1]
- inc %eax # increment
- movdqu @XMM[1], ($out)
- bswap %eax
- lea 16($out), $out
- mov %eax, 0x2c(%rsp) # save 32-bit counter
- dec $len
- jnz .Lctr_enc_short
-
-.Lctr_enc_done:
- lea (%rsp), %rax
- pxor %xmm0, %xmm0
-.Lctr_enc_bzero: # wipe key schedule [if any]
- movdqa %xmm0, 0x00(%rax)
- movdqa %xmm0, 0x10(%rax)
- lea 0x20(%rax), %rax
- cmp %rax, %rbp
- ja .Lctr_enc_bzero
-
- lea 0x78(%rbp),%rax
-.cfi_def_cfa %rax,8
-___
-$code.=<<___ if ($win64);
- movaps 0x40(%rbp), %xmm6
- movaps 0x50(%rbp), %xmm7
- movaps 0x60(%rbp), %xmm8
- movaps 0x70(%rbp), %xmm9
- movaps 0x80(%rbp), %xmm10
- movaps 0x90(%rbp), %xmm11
- movaps 0xa0(%rbp), %xmm12
- movaps 0xb0(%rbp), %xmm13
- movaps 0xc0(%rbp), %xmm14
- movaps 0xd0(%rbp), %xmm15
- lea 0xa0(%rax), %rax
-.Lctr_enc_tail:
-___
-$code.=<<___;
- mov -48(%rax), %r15
-.cfi_restore %r15
- mov -40(%rax), %r14
-.cfi_restore %r14
- mov -32(%rax), %r13
-.cfi_restore %r13
- mov -24(%rax), %r12
-.cfi_restore %r12
- mov -16(%rax), %rbx
-.cfi_restore %rbx
- mov -8(%rax), %rbp
-.cfi_restore %rbp
- lea (%rax), %rsp # restore %rsp
-.cfi_def_cfa_register %rsp
-.Lctr_enc_epilogue:
- ret
-.cfi_endproc
-.size bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
-___
-######################################################################
-# void bsaes_xts_[en|de]crypt(const char *inp,char *out,size_t len,
-# const AES_KEY *key1, const AES_KEY *key2,
-# const unsigned char iv[16]);
-#
-my ($twmask,$twres,$twtmp)=@XMM[13..15];
-$arg6=~s/d$//;
-
-$code.=<<___;
-.globl bsaes_xts_encrypt
-.type bsaes_xts_encrypt,\@abi-omnipotent
-.align 16
-bsaes_xts_encrypt:
-.cfi_startproc
- mov %rsp, %rax
-.Lxts_enc_prologue:
- push %rbp
-.cfi_push %rbp
- push %rbx
-.cfi_push %rbx
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- lea -0x48(%rsp), %rsp
-.cfi_adjust_cfa_offset 0x48
-___
-$code.=<<___ if ($win64);
- mov 0xa0(%rsp),$arg5 # pull key2
- mov 0xa8(%rsp),$arg6 # pull ivp
- lea -0xa0(%rsp), %rsp
- movaps %xmm6, 0x40(%rsp)
- movaps %xmm7, 0x50(%rsp)
- movaps %xmm8, 0x60(%rsp)
- movaps %xmm9, 0x70(%rsp)
- movaps %xmm10, 0x80(%rsp)
- movaps %xmm11, 0x90(%rsp)
- movaps %xmm12, 0xa0(%rsp)
- movaps %xmm13, 0xb0(%rsp)
- movaps %xmm14, 0xc0(%rsp)
- movaps %xmm15, 0xd0(%rsp)
-.Lxts_enc_body:
-___
-$code.=<<___;
- mov %rsp, %rbp # backup %rsp
-.cfi_def_cfa_register %rbp
- mov $arg1, $inp # backup arguments
- mov $arg2, $out
- mov $arg3, $len
- mov $arg4, $key
-
- lea ($arg6), $arg1
- lea 0x20(%rbp), $arg2
- lea ($arg5), $arg3
- call asm_AES_encrypt # generate initial tweak
-
- mov 240($key), %eax # rounds
- mov $len, %rbx # backup $len
-
- mov %eax, %edx # rounds
- shl \$7, %rax # 128 bytes per inner round key
- sub \$`128-32`, %rax # size of bit-sliced key schedule
- sub %rax, %rsp
-
- mov %rsp, %rax # pass key schedule
- mov $key, %rcx # pass key
- mov %edx, %r10d # pass rounds
- call _bsaes_key_convert
- pxor %xmm6, %xmm7 # fix up last round key
- movdqa %xmm7, (%rax) # save last round key
-
- and \$-16, $len
- sub \$0x80, %rsp # place for tweak[8]
- movdqa 0x20(%rbp), @XMM[7] # initial tweak
-
- pxor $twtmp, $twtmp
- movdqa .Lxts_magic(%rip), $twmask
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
-
- sub \$0x80, $len
- jc .Lxts_enc_short
- jmp .Lxts_enc_loop
-
-.align 16
-.Lxts_enc_loop:
-___
- for ($i=0;$i<7;$i++) {
- $code.=<<___;
- pshufd \$0x13, $twtmp, $twres
- pxor $twtmp, $twtmp
- movdqa @XMM[7], @XMM[$i]
- movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
- paddq @XMM[7], @XMM[7] # psllq 1,$tweak
- pand $twmask, $twres # isolate carry and residue
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
- pxor $twres, @XMM[7]
-___
- $code.=<<___ if ($i>=1);
- movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
-___
- $code.=<<___ if ($i>=2);
- pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
-___
- }
-$code.=<<___;
- movdqu 0x60($inp), @XMM[8+6]
- pxor @XMM[8+5], @XMM[5]
- movdqu 0x70($inp), @XMM[8+7]
- lea 0x80($inp), $inp
- movdqa @XMM[7], 0x70(%rsp)
- pxor @XMM[8+6], @XMM[6]
- lea 0x80(%rsp), %rax # pass key schedule
- pxor @XMM[8+7], @XMM[7]
- mov %edx, %r10d # pass rounds
-
- call _bsaes_encrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[4]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[6]
- movdqu @XMM[4], 0x20($out)
- pxor 0x40(%rsp), @XMM[3]
- movdqu @XMM[6], 0x30($out)
- pxor 0x50(%rsp), @XMM[7]
- movdqu @XMM[3], 0x40($out)
- pxor 0x60(%rsp), @XMM[2]
- movdqu @XMM[7], 0x50($out)
- pxor 0x70(%rsp), @XMM[5]
- movdqu @XMM[2], 0x60($out)
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
-
- movdqa 0x70(%rsp), @XMM[7] # prepare next iteration tweak
- pxor $twtmp, $twtmp
- movdqa .Lxts_magic(%rip), $twmask
- pcmpgtd @XMM[7], $twtmp
- pshufd \$0x13, $twtmp, $twres
- pxor $twtmp, $twtmp
- paddq @XMM[7], @XMM[7] # psllq 1,$tweak
- pand $twmask, $twres # isolate carry and residue
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
- pxor $twres, @XMM[7]
-
- sub \$0x80,$len
- jnc .Lxts_enc_loop
-
-.Lxts_enc_short:
- add \$0x80, $len
- jz .Lxts_enc_done
-___
- for ($i=0;$i<7;$i++) {
- $code.=<<___;
- pshufd \$0x13, $twtmp, $twres
- pxor $twtmp, $twtmp
- movdqa @XMM[7], @XMM[$i]
- movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
- paddq @XMM[7], @XMM[7] # psllq 1,$tweak
- pand $twmask, $twres # isolate carry and residue
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
- pxor $twres, @XMM[7]
-___
- $code.=<<___ if ($i>=1);
- movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
- cmp \$`0x10*$i`,$len
- je .Lxts_enc_$i
-___
- $code.=<<___ if ($i>=2);
- pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
-___
- }
-$code.=<<___;
- movdqu 0x60($inp), @XMM[8+6]
- pxor @XMM[8+5], @XMM[5]
- movdqa @XMM[7], 0x70(%rsp)
- lea 0x70($inp), $inp
- pxor @XMM[8+6], @XMM[6]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_encrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[4]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[6]
- movdqu @XMM[4], 0x20($out)
- pxor 0x40(%rsp), @XMM[3]
- movdqu @XMM[6], 0x30($out)
- pxor 0x50(%rsp), @XMM[7]
- movdqu @XMM[3], 0x40($out)
- pxor 0x60(%rsp), @XMM[2]
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[2], 0x60($out)
- lea 0x70($out), $out
-
- movdqa 0x70(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_enc_done
-.align 16
-.Lxts_enc_6:
- pxor @XMM[8+4], @XMM[4]
- lea 0x60($inp), $inp
- pxor @XMM[8+5], @XMM[5]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_encrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[4]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[6]
- movdqu @XMM[4], 0x20($out)
- pxor 0x40(%rsp), @XMM[3]
- movdqu @XMM[6], 0x30($out)
- pxor 0x50(%rsp), @XMM[7]
- movdqu @XMM[3], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- lea 0x60($out), $out
-
- movdqa 0x60(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_enc_done
-.align 16
-.Lxts_enc_5:
- pxor @XMM[8+3], @XMM[3]
- lea 0x50($inp), $inp
- pxor @XMM[8+4], @XMM[4]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_encrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[4]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[6]
- movdqu @XMM[4], 0x20($out)
- pxor 0x40(%rsp), @XMM[3]
- movdqu @XMM[6], 0x30($out)
- movdqu @XMM[3], 0x40($out)
- lea 0x50($out), $out
-
- movdqa 0x50(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_enc_done
-.align 16
-.Lxts_enc_4:
- pxor @XMM[8+2], @XMM[2]
- lea 0x40($inp), $inp
- pxor @XMM[8+3], @XMM[3]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_encrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[4]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[6]
- movdqu @XMM[4], 0x20($out)
- movdqu @XMM[6], 0x30($out)
- lea 0x40($out), $out
-
- movdqa 0x40(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_enc_done
-.align 16
-.Lxts_enc_3:
- pxor @XMM[8+1], @XMM[1]
- lea 0x30($inp), $inp
- pxor @XMM[8+2], @XMM[2]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_encrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[4]
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[4], 0x20($out)
- lea 0x30($out), $out
-
- movdqa 0x30(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_enc_done
-.align 16
-.Lxts_enc_2:
- pxor @XMM[8+0], @XMM[0]
- lea 0x20($inp), $inp
- pxor @XMM[8+1], @XMM[1]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_encrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- lea 0x20($out), $out
-
- movdqa 0x20(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_enc_done
-.align 16
-.Lxts_enc_1:
- pxor @XMM[0], @XMM[8]
- lea 0x10($inp), $inp
- movdqa @XMM[8], 0x20(%rbp)
- lea 0x20(%rbp), $arg1
- lea 0x20(%rbp), $arg2
- lea ($key), $arg3
- call asm_AES_encrypt # doesn't touch %xmm
- pxor 0x20(%rbp), @XMM[0] # ^= tweak[]
- #pxor @XMM[8], @XMM[0]
- #lea 0x80(%rsp), %rax # pass key schedule
- #mov %edx, %r10d # pass rounds
- #call _bsaes_encrypt8
- #pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- movdqu @XMM[0], 0x00($out) # write output
- lea 0x10($out), $out
-
- movdqa 0x10(%rsp), @XMM[7] # next iteration tweak
-
-.Lxts_enc_done:
- and \$15, %ebx
- jz .Lxts_enc_ret
- mov $out, %rdx
-
-.Lxts_enc_steal:
- movzb ($inp), %eax
- movzb -16(%rdx), %ecx
- lea 1($inp), $inp
- mov %al, -16(%rdx)
- mov %cl, 0(%rdx)
- lea 1(%rdx), %rdx
- sub \$1,%ebx
- jnz .Lxts_enc_steal
-
- movdqu -16($out), @XMM[0]
- lea 0x20(%rbp), $arg1
- pxor @XMM[7], @XMM[0]
- lea 0x20(%rbp), $arg2
- movdqa @XMM[0], 0x20(%rbp)
- lea ($key), $arg3
- call asm_AES_encrypt # doesn't touch %xmm
- pxor 0x20(%rbp), @XMM[7]
- movdqu @XMM[7], -16($out)
-
-.Lxts_enc_ret:
- lea (%rsp), %rax
- pxor %xmm0, %xmm0
-.Lxts_enc_bzero: # wipe key schedule [if any]
- movdqa %xmm0, 0x00(%rax)
- movdqa %xmm0, 0x10(%rax)
- lea 0x20(%rax), %rax
- cmp %rax, %rbp
- ja .Lxts_enc_bzero
-
- lea 0x78(%rbp),%rax
-.cfi_def_cfa %rax,8
-___
-$code.=<<___ if ($win64);
- movaps 0x40(%rbp), %xmm6
- movaps 0x50(%rbp), %xmm7
- movaps 0x60(%rbp), %xmm8
- movaps 0x70(%rbp), %xmm9
- movaps 0x80(%rbp), %xmm10
- movaps 0x90(%rbp), %xmm11
- movaps 0xa0(%rbp), %xmm12
- movaps 0xb0(%rbp), %xmm13
- movaps 0xc0(%rbp), %xmm14
- movaps 0xd0(%rbp), %xmm15
- lea 0xa0(%rax), %rax
-.Lxts_enc_tail:
-___
-$code.=<<___;
- mov -48(%rax), %r15
-.cfi_restore %r15
- mov -40(%rax), %r14
-.cfi_restore %r14
- mov -32(%rax), %r13
-.cfi_restore %r13
- mov -24(%rax), %r12
-.cfi_restore %r12
- mov -16(%rax), %rbx
-.cfi_restore %rbx
- mov -8(%rax), %rbp
-.cfi_restore %rbp
- lea (%rax), %rsp # restore %rsp
-.cfi_def_cfa_register %rsp
-.Lxts_enc_epilogue:
- ret
-.cfi_endproc
-.size bsaes_xts_encrypt,.-bsaes_xts_encrypt
-
-.globl bsaes_xts_decrypt
-.type bsaes_xts_decrypt,\@abi-omnipotent
-.align 16
-bsaes_xts_decrypt:
-.cfi_startproc
- mov %rsp, %rax
-.Lxts_dec_prologue:
- push %rbp
-.cfi_push %rbp
- push %rbx
-.cfi_push %rbx
- push %r12
-.cfi_push %r12
- push %r13
-.cfi_push %r13
- push %r14
-.cfi_push %r14
- push %r15
-.cfi_push %r15
- lea -0x48(%rsp), %rsp
-.cfi_adjust_cfa_offset 0x48
-___
-$code.=<<___ if ($win64);
- mov 0xa0(%rsp),$arg5 # pull key2
- mov 0xa8(%rsp),$arg6 # pull ivp
- lea -0xa0(%rsp), %rsp
- movaps %xmm6, 0x40(%rsp)
- movaps %xmm7, 0x50(%rsp)
- movaps %xmm8, 0x60(%rsp)
- movaps %xmm9, 0x70(%rsp)
- movaps %xmm10, 0x80(%rsp)
- movaps %xmm11, 0x90(%rsp)
- movaps %xmm12, 0xa0(%rsp)
- movaps %xmm13, 0xb0(%rsp)
- movaps %xmm14, 0xc0(%rsp)
- movaps %xmm15, 0xd0(%rsp)
-.Lxts_dec_body:
-___
-$code.=<<___;
- mov %rsp, %rbp # backup %rsp
- mov $arg1, $inp # backup arguments
- mov $arg2, $out
- mov $arg3, $len
- mov $arg4, $key
-
- lea ($arg6), $arg1
- lea 0x20(%rbp), $arg2
- lea ($arg5), $arg3
- call asm_AES_encrypt # generate initial tweak
-
- mov 240($key), %eax # rounds
- mov $len, %rbx # backup $len
-
- mov %eax, %edx # rounds
- shl \$7, %rax # 128 bytes per inner round key
- sub \$`128-32`, %rax # size of bit-sliced key schedule
- sub %rax, %rsp
-
- mov %rsp, %rax # pass key schedule
- mov $key, %rcx # pass key
- mov %edx, %r10d # pass rounds
- call _bsaes_key_convert
- pxor (%rsp), %xmm7 # fix up round 0 key
- movdqa %xmm6, (%rax) # save last round key
- movdqa %xmm7, (%rsp)
-
- xor %eax, %eax # if ($len%16) len-=16;
- and \$-16, $len
- test \$15, %ebx
- setnz %al
- shl \$4, %rax
- sub %rax, $len
-
- sub \$0x80, %rsp # place for tweak[8]
- movdqa 0x20(%rbp), @XMM[7] # initial tweak
-
- pxor $twtmp, $twtmp
- movdqa .Lxts_magic(%rip), $twmask
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
-
- sub \$0x80, $len
- jc .Lxts_dec_short
- jmp .Lxts_dec_loop
-
-.align 16
-.Lxts_dec_loop:
-___
- for ($i=0;$i<7;$i++) {
- $code.=<<___;
- pshufd \$0x13, $twtmp, $twres
- pxor $twtmp, $twtmp
- movdqa @XMM[7], @XMM[$i]
- movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
- paddq @XMM[7], @XMM[7] # psllq 1,$tweak
- pand $twmask, $twres # isolate carry and residue
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
- pxor $twres, @XMM[7]
-___
- $code.=<<___ if ($i>=1);
- movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
-___
- $code.=<<___ if ($i>=2);
- pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
-___
- }
-$code.=<<___;
- movdqu 0x60($inp), @XMM[8+6]
- pxor @XMM[8+5], @XMM[5]
- movdqu 0x70($inp), @XMM[8+7]
- lea 0x80($inp), $inp
- movdqa @XMM[7], 0x70(%rsp)
- pxor @XMM[8+6], @XMM[6]
- lea 0x80(%rsp), %rax # pass key schedule
- pxor @XMM[8+7], @XMM[7]
- mov %edx, %r10d # pass rounds
-
- call _bsaes_decrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[6]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[4]
- movdqu @XMM[6], 0x20($out)
- pxor 0x40(%rsp), @XMM[2]
- movdqu @XMM[4], 0x30($out)
- pxor 0x50(%rsp), @XMM[7]
- movdqu @XMM[2], 0x40($out)
- pxor 0x60(%rsp), @XMM[3]
- movdqu @XMM[7], 0x50($out)
- pxor 0x70(%rsp), @XMM[5]
- movdqu @XMM[3], 0x60($out)
- movdqu @XMM[5], 0x70($out)
- lea 0x80($out), $out
-
- movdqa 0x70(%rsp), @XMM[7] # prepare next iteration tweak
- pxor $twtmp, $twtmp
- movdqa .Lxts_magic(%rip), $twmask
- pcmpgtd @XMM[7], $twtmp
- pshufd \$0x13, $twtmp, $twres
- pxor $twtmp, $twtmp
- paddq @XMM[7], @XMM[7] # psllq 1,$tweak
- pand $twmask, $twres # isolate carry and residue
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
- pxor $twres, @XMM[7]
-
- sub \$0x80,$len
- jnc .Lxts_dec_loop
-
-.Lxts_dec_short:
- add \$0x80, $len
- jz .Lxts_dec_done
-___
- for ($i=0;$i<7;$i++) {
- $code.=<<___;
- pshufd \$0x13, $twtmp, $twres
- pxor $twtmp, $twtmp
- movdqa @XMM[7], @XMM[$i]
- movdqa @XMM[7], `0x10*$i`(%rsp)# save tweak[$i]
- paddq @XMM[7], @XMM[7] # psllq 1,$tweak
- pand $twmask, $twres # isolate carry and residue
- pcmpgtd @XMM[7], $twtmp # broadcast upper bits
- pxor $twres, @XMM[7]
-___
- $code.=<<___ if ($i>=1);
- movdqu `0x10*($i-1)`($inp), @XMM[8+$i-1]
- cmp \$`0x10*$i`,$len
- je .Lxts_dec_$i
-___
- $code.=<<___ if ($i>=2);
- pxor @XMM[8+$i-2], @XMM[$i-2]# input[] ^ tweak[]
-___
- }
-$code.=<<___;
- movdqu 0x60($inp), @XMM[8+6]
- pxor @XMM[8+5], @XMM[5]
- movdqa @XMM[7], 0x70(%rsp)
- lea 0x70($inp), $inp
- pxor @XMM[8+6], @XMM[6]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_decrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[6]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[4]
- movdqu @XMM[6], 0x20($out)
- pxor 0x40(%rsp), @XMM[2]
- movdqu @XMM[4], 0x30($out)
- pxor 0x50(%rsp), @XMM[7]
- movdqu @XMM[2], 0x40($out)
- pxor 0x60(%rsp), @XMM[3]
- movdqu @XMM[7], 0x50($out)
- movdqu @XMM[3], 0x60($out)
- lea 0x70($out), $out
-
- movdqa 0x70(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_dec_done
-.align 16
-.Lxts_dec_6:
- pxor @XMM[8+4], @XMM[4]
- lea 0x60($inp), $inp
- pxor @XMM[8+5], @XMM[5]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_decrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[6]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[4]
- movdqu @XMM[6], 0x20($out)
- pxor 0x40(%rsp), @XMM[2]
- movdqu @XMM[4], 0x30($out)
- pxor 0x50(%rsp), @XMM[7]
- movdqu @XMM[2], 0x40($out)
- movdqu @XMM[7], 0x50($out)
- lea 0x60($out), $out
-
- movdqa 0x60(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_dec_done
-.align 16
-.Lxts_dec_5:
- pxor @XMM[8+3], @XMM[3]
- lea 0x50($inp), $inp
- pxor @XMM[8+4], @XMM[4]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_decrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[6]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[4]
- movdqu @XMM[6], 0x20($out)
- pxor 0x40(%rsp), @XMM[2]
- movdqu @XMM[4], 0x30($out)
- movdqu @XMM[2], 0x40($out)
- lea 0x50($out), $out
-
- movdqa 0x50(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_dec_done
-.align 16
-.Lxts_dec_4:
- pxor @XMM[8+2], @XMM[2]
- lea 0x40($inp), $inp
- pxor @XMM[8+3], @XMM[3]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_decrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[6]
- movdqu @XMM[1], 0x10($out)
- pxor 0x30(%rsp), @XMM[4]
- movdqu @XMM[6], 0x20($out)
- movdqu @XMM[4], 0x30($out)
- lea 0x40($out), $out
-
- movdqa 0x40(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_dec_done
-.align 16
-.Lxts_dec_3:
- pxor @XMM[8+1], @XMM[1]
- lea 0x30($inp), $inp
- pxor @XMM[8+2], @XMM[2]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_decrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- pxor 0x20(%rsp), @XMM[6]
- movdqu @XMM[1], 0x10($out)
- movdqu @XMM[6], 0x20($out)
- lea 0x30($out), $out
-
- movdqa 0x30(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_dec_done
-.align 16
-.Lxts_dec_2:
- pxor @XMM[8+0], @XMM[0]
- lea 0x20($inp), $inp
- pxor @XMM[8+1], @XMM[1]
- lea 0x80(%rsp), %rax # pass key schedule
- mov %edx, %r10d # pass rounds
-
- call _bsaes_decrypt8
-
- pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- pxor 0x10(%rsp), @XMM[1]
- movdqu @XMM[0], 0x00($out) # write output
- movdqu @XMM[1], 0x10($out)
- lea 0x20($out), $out
-
- movdqa 0x20(%rsp), @XMM[7] # next iteration tweak
- jmp .Lxts_dec_done
-.align 16
-.Lxts_dec_1:
- pxor @XMM[0], @XMM[8]
- lea 0x10($inp), $inp
- movdqa @XMM[8], 0x20(%rbp)
- lea 0x20(%rbp), $arg1
- lea 0x20(%rbp), $arg2
- lea ($key), $arg3
- call asm_AES_decrypt # doesn't touch %xmm
- pxor 0x20(%rbp), @XMM[0] # ^= tweak[]
- #pxor @XMM[8], @XMM[0]
- #lea 0x80(%rsp), %rax # pass key schedule
- #mov %edx, %r10d # pass rounds
- #call _bsaes_decrypt8
- #pxor 0x00(%rsp), @XMM[0] # ^= tweak[]
- movdqu @XMM[0], 0x00($out) # write output
- lea 0x10($out), $out
-
- movdqa 0x10(%rsp), @XMM[7] # next iteration tweak
-
-.Lxts_dec_done:
- and \$15, %ebx
- jz .Lxts_dec_ret
-
- pxor $twtmp, $twtmp
- movdqa .Lxts_magic(%rip), $twmask
- pcmpgtd @XMM[7], $twtmp
- pshufd \$0x13, $twtmp, $twres
- movdqa @XMM[7], @XMM[6]
- paddq @XMM[7], @XMM[7] # psllq 1,$tweak
- pand $twmask, $twres # isolate carry and residue
- movdqu ($inp), @XMM[0]
- pxor $twres, @XMM[7]
-
- lea 0x20(%rbp), $arg1
- pxor @XMM[7], @XMM[0]
- lea 0x20(%rbp), $arg2
- movdqa @XMM[0], 0x20(%rbp)
- lea ($key), $arg3
- call asm_AES_decrypt # doesn't touch %xmm
- pxor 0x20(%rbp), @XMM[7]
- mov $out, %rdx
- movdqu @XMM[7], ($out)
-
-.Lxts_dec_steal:
- movzb 16($inp), %eax
- movzb (%rdx), %ecx
- lea 1($inp), $inp
- mov %al, (%rdx)
- mov %cl, 16(%rdx)
- lea 1(%rdx), %rdx
- sub \$1,%ebx
- jnz .Lxts_dec_steal
-
- movdqu ($out), @XMM[0]
- lea 0x20(%rbp), $arg1
- pxor @XMM[6], @XMM[0]
- lea 0x20(%rbp), $arg2
- movdqa @XMM[0], 0x20(%rbp)
- lea ($key), $arg3
- call asm_AES_decrypt # doesn't touch %xmm
- pxor 0x20(%rbp), @XMM[6]
- movdqu @XMM[6], ($out)
-
-.Lxts_dec_ret:
- lea (%rsp), %rax
- pxor %xmm0, %xmm0
-.Lxts_dec_bzero: # wipe key schedule [if any]
- movdqa %xmm0, 0x00(%rax)
- movdqa %xmm0, 0x10(%rax)
- lea 0x20(%rax), %rax
- cmp %rax, %rbp
- ja .Lxts_dec_bzero
-
- lea 0x78(%rbp),%rax
-.cfi_def_cfa %rax,8
-___
-$code.=<<___ if ($win64);
- movaps 0x40(%rbp), %xmm6
- movaps 0x50(%rbp), %xmm7
- movaps 0x60(%rbp), %xmm8
- movaps 0x70(%rbp), %xmm9
- movaps 0x80(%rbp), %xmm10
- movaps 0x90(%rbp), %xmm11
- movaps 0xa0(%rbp), %xmm12
- movaps 0xb0(%rbp), %xmm13
- movaps 0xc0(%rbp), %xmm14
- movaps 0xd0(%rbp), %xmm15
- lea 0xa0(%rax), %rax
-.Lxts_dec_tail:
-___
-$code.=<<___;
- mov -48(%rax), %r15
-.cfi_restore %r15
- mov -40(%rax), %r14
-.cfi_restore %r14
- mov -32(%rax), %r13
-.cfi_restore %r13
- mov -24(%rax), %r12
-.cfi_restore %r12
- mov -16(%rax), %rbx
-.cfi_restore %rbx
- mov -8(%rax), %rbp
-.cfi_restore %rbp
- lea (%rax), %rsp # restore %rsp
-.cfi_def_cfa_register %rsp
-.Lxts_dec_epilogue:
- ret
-.cfi_endproc
-.size bsaes_xts_decrypt,.-bsaes_xts_decrypt
-___
-}
-$code.=<<___;
-.type _bsaes_const,\@object
-.align 64
-_bsaes_const:
-.LM0ISR: # InvShiftRows constants
- .quad 0x0a0e0206070b0f03, 0x0004080c0d010509
-.LISRM0:
- .quad 0x01040b0e0205080f, 0x0306090c00070a0d
-.LISR:
- .quad 0x0504070602010003, 0x0f0e0d0c080b0a09
-.LBS0: # bit-slice constants
- .quad 0x5555555555555555, 0x5555555555555555
-.LBS1:
- .quad 0x3333333333333333, 0x3333333333333333
-.LBS2:
- .quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
-.LSR: # shiftrows constants
- .quad 0x0504070600030201, 0x0f0e0d0c0a09080b
-.LSRM0:
- .quad 0x0304090e00050a0f, 0x01060b0c0207080d
-.LM0SR:
- .quad 0x0a0e02060f03070b, 0x0004080c05090d01
-.LSWPUP: # byte-swap upper dword
- .quad 0x0706050403020100, 0x0c0d0e0f0b0a0908
-.LSWPUPM0SR:
- .quad 0x0a0d02060c03070b, 0x0004080f05090e01
-.LADD1: # counter increment constants
- .quad 0x0000000000000000, 0x0000000100000000
-.LADD2:
- .quad 0x0000000000000000, 0x0000000200000000
-.LADD3:
- .quad 0x0000000000000000, 0x0000000300000000
-.LADD4:
- .quad 0x0000000000000000, 0x0000000400000000
-.LADD5:
- .quad 0x0000000000000000, 0x0000000500000000
-.LADD6:
- .quad 0x0000000000000000, 0x0000000600000000
-.LADD7:
- .quad 0x0000000000000000, 0x0000000700000000
-.LADD8:
- .quad 0x0000000000000000, 0x0000000800000000
-.Lxts_magic:
- .long 0x87,0,1,0
-.Lmasks:
- .quad 0x0101010101010101, 0x0101010101010101
- .quad 0x0202020202020202, 0x0202020202020202
- .quad 0x0404040404040404, 0x0404040404040404
- .quad 0x0808080808080808, 0x0808080808080808
-.LM0:
- .quad 0x02060a0e03070b0f, 0x0004080c0105090d
-.L63:
- .quad 0x6363636363636363, 0x6363636363636363
-.asciz "Bit-sliced AES for x86_64/SSSE3, Emilia Käsper, Peter Schwabe, Andy Polyakov"
-.align 64
-.size _bsaes_const,.-_bsaes_const
-___
-
-# EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
-# CONTEXT *context,DISPATCHER_CONTEXT *disp)
-if ($win64) {
-$rec="%rcx";
-$frame="%rdx";
-$context="%r8";
-$disp="%r9";
-
-$code.=<<___;
-.extern __imp_RtlVirtualUnwind
-.type se_handler,\@abi-omnipotent
-.align 16
-se_handler:
- push %rsi
- push %rdi
- push %rbx
- push %rbp
- push %r12
- push %r13
- push %r14
- push %r15
- pushfq
- sub \$64,%rsp
-
- mov 120($context),%rax # pull context->Rax
- mov 248($context),%rbx # pull context->Rip
-
- mov 8($disp),%rsi # disp->ImageBase
- mov 56($disp),%r11 # disp->HandlerData
-
- mov 0(%r11),%r10d # HandlerData[0]
- lea (%rsi,%r10),%r10 # prologue label
- cmp %r10,%rbx # context->Rip<=prologue label
- jbe .Lin_prologue
-
- mov 4(%r11),%r10d # HandlerData[1]
- lea (%rsi,%r10),%r10 # epilogue label
- cmp %r10,%rbx # context->Rip>=epilogue label
- jae .Lin_prologue
-
- mov 8(%r11),%r10d # HandlerData[2]
- lea (%rsi,%r10),%r10 # epilogue label
- cmp %r10,%rbx # context->Rip>=tail label
- jae .Lin_tail
-
- mov 160($context),%rax # pull context->Rbp
-
- lea 0x40(%rax),%rsi # %xmm save area
- lea 512($context),%rdi # &context.Xmm6
- mov \$20,%ecx # 10*sizeof(%xmm0)/sizeof(%rax)
- .long 0xa548f3fc # cld; rep movsq
- lea 0xa0+0x78(%rax),%rax # adjust stack pointer
-
-.Lin_tail:
- mov -48(%rax),%rbp
- mov -40(%rax),%rbx
- mov -32(%rax),%r12
- mov -24(%rax),%r13
- mov -16(%rax),%r14
- mov -8(%rax),%r15
- mov %rbx,144($context) # restore context->Rbx
- mov %rbp,160($context) # restore context->Rbp
- mov %r12,216($context) # restore context->R12
- mov %r13,224($context) # restore context->R13
- mov %r14,232($context) # restore context->R14
- mov %r15,240($context) # restore context->R15
-
-.Lin_prologue:
- mov %rax,152($context) # restore context->Rsp
-
- mov 40($disp),%rdi # disp->ContextRecord
- mov $context,%rsi # context
- mov \$`1232/8`,%ecx # sizeof(CONTEXT)
- .long 0xa548f3fc # cld; rep movsq
-
- mov $disp,%rsi
- xor %rcx,%rcx # arg1, UNW_FLAG_NHANDLER
- mov 8(%rsi),%rdx # arg2, disp->ImageBase
- mov 0(%rsi),%r8 # arg3, disp->ControlPc
- mov 16(%rsi),%r9 # arg4, disp->FunctionEntry
- mov 40(%rsi),%r10 # disp->ContextRecord
- lea 56(%rsi),%r11 # &disp->HandlerData
- lea 24(%rsi),%r12 # &disp->EstablisherFrame
- mov %r10,32(%rsp) # arg5
- mov %r11,40(%rsp) # arg6
- mov %r12,48(%rsp) # arg7
- mov %rcx,56(%rsp) # arg8, (NULL)
- call *__imp_RtlVirtualUnwind(%rip)
-
- mov \$1,%eax # ExceptionContinueSearch
- add \$64,%rsp
- popfq
- pop %r15
- pop %r14
- pop %r13
- pop %r12
- pop %rbp
- pop %rbx
- pop %rdi
- pop %rsi
- ret
-.size se_handler,.-se_handler
-
-.section .pdata
-.align 4
-___
-$code.=<<___ if ($ecb);
- .rva .Lecb_enc_prologue
- .rva .Lecb_enc_epilogue
- .rva .Lecb_enc_info
-
- .rva .Lecb_dec_prologue
- .rva .Lecb_dec_epilogue
- .rva .Lecb_dec_info
-___
-$code.=<<___;
- .rva .Lcbc_dec_prologue
- .rva .Lcbc_dec_epilogue
- .rva .Lcbc_dec_info
-
- .rva .Lctr_enc_prologue
- .rva .Lctr_enc_epilogue
- .rva .Lctr_enc_info
-
- .rva .Lxts_enc_prologue
- .rva .Lxts_enc_epilogue
- .rva .Lxts_enc_info
-
- .rva .Lxts_dec_prologue
- .rva .Lxts_dec_epilogue
- .rva .Lxts_dec_info
-
-.section .xdata
-.align 8
-___
-$code.=<<___ if ($ecb);
-.Lecb_enc_info:
- .byte 9,0,0,0
- .rva se_handler
- .rva .Lecb_enc_body,.Lecb_enc_epilogue # HandlerData[]
- .rva .Lecb_enc_tail
- .long 0
-.Lecb_dec_info:
- .byte 9,0,0,0
- .rva se_handler
- .rva .Lecb_dec_body,.Lecb_dec_epilogue # HandlerData[]
- .rva .Lecb_dec_tail
- .long 0
-___
-$code.=<<___;
-.Lcbc_dec_info:
- .byte 9,0,0,0
- .rva se_handler
- .rva .Lcbc_dec_body,.Lcbc_dec_epilogue # HandlerData[]
- .rva .Lcbc_dec_tail
- .long 0
-.Lctr_enc_info:
- .byte 9,0,0,0
- .rva se_handler
- .rva .Lctr_enc_body,.Lctr_enc_epilogue # HandlerData[]
- .rva .Lctr_enc_tail
- .long 0
-.Lxts_enc_info:
- .byte 9,0,0,0
- .rva se_handler
- .rva .Lxts_enc_body,.Lxts_enc_epilogue # HandlerData[]
- .rva .Lxts_enc_tail
- .long 0
-.Lxts_dec_info:
- .byte 9,0,0,0
- .rva se_handler
- .rva .Lxts_dec_body,.Lxts_dec_epilogue # HandlerData[]
- .rva .Lxts_dec_tail
- .long 0
-___
-}
-
-$code =~ s/\`([^\`]*)\`/eval($1)/gem;
-
-print $code;
-
-close STDOUT;
diff --git a/deps/openssl/openssl/crypto/asn1/a_time.c b/deps/openssl/openssl/crypto/asn1/a_time.c
index 1babb9636054c6..c36dd9500169f5 100644
--- a/deps/openssl/openssl/crypto/asn1/a_time.c
+++ b/deps/openssl/openssl/crypto/asn1/a_time.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -67,7 +67,7 @@ static void determine_days(struct tm *tm)
}
c = y / 100;
y %= 100;
- /* Zeller's congruance */
+ /* Zeller's congruence */
tm->tm_wday = (d + (13 * m) / 5 + y + y / 4 + c / 4 + 5 * c + 6) % 7;
}
@@ -79,7 +79,11 @@ int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
char *a;
int n, i, i2, l, o, min_l = 11, strict = 0, end = 6, btz = 5, md;
struct tm tmp;
-
+#if defined(CHARSET_EBCDIC)
+ const char upper_z = 0x5A, num_zero = 0x30, period = 0x2E, minus = 0x2D, plus = 0x2B;
+#else
+ const char upper_z = 'Z', num_zero = '0', period = '.', minus = '-', plus = '+';
+#endif
/*
* ASN1_STRING_FLAG_X509_TIME is used to enforce RFC 5280
* time string format, in which:
@@ -120,20 +124,20 @@ int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
if (l < min_l)
goto err;
for (i = 0; i < end; i++) {
- if (!strict && (i == btz) && ((a[o] == 'Z') || (a[o] == '+') || (a[o] == '-'))) {
+ if (!strict && (i == btz) && ((a[o] == upper_z) || (a[o] == plus) || (a[o] == minus))) {
i++;
break;
}
- if (!ossl_isdigit(a[o]))
+ if (!ascii_isdigit(a[o]))
goto err;
- n = a[o] - '0';
+ n = a[o] - num_zero;
/* incomplete 2-digital number */
if (++o == l)
goto err;
- if (!ossl_isdigit(a[o]))
+ if (!ascii_isdigit(a[o]))
goto err;
- n = (n * 10) + a[o] - '0';
+ n = (n * 10) + a[o] - num_zero;
/* no more bytes to read, but we haven't seen time-zone yet */
if (++o == l)
goto err;
@@ -185,14 +189,14 @@ int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
* Optional fractional seconds: decimal point followed by one or more
* digits.
*/
- if (d->type == V_ASN1_GENERALIZEDTIME && a[o] == '.') {
+ if (d->type == V_ASN1_GENERALIZEDTIME && a[o] == period) {
if (strict)
/* RFC 5280 forbids fractional seconds */
goto err;
if (++o == l)
goto err;
i = o;
- while ((o < l) && ossl_isdigit(a[o]))
+ while ((o < l) && ascii_isdigit(a[o]))
o++;
/* Must have at least one digit after decimal point */
if (i == o)
@@ -207,10 +211,10 @@ int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
* 'o' can point to '\0' is either the subsequent if or the first
* else if is true.
*/
- if (a[o] == 'Z') {
+ if (a[o] == upper_z) {
o++;
- } else if (!strict && ((a[o] == '+') || (a[o] == '-'))) {
- int offsign = a[o] == '-' ? 1 : -1;
+ } else if (!strict && ((a[o] == plus) || (a[o] == minus))) {
+ int offsign = a[o] == minus ? 1 : -1;
int offset = 0;
o++;
@@ -223,13 +227,13 @@ int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
if (o + 4 != l)
goto err;
for (i = end; i < end + 2; i++) {
- if (!ossl_isdigit(a[o]))
+ if (!ascii_isdigit(a[o]))
goto err;
- n = a[o] - '0';
+ n = a[o] - num_zero;
o++;
- if (!ossl_isdigit(a[o]))
+ if (!ascii_isdigit(a[o]))
goto err;
- n = (n * 10) + a[o] - '0';
+ n = (n * 10) + a[o] - num_zero;
i2 = (d->type == V_ASN1_UTCTIME) ? i + 1 : i;
if ((n < min[i2]) || (n > max[i2]))
goto err;
@@ -300,7 +304,7 @@ ASN1_TIME *asn1_time_from_tm(ASN1_TIME *s, struct tm *ts, int type)
ts->tm_mday, ts->tm_hour, ts->tm_min,
ts->tm_sec);
-#ifdef CHARSET_EBCDIC_not
+#ifdef CHARSET_EBCDIC
ebcdic2ascii(tmps->data, tmps->data, tmps->length);
#endif
return tmps;
@@ -467,6 +471,7 @@ int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm)
char *v;
int gmt = 0, l;
struct tm stm;
+ const char upper_z = 0x5A, period = 0x2E;
if (!asn1_time_to_tm(&stm, tm)) {
/* asn1_time_to_tm will check the time type */
@@ -475,7 +480,7 @@ int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm)
l = tm->length;
v = (char *)tm->data;
- if (v[l - 1] == 'Z')
+ if (v[l - 1] == upper_z)
gmt = 1;
if (tm->type == V_ASN1_GENERALIZEDTIME) {
@@ -486,10 +491,10 @@ int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm)
* Try to parse fractional seconds. '14' is the place of
* 'fraction point' in a GeneralizedTime string.
*/
- if (tm->length > 15 && v[14] == '.') {
+ if (tm->length > 15 && v[14] == period) {
f = &v[14];
f_len = 1;
- while (14 + f_len < l && ossl_isdigit(f[f_len]))
+ while (14 + f_len < l && ascii_isdigit(f[f_len]))
++f_len;
}
diff --git a/deps/openssl/openssl/crypto/asn1/a_type.c b/deps/openssl/openssl/crypto/asn1/a_type.c
index 0c7aebe3076b4e..732328e050498c 100644
--- a/deps/openssl/openssl/crypto/asn1/a_type.c
+++ b/deps/openssl/openssl/crypto/asn1/a_type.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -15,7 +15,9 @@
int ASN1_TYPE_get(const ASN1_TYPE *a)
{
- if ((a->value.ptr != NULL) || (a->type == V_ASN1_NULL))
+ if (a->type == V_ASN1_BOOLEAN
+ || a->type == V_ASN1_NULL
+ || a->value.ptr != NULL)
return a->type;
else
return 0;
@@ -23,7 +25,9 @@ int ASN1_TYPE_get(const ASN1_TYPE *a)
void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
{
- if (a->value.ptr != NULL) {
+ if (a->type != V_ASN1_BOOLEAN
+ && a->type != V_ASN1_NULL
+ && a->value.ptr != NULL) {
ASN1_TYPE **tmp_a = &a;
asn1_primitive_free((ASN1_VALUE **)tmp_a, NULL, 0);
}
diff --git a/deps/openssl/openssl/crypto/asn1/x_bignum.c b/deps/openssl/openssl/crypto/asn1/x_bignum.c
index da57e77a7aa829..6c93ea7510da1e 100644
--- a/deps/openssl/openssl/crypto/asn1/x_bignum.c
+++ b/deps/openssl/openssl/crypto/asn1/x_bignum.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -130,9 +130,20 @@ static int bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
static int bn_secure_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
int utype, char *free_cont, const ASN1_ITEM *it)
{
- if (!*pval)
- bn_secure_new(pval, it);
- return bn_c2i(pval, cont, len, utype, free_cont, it);
+ int ret;
+ BIGNUM *bn;
+
+ if (!*pval && !bn_secure_new(pval, it))
+ return 0;
+
+ ret = bn_c2i(pval, cont, len, utype, free_cont, it);
+ if (!ret)
+ return 0;
+
+ /* Set constant-time flag for all secure BIGNUMS */
+ bn = (BIGNUM *)*pval;
+ BN_set_flags(bn, BN_FLG_CONSTTIME);
+ return ret;
}
static int bn_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,
diff --git a/deps/openssl/openssl/crypto/bio/b_addr.c b/deps/openssl/openssl/crypto/bio/b_addr.c
index f295b766fa7346..dd5008e636a477 100644
--- a/deps/openssl/openssl/crypto/bio/b_addr.c
+++ b/deps/openssl/openssl/crypto/bio/b_addr.c
@@ -675,7 +675,7 @@ int BIO_lookup_ex(const char *host, const char *service, int lookup_type,
if (1) {
#ifdef AI_PASSIVE
- int gai_ret = 0;
+ int gai_ret = 0, old_ret = 0;
struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
@@ -683,12 +683,12 @@ int BIO_lookup_ex(const char *host, const char *service, int lookup_type,
hints.ai_family = family;
hints.ai_socktype = socktype;
hints.ai_protocol = protocol;
-#ifdef AI_ADDRCONFIG
-#ifdef AF_UNSPEC
+# ifdef AI_ADDRCONFIG
+# ifdef AF_UNSPEC
if (family == AF_UNSPEC)
-#endif
+# endif
hints.ai_flags |= AI_ADDRCONFIG;
-#endif
+# endif
if (lookup_type == BIO_LOOKUP_SERVER)
hints.ai_flags |= AI_PASSIVE;
@@ -696,19 +696,33 @@ int BIO_lookup_ex(const char *host, const char *service, int lookup_type,
/* Note that |res| SHOULD be a 'struct addrinfo **' thanks to
* macro magic in bio_lcl.h
*/
+ retry:
switch ((gai_ret = getaddrinfo(host, service, &hints, res))) {
# ifdef EAI_SYSTEM
case EAI_SYSTEM:
SYSerr(SYS_F_GETADDRINFO, get_last_socket_error());
BIOerr(BIO_F_BIO_LOOKUP_EX, ERR_R_SYS_LIB);
break;
+# endif
+# ifdef EAI_MEMORY
+ case EAI_MEMORY:
+ BIOerr(BIO_F_BIO_LOOKUP_EX, ERR_R_MALLOC_FAILURE);
+ break;
# endif
case 0:
ret = 1; /* Success */
break;
default:
+# if defined(AI_ADDRCONFIG) && defined(AI_NUMERICHOST)
+ if (hints.ai_flags & AI_ADDRCONFIG) {
+ hints.ai_flags &= ~AI_ADDRCONFIG;
+ hints.ai_flags |= AI_NUMERICHOST;
+ old_ret = gai_ret;
+ goto retry;
+ }
+# endif
BIOerr(BIO_F_BIO_LOOKUP_EX, ERR_R_SYS_LIB);
- ERR_add_error_data(1, gai_strerror(gai_ret));
+ ERR_add_error_data(1, gai_strerror(old_ret ? old_ret : gai_ret));
break;
}
} else {
diff --git a/deps/openssl/openssl/crypto/bio/bss_dgram.c b/deps/openssl/openssl/crypto/bio/bss_dgram.c
index d5fe5bb5a8a2d7..551821609f7313 100644
--- a/deps/openssl/openssl/crypto/bio/bss_dgram.c
+++ b/deps/openssl/openssl/crypto/bio/bss_dgram.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2005-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -784,7 +784,7 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr)
* reasons. When BIO_CTRL_DGRAM_SET_PEEK_MODE was first defined its value
* was incorrectly clashing with BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE. The
* value has been updated to a non-clashing value. However to preserve
- * binary compatiblity we now respond to both the old value and the new one
+ * binary compatibility we now respond to both the old value and the new one
*/
case BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE:
case BIO_CTRL_DGRAM_SET_PEEK_MODE:
diff --git a/deps/openssl/openssl/crypto/bio/bss_file.c b/deps/openssl/openssl/crypto/bio/bss_file.c
index 057344783d61b7..a2102055976012 100644
--- a/deps/openssl/openssl/crypto/bio/bss_file.c
+++ b/deps/openssl/openssl/crypto/bio/bss_file.c
@@ -7,10 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#ifndef HEADER_BSS_FILE_C
-# define HEADER_BSS_FILE_C
-
-# if defined(__linux) || defined(__sun) || defined(__hpux)
+#if defined(__linux) || defined(__sun) || defined(__hpux)
/*
* Following definition aliases fopen to fopen64 on above mentioned
* platforms. This makes it possible to open and sequentially access files
@@ -23,17 +20,17 @@
* of 32-bit platforms which allow for sequential access of large files
* without extra "magic" comprise *BSD, Darwin, IRIX...
*/
-# ifndef _FILE_OFFSET_BITS
-# define _FILE_OFFSET_BITS 64
-# endif
+# ifndef _FILE_OFFSET_BITS
+# define _FILE_OFFSET_BITS 64
# endif
+#endif
-# include
-# include
-# include "bio_lcl.h"
-# include
+#include
+#include
+#include "bio_lcl.h"
+#include
-# if !defined(OPENSSL_NO_STDIO)
+#if !defined(OPENSSL_NO_STDIO)
static int file_write(BIO *h, const char *buf, int num);
static int file_read(BIO *h, char *buf, int size);
@@ -72,9 +69,9 @@ BIO *BIO_new_file(const char *filename, const char *mode)
SYSerr(SYS_F_FOPEN, get_last_sys_error());
ERR_add_error_data(5, "fopen('", filename, "','", mode, "')");
if (errno == ENOENT
-# ifdef ENXIO
+#ifdef ENXIO
|| errno == ENXIO
-# endif
+#endif
)
BIOerr(BIO_F_BIO_NEW_FILE, BIO_R_NO_SUCH_FILE);
else
@@ -212,33 +209,33 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr)
b->shutdown = (int)num & BIO_CLOSE;
b->ptr = ptr;
b->init = 1;
-# if BIO_FLAGS_UPLINK!=0
-# if defined(__MINGW32__) && defined(__MSVCRT__) && !defined(_IOB_ENTRIES)
-# define _IOB_ENTRIES 20
-# endif
+# if BIO_FLAGS_UPLINK!=0
+# if defined(__MINGW32__) && defined(__MSVCRT__) && !defined(_IOB_ENTRIES)
+# define _IOB_ENTRIES 20
+# endif
/* Safety net to catch purely internal BIO_set_fp calls */
-# if defined(_MSC_VER) && _MSC_VER>=1900
+# if defined(_MSC_VER) && _MSC_VER>=1900
if (ptr == stdin || ptr == stdout || ptr == stderr)
BIO_clear_flags(b, BIO_FLAGS_UPLINK);
-# elif defined(_IOB_ENTRIES)
+# elif defined(_IOB_ENTRIES)
if ((size_t)ptr >= (size_t)stdin &&
(size_t)ptr < (size_t)(stdin + _IOB_ENTRIES))
BIO_clear_flags(b, BIO_FLAGS_UPLINK);
-# endif
# endif
-# ifdef UP_fsetmod
+# endif
+# ifdef UP_fsetmod
if (b->flags & BIO_FLAGS_UPLINK)
UP_fsetmod(b->ptr, (char)((num & BIO_FP_TEXT) ? 't' : 'b'));
else
-# endif
+# endif
{
-# if defined(OPENSSL_SYS_WINDOWS)
+# if defined(OPENSSL_SYS_WINDOWS)
int fd = _fileno((FILE *)ptr);
if (num & BIO_FP_TEXT)
_setmode(fd, _O_TEXT);
else
_setmode(fd, _O_BINARY);
-# elif defined(OPENSSL_SYS_MSDOS)
+# elif defined(OPENSSL_SYS_MSDOS)
int fd = fileno((FILE *)ptr);
/* Set correct text/binary mode */
if (num & BIO_FP_TEXT)
@@ -251,11 +248,11 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr)
} else
_setmode(fd, _O_BINARY);
}
-# elif defined(OPENSSL_SYS_WIN32_CYGWIN)
+# elif defined(OPENSSL_SYS_WIN32_CYGWIN)
int fd = fileno((FILE *)ptr);
if (!(num & BIO_FP_TEXT))
setmode(fd, O_BINARY);
-# endif
+# endif
}
break;
case BIO_C_SET_FILENAME:
@@ -277,15 +274,15 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr)
ret = 0;
break;
}
-# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS)
+# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS)
if (!(num & BIO_FP_TEXT))
OPENSSL_strlcat(p, "b", sizeof(p));
else
OPENSSL_strlcat(p, "t", sizeof(p));
-# elif defined(OPENSSL_SYS_WIN32_CYGWIN)
+# elif defined(OPENSSL_SYS_WIN32_CYGWIN)
if (!(num & BIO_FP_TEXT))
OPENSSL_strlcat(p, "b", sizeof(p));
-# endif
+# endif
fp = openssl_fopen(ptr, p);
if (fp == NULL) {
SYSerr(SYS_F_FOPEN, get_last_sys_error());
@@ -422,6 +419,4 @@ BIO *BIO_new_file(const char *filename, const char *mode)
return NULL;
}
-# endif /* OPENSSL_NO_STDIO */
-
-#endif /* HEADER_BSS_FILE_C */
+#endif /* OPENSSL_NO_STDIO */
diff --git a/deps/openssl/openssl/crypto/bio/bss_mem.c b/deps/openssl/openssl/crypto/bio/bss_mem.c
index 8c621d6c1e880d..2d536e9db05f4c 100644
--- a/deps/openssl/openssl/crypto/bio/bss_mem.c
+++ b/deps/openssl/openssl/crypto/bio/bss_mem.c
@@ -259,9 +259,7 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr)
bm = bbm->buf;
if (bm->data != NULL) {
if (!(b->flags & BIO_FLAGS_MEM_RDONLY)) {
- if (b->flags & BIO_FLAGS_NONCLEAR_RST) {
- bm->length = bm->max;
- } else {
+ if (!(b->flags & BIO_FLAGS_NONCLEAR_RST)) {
memset(bm->data, 0, bm->max);
bm->length = 0;
}
diff --git a/deps/openssl/openssl/crypto/bn/asm/mips.pl b/deps/openssl/openssl/crypto/bn/asm/mips.pl
index 38b796e375fec2..a205189eb684fe 100644
--- a/deps/openssl/openssl/crypto/bn/asm/mips.pl
+++ b/deps/openssl/openssl/crypto/bn/asm/mips.pl
@@ -801,7 +801,7 @@
#if 0
/*
* The bn_div_3_words entry point is re-used for constant-time interface.
- * Implementation is retained as hystorical reference.
+ * Implementation is retained as historical reference.
*/
.align 5
.globl bn_div_3_words
diff --git a/deps/openssl/openssl/crypto/bn/bn_div.c b/deps/openssl/openssl/crypto/bn/bn_div.c
index 3a6fa0a1b194b0..7fc0132830a12a 100644
--- a/deps/openssl/openssl/crypto/bn/bn_div.c
+++ b/deps/openssl/openssl/crypto/bn/bn_div.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -258,7 +258,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
*
* - availability of constant-time bn_div_3_words;
* - dividend is at least as "wide" as divisor, limb-wise, zero-padded
- * if so requied, which shouldn't be a privacy problem, because
+ * if so required, which shouldn't be a privacy problem, because
* divisor's length is considered public;
*/
int bn_div_fixed_top(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num,
diff --git a/deps/openssl/openssl/crypto/bn/bn_lcl.h b/deps/openssl/openssl/crypto/bn/bn_lcl.h
index 8a36db2e8b671c..7f823a6178a5bb 100644
--- a/deps/openssl/openssl/crypto/bn/bn_lcl.h
+++ b/deps/openssl/openssl/crypto/bn/bn_lcl.h
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -295,7 +295,7 @@ struct bn_gencb_st {
(b) > 23 ? 3 : 1)
/*
- * BN_mod_exp_mont_conttime is based on the assumption that the L1 data cache
+ * BN_mod_exp_mont_consttime is based on the assumption that the L1 data cache
* line width of the target processor is at least the following value.
*/
# define MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH ( 64 )
diff --git a/deps/openssl/openssl/crypto/bn/bn_lib.c b/deps/openssl/openssl/crypto/bn/bn_lib.c
index f93bbcfcc71f7f..254069ff38198d 100644
--- a/deps/openssl/openssl/crypto/bn/bn_lib.c
+++ b/deps/openssl/openssl/crypto/bn/bn_lib.c
@@ -132,20 +132,66 @@ int BN_num_bits_word(BN_ULONG l)
return bits;
}
+/*
+ * This function still leaks `a->dmax`: it's caller's responsibility to
+ * expand the input `a` in advance to a public length.
+ */
+static ossl_inline
+int bn_num_bits_consttime(const BIGNUM *a)
+{
+ int j, ret;
+ unsigned int mask, past_i;
+ int i = a->top - 1;
+ bn_check_top(a);
+
+ for (j = 0, past_i = 0, ret = 0; j < a->dmax; j++) {
+ mask = constant_time_eq_int(i, j); /* 0xff..ff if i==j, 0x0 otherwise */
+
+ ret += BN_BITS2 & (~mask & ~past_i);
+ ret += BN_num_bits_word(a->d[j]) & mask;
+
+ past_i |= mask; /* past_i will become 0xff..ff after i==j */
+ }
+
+ /*
+ * if BN_is_zero(a) => i is -1 and ret contains garbage, so we mask the
+ * final result.
+ */
+ mask = ~(constant_time_eq_int(i, ((int)-1)));
+
+ return ret & mask;
+}
+
int BN_num_bits(const BIGNUM *a)
{
int i = a->top - 1;
bn_check_top(a);
+ if (a->flags & BN_FLG_CONSTTIME) {
+ /*
+ * We assume that BIGNUMs flagged as CONSTTIME have also been expanded
+ * so that a->dmax is not leaking secret information.
+ *
+ * In other words, it's the caller's responsibility to ensure `a` has
+ * been preallocated in advance to a public length if we hit this
+ * branch.
+ *
+ */
+ return bn_num_bits_consttime(a);
+ }
+
if (BN_is_zero(a))
return 0;
+
return ((i * BN_BITS2) + BN_num_bits_word(a->d[i]));
}
-static void bn_free_d(BIGNUM *a)
+static void bn_free_d(BIGNUM *a, int clear)
{
if (BN_get_flags(a, BN_FLG_SECURE))
- OPENSSL_secure_free(a->d);
+ OPENSSL_secure_clear_free(a->d, a->dmax * sizeof(a->d[0]));
+ else if (clear != 0)
+ OPENSSL_clear_free(a->d, a->dmax * sizeof(a->d[0]));
else
OPENSSL_free(a->d);
}
@@ -155,10 +201,8 @@ void BN_clear_free(BIGNUM *a)
{
if (a == NULL)
return;
- if (a->d != NULL && !BN_get_flags(a, BN_FLG_STATIC_DATA)) {
- OPENSSL_cleanse(a->d, a->dmax * sizeof(a->d[0]));
- bn_free_d(a);
- }
+ if (a->d != NULL && !BN_get_flags(a, BN_FLG_STATIC_DATA))
+ bn_free_d(a, 1);
if (BN_get_flags(a, BN_FLG_MALLOCED)) {
OPENSSL_cleanse(a, sizeof(*a));
OPENSSL_free(a);
@@ -170,7 +214,7 @@ void BN_free(BIGNUM *a)
if (a == NULL)
return;
if (!BN_get_flags(a, BN_FLG_STATIC_DATA))
- bn_free_d(a);
+ bn_free_d(a, 0);
if (a->flags & BN_FLG_MALLOCED)
OPENSSL_free(a);
}
@@ -248,10 +292,8 @@ BIGNUM *bn_expand2(BIGNUM *b, int words)
BN_ULONG *a = bn_expand_internal(b, words);
if (!a)
return NULL;
- if (b->d) {
- OPENSSL_cleanse(b->d, b->dmax * sizeof(b->d[0]));
- bn_free_d(b);
- }
+ if (b->d != NULL)
+ bn_free_d(b, 1);
b->d = a;
b->dmax = words;
}
@@ -416,8 +458,11 @@ BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
return ret;
}
+typedef enum {big, little} endianess_t;
+
/* ignore negative */
-static int bn2binpad(const BIGNUM *a, unsigned char *to, int tolen)
+static
+int bn2binpad(const BIGNUM *a, unsigned char *to, int tolen, endianess_t endianess)
{
int n;
size_t i, lasti, j, atop, mask;
@@ -449,10 +494,17 @@ static int bn2binpad(const BIGNUM *a, unsigned char *to, int tolen)
lasti = atop - 1;
atop = a->top * BN_BYTES;
- for (i = 0, j = 0, to += tolen; j < (size_t)tolen; j++) {
+ if (endianess == big)
+ to += tolen; /* start from the end of the buffer */
+ for (i = 0, j = 0; j < (size_t)tolen; j++) {
+ unsigned char val;
l = a->d[i / BN_BYTES];
mask = 0 - ((j - atop) >> (8 * sizeof(i) - 1));
- *--to = (unsigned char)(l >> (8 * (i % BN_BYTES)) & mask);
+ val = (unsigned char)(l >> (8 * (i % BN_BYTES)) & mask);
+ if (endianess == big)
+ *--to = val;
+ else
+ *to++ = val;
i += (i - lasti) >> (8 * sizeof(i) - 1); /* stay on last limb */
}
@@ -463,12 +515,12 @@ int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen)
{
if (tolen < 0)
return -1;
- return bn2binpad(a, to, tolen);
+ return bn2binpad(a, to, tolen, big);
}
int BN_bn2bin(const BIGNUM *a, unsigned char *to)
{
- return bn2binpad(a, to, -1);
+ return bn2binpad(a, to, -1, big);
}
BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret)
@@ -520,22 +572,9 @@ BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret)
int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen)
{
- int i;
- BN_ULONG l;
- bn_check_top(a);
- i = BN_num_bytes(a);
- if (tolen < i)
+ if (tolen < 0)
return -1;
- /* Add trailing zeroes if necessary */
- if (tolen > i)
- memset(to + i, 0, tolen - i);
- to += i;
- while (i--) {
- l = a->d[i / BN_BYTES];
- to--;
- *to = (unsigned char)(l >> (8 * (i % BN_BYTES))) & 0xff;
- }
- return tolen;
+ return bn2binpad(a, to, tolen, little);
}
int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
diff --git a/deps/openssl/openssl/crypto/bn/bn_prime.c b/deps/openssl/openssl/crypto/bn/bn_prime.c
index 4bbd7c88103145..19b081f38eb7b2 100644
--- a/deps/openssl/openssl/crypto/bn/bn_prime.c
+++ b/deps/openssl/openssl/crypto/bn/bn_prime.c
@@ -63,8 +63,12 @@ int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe,
/* There are no prime numbers this small. */
BNerr(BN_F_BN_GENERATE_PRIME_EX, BN_R_BITS_TOO_SMALL);
return 0;
- } else if (bits == 2 && safe) {
- /* The smallest safe prime (7) is three bits. */
+ } else if (add == NULL && safe && bits < 6 && bits != 3) {
+ /*
+ * The smallest safe prime (7) is three bits.
+ * But the following two safe primes with less than 6 bits (11, 23)
+ * are unreachable for BN_rand with BN_RAND_TOP_TWO.
+ */
BNerr(BN_F_BN_GENERATE_PRIME_EX, BN_R_BITS_TOO_SMALL);
return 0;
}
diff --git a/deps/openssl/openssl/crypto/bn/bn_rand.c b/deps/openssl/openssl/crypto/bn/bn_rand.c
index c0d1a32292bace..051f29e34305cb 100644
--- a/deps/openssl/openssl/crypto/bn/bn_rand.c
+++ b/deps/openssl/openssl/crypto/bn/bn_rand.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -225,8 +225,7 @@ int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range,
goto err;
/* We copy |priv| into a local buffer to avoid exposing its length. */
- todo = sizeof(priv->d[0]) * priv->top;
- if (todo > sizeof(private_bytes)) {
+ if (BN_bn2binpad(priv, private_bytes, sizeof(private_bytes)) < 0) {
/*
* No reasonable DSA or ECDSA key should have a private key this
* large and we don't handle this case in order to avoid leaking the
@@ -235,8 +234,6 @@ int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range,
BNerr(BN_F_BN_GENERATE_DSA_NONCE, BN_R_PRIVATE_KEY_TOO_LARGE);
goto err;
}
- memcpy(private_bytes, priv->d, todo);
- memset(private_bytes + todo, 0, sizeof(private_bytes) - todo);
for (done = 0; done < num_k_bytes;) {
if (RAND_priv_bytes(random_bytes, sizeof(random_bytes)) != 1)
diff --git a/deps/openssl/openssl/crypto/bn/bn_sqrt.c b/deps/openssl/openssl/crypto/bn/bn_sqrt.c
index b97d8ca43ba2c8..c3e66b033bde5f 100644
--- a/deps/openssl/openssl/crypto/bn/bn_sqrt.c
+++ b/deps/openssl/openssl/crypto/bn/bn_sqrt.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -125,7 +125,8 @@ BIGNUM *BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
* = a.
*
* (This is due to A.O.L. Atkin,
- * ,
+ * Subject: Square Roots and Cognate Matters modulo p=8n+5.
+ * URL: https://listserv.nodak.edu/cgi-bin/wa.exe?A2=ind9211&L=NMBRTHRY&P=4026
* November 1992.)
*/
diff --git a/deps/openssl/openssl/crypto/cms/cms_att.c b/deps/openssl/openssl/crypto/cms/cms_att.c
index 664e64971b0ac7..0566019753bdda 100644
--- a/deps/openssl/openssl/crypto/cms/cms_att.c
+++ b/deps/openssl/openssl/crypto/cms/cms_att.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -13,6 +13,56 @@
#include
#include
#include "cms_lcl.h"
+#include "internal/nelem.h"
+
+/*-
+ * Attribute flags.
+ * CMS attribute restrictions are discussed in
+ * - RFC 5652 Section 11.
+ * ESS attribute restrictions are discussed in
+ * - RFC 2634 Section 1.3.4 AND
+ * - RFC 5035 Section 5.4
+ */
+/* This is a signed attribute */
+#define CMS_ATTR_F_SIGNED 0x01
+/* This is an unsigned attribute */
+#define CMS_ATTR_F_UNSIGNED 0x02
+/* Must be present if there are any other attributes of the same type */
+#define CMS_ATTR_F_REQUIRED_COND 0x10
+/* There can only be one instance of this attribute */
+#define CMS_ATTR_F_ONLY_ONE 0x20
+/* The Attribute's value must have exactly one entry */
+#define CMS_ATTR_F_ONE_ATTR_VALUE 0x40
+
+/* Attributes rules for different attributes */
+static const struct {
+ int nid; /* The attribute id */
+ int flags;
+} cms_attribute_properties[] = {
+ /* See RFC Section 11 */
+ { NID_pkcs9_contentType, CMS_ATTR_F_SIGNED
+ | CMS_ATTR_F_ONLY_ONE
+ | CMS_ATTR_F_ONE_ATTR_VALUE
+ | CMS_ATTR_F_REQUIRED_COND },
+ { NID_pkcs9_messageDigest, CMS_ATTR_F_SIGNED
+ | CMS_ATTR_F_ONLY_ONE
+ | CMS_ATTR_F_ONE_ATTR_VALUE
+ | CMS_ATTR_F_REQUIRED_COND },
+ { NID_pkcs9_signingTime, CMS_ATTR_F_SIGNED
+ | CMS_ATTR_F_ONLY_ONE
+ | CMS_ATTR_F_ONE_ATTR_VALUE },
+ { NID_pkcs9_countersignature, CMS_ATTR_F_UNSIGNED },
+ /* ESS */
+ { NID_id_smime_aa_signingCertificate, CMS_ATTR_F_SIGNED
+ | CMS_ATTR_F_ONLY_ONE
+ | CMS_ATTR_F_ONE_ATTR_VALUE },
+ { NID_id_smime_aa_signingCertificateV2, CMS_ATTR_F_SIGNED
+ | CMS_ATTR_F_ONLY_ONE
+ | CMS_ATTR_F_ONE_ATTR_VALUE },
+ { NID_id_smime_aa_receiptRequest, CMS_ATTR_F_SIGNED
+ | CMS_ATTR_F_ONLY_ONE
+ | CMS_ATTR_F_ONE_ATTR_VALUE }
+};
/* CMS SignedData Attribute utilities */
@@ -149,4 +199,86 @@ void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,
return X509at_get0_data_by_OBJ(si->unsignedAttrs, oid, lastpos, type);
}
-/* Specific attribute cases */
+/*
+ * Retrieve an attribute by nid from a stack of attributes starting at index
+ * *lastpos + 1.
+ * Returns the attribute or NULL if there is no attribute.
+ * If an attribute was found *lastpos returns the index of the found attribute.
+ */
+static X509_ATTRIBUTE *cms_attrib_get(int nid,
+ const STACK_OF(X509_ATTRIBUTE) *attrs,
+ int *lastpos)
+{
+ X509_ATTRIBUTE *at;
+ int loc;
+
+ loc = X509at_get_attr_by_NID(attrs, nid, *lastpos);
+ if (loc < 0)
+ return NULL;
+
+ at = X509at_get_attr(attrs, loc);
+ *lastpos = loc;
+ return at;
+}
+
+static int cms_check_attribute(int nid, int flags, int type,
+ const STACK_OF(X509_ATTRIBUTE) *attrs,
+ int have_attrs)
+{
+ int lastpos = -1;
+ X509_ATTRIBUTE *at = cms_attrib_get(nid, attrs, &lastpos);
+
+ if (at != NULL) {
+ int count = X509_ATTRIBUTE_count(at);
+
+ /* Is this attribute allowed? */
+ if (((flags & type) == 0)
+ /* check if multiple attributes of the same type are allowed */
+ || (((flags & CMS_ATTR_F_ONLY_ONE) != 0)
+ && cms_attrib_get(nid, attrs, &lastpos) != NULL)
+ /* Check if attribute should have exactly one value in its set */
+ || (((flags & CMS_ATTR_F_ONE_ATTR_VALUE) != 0)
+ && count != 1)
+ /* There should be at least one value */
+ || count == 0)
+ return 0;
+ } else {
+ /* fail if a required attribute is missing */
+ if (have_attrs
+ && ((flags & CMS_ATTR_F_REQUIRED_COND) != 0)
+ && (flags & type) != 0)
+ return 0;
+ }
+ return 1;
+}
+
+/*
+ * Check that the signerinfo attributes obey the attribute rules which includes
+ * the following checks
+ * - If any signed attributes exist then there must be a Content Type
+ * and Message Digest attribute in the signed attributes.
+ * - The countersignature attribute is an optional unsigned attribute only.
+ * - Content Type, Message Digest, and Signing time attributes are signed
+ * attributes. Only one instance of each is allowed, with each of these
+ * attributes containing a single attribute value in its set.
+ */
+int CMS_si_check_attributes(const CMS_SignerInfo *si)
+{
+ int i;
+ int have_signed_attrs = (CMS_signed_get_attr_count(si) > 0);
+ int have_unsigned_attrs = (CMS_unsigned_get_attr_count(si) > 0);
+
+ for (i = 0; i < (int)OSSL_NELEM(cms_attribute_properties); ++i) {
+ int nid = cms_attribute_properties[i].nid;
+ int flags = cms_attribute_properties[i].flags;
+
+ if (!cms_check_attribute(nid, flags, CMS_ATTR_F_SIGNED,
+ si->signedAttrs, have_signed_attrs)
+ || !cms_check_attribute(nid, flags, CMS_ATTR_F_UNSIGNED,
+ si->unsignedAttrs, have_unsigned_attrs)) {
+ CMSerr(CMS_F_CMS_SI_CHECK_ATTRIBUTES, CMS_R_ATTRIBUTE_ERROR);
+ return 0;
+ }
+ }
+ return 1;
+}
diff --git a/deps/openssl/openssl/crypto/cms/cms_env.c b/deps/openssl/openssl/crypto/cms/cms_env.c
index bb95af75e3e1dc..26fb81f79ab1f2 100644
--- a/deps/openssl/openssl/crypto/cms/cms_env.c
+++ b/deps/openssl/openssl/crypto/cms/cms_env.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -363,6 +363,7 @@ static int cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms,
unsigned char *ek = NULL;
size_t eklen;
int ret = 0;
+ size_t fixlen = 0;
CMS_EncryptedContentInfo *ec;
ec = cms->d.envelopedData->encryptedContentInfo;
@@ -371,6 +372,19 @@ static int cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms,
return 0;
}
+ if (cms->d.envelopedData->encryptedContentInfo->havenocert
+ && !cms->d.envelopedData->encryptedContentInfo->debug) {
+ X509_ALGOR *calg = ec->contentEncryptionAlgorithm;
+ const EVP_CIPHER *ciph = EVP_get_cipherbyobj(calg->algorithm);
+
+ if (ciph == NULL) {
+ CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT, CMS_R_UNKNOWN_CIPHER);
+ return 0;
+ }
+
+ fixlen = EVP_CIPHER_key_length(ciph);
+ }
+
ktri->pctx = EVP_PKEY_CTX_new(pkey, NULL);
if (ktri->pctx == NULL)
return 0;
@@ -401,7 +415,9 @@ static int cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms,
if (EVP_PKEY_decrypt(ktri->pctx, ek, &eklen,
ktri->encryptedKey->data,
- ktri->encryptedKey->length) <= 0) {
+ ktri->encryptedKey->length) <= 0
+ || eklen == 0
+ || (fixlen != 0 && eklen != fixlen)) {
CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT, CMS_R_CMS_LIB);
goto err;
}
diff --git a/deps/openssl/openssl/crypto/cms/cms_err.c b/deps/openssl/openssl/crypto/cms/cms_err.c
index 4432b471ee7620..a211f4954ce16f 100644
--- a/deps/openssl/openssl/crypto/cms/cms_err.c
+++ b/deps/openssl/openssl/crypto/cms/cms_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -146,6 +146,8 @@ static const ERR_STRING_DATA CMS_str_functs[] = {
{ERR_PACK(ERR_LIB_CMS, CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT, 0),
"CMS_SignerInfo_verify_content"},
{ERR_PACK(ERR_LIB_CMS, CMS_F_CMS_SIGN_RECEIPT, 0), "CMS_sign_receipt"},
+ {ERR_PACK(ERR_LIB_CMS, CMS_F_CMS_SI_CHECK_ATTRIBUTES, 0),
+ "CMS_si_check_attributes"},
{ERR_PACK(ERR_LIB_CMS, CMS_F_CMS_STREAM, 0), "CMS_stream"},
{ERR_PACK(ERR_LIB_CMS, CMS_F_CMS_UNCOMPRESS, 0), "CMS_uncompress"},
{ERR_PACK(ERR_LIB_CMS, CMS_F_CMS_VERIFY, 0), "CMS_verify"},
@@ -155,6 +157,7 @@ static const ERR_STRING_DATA CMS_str_functs[] = {
static const ERR_STRING_DATA CMS_str_reasons[] = {
{ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ADD_SIGNER_ERROR), "add signer error"},
+ {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_ATTRIBUTE_ERROR), "attribute error"},
{ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CERTIFICATE_ALREADY_PRESENT),
"certificate already present"},
{ERR_PACK(ERR_LIB_CMS, 0, CMS_R_CERTIFICATE_HAS_NO_KEYID),
diff --git a/deps/openssl/openssl/crypto/cms/cms_lcl.h b/deps/openssl/openssl/crypto/cms/cms_lcl.h
index 916fcbfbe190b1..68aa01271bc2e7 100644
--- a/deps/openssl/openssl/crypto/cms/cms_lcl.h
+++ b/deps/openssl/openssl/crypto/cms/cms_lcl.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -125,6 +125,8 @@ struct CMS_EncryptedContentInfo_st {
size_t keylen;
/* Set to 1 if we are debugging decrypt and don't fake keys for MMA */
int debug;
+ /* Set to 1 if we have no cert and need extra safety measures for MMA */
+ int havenocert;
};
struct CMS_RecipientInfo_st {
@@ -317,8 +319,6 @@ struct CMS_OtherKeyAttribute_st {
/* ESS structures */
-# ifdef HEADER_X509V3_H
-
struct CMS_ReceiptRequest_st {
ASN1_OCTET_STRING *signedContentIdentifier;
CMS_ReceiptsFrom *receiptsFrom;
@@ -332,7 +332,6 @@ struct CMS_ReceiptsFrom_st {
STACK_OF(GENERAL_NAMES) *receiptList;
} d;
};
-# endif
struct CMS_Receipt_st {
int32_t version;
@@ -416,6 +415,8 @@ int cms_RecipientInfo_kari_encrypt(CMS_ContentInfo *cms,
/* PWRI routines */
int cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri,
int en_de);
+/* SignerInfo routines */
+int CMS_si_check_attributes(const CMS_SignerInfo *si);
DECLARE_ASN1_ITEM(CMS_CertificateChoices)
DECLARE_ASN1_ITEM(CMS_DigestedData)
diff --git a/deps/openssl/openssl/crypto/cms/cms_sd.c b/deps/openssl/openssl/crypto/cms/cms_sd.c
index ff2d540b6a30cd..3841513f8bd237 100644
--- a/deps/openssl/openssl/crypto/cms/cms_sd.c
+++ b/deps/openssl/openssl/crypto/cms/cms_sd.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -109,6 +109,27 @@ static void cms_sd_set_version(CMS_SignedData *sd)
}
+/*
+ * RFC 5652 Section 11.1 Content Type
+ * The content-type attribute within signed-data MUST
+ * 1) be present if there are signed attributes
+ * 2) match the content type in the signed-data,
+ * 3) be a signed attribute.
+ * 4) not have more than one copy of the attribute.
+ *
+ * Note that since the CMS_SignerInfo_sign() always adds the "signing time"
+ * attribute, the content type attribute MUST be added also.
+ * Assumptions: This assumes that the attribute does not already exist.
+ */
+static int cms_set_si_contentType_attr(CMS_ContentInfo *cms, CMS_SignerInfo *si)
+{
+ ASN1_OBJECT *ctype = cms->d.signedData->encapContentInfo->eContentType;
+
+ /* Add the contentType attribute */
+ return CMS_signed_add1_attr_by_NID(si, NID_pkcs9_contentType,
+ V_ASN1_OBJECT, ctype, -1) > 0;
+}
+
/* Copy an existing messageDigest value */
static int cms_copy_messageDigest(CMS_ContentInfo *cms, CMS_SignerInfo *si)
@@ -328,6 +349,8 @@ CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,
if (flags & CMS_REUSE_DIGEST) {
if (!cms_copy_messageDigest(cms, si))
goto err;
+ if (!cms_set_si_contentType_attr(cms, si))
+ goto err;
if (!(flags & (CMS_PARTIAL | CMS_KEY_PARAM)) &&
!CMS_SignerInfo_sign(si))
goto err;
@@ -558,8 +581,6 @@ static int cms_SignerInfo_content_sign(CMS_ContentInfo *cms,
*/
if (CMS_signed_get_attr_count(si) >= 0) {
- ASN1_OBJECT *ctype =
- cms->d.signedData->encapContentInfo->eContentType;
unsigned char md[EVP_MAX_MD_SIZE];
unsigned int mdlen;
if (!EVP_DigestFinal_ex(mctx, md, &mdlen))
@@ -568,9 +589,9 @@ static int cms_SignerInfo_content_sign(CMS_ContentInfo *cms,
V_ASN1_OCTET_STRING, md, mdlen))
goto err;
/* Copy content type across */
- if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_contentType,
- V_ASN1_OBJECT, ctype, -1) <= 0)
+ if (!cms_set_si_contentType_attr(cms, si))
goto err;
+
if (!CMS_SignerInfo_sign(si))
goto err;
} else if (si->pctx) {
@@ -650,6 +671,9 @@ int CMS_SignerInfo_sign(CMS_SignerInfo *si)
goto err;
}
+ if (!CMS_si_check_attributes(si))
+ goto err;
+
if (si->pctx)
pctx = si->pctx;
else {
@@ -696,7 +720,6 @@ int CMS_SignerInfo_sign(CMS_SignerInfo *si)
OPENSSL_free(abuf);
EVP_MD_CTX_reset(mctx);
return 0;
-
}
int CMS_SignerInfo_verify(CMS_SignerInfo *si)
@@ -711,6 +734,9 @@ int CMS_SignerInfo_verify(CMS_SignerInfo *si)
return -1;
}
+ if (!CMS_si_check_attributes(si))
+ return -1;
+
md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm);
if (md == NULL)
return -1;
diff --git a/deps/openssl/openssl/crypto/cms/cms_smime.c b/deps/openssl/openssl/crypto/cms/cms_smime.c
index 5dcf803f4bd3c9..10815639f81154 100644
--- a/deps/openssl/openssl/crypto/cms/cms_smime.c
+++ b/deps/openssl/openssl/crypto/cms/cms_smime.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -743,6 +743,10 @@ int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert,
cms->d.envelopedData->encryptedContentInfo->debug = 1;
else
cms->d.envelopedData->encryptedContentInfo->debug = 0;
+ if (!cert)
+ cms->d.envelopedData->encryptedContentInfo->havenocert = 1;
+ else
+ cms->d.envelopedData->encryptedContentInfo->havenocert = 0;
if (!pk && !cert && !dcont && !out)
return 1;
if (pk && !CMS_decrypt_set1_pkey(cms, pk, cert))
diff --git a/deps/openssl/openssl/crypto/conf/conf_sap.c b/deps/openssl/openssl/crypto/conf/conf_sap.c
index 3805c426d80204..82105de748ed54 100644
--- a/deps/openssl/openssl/crypto/conf/conf_sap.c
+++ b/deps/openssl/openssl/crypto/conf/conf_sap.c
@@ -42,7 +42,7 @@ void OPENSSL_config(const char *appname)
int openssl_config_int(const OPENSSL_INIT_SETTINGS *settings)
{
- int ret;
+ int ret = 0;
const char *filename;
const char *appname;
unsigned long flags;
diff --git a/deps/openssl/openssl/crypto/ctype.c b/deps/openssl/openssl/crypto/ctype.c
index 813be25a074121..e05f84cd40860a 100644
--- a/deps/openssl/openssl/crypto/ctype.c
+++ b/deps/openssl/openssl/crypto/ctype.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -272,3 +272,9 @@ int ossl_toupper(int c)
{
return ossl_islower(c) ? c ^ case_change : c;
}
+
+int ascii_isdigit(const char inchar) {
+ if (inchar > 0x2F && inchar < 0x3A)
+ return 1;
+ return 0;
+}
diff --git a/deps/openssl/openssl/crypto/dh/dh_check.c b/deps/openssl/openssl/crypto/dh/dh_check.c
index c7e1dbf4ac0f68..d13d8206ce5093 100644
--- a/deps/openssl/openssl/crypto/dh/dh_check.c
+++ b/deps/openssl/openssl/crypto/dh/dh_check.c
@@ -24,7 +24,8 @@ int DH_check_params_ex(const DH *dh)
{
int errflags = 0;
- (void)DH_check_params(dh, &errflags);
+ if (!DH_check_params(dh, &errflags))
+ return 0;
if ((errflags & DH_CHECK_P_NOT_PRIME) != 0)
DHerr(DH_F_DH_CHECK_PARAMS_EX, DH_R_CHECK_P_NOT_PRIME);
@@ -67,18 +68,14 @@ int DH_check_params(const DH *dh, int *ret)
/*-
* Check that p is a safe prime and
- * if g is 2, 3 or 5, check that it is a suitable generator
- * where
- * for 2, p mod 24 == 11
- * for 3, p mod 12 == 5
- * for 5, p mod 10 == 3 or 7
- * should hold.
+ * g is a suitable generator.
*/
int DH_check_ex(const DH *dh)
{
int errflags = 0;
- (void)DH_check(dh, &errflags);
+ if (!DH_check(dh, &errflags))
+ return 0;
if ((errflags & DH_NOT_SUITABLE_GENERATOR) != 0)
DHerr(DH_F_DH_CHECK_EX, DH_R_NOT_SUITABLE_GENERATOR);
@@ -102,10 +99,11 @@ int DH_check(const DH *dh, int *ret)
{
int ok = 0, r;
BN_CTX *ctx = NULL;
- BN_ULONG l;
BIGNUM *t1 = NULL, *t2 = NULL;
- *ret = 0;
+ if (!DH_check_params(dh, ret))
+ return 0;
+
ctx = BN_CTX_new();
if (ctx == NULL)
goto err;
@@ -139,21 +137,7 @@ int DH_check(const DH *dh, int *ret)
*ret |= DH_CHECK_INVALID_Q_VALUE;
if (dh->j && BN_cmp(dh->j, t1))
*ret |= DH_CHECK_INVALID_J_VALUE;
-
- } else if (BN_is_word(dh->g, DH_GENERATOR_2)) {
- l = BN_mod_word(dh->p, 24);
- if (l == (BN_ULONG)-1)
- goto err;
- if (l != 11)
- *ret |= DH_NOT_SUITABLE_GENERATOR;
- } else if (BN_is_word(dh->g, DH_GENERATOR_5)) {
- l = BN_mod_word(dh->p, 10);
- if (l == (BN_ULONG)-1)
- goto err;
- if ((l != 3) && (l != 7))
- *ret |= DH_NOT_SUITABLE_GENERATOR;
- } else
- *ret |= DH_UNABLE_TO_CHECK_GENERATOR;
+ }
r = BN_is_prime_ex(dh->p, DH_NUMBER_ITERATIONS_FOR_PRIME, ctx, NULL);
if (r < 0)
@@ -180,7 +164,8 @@ int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key)
{
int errflags = 0;
- (void)DH_check(dh, &errflags);
+ if (!DH_check_pub_key(dh, pub_key, &errflags))
+ return 0;
if ((errflags & DH_CHECK_PUBKEY_TOO_SMALL) != 0)
DHerr(DH_F_DH_CHECK_PUB_KEY_EX, DH_R_CHECK_PUBKEY_TOO_SMALL);
diff --git a/deps/openssl/openssl/crypto/dh/dh_gen.c b/deps/openssl/openssl/crypto/dh/dh_gen.c
index 887fc4c3aedeed..d293835eb22b7e 100644
--- a/deps/openssl/openssl/crypto/dh/dh_gen.c
+++ b/deps/openssl/openssl/crypto/dh/dh_gen.c
@@ -30,30 +30,33 @@ int DH_generate_parameters_ex(DH *ret, int prime_len, int generator,
/*-
* We generate DH parameters as follows
- * find a prime q which is prime_len/2 bits long.
- * p=(2*q)+1 or (p-1)/2 = q
- * For this case, g is a generator if
- * g^((p-1)/q) mod p != 1 for values of q which are the factors of p-1.
- * Since the factors of p-1 are q and 2, we just need to check
- * g^2 mod p != 1 and g^q mod p != 1.
+ * find a prime p which is prime_len bits long,
+ * where q=(p-1)/2 is also prime.
+ * In the following we assume that g is not 0, 1 or p-1, since it
+ * would generate only trivial subgroups.
+ * For this case, g is a generator of the order-q subgroup if
+ * g^q mod p == 1.
+ * Or in terms of the Legendre symbol: (g/p) == 1.
*
* Having said all that,
* there is another special case method for the generators 2, 3 and 5.
- * for 2, p mod 24 == 11
- * for 3, p mod 12 == 5 <<<<< does not work for safe primes.
- * for 5, p mod 10 == 3 or 7
+ * Using the quadratic reciprocity law it is possible to solve
+ * (g/p) == 1 for the special values 2, 3, 5:
+ * (2/p) == 1 if p mod 8 == 1 or 7.
+ * (3/p) == 1 if p mod 12 == 1 or 11.
+ * (5/p) == 1 if p mod 5 == 1 or 4.
+ * See for instance: https://en.wikipedia.org/wiki/Legendre_symbol
*
- * Thanks to Phil Karn for the pointers about the
- * special generators and for answering some of my questions.
+ * Since all safe primes > 7 must satisfy p mod 12 == 11
+ * and all safe primes > 11 must satisfy p mod 5 != 1
+ * we can further improve the condition for g = 2, 3 and 5:
+ * for 2, p mod 24 == 23
+ * for 3, p mod 12 == 11
+ * for 5, p mod 60 == 59
*
- * I've implemented the second simple method :-).
- * Since DH should be using a safe prime (both p and q are prime),
- * this generator function can take a very very long time to run.
- */
-/*
- * Actually there is no reason to insist that 'generator' be a generator.
- * It's just as OK (and in some sense better) to use a generator of the
- * order-q subgroup.
+ * However for compatibilty with previous versions we use:
+ * for 2, p mod 24 == 11
+ * for 5, p mod 60 == 23
*/
static int dh_builtin_genparams(DH *ret, int prime_len, int generator,
BN_GENCB *cb)
@@ -88,13 +91,10 @@ static int dh_builtin_genparams(DH *ret, int prime_len, int generator,
goto err;
g = 2;
} else if (generator == DH_GENERATOR_5) {
- if (!BN_set_word(t1, 10))
+ if (!BN_set_word(t1, 60))
goto err;
- if (!BN_set_word(t2, 3))
+ if (!BN_set_word(t2, 23))
goto err;
- /*
- * BN_set_word(t3,7); just have to miss out on these ones :-(
- */
g = 5;
} else {
/*
@@ -102,9 +102,9 @@ static int dh_builtin_genparams(DH *ret, int prime_len, int generator,
* not: since we are using safe primes, it will generate either an
* order-q or an order-2q group, which both is OK
*/
- if (!BN_set_word(t1, 2))
+ if (!BN_set_word(t1, 12))
goto err;
- if (!BN_set_word(t2, 1))
+ if (!BN_set_word(t2, 11))
goto err;
g = generator;
}
diff --git a/deps/openssl/openssl/crypto/dh/dh_key.c b/deps/openssl/openssl/crypto/dh/dh_key.c
index 99c00e5a05d1cb..718aa422d9354a 100644
--- a/deps/openssl/openssl/crypto/dh/dh_key.c
+++ b/deps/openssl/openssl/crypto/dh/dh_key.c
@@ -125,6 +125,15 @@ static int generate_key(DH *dh)
l = dh->length ? dh->length : BN_num_bits(dh->p) - 1;
if (!BN_priv_rand(priv_key, l, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY))
goto err;
+ /*
+ * We handle just one known case where g is a quadratic non-residue:
+ * for g = 2: p % 8 == 3
+ */
+ if (BN_is_word(dh->g, DH_GENERATOR_2) && !BN_is_bit_set(dh->p, 2)) {
+ /* clear bit 0, since it won't be a secret anyway */
+ if (!BN_clear_bit(priv_key, 0))
+ goto err;
+ }
}
}
@@ -136,11 +145,11 @@ static int generate_key(DH *dh)
BN_with_flags(prk, priv_key, BN_FLG_CONSTTIME);
if (!dh->meth->bn_mod_exp(dh, pub_key, dh->g, prk, dh->p, ctx, mont)) {
- BN_free(prk);
+ BN_clear_free(prk);
goto err;
}
/* We MUST free prk before any further use of priv_key */
- BN_free(prk);
+ BN_clear_free(prk);
}
dh->pub_key = pub_key;
diff --git a/deps/openssl/openssl/crypto/dh/dh_lib.c b/deps/openssl/openssl/crypto/dh/dh_lib.c
index 962f864deec614..e7e7ef08e9e3ce 100644
--- a/deps/openssl/openssl/crypto/dh/dh_lib.c
+++ b/deps/openssl/openssl/crypto/dh/dh_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -234,11 +234,11 @@ void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
{
if (pub_key != NULL) {
- BN_free(dh->pub_key);
+ BN_clear_free(dh->pub_key);
dh->pub_key = pub_key;
}
if (priv_key != NULL) {
- BN_free(dh->priv_key);
+ BN_clear_free(dh->priv_key);
dh->priv_key = priv_key;
}
diff --git a/deps/openssl/openssl/crypto/dsa/dsa_ameth.c b/deps/openssl/openssl/crypto/dsa/dsa_ameth.c
index 9c5b8aa02e9dbd..49aa1ae23bab08 100644
--- a/deps/openssl/openssl/crypto/dsa/dsa_ameth.c
+++ b/deps/openssl/openssl/crypto/dsa/dsa_ameth.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -503,7 +503,7 @@ static int dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
case ASN1_PKEY_CTRL_DEFAULT_MD_NID:
*(int *)arg2 = NID_sha256;
- return 2;
+ return 1;
default:
return -2;
diff --git a/deps/openssl/openssl/crypto/dsa/dsa_err.c b/deps/openssl/openssl/crypto/dsa/dsa_err.c
index 8f97f6f3f9eed6..8dcf0548ac76ab 100644
--- a/deps/openssl/openssl/crypto/dsa/dsa_err.c
+++ b/deps/openssl/openssl/crypto/dsa/dsa_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -52,6 +52,8 @@ static const ERR_STRING_DATA DSA_str_reasons[] = {
"invalid digest type"},
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_INVALID_PARAMETERS), "invalid parameters"},
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_MISSING_PARAMETERS), "missing parameters"},
+ {ERR_PACK(ERR_LIB_DSA, 0, DSA_R_MISSING_PRIVATE_KEY),
+ "missing private key"},
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_MODULUS_TOO_LARGE), "modulus too large"},
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_NO_PARAMETERS_SET), "no parameters set"},
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_PARAMETER_ENCODING_ERROR),
diff --git a/deps/openssl/openssl/crypto/dsa/dsa_ossl.c b/deps/openssl/openssl/crypto/dsa/dsa_ossl.c
index cefda5a450fa51..16161dcadf22bb 100644
--- a/deps/openssl/openssl/crypto/dsa/dsa_ossl.c
+++ b/deps/openssl/openssl/crypto/dsa/dsa_ossl.c
@@ -72,6 +72,10 @@ static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
reason = DSA_R_MISSING_PARAMETERS;
goto err;
}
+ if (dsa->priv_key == NULL) {
+ reason = DSA_R_MISSING_PRIVATE_KEY;
+ goto err;
+ }
ret = DSA_SIG_new();
if (ret == NULL)
@@ -195,6 +199,10 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in,
DSAerr(DSA_F_DSA_SIGN_SETUP, DSA_R_INVALID_PARAMETERS);
return 0;
}
+ if (dsa->priv_key == NULL) {
+ DSAerr(DSA_F_DSA_SIGN_SETUP, DSA_R_MISSING_PRIVATE_KEY);
+ return 0;
+ }
k = BN_new();
l = BN_new();
@@ -248,7 +256,7 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in,
* one bit longer than the modulus.
*
* There are some concerns about the efficacy of doing this. More
- * specificly refer to the discussion starting with:
+ * specifically refer to the discussion starting with:
* https://github.com/openssl/openssl/pull/7486#discussion_r228323705
* The fix is to rework BN so these gymnastics aren't required.
*/
diff --git a/deps/openssl/openssl/crypto/dso/dso_dlfcn.c b/deps/openssl/openssl/crypto/dso/dso_dlfcn.c
index 4240f5f5e30c85..ba3b55fcbffad1 100644
--- a/deps/openssl/openssl/crypto/dso/dso_dlfcn.c
+++ b/deps/openssl/openssl/crypto/dso/dso_dlfcn.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -27,8 +27,7 @@
# endif
# include
# define HAVE_DLINFO 1
-# if defined(__CYGWIN__) || \
- defined(__SCO_VERSION__) || defined(_SCO_ELF) || \
+# if defined(__SCO_VERSION__) || defined(_SCO_ELF) || \
(defined(__osf__) && !defined(RTLD_NEXT)) || \
(defined(__OpenBSD__) && !defined(RTLD_SELF)) || \
defined(__ANDROID__)
diff --git a/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-sparcv9.pl b/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-sparcv9.pl
index 0a4def6e2bf62d..4383bea4a7bed6 100755
--- a/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-sparcv9.pl
+++ b/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-sparcv9.pl
@@ -1,5 +1,5 @@
#! /usr/bin/env perl
-# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -2301,7 +2301,6 @@
# !in1infty, !in2infty and result of check for zero.
$code.=<<___;
-.globl ecp_nistz256_point_add_vis3
.align 32
ecp_nistz256_point_add_vis3:
save %sp,-STACK64_FRAME-32*18-32,%sp
diff --git a/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl b/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl
index 87149e7f680dfb..10ccc6414a498c 100755
--- a/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl
+++ b/deps/openssl/openssl/crypto/ec/asm/ecp_nistz256-x86_64.pl
@@ -1301,7 +1301,7 @@
################################# reduction
mulx 8*0+128(%r14), $t0, $t1
- adcx $t0, $acc3 # guranteed to be zero
+ adcx $t0, $acc3 # guaranteed to be zero
adox $t1, $acc4
mulx 8*1+128(%r14), $t0, $t1
diff --git a/deps/openssl/openssl/crypto/ec/asm/x25519-ppc64.pl b/deps/openssl/openssl/crypto/ec/asm/x25519-ppc64.pl
index 3773cb27cd6521..6e8b36420f53bf 100755
--- a/deps/openssl/openssl/crypto/ec/asm/x25519-ppc64.pl
+++ b/deps/openssl/openssl/crypto/ec/asm/x25519-ppc64.pl
@@ -1,5 +1,5 @@
#! /usr/bin/env perl
-# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -451,7 +451,7 @@
and $t0,$t0,$t1
sldi $a3,$a3,1
add $t0,$t0,$t1 # compare to modulus in the same go
- srdi $a3,$a3,1 # most signifcant bit cleared
+ srdi $a3,$a3,1 # most significant bit cleared
addc $a0,$a0,$t0
addze $a1,$a1
@@ -462,7 +462,7 @@
sradi $t0,$a3,63 # most significant bit -> mask
sldi $a3,$a3,1
andc $t0,$t1,$t0
- srdi $a3,$a3,1 # most signifcant bit cleared
+ srdi $a3,$a3,1 # most significant bit cleared
subi $rp,$rp,1
subfc $a0,$t0,$a0
diff --git a/deps/openssl/openssl/crypto/ec/ec_asn1.c b/deps/openssl/openssl/crypto/ec/ec_asn1.c
index 13c56a621dd75f..1ce1181fc10a2f 100644
--- a/deps/openssl/openssl/crypto/ec/ec_asn1.c
+++ b/deps/openssl/openssl/crypto/ec/ec_asn1.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -568,10 +568,12 @@ ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group,
EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params)
{
int ok = 0, tmp;
- EC_GROUP *ret = NULL;
+ EC_GROUP *ret = NULL, *dup = NULL;
BIGNUM *p = NULL, *a = NULL, *b = NULL;
EC_POINT *point = NULL;
long field_bits;
+ int curve_name = NID_undef;
+ BN_CTX *ctx = NULL;
if (!params->fieldID || !params->fieldID->fieldType ||
!params->fieldID->p.ptr) {
@@ -789,18 +791,79 @@ EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params)
goto err;
}
+ /*
+ * Check if the explicit parameters group just created matches one of the
+ * built-in curves.
+ *
+ * We create a copy of the group just built, so that we can remove optional
+ * fields for the lookup: we do this to avoid the possibility that one of
+ * the optional parameters is used to force the library into using a less
+ * performant and less secure EC_METHOD instead of the specialized one.
+ * In any case, `seed` is not really used in any computation, while a
+ * cofactor different from the one in the built-in table is just
+ * mathematically wrong anyway and should not be used.
+ */
+ if ((ctx = BN_CTX_new()) == NULL) {
+ ECerr(EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS, ERR_R_BN_LIB);
+ goto err;
+ }
+ if ((dup = EC_GROUP_dup(ret)) == NULL
+ || EC_GROUP_set_seed(dup, NULL, 0) != 1
+ || !EC_GROUP_set_generator(dup, point, a, NULL)) {
+ ECerr(EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS, ERR_R_EC_LIB);
+ goto err;
+ }
+ if ((curve_name = ec_curve_nid_from_params(dup, ctx)) != NID_undef) {
+ /*
+ * The input explicit parameters successfully matched one of the
+ * built-in curves: often for built-in curves we have specialized
+ * methods with better performance and hardening.
+ *
+ * In this case we replace the `EC_GROUP` created through explicit
+ * parameters with one created from a named group.
+ */
+ EC_GROUP *named_group = NULL;
+
+#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+ /*
+ * NID_wap_wsg_idm_ecid_wtls12 and NID_secp224r1 are both aliases for
+ * the same curve, we prefer the SECP nid when matching explicit
+ * parameters as that is associated with a specialized EC_METHOD.
+ */
+ if (curve_name == NID_wap_wsg_idm_ecid_wtls12)
+ curve_name = NID_secp224r1;
+#endif /* !def(OPENSSL_NO_EC_NISTP_64_GCC_128) */
+
+ if ((named_group = EC_GROUP_new_by_curve_name(curve_name)) == NULL) {
+ ECerr(EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS, ERR_R_EC_LIB);
+ goto err;
+ }
+ EC_GROUP_free(ret);
+ ret = named_group;
+
+ /*
+ * Set the flag so that EC_GROUPs created from explicit parameters are
+ * serialized using explicit parameters by default.
+ */
+ EC_GROUP_set_asn1_flag(ret, OPENSSL_EC_EXPLICIT_CURVE);
+ }
+
ok = 1;
err:
if (!ok) {
- EC_GROUP_clear_free(ret);
+ EC_GROUP_free(ret);
ret = NULL;
}
+ EC_GROUP_free(dup);
BN_free(p);
BN_free(a);
BN_free(b);
EC_POINT_free(point);
+
+ BN_CTX_free(ctx);
+
return ret;
}
@@ -861,7 +924,7 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in, long len)
}
if (a) {
- EC_GROUP_clear_free(*a);
+ EC_GROUP_free(*a);
*a = group;
}
@@ -909,7 +972,7 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len)
ret = *a;
if (priv_key->parameters) {
- EC_GROUP_clear_free(ret->group);
+ EC_GROUP_free(ret->group);
ret->group = EC_GROUP_new_from_ecpkparameters(priv_key->parameters);
}
diff --git a/deps/openssl/openssl/crypto/ec/ec_curve.c b/deps/openssl/openssl/crypto/ec/ec_curve.c
index bb1ce196d0fa6b..477349d4413e1a 100644
--- a/deps/openssl/openssl/crypto/ec/ec_curve.c
+++ b/deps/openssl/openssl/crypto/ec/ec_curve.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved.
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
*
* Licensed under the OpenSSL license (the "License"). You may not use
@@ -3197,3 +3197,115 @@ int EC_curve_nist2nid(const char *name)
}
return NID_undef;
}
+
+#define NUM_BN_FIELDS 6
+/*
+ * Validates EC domain parameter data for known named curves.
+ * This can be used when a curve is loaded explicitly (without a curve
+ * name) or to validate that domain parameters have not been modified.
+ *
+ * Returns: The nid associated with the found named curve, or NID_undef
+ * if not found. If there was an error it returns -1.
+ */
+int ec_curve_nid_from_params(const EC_GROUP *group, BN_CTX *ctx)
+{
+ int ret = -1, nid, len, field_type, param_len;
+ size_t i, seed_len;
+ const unsigned char *seed, *params_seed, *params;
+ unsigned char *param_bytes = NULL;
+ const EC_CURVE_DATA *data;
+ const EC_POINT *generator = NULL;
+ const EC_METHOD *meth;
+ const BIGNUM *cofactor = NULL;
+ /* An array of BIGNUMs for (p, a, b, x, y, order) */
+ BIGNUM *bn[NUM_BN_FIELDS] = {NULL, NULL, NULL, NULL, NULL, NULL};
+
+ meth = EC_GROUP_method_of(group);
+ if (meth == NULL)
+ return -1;
+ /* Use the optional named curve nid as a search field */
+ nid = EC_GROUP_get_curve_name(group);
+ field_type = EC_METHOD_get_field_type(meth);
+ seed_len = EC_GROUP_get_seed_len(group);
+ seed = EC_GROUP_get0_seed(group);
+ cofactor = EC_GROUP_get0_cofactor(group);
+
+ BN_CTX_start(ctx);
+
+ /*
+ * The built-in curves contains data fields (p, a, b, x, y, order) that are
+ * all zero-padded to be the same size. The size of the padding is
+ * determined by either the number of bytes in the field modulus (p) or the
+ * EC group order, whichever is larger.
+ */
+ param_len = BN_num_bytes(group->order);
+ len = BN_num_bytes(group->field);
+ if (len > param_len)
+ param_len = len;
+
+ /* Allocate space to store the padded data for (p, a, b, x, y, order) */
+ param_bytes = OPENSSL_malloc(param_len * NUM_BN_FIELDS);
+ if (param_bytes == NULL)
+ goto end;
+
+ /* Create the bignums */
+ for (i = 0; i < NUM_BN_FIELDS; ++i) {
+ if ((bn[i] = BN_CTX_get(ctx)) == NULL)
+ goto end;
+ }
+ /*
+ * Fill in the bn array with the same values as the internal curves
+ * i.e. the values are p, a, b, x, y, order.
+ */
+ /* Get p, a & b */
+ if (!(EC_GROUP_get_curve(group, bn[0], bn[1], bn[2], ctx)
+ && ((generator = EC_GROUP_get0_generator(group)) != NULL)
+ /* Get x & y */
+ && EC_POINT_get_affine_coordinates(group, generator, bn[3], bn[4], ctx)
+ /* Get order */
+ && EC_GROUP_get_order(group, bn[5], ctx)))
+ goto end;
+
+ /*
+ * Convert the bignum array to bytes that are joined together to form
+ * a single buffer that contains data for all fields.
+ * (p, a, b, x, y, order) are all zero padded to be the same size.
+ */
+ for (i = 0; i < NUM_BN_FIELDS; ++i) {
+ if (BN_bn2binpad(bn[i], ¶m_bytes[i*param_len], param_len) <= 0)
+ goto end;
+ }
+
+ for (i = 0; i < curve_list_length; i++) {
+ const ec_list_element curve = curve_list[i];
+
+ data = curve.data;
+ /* Get the raw order byte data */
+ params_seed = (const unsigned char *)(data + 1); /* skip header */
+ params = params_seed + data->seed_len;
+
+ /* Look for unique fields in the fixed curve data */
+ if (data->field_type == field_type
+ && param_len == data->param_len
+ && (nid <= 0 || nid == curve.nid)
+ /* check the optional cofactor (ignore if its zero) */
+ && (BN_is_zero(cofactor)
+ || BN_is_word(cofactor, (const BN_ULONG)curve.data->cofactor))
+ /* Check the optional seed (ignore if its not set) */
+ && (data->seed_len == 0 || seed_len == 0
+ || ((size_t)data->seed_len == seed_len
+ && memcmp(params_seed, seed, seed_len) == 0))
+ /* Check that the groups params match the built-in curve params */
+ && memcmp(param_bytes, params, param_len * NUM_BN_FIELDS)
+ == 0) {
+ ret = curve.nid;
+ goto end;
+ }
+ }
+ /* Gets here if the group was not found */
+ ret = NID_undef;
+end:
+ OPENSSL_free(param_bytes);
+ BN_CTX_end(ctx);
+ return ret;
+}
diff --git a/deps/openssl/openssl/crypto/ec/ec_lcl.h b/deps/openssl/openssl/crypto/ec/ec_lcl.h
index 119255f1dc832b..fbdb04ea3a0423 100644
--- a/deps/openssl/openssl/crypto/ec/ec_lcl.h
+++ b/deps/openssl/openssl/crypto/ec/ec_lcl.h
@@ -154,7 +154,7 @@ struct ec_method_st {
int (*field_div) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
const BIGNUM *b, BN_CTX *);
/*-
- * 'field_inv' computes the multipicative inverse of a in the field,
+ * 'field_inv' computes the multiplicative inverse of a in the field,
* storing the result in r.
*
* If 'a' is zero (or equivalent), you'll get an EC_R_CANNOT_INVERT error.
@@ -595,6 +595,8 @@ int ec_key_simple_generate_key(EC_KEY *eckey);
int ec_key_simple_generate_public_key(EC_KEY *eckey);
int ec_key_simple_check_key(const EC_KEY *eckey);
+int ec_curve_nid_from_params(const EC_GROUP *group, BN_CTX *ctx);
+
/* EC_METHOD definitions */
struct ec_key_method_st {
diff --git a/deps/openssl/openssl/crypto/ec/ec_lib.c b/deps/openssl/openssl/crypto/ec/ec_lib.c
index 8cab5a5061cf04..1289c8608eddfb 100644
--- a/deps/openssl/openssl/crypto/ec/ec_lib.c
+++ b/deps/openssl/openssl/crypto/ec/ec_lib.c
@@ -265,6 +265,67 @@ int EC_METHOD_get_field_type(const EC_METHOD *meth)
static int ec_precompute_mont_data(EC_GROUP *);
+/*-
+ * Try computing cofactor from the generator order (n) and field cardinality (q).
+ * This works for all curves of cryptographic interest.
+ *
+ * Hasse thm: q + 1 - 2*sqrt(q) <= n*h <= q + 1 + 2*sqrt(q)
+ * h_min = (q + 1 - 2*sqrt(q))/n
+ * h_max = (q + 1 + 2*sqrt(q))/n
+ * h_max - h_min = 4*sqrt(q)/n
+ * So if n > 4*sqrt(q) holds, there is only one possible value for h:
+ * h = \lfloor (h_min + h_max)/2 \rceil = \lfloor (q + 1)/n \rceil
+ *
+ * Otherwise, zero cofactor and return success.
+ */
+static int ec_guess_cofactor(EC_GROUP *group) {
+ int ret = 0;
+ BN_CTX *ctx = NULL;
+ BIGNUM *q = NULL;
+
+ /*-
+ * If the cofactor is too large, we cannot guess it.
+ * The RHS of below is a strict overestimate of lg(4 * sqrt(q))
+ */
+ if (BN_num_bits(group->order) <= (BN_num_bits(group->field) + 1) / 2 + 3) {
+ /* default to 0 */
+ BN_zero(group->cofactor);
+ /* return success */
+ return 1;
+ }
+
+ if ((ctx = BN_CTX_new()) == NULL)
+ return 0;
+
+ BN_CTX_start(ctx);
+ if ((q = BN_CTX_get(ctx)) == NULL)
+ goto err;
+
+ /* set q = 2**m for binary fields; q = p otherwise */
+ if (group->meth->field_type == NID_X9_62_characteristic_two_field) {
+ BN_zero(q);
+ if (!BN_set_bit(q, BN_num_bits(group->field) - 1))
+ goto err;
+ } else {
+ if (!BN_copy(q, group->field))
+ goto err;
+ }
+
+ /* compute h = \lfloor (q + 1)/n \rceil = \lfloor (q + 1 + n/2)/n \rfloor */
+ if (!BN_rshift1(group->cofactor, group->order) /* n/2 */
+ || !BN_add(group->cofactor, group->cofactor, q) /* q + n/2 */
+ /* q + 1 + n/2 */
+ || !BN_add(group->cofactor, group->cofactor, BN_value_one())
+ /* (q + 1 + n/2)/n */
+ || !BN_div(group->cofactor, NULL, group->cofactor, group->order, ctx))
+ goto err;
+ ret = 1;
+ err:
+ BN_CTX_end(ctx);
+ BN_CTX_free(ctx);
+ return ret;
+}
+
int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
const BIGNUM *order, const BIGNUM *cofactor)
{
@@ -273,6 +334,34 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
return 0;
}
+ /* require group->field >= 1 */
+ if (group->field == NULL || BN_is_zero(group->field)
+ || BN_is_negative(group->field)) {
+ ECerr(EC_F_EC_GROUP_SET_GENERATOR, EC_R_INVALID_FIELD);
+ return 0;
+ }
+
+ /*-
+ * - require order >= 1
+ * - enforce upper bound due to Hasse thm: order can be no more than one bit
+ * longer than field cardinality
+ */
+ if (order == NULL || BN_is_zero(order) || BN_is_negative(order)
+ || BN_num_bits(order) > BN_num_bits(group->field) + 1) {
+ ECerr(EC_F_EC_GROUP_SET_GENERATOR, EC_R_INVALID_GROUP_ORDER);
+ return 0;
+ }
+
+ /*-
+ * Unfortunately the cofactor is an optional field in many standards.
+ * Internally, the lib uses 0 cofactor as a marker for "unknown cofactor".
+ * So accept cofactor == NULL or cofactor >= 0.
+ */
+ if (cofactor != NULL && BN_is_negative(cofactor)) {
+ ECerr(EC_F_EC_GROUP_SET_GENERATOR, EC_R_UNKNOWN_COFACTOR);
+ return 0;
+ }
+
if (group->generator == NULL) {
group->generator = EC_POINT_new(group);
if (group->generator == NULL)
@@ -281,17 +370,17 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
if (!EC_POINT_copy(group->generator, generator))
return 0;
- if (order != NULL) {
- if (!BN_copy(group->order, order))
- return 0;
- } else
- BN_zero(group->order);
+ if (!BN_copy(group->order, order))
+ return 0;
- if (cofactor != NULL) {
+ /* Either take the provided positive cofactor, or try to compute it */
+ if (cofactor != NULL && !BN_is_zero(cofactor)) {
if (!BN_copy(group->cofactor, cofactor))
return 0;
- } else
+ } else if (!ec_guess_cofactor(group)) {
BN_zero(group->cofactor);
+ return 0;
+ }
/*
* Some groups have an order with
diff --git a/deps/openssl/openssl/crypto/ec/ecdh_ossl.c b/deps/openssl/openssl/crypto/ec/ecdh_ossl.c
index 5608c62b2ac94e..ab51ee7138ff89 100644
--- a/deps/openssl/openssl/crypto/ec/ecdh_ossl.c
+++ b/deps/openssl/openssl/crypto/ec/ecdh_ossl.c
@@ -58,7 +58,7 @@ int ecdh_simple_compute_key(unsigned char **pout, size_t *poutlen,
priv_key = EC_KEY_get0_private_key(ecdh);
if (priv_key == NULL) {
- ECerr(EC_F_ECDH_SIMPLE_COMPUTE_KEY, EC_R_NO_PRIVATE_VALUE);
+ ECerr(EC_F_ECDH_SIMPLE_COMPUTE_KEY, EC_R_MISSING_PRIVATE_KEY);
goto err;
}
diff --git a/deps/openssl/openssl/crypto/ec/ecdsa_ossl.c b/deps/openssl/openssl/crypto/ec/ecdsa_ossl.c
index e35c7600d8668d..c35ed2dcd0e7db 100644
--- a/deps/openssl/openssl/crypto/ec/ecdsa_ossl.c
+++ b/deps/openssl/openssl/crypto/ec/ecdsa_ossl.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -41,11 +41,16 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
const EC_GROUP *group;
int ret = 0;
int order_bits;
+ const BIGNUM *priv_key;
if (eckey == NULL || (group = EC_KEY_get0_group(eckey)) == NULL) {
ECerr(EC_F_ECDSA_SIGN_SETUP, ERR_R_PASSED_NULL_PARAMETER);
return 0;
}
+ if ((priv_key = EC_KEY_get0_private_key(eckey)) == NULL) {
+ ECerr(EC_F_ECDSA_SIGN_SETUP, EC_R_MISSING_PRIVATE_KEY);
+ return 0;
+ }
if (!EC_KEY_can_sign(eckey)) {
ECerr(EC_F_ECDSA_SIGN_SETUP, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING);
@@ -83,8 +88,7 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
/* get random k */
do {
if (dgst != NULL) {
- if (!BN_generate_dsa_nonce(k, order,
- EC_KEY_get0_private_key(eckey),
+ if (!BN_generate_dsa_nonce(k, order, priv_key,
dgst, dlen, ctx)) {
ECerr(EC_F_ECDSA_SIGN_SETUP,
EC_R_RANDOM_NUMBER_GENERATION_FAILED);
@@ -162,10 +166,14 @@ ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,
group = EC_KEY_get0_group(eckey);
priv_key = EC_KEY_get0_private_key(eckey);
- if (group == NULL || priv_key == NULL) {
+ if (group == NULL) {
ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_PASSED_NULL_PARAMETER);
return NULL;
}
+ if (priv_key == NULL) {
+ ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, EC_R_MISSING_PRIVATE_KEY);
+ return NULL;
+ }
if (!EC_KEY_can_sign(eckey)) {
ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING);
diff --git a/deps/openssl/openssl/crypto/ec/ecp_nistp224.c b/deps/openssl/openssl/crypto/ec/ecp_nistp224.c
index 025273a1444087..fbbdb9d9386cbf 100644
--- a/deps/openssl/openssl/crypto/ec/ecp_nistp224.c
+++ b/deps/openssl/openssl/crypto/ec/ecp_nistp224.c
@@ -324,34 +324,21 @@ static void felem_to_bin28(u8 out[28], const felem in)
}
}
-/* To preserve endianness when using BN_bn2bin and BN_bin2bn */
-static void flip_endian(u8 *out, const u8 *in, unsigned len)
-{
- unsigned i;
- for (i = 0; i < len; ++i)
- out[i] = in[len - 1 - i];
-}
-
/* From OpenSSL BIGNUM to internal representation */
static int BN_to_felem(felem out, const BIGNUM *bn)
{
- felem_bytearray b_in;
felem_bytearray b_out;
- unsigned num_bytes;
+ int num_bytes;
- /* BN_bn2bin eats leading zeroes */
- memset(b_out, 0, sizeof(b_out));
- num_bytes = BN_num_bytes(bn);
- if (num_bytes > sizeof(b_out)) {
+ if (BN_is_negative(bn)) {
ECerr(EC_F_BN_TO_FELEM, EC_R_BIGNUM_OUT_OF_RANGE);
return 0;
}
- if (BN_is_negative(bn)) {
+ num_bytes = BN_bn2lebinpad(bn, b_out, sizeof(b_out));
+ if (num_bytes < 0) {
ECerr(EC_F_BN_TO_FELEM, EC_R_BIGNUM_OUT_OF_RANGE);
return 0;
}
- num_bytes = BN_bn2bin(bn, b_in);
- flip_endian(b_out, b_in, num_bytes);
bin28_to_felem(out, b_out);
return 1;
}
@@ -359,10 +346,9 @@ static int BN_to_felem(felem out, const BIGNUM *bn)
/* From internal representation to OpenSSL BIGNUM */
static BIGNUM *felem_to_BN(BIGNUM *out, const felem in)
{
- felem_bytearray b_in, b_out;
- felem_to_bin28(b_in, in);
- flip_endian(b_out, b_in, sizeof(b_out));
- return BN_bin2bn(b_out, sizeof(b_out), out);
+ felem_bytearray b_out;
+ felem_to_bin28(b_out, in);
+ return BN_lebin2bn(b_out, sizeof(b_out), out);
}
/******************************************************************************/
@@ -1402,8 +1388,7 @@ int ec_GFp_nistp224_points_mul(const EC_GROUP *group, EC_POINT *r,
felem_bytearray *secrets = NULL;
felem (*pre_comp)[17][3] = NULL;
felem *tmp_felems = NULL;
- felem_bytearray tmp;
- unsigned num_bytes;
+ int num_bytes;
int have_pre_comp = 0;
size_t num_points = num;
felem x_in, y_in, z_in, x_out, y_out, z_out;
@@ -1478,14 +1463,12 @@ int ec_GFp_nistp224_points_mul(const EC_GROUP *group, EC_POINT *r,
* i.e., they contribute nothing to the linear combination
*/
for (i = 0; i < num_points; ++i) {
- if (i == num)
+ if (i == num) {
/* the generator */
- {
p = EC_GROUP_get0_generator(group);
p_scalar = scalar;
- } else
+ } else {
/* the i^th point */
- {
p = points[i];
p_scalar = scalars[i];
}
@@ -1501,10 +1484,16 @@ int ec_GFp_nistp224_points_mul(const EC_GROUP *group, EC_POINT *r,
ECerr(EC_F_EC_GFP_NISTP224_POINTS_MUL, ERR_R_BN_LIB);
goto err;
}
- num_bytes = BN_bn2bin(tmp_scalar, tmp);
- } else
- num_bytes = BN_bn2bin(p_scalar, tmp);
- flip_endian(secrets[i], tmp, num_bytes);
+ num_bytes = BN_bn2lebinpad(tmp_scalar,
+ secrets[i], sizeof(secrets[i]));
+ } else {
+ num_bytes = BN_bn2lebinpad(p_scalar,
+ secrets[i], sizeof(secrets[i]));
+ }
+ if (num_bytes < 0) {
+ ECerr(EC_F_EC_GFP_NISTP224_POINTS_MUL, ERR_R_BN_LIB);
+ goto err;
+ }
/* precompute multiples */
if ((!BN_to_felem(x_out, p->X)) ||
(!BN_to_felem(y_out, p->Y)) ||
@@ -1547,20 +1536,21 @@ int ec_GFp_nistp224_points_mul(const EC_GROUP *group, EC_POINT *r,
ECerr(EC_F_EC_GFP_NISTP224_POINTS_MUL, ERR_R_BN_LIB);
goto err;
}
- num_bytes = BN_bn2bin(tmp_scalar, tmp);
- } else
- num_bytes = BN_bn2bin(scalar, tmp);
- flip_endian(g_secret, tmp, num_bytes);
+ num_bytes = BN_bn2lebinpad(tmp_scalar, g_secret, sizeof(g_secret));
+ } else {
+ num_bytes = BN_bn2lebinpad(scalar, g_secret, sizeof(g_secret));
+ }
/* do the multiplication with generator precomputation */
batch_mul(x_out, y_out, z_out,
(const felem_bytearray(*))secrets, num_points,
g_secret,
mixed, (const felem(*)[17][3])pre_comp, g_pre_comp);
- } else
+ } else {
/* do the multiplication without generator precomputation */
batch_mul(x_out, y_out, z_out,
(const felem_bytearray(*))secrets, num_points,
NULL, mixed, (const felem(*)[17][3])pre_comp, NULL);
+ }
/* reduce the output to its unique minimal representation */
felem_contract(x_in, x_out);
felem_contract(y_in, y_out);
diff --git a/deps/openssl/openssl/crypto/ec/ecp_nistp256.c b/deps/openssl/openssl/crypto/ec/ecp_nistp256.c
index a21e5f78fc9065..22ba69aa44bae8 100644
--- a/deps/openssl/openssl/crypto/ec/ecp_nistp256.c
+++ b/deps/openssl/openssl/crypto/ec/ecp_nistp256.c
@@ -146,34 +146,21 @@ static void smallfelem_to_bin32(u8 out[32], const smallfelem in)
*((u64 *)&out[24]) = in[3];
}
-/* To preserve endianness when using BN_bn2bin and BN_bin2bn */
-static void flip_endian(u8 *out, const u8 *in, unsigned len)
-{
- unsigned i;
- for (i = 0; i < len; ++i)
- out[i] = in[len - 1 - i];
-}
-
/* BN_to_felem converts an OpenSSL BIGNUM into an felem */
static int BN_to_felem(felem out, const BIGNUM *bn)
{
- felem_bytearray b_in;
felem_bytearray b_out;
- unsigned num_bytes;
+ int num_bytes;
- /* BN_bn2bin eats leading zeroes */
- memset(b_out, 0, sizeof(b_out));
- num_bytes = BN_num_bytes(bn);
- if (num_bytes > sizeof(b_out)) {
+ if (BN_is_negative(bn)) {
ECerr(EC_F_BN_TO_FELEM, EC_R_BIGNUM_OUT_OF_RANGE);
return 0;
}
- if (BN_is_negative(bn)) {
+ num_bytes = BN_bn2lebinpad(bn, b_out, sizeof(b_out));
+ if (num_bytes < 0) {
ECerr(EC_F_BN_TO_FELEM, EC_R_BIGNUM_OUT_OF_RANGE);
return 0;
}
- num_bytes = BN_bn2bin(bn, b_in);
- flip_endian(b_out, b_in, num_bytes);
bin32_to_felem(out, b_out);
return 1;
}
@@ -181,10 +168,9 @@ static int BN_to_felem(felem out, const BIGNUM *bn)
/* felem_to_BN converts an felem into an OpenSSL BIGNUM */
static BIGNUM *smallfelem_to_BN(BIGNUM *out, const smallfelem in)
{
- felem_bytearray b_in, b_out;
- smallfelem_to_bin32(b_in, in);
- flip_endian(b_out, b_in, sizeof(b_out));
- return BN_bin2bn(b_out, sizeof(b_out), out);
+ felem_bytearray b_out;
+ smallfelem_to_bin32(b_out, in);
+ return BN_lebin2bn(b_out, sizeof(b_out), out);
}
/*-
@@ -2024,8 +2010,8 @@ int ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,
felem_bytearray *secrets = NULL;
smallfelem (*pre_comp)[17][3] = NULL;
smallfelem *tmp_smallfelems = NULL;
- felem_bytearray tmp;
- unsigned i, num_bytes;
+ unsigned i;
+ int num_bytes;
int have_pre_comp = 0;
size_t num_points = num;
smallfelem x_in, y_in, z_in;
@@ -2102,17 +2088,15 @@ int ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,
memset(secrets, 0, sizeof(*secrets) * num_points);
memset(pre_comp, 0, sizeof(*pre_comp) * num_points);
for (i = 0; i < num_points; ++i) {
- if (i == num)
+ if (i == num) {
/*
* we didn't have a valid precomputation, so we pick the
* generator
*/
- {
p = EC_GROUP_get0_generator(group);
p_scalar = scalar;
- } else
+ } else {
/* the i^th point */
- {
p = points[i];
p_scalar = scalars[i];
}
@@ -2128,10 +2112,16 @@ int ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,
ECerr(EC_F_EC_GFP_NISTP256_POINTS_MUL, ERR_R_BN_LIB);
goto err;
}
- num_bytes = BN_bn2bin(tmp_scalar, tmp);
- } else
- num_bytes = BN_bn2bin(p_scalar, tmp);
- flip_endian(secrets[i], tmp, num_bytes);
+ num_bytes = BN_bn2lebinpad(tmp_scalar,
+ secrets[i], sizeof(secrets[i]));
+ } else {
+ num_bytes = BN_bn2lebinpad(p_scalar,
+ secrets[i], sizeof(secrets[i]));
+ }
+ if (num_bytes < 0) {
+ ECerr(EC_F_EC_GFP_NISTP256_POINTS_MUL, ERR_R_BN_LIB);
+ goto err;
+ }
/* precompute multiples */
if ((!BN_to_felem(x_out, p->X)) ||
(!BN_to_felem(y_out, p->Y)) ||
@@ -2176,20 +2166,21 @@ int ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,
ECerr(EC_F_EC_GFP_NISTP256_POINTS_MUL, ERR_R_BN_LIB);
goto err;
}
- num_bytes = BN_bn2bin(tmp_scalar, tmp);
- } else
- num_bytes = BN_bn2bin(scalar, tmp);
- flip_endian(g_secret, tmp, num_bytes);
+ num_bytes = BN_bn2lebinpad(tmp_scalar, g_secret, sizeof(g_secret));
+ } else {
+ num_bytes = BN_bn2lebinpad(scalar, g_secret, sizeof(g_secret));
+ }
/* do the multiplication with generator precomputation */
batch_mul(x_out, y_out, z_out,
(const felem_bytearray(*))secrets, num_points,
g_secret,
mixed, (const smallfelem(*)[17][3])pre_comp, g_pre_comp);
- } else
+ } else {
/* do the multiplication without generator precomputation */
batch_mul(x_out, y_out, z_out,
(const felem_bytearray(*))secrets, num_points,
NULL, mixed, (const smallfelem(*)[17][3])pre_comp, NULL);
+ }
/* reduce the output to its unique minimal representation */
felem_contract(x_in, x_out);
felem_contract(y_in, y_out);
diff --git a/deps/openssl/openssl/crypto/ec/ecp_nistp521.c b/deps/openssl/openssl/crypto/ec/ecp_nistp521.c
index e31b85c5f755c0..6340f48279374e 100644
--- a/deps/openssl/openssl/crypto/ec/ecp_nistp521.c
+++ b/deps/openssl/openssl/crypto/ec/ecp_nistp521.c
@@ -169,34 +169,21 @@ static void felem_to_bin66(u8 out[66], const felem in)
(*((limb *) & out[58])) = in[8];
}
-/* To preserve endianness when using BN_bn2bin and BN_bin2bn */
-static void flip_endian(u8 *out, const u8 *in, unsigned len)
-{
- unsigned i;
- for (i = 0; i < len; ++i)
- out[i] = in[len - 1 - i];
-}
-
/* BN_to_felem converts an OpenSSL BIGNUM into an felem */
static int BN_to_felem(felem out, const BIGNUM *bn)
{
- felem_bytearray b_in;
felem_bytearray b_out;
- unsigned num_bytes;
+ int num_bytes;
- /* BN_bn2bin eats leading zeroes */
- memset(b_out, 0, sizeof(b_out));
- num_bytes = BN_num_bytes(bn);
- if (num_bytes > sizeof(b_out)) {
+ if (BN_is_negative(bn)) {
ECerr(EC_F_BN_TO_FELEM, EC_R_BIGNUM_OUT_OF_RANGE);
return 0;
}
- if (BN_is_negative(bn)) {
+ num_bytes = BN_bn2lebinpad(bn, b_out, sizeof(b_out));
+ if (num_bytes < 0) {
ECerr(EC_F_BN_TO_FELEM, EC_R_BIGNUM_OUT_OF_RANGE);
return 0;
}
- num_bytes = BN_bn2bin(bn, b_in);
- flip_endian(b_out, b_in, num_bytes);
bin66_to_felem(out, b_out);
return 1;
}
@@ -204,10 +191,9 @@ static int BN_to_felem(felem out, const BIGNUM *bn)
/* felem_to_BN converts an felem into an OpenSSL BIGNUM */
static BIGNUM *felem_to_BN(BIGNUM *out, const felem in)
{
- felem_bytearray b_in, b_out;
- felem_to_bin66(b_in, in);
- flip_endian(b_out, b_in, sizeof(b_out));
- return BN_bin2bn(b_out, sizeof(b_out), out);
+ felem_bytearray b_out;
+ felem_to_bin66(b_out, in);
+ return BN_lebin2bn(b_out, sizeof(b_out), out);
}
/*-
@@ -1269,7 +1255,7 @@ static void point_add(felem x3, felem y3, felem z3,
* ffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb
* 71e913863f7, in that case the penultimate intermediate is -9G and
* the final digit is also -9G. Since this only happens for a single
- * scalar, the timing leak is irrelevent. (Any attacker who wanted to
+ * scalar, the timing leak is irrelevant. (Any attacker who wanted to
* check whether a secret scalar was that exact value, can already do
* so.)
*/
@@ -1866,8 +1852,8 @@ int ec_GFp_nistp521_points_mul(const EC_GROUP *group, EC_POINT *r,
felem_bytearray *secrets = NULL;
felem (*pre_comp)[17][3] = NULL;
felem *tmp_felems = NULL;
- felem_bytearray tmp;
- unsigned i, num_bytes;
+ unsigned i;
+ int num_bytes;
int have_pre_comp = 0;
size_t num_points = num;
felem x_in, y_in, z_in, x_out, y_out, z_out;
@@ -1942,17 +1928,15 @@ int ec_GFp_nistp521_points_mul(const EC_GROUP *group, EC_POINT *r,
* i.e., they contribute nothing to the linear combination
*/
for (i = 0; i < num_points; ++i) {
- if (i == num)
+ if (i == num) {
/*
* we didn't have a valid precomputation, so we pick the
* generator
*/
- {
p = EC_GROUP_get0_generator(group);
p_scalar = scalar;
- } else
+ } else {
/* the i^th point */
- {
p = points[i];
p_scalar = scalars[i];
}
@@ -1968,10 +1952,16 @@ int ec_GFp_nistp521_points_mul(const EC_GROUP *group, EC_POINT *r,
ECerr(EC_F_EC_GFP_NISTP521_POINTS_MUL, ERR_R_BN_LIB);
goto err;
}
- num_bytes = BN_bn2bin(tmp_scalar, tmp);
- } else
- num_bytes = BN_bn2bin(p_scalar, tmp);
- flip_endian(secrets[i], tmp, num_bytes);
+ num_bytes = BN_bn2lebinpad(tmp_scalar,
+ secrets[i], sizeof(secrets[i]));
+ } else {
+ num_bytes = BN_bn2lebinpad(p_scalar,
+ secrets[i], sizeof(secrets[i]));
+ }
+ if (num_bytes < 0) {
+ ECerr(EC_F_EC_GFP_NISTP521_POINTS_MUL, ERR_R_BN_LIB);
+ goto err;
+ }
/* precompute multiples */
if ((!BN_to_felem(x_out, p->X)) ||
(!BN_to_felem(y_out, p->Y)) ||
@@ -2014,21 +2004,22 @@ int ec_GFp_nistp521_points_mul(const EC_GROUP *group, EC_POINT *r,
ECerr(EC_F_EC_GFP_NISTP521_POINTS_MUL, ERR_R_BN_LIB);
goto err;
}
- num_bytes = BN_bn2bin(tmp_scalar, tmp);
- } else
- num_bytes = BN_bn2bin(scalar, tmp);
- flip_endian(g_secret, tmp, num_bytes);
+ num_bytes = BN_bn2lebinpad(tmp_scalar, g_secret, sizeof(g_secret));
+ } else {
+ num_bytes = BN_bn2lebinpad(scalar, g_secret, sizeof(g_secret));
+ }
/* do the multiplication with generator precomputation */
batch_mul(x_out, y_out, z_out,
(const felem_bytearray(*))secrets, num_points,
g_secret,
mixed, (const felem(*)[17][3])pre_comp,
(const felem(*)[3])g_pre_comp);
- } else
+ } else {
/* do the multiplication without generator precomputation */
batch_mul(x_out, y_out, z_out,
(const felem_bytearray(*))secrets, num_points,
NULL, mixed, (const felem(*)[17][3])pre_comp, NULL);
+ }
/* reduce the output to its unique minimal representation */
felem_contract(x_in, x_out);
felem_contract(y_in, y_out);
diff --git a/deps/openssl/openssl/crypto/ec/ecp_nistputil.c b/deps/openssl/openssl/crypto/ec/ecp_nistputil.c
index 97fb63100586a7..f89a2f0aacc188 100644
--- a/deps/openssl/openssl/crypto/ec/ecp_nistputil.c
+++ b/deps/openssl/openssl/crypto/ec/ecp_nistputil.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -158,13 +158,13 @@ void ec_GFp_nistp_points_make_affine_internal(size_t num, void *point_array,
* of a nonnegative integer (b_k in {0, 1}), rewrite it in digits 0, 1, -1
* by using bit-wise subtraction as follows:
*
- * b_k b_(k-1) ... b_2 b_1 b_0
- * - b_k ... b_3 b_2 b_1 b_0
- * -------------------------------------
- * s_k b_(k-1) ... s_3 s_2 s_1 s_0
+ * b_k b_(k-1) ... b_2 b_1 b_0
+ * - b_k ... b_3 b_2 b_1 b_0
+ * -----------------------------------------
+ * s_(k+1) s_k ... s_3 s_2 s_1 s_0
*
* A left-shift followed by subtraction of the original value yields a new
- * representation of the same value, using signed bits s_i = b_(i+1) - b_i.
+ * representation of the same value, using signed bits s_i = b_(i-1) - b_i.
* This representation from Booth's paper has since appeared in the
* literature under a variety of different names including "reversed binary
* form", "alternating greedy expansion", "mutual opposite form", and
@@ -188,7 +188,7 @@ void ec_GFp_nistp_points_make_affine_internal(size_t num, void *point_array,
* (1961), pp. 67-91), in a radix-2^5 setting. That is, we always combine five
* signed bits into a signed digit:
*
- * s_(4j + 4) s_(4j + 3) s_(4j + 2) s_(4j + 1) s_(4j)
+ * s_(5j + 4) s_(5j + 3) s_(5j + 2) s_(5j + 1) s_(5j)
*
* The sign-alternating property implies that the resulting digit values are
* integers from -16 to 16.
@@ -196,14 +196,14 @@ void ec_GFp_nistp_points_make_affine_internal(size_t num, void *point_array,
* Of course, we don't actually need to compute the signed digits s_i as an
* intermediate step (that's just a nice way to see how this scheme relates
* to the wNAF): a direct computation obtains the recoded digit from the
- * six bits b_(4j + 4) ... b_(4j - 1).
+ * six bits b_(5j + 4) ... b_(5j - 1).
*
- * This function takes those five bits as an integer (0 .. 63), writing the
+ * This function takes those six bits as an integer (0 .. 63), writing the
* recoded digit to *sign (0 for positive, 1 for negative) and *digit (absolute
- * value, in the range 0 .. 8). Note that this integer essentially provides the
- * input bits "shifted to the left" by one position: for example, the input to
- * compute the least significant recoded digit, given that there's no bit b_-1,
- * has to be b_4 b_3 b_2 b_1 b_0 0.
+ * value, in the range 0 .. 16). Note that this integer essentially provides
+ * the input bits "shifted to the left" by one position: for example, the input
+ * to compute the least significant recoded digit, given that there's no bit
+ * b_-1, has to be b_4 b_3 b_2 b_1 b_0 0.
*
*/
void ec_GFp_nistp_recode_scalar_bits(unsigned char *sign,
diff --git a/deps/openssl/openssl/crypto/ec/ecx_meth.c b/deps/openssl/openssl/crypto/ec/ecx_meth.c
index e4cac99e2d2acf..c87419b5db3880 100644
--- a/deps/openssl/openssl/crypto/ec/ecx_meth.c
+++ b/deps/openssl/openssl/crypto/ec/ecx_meth.c
@@ -532,7 +532,7 @@ static int ecd_item_sign25519(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,
X509_ALGOR_set0(alg1, OBJ_nid2obj(NID_ED25519), V_ASN1_UNDEF, NULL);
if (alg2)
X509_ALGOR_set0(alg2, OBJ_nid2obj(NID_ED25519), V_ASN1_UNDEF, NULL);
- /* Algorithm idetifiers set: carry on as normal */
+ /* Algorithm identifiers set: carry on as normal */
return 3;
}
diff --git a/deps/openssl/openssl/crypto/engine/eng_devcrypto.c b/deps/openssl/openssl/crypto/engine/eng_devcrypto.c
index 717d7c27794ff1..a727c6f6460692 100644
--- a/deps/openssl/openssl/crypto/engine/eng_devcrypto.c
+++ b/deps/openssl/openssl/crypto/engine/eng_devcrypto.c
@@ -26,7 +26,7 @@
/* #define ENGINE_DEVCRYPTO_DEBUG */
-#ifdef CRYPTO_ALGORITHM_MIN
+#if CRYPTO_ALGORITHM_MIN < CRYPTO_ALGORITHM_MAX
# define CHECK_BSD_STYLE_MACROS
#endif
diff --git a/deps/openssl/openssl/crypto/engine/eng_openssl.c b/deps/openssl/openssl/crypto/engine/eng_openssl.c
index f7ad7a5f46da59..d9b3067a132227 100644
--- a/deps/openssl/openssl/crypto/engine/eng_openssl.c
+++ b/deps/openssl/openssl/crypto/engine/eng_openssl.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved.
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
*
* Licensed under the OpenSSL license (the "License"). You may not use
@@ -29,12 +29,14 @@
*/
#define TEST_ENG_OPENSSL_RC4
#ifndef OPENSSL_NO_STDIO
-#define TEST_ENG_OPENSSL_PKEY
+# define TEST_ENG_OPENSSL_PKEY
#endif
/* #define TEST_ENG_OPENSSL_HMAC */
/* #define TEST_ENG_OPENSSL_HMAC_INIT */
/* #define TEST_ENG_OPENSSL_RC4_OTHERS */
-#define TEST_ENG_OPENSSL_RC4_P_INIT
+#ifndef OPENSSL_NO_STDIO
+# define TEST_ENG_OPENSSL_RC4_P_INIT
+#endif
/* #define TEST_ENG_OPENSSL_RC4_P_CIPHER */
#define TEST_ENG_OPENSSL_SHA
/* #define TEST_ENG_OPENSSL_SHA_OTHERS */
diff --git a/deps/openssl/openssl/crypto/err/err.c b/deps/openssl/openssl/crypto/err/err.c
index eaf6712fdbd02b..3a58ccb9588296 100644
--- a/deps/openssl/openssl/crypto/err/err.c
+++ b/deps/openssl/openssl/crypto/err/err.c
@@ -184,8 +184,8 @@ static ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *d)
}
#ifndef OPENSSL_NO_ERR
-/* A measurement on Linux 2018-11-21 showed about 3.5kib */
-# define SPACE_SYS_STR_REASONS 4 * 1024
+/* 2019-05-21: Russian and Ukrainian locales on Linux require more than 6,5 kB */
+# define SPACE_SYS_STR_REASONS 8 * 1024
# define NUM_SYS_STR_REASONS 127
static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1];
@@ -219,21 +219,23 @@ static void build_SYS_str_reasons(void)
ERR_STRING_DATA *str = &SYS_str_reasons[i - 1];
str->error = ERR_PACK(ERR_LIB_SYS, 0, i);
- if (str->string == NULL) {
+ /*
+ * If we have used up all the space in strerror_pool,
+ * there's no point in calling openssl_strerror_r()
+ */
+ if (str->string == NULL && cnt < sizeof(strerror_pool)) {
if (openssl_strerror_r(i, cur, sizeof(strerror_pool) - cnt)) {
size_t l = strlen(cur);
str->string = cur;
cnt += l;
- if (cnt > sizeof(strerror_pool))
- cnt = sizeof(strerror_pool);
cur += l;
/*
* VMS has an unusual quirk of adding spaces at the end of
- * some (most? all?) messages. Lets trim them off.
+ * some (most? all?) messages. Lets trim them off.
*/
- while (ossl_isspace(cur[-1])) {
+ while (cur > strerror_pool && ossl_isspace(cur[-1])) {
cur--;
cnt--;
}
diff --git a/deps/openssl/openssl/crypto/err/openssl.txt b/deps/openssl/openssl/crypto/err/openssl.txt
index feff1dccded72d..a433b032407889 100644
--- a/deps/openssl/openssl/crypto/err/openssl.txt
+++ b/deps/openssl/openssl/crypto/err/openssl.txt
@@ -314,6 +314,7 @@ CMS_F_CMS_SIGNERINFO_VERIFY:152:CMS_SignerInfo_verify
CMS_F_CMS_SIGNERINFO_VERIFY_CERT:153:cms_signerinfo_verify_cert
CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT:154:CMS_SignerInfo_verify_content
CMS_F_CMS_SIGN_RECEIPT:163:CMS_sign_receipt
+CMS_F_CMS_SI_CHECK_ATTRIBUTES:183:CMS_si_check_attributes
CMS_F_CMS_STREAM:155:CMS_stream
CMS_F_CMS_UNCOMPRESS:156:CMS_uncompress
CMS_F_CMS_VERIFY:157:CMS_verify
@@ -713,11 +714,14 @@ ENGINE_F_INT_ENGINE_CONFIGURE:188:int_engine_configure
ENGINE_F_INT_ENGINE_MODULE_INIT:187:int_engine_module_init
ENGINE_F_OSSL_HMAC_INIT:200:ossl_hmac_init
EVP_F_AESNI_INIT_KEY:165:aesni_init_key
+EVP_F_AESNI_XTS_INIT_KEY:207:aesni_xts_init_key
EVP_F_AES_GCM_CTRL:196:aes_gcm_ctrl
EVP_F_AES_INIT_KEY:133:aes_init_key
EVP_F_AES_OCB_CIPHER:169:aes_ocb_cipher
EVP_F_AES_T4_INIT_KEY:178:aes_t4_init_key
+EVP_F_AES_T4_XTS_INIT_KEY:208:aes_t4_xts_init_key
EVP_F_AES_WRAP_CIPHER:170:aes_wrap_cipher
+EVP_F_AES_XTS_INIT_KEY:209:aes_xts_init_key
EVP_F_ALG_MODULE_INIT:177:alg_module_init
EVP_F_ARIA_CCM_INIT_KEY:175:aria_ccm_init_key
EVP_F_ARIA_GCM_CTRL:197:aria_gcm_ctrl
@@ -808,6 +812,7 @@ EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN:180:PKCS5_v2_scrypt_keyivgen
EVP_F_PKEY_SET_TYPE:158:pkey_set_type
EVP_F_RC2_MAGIC_TO_METH:109:rc2_magic_to_meth
EVP_F_RC5_CTRL:125:rc5_ctrl
+EVP_F_R_32_12_16_INIT_KEY:242:r_32_12_16_init_key
EVP_F_S390X_AES_GCM_CTRL:201:s390x_aes_gcm_ctrl
EVP_F_UPDATE:173:update
KDF_F_PKEY_HKDF_CTRL_STR:103:pkey_hkdf_ctrl_str
@@ -1020,6 +1025,7 @@ RAND_F_RAND_POOL_ADD_BEGIN:113:rand_pool_add_begin
RAND_F_RAND_POOL_ADD_END:114:rand_pool_add_end
RAND_F_RAND_POOL_ATTACH:124:rand_pool_attach
RAND_F_RAND_POOL_BYTES_NEEDED:115:rand_pool_bytes_needed
+RAND_F_RAND_POOL_GROW:125:rand_pool_grow
RAND_F_RAND_POOL_NEW:116:rand_pool_new
RAND_F_RAND_WRITE_FILE:112:RAND_write_file
RSA_F_CHECK_PADDING_MD:140:check_padding_md
@@ -1930,6 +1936,7 @@ BN_R_P_IS_NOT_PRIME:112:p is not prime
BN_R_TOO_MANY_ITERATIONS:113:too many iterations
BN_R_TOO_MANY_TEMPORARY_VARIABLES:109:too many temporary variables
CMS_R_ADD_SIGNER_ERROR:99:add signer error
+CMS_R_ATTRIBUTE_ERROR:161:attribute error
CMS_R_CERTIFICATE_ALREADY_PRESENT:175:certificate already present
CMS_R_CERTIFICATE_HAS_NO_KEYID:160:certificate has no keyid
CMS_R_CERTIFICATE_VERIFY_ERROR:100:certificate verify error
@@ -2094,6 +2101,7 @@ DSA_R_DECODE_ERROR:104:decode error
DSA_R_INVALID_DIGEST_TYPE:106:invalid digest type
DSA_R_INVALID_PARAMETERS:112:invalid parameters
DSA_R_MISSING_PARAMETERS:101:missing parameters
+DSA_R_MISSING_PRIVATE_KEY:111:missing private key
DSA_R_MODULUS_TOO_LARGE:103:modulus too large
DSA_R_NO_PARAMETERS_SET:107:no parameters set
DSA_R_PARAMETER_ENCODING_ERROR:105:parameter encoding error
@@ -2218,6 +2226,7 @@ ENGINE_R_VERSION_INCOMPATIBILITY:145:version incompatibility
EVP_R_AES_KEY_SETUP_FAILED:143:aes key setup failed
EVP_R_ARIA_KEY_SETUP_FAILED:176:aria key setup failed
EVP_R_BAD_DECRYPT:100:bad decrypt
+EVP_R_BAD_KEY_LENGTH:195:bad key length
EVP_R_BUFFER_TOO_SMALL:155:buffer too small
EVP_R_CAMELLIA_KEY_SETUP_FAILED:157:camellia key setup failed
EVP_R_CIPHER_PARAMETER_ERROR:122:cipher parameter error
@@ -2287,6 +2296,7 @@ EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM:118:unsupported private key algorithm
EVP_R_UNSUPPORTED_SALT_TYPE:126:unsupported salt type
EVP_R_WRAP_MODE_NOT_ALLOWED:170:wrap mode not allowed
EVP_R_WRONG_FINAL_BLOCK_LENGTH:109:wrong final block length
+EVP_R_XTS_DUPLICATED_KEYS:183:xts duplicated keys
KDF_R_INVALID_DIGEST:100:invalid digest
KDF_R_MISSING_ITERATION_COUNT:109:missing iteration count
KDF_R_MISSING_KEY:104:missing key
@@ -2527,6 +2537,7 @@ RSA_R_KEY_PRIME_NUM_INVALID:165:key prime num invalid
RSA_R_KEY_SIZE_TOO_SMALL:120:key size too small
RSA_R_LAST_OCTET_INVALID:134:last octet invalid
RSA_R_MGF1_DIGEST_NOT_ALLOWED:152:mgf1 digest not allowed
+RSA_R_MISSING_PRIVATE_KEY:179:missing private key
RSA_R_MODULUS_TOO_LARGE:105:modulus too large
RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R:168:mp coefficient not inverse of r
RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D:169:mp exponent not congruent to d
@@ -3003,6 +3014,7 @@ X509_R_CERT_ALREADY_IN_HASH_TABLE:101:cert already in hash table
X509_R_CRL_ALREADY_DELTA:127:crl already delta
X509_R_CRL_VERIFY_FAILURE:131:crl verify failure
X509_R_IDP_MISMATCH:128:idp mismatch
+X509_R_INVALID_ATTRIBUTES:138:invalid attributes
X509_R_INVALID_DIRECTORY:113:invalid directory
X509_R_INVALID_FIELD_NAME:119:invalid field name
X509_R_INVALID_TRUST:123:invalid trust
diff --git a/deps/openssl/openssl/crypto/evp/bio_ok.c b/deps/openssl/openssl/crypto/evp/bio_ok.c
index a0462219beb7ee..300db6cd320d1a 100644
--- a/deps/openssl/openssl/crypto/evp/bio_ok.c
+++ b/deps/openssl/openssl/crypto/evp/bio_ok.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -38,9 +38,9 @@
of memory.
BIO_f_reliable splits data stream into blocks. Each block is prefixed
- with it's length and suffixed with it's digest. So you need only
+ with its length and suffixed with its digest. So you need only
several Kbytes of memory to buffer single block before verifying
- it's digest.
+ its digest.
BIO_f_reliable goes further and adds several important capabilities:
diff --git a/deps/openssl/openssl/crypto/evp/e_aes.c b/deps/openssl/openssl/crypto/evp/e_aes.c
index 68322e1982b883..35b1e711170d1a 100644
--- a/deps/openssl/openssl/crypto/evp/e_aes.c
+++ b/deps/openssl/openssl/crypto/evp/e_aes.c
@@ -176,7 +176,7 @@ static void ctr64_inc(unsigned char *counter)
# define HWAES_xts_decrypt aes_p8_xts_decrypt
#endif
-#if defined(AES_ASM) && !defined(I386_ONLY) && ( \
+#if !defined(OPENSSL_NO_ASM) && ( \
((defined(__i386) || defined(__i386__) || \
defined(_M_IX86)) && defined(OPENSSL_IA32_SSE2))|| \
defined(__x86_64) || defined(__x86_64__) || \
@@ -383,10 +383,25 @@ static int aesni_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
const unsigned char *iv, int enc)
{
EVP_AES_XTS_CTX *xctx = EVP_C_DATA(EVP_AES_XTS_CTX,ctx);
+
if (!iv && !key)
return 1;
if (key) {
+ /* The key is two half length keys in reality */
+ const int bytes = EVP_CIPHER_CTX_key_length(ctx) / 2;
+
+ /*
+ * Verify that the two keys are different.
+ *
+ * This addresses Rogaway's vulnerability.
+ * See comment in aes_xts_init_key() below.
+ */
+ if (enc && CRYPTO_memcmp(key, key + bytes, bytes) == 0) {
+ EVPerr(EVP_F_AESNI_XTS_INIT_KEY, EVP_R_XTS_DUPLICATED_KEYS);
+ return 0;
+ }
+
/* key_len is two AES keys */
if (enc) {
aesni_set_encrypt_key(key, EVP_CIPHER_CTX_key_length(ctx) * 4,
@@ -787,11 +802,26 @@ static int aes_t4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
const unsigned char *iv, int enc)
{
EVP_AES_XTS_CTX *xctx = EVP_C_DATA(EVP_AES_XTS_CTX,ctx);
+
if (!iv && !key)
return 1;
if (key) {
- int bits = EVP_CIPHER_CTX_key_length(ctx) * 4;
+ /* The key is two half length keys in reality */
+ const int bytes = EVP_CIPHER_CTX_key_length(ctx) / 2;
+ const int bits = bytes * 8;
+
+ /*
+ * Verify that the two keys are different.
+ *
+ * This addresses Rogaway's vulnerability.
+ * See comment in aes_xts_init_key() below.
+ */
+ if (enc && CRYPTO_memcmp(key, key + bytes, bytes) == 0) {
+ EVPerr(EVP_F_AES_T4_XTS_INIT_KEY, EVP_R_XTS_DUPLICATED_KEYS);
+ return 0;
+ }
+
xctx->stream = NULL;
/* key_len is two AES keys */
if (enc) {
@@ -1578,7 +1608,7 @@ static int s390x_aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
switch (type) {
case EVP_CTRL_INIT:
- ivlen = EVP_CIPHER_CTX_iv_length(c);
+ ivlen = EVP_CIPHER_iv_length(c->cipher);
iv = EVP_CIPHER_CTX_iv_noconst(c);
gctx->key_set = 0;
gctx->iv_set = 0;
@@ -1589,6 +1619,10 @@ static int s390x_aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
gctx->tls_aad_len = -1;
return 1;
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = gctx->ivlen;
+ return 1;
+
case EVP_CTRL_AEAD_SET_IVLEN:
if (arg <= 0)
return 0;
@@ -2299,6 +2333,10 @@ static int s390x_aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
cctx->aes.ccm.tls_aad_len = -1;
return 1;
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = 15 - cctx->aes.ccm.l;
+ return 1;
+
case EVP_CTRL_AEAD_TLS1_AAD:
if (arg != EVP_AEAD_TLS1_AAD_LEN)
return 0;
@@ -2817,13 +2855,17 @@ static int aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
case EVP_CTRL_INIT:
gctx->key_set = 0;
gctx->iv_set = 0;
- gctx->ivlen = c->cipher->iv_len;
+ gctx->ivlen = EVP_CIPHER_iv_length(c->cipher);
gctx->iv = c->iv;
gctx->taglen = -1;
gctx->iv_gen = 0;
gctx->tls_aad_len = -1;
return 1;
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = gctx->ivlen;
+ return 1;
+
case EVP_CTRL_AEAD_SET_IVLEN:
if (arg <= 0)
return 0;
@@ -3273,7 +3315,7 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
#define CUSTOM_FLAGS (EVP_CIPH_FLAG_DEFAULT_ASN1 \
| EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER \
| EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT \
- | EVP_CIPH_CUSTOM_COPY)
+ | EVP_CIPH_CUSTOM_COPY | EVP_CIPH_CUSTOM_IV_LENGTH)
BLOCK_CIPHER_custom(NID_aes, 128, 1, 12, gcm, GCM,
EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)
@@ -3284,10 +3326,12 @@ BLOCK_CIPHER_custom(NID_aes, 128, 1, 12, gcm, GCM,
static int aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
{
- EVP_AES_XTS_CTX *xctx = EVP_C_DATA(EVP_AES_XTS_CTX,c);
+ EVP_AES_XTS_CTX *xctx = EVP_C_DATA(EVP_AES_XTS_CTX, c);
+
if (type == EVP_CTRL_COPY) {
EVP_CIPHER_CTX *out = ptr;
EVP_AES_XTS_CTX *xctx_out = EVP_C_DATA(EVP_AES_XTS_CTX,out);
+
if (xctx->xts.key1) {
if (xctx->xts.key1 != &xctx->ks1)
return 0;
@@ -3311,11 +3355,36 @@ static int aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
const unsigned char *iv, int enc)
{
EVP_AES_XTS_CTX *xctx = EVP_C_DATA(EVP_AES_XTS_CTX,ctx);
+
if (!iv && !key)
return 1;
if (key)
do {
+ /* The key is two half length keys in reality */
+ const int bytes = EVP_CIPHER_CTX_key_length(ctx) / 2;
+
+ /*
+ * Verify that the two keys are different.
+ *
+ * This addresses the vulnerability described in Rogaway's
+ * September 2004 paper:
+ *
+ * "Efficient Instantiations of Tweakable Blockciphers and
+ * Refinements to Modes OCB and PMAC".
+ * (http://web.cs.ucdavis.edu/~rogaway/papers/offsets.pdf)
+ *
+ * FIPS 140-2 IG A.9 XTS-AES Key Generation Requirements states
+ * that:
+ * "The check for Key_1 != Key_2 shall be done at any place
+ * BEFORE using the keys in the XTS-AES algorithm to process
+ * data with them."
+ */
+ if (enc && CRYPTO_memcmp(key, key + bytes, bytes) == 0) {
+ EVPerr(EVP_F_AES_XTS_INIT_KEY, EVP_R_XTS_DUPLICATED_KEYS);
+ return 0;
+ }
+
#ifdef AES_XTS_ASM
xctx->stream = enc ? AES_xts_encrypt : AES_xts_decrypt;
#else
@@ -3448,7 +3517,9 @@ static int aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
cctx->len_set = 0;
cctx->tls_aad_len = -1;
return 1;
-
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = 15 - cctx->L;
+ return 1;
case EVP_CTRL_AEAD_TLS1_AAD:
/* Save the AAD for later use */
if (arg != EVP_AEAD_TLS1_AAD_LEN)
@@ -3897,13 +3968,17 @@ static int aes_ocb_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
case EVP_CTRL_INIT:
octx->key_set = 0;
octx->iv_set = 0;
- octx->ivlen = EVP_CIPHER_CTX_iv_length(c);
+ octx->ivlen = EVP_CIPHER_iv_length(c->cipher);
octx->iv = EVP_CIPHER_CTX_iv_noconst(c);
octx->taglen = 16;
octx->data_buf_len = 0;
octx->aad_buf_len = 0;
return 1;
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = octx->ivlen;
+ return 1;
+
case EVP_CTRL_AEAD_SET_IVLEN:
/* IV len must be 1 to 15 */
if (arg <= 0 || arg > 15)
diff --git a/deps/openssl/openssl/crypto/evp/e_aria.c b/deps/openssl/openssl/crypto/evp/e_aria.c
index 100573f5fc7fce..fcaceb3bcadf8e 100644
--- a/deps/openssl/openssl/crypto/evp/e_aria.c
+++ b/deps/openssl/openssl/crypto/evp/e_aria.c
@@ -252,7 +252,7 @@ static int aria_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
case EVP_CTRL_INIT:
gctx->key_set = 0;
gctx->iv_set = 0;
- gctx->ivlen = EVP_CIPHER_CTX_iv_length(c);
+ gctx->ivlen = EVP_CIPHER_iv_length(c->cipher);
gctx->iv = EVP_CIPHER_CTX_iv_noconst(c);
gctx->taglen = -1;
gctx->iv_gen = 0;
@@ -274,6 +274,10 @@ static int aria_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
gctx->ivlen = arg;
return 1;
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = gctx->ivlen;
+ return 1;
+
case EVP_CTRL_AEAD_SET_TAG:
if (arg <= 0 || arg > 16 || EVP_CIPHER_CTX_encrypting(c))
return 0;
@@ -573,6 +577,10 @@ static int aria_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
memcpy(EVP_CIPHER_CTX_iv_noconst(c), ptr, arg);
return 1;
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = 15 - cctx->L;
+ return 1;
+
case EVP_CTRL_AEAD_SET_IVLEN:
arg = 15 - arg;
/* fall thru */
@@ -742,7 +750,8 @@ static int aria_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
#define ARIA_AUTH_FLAGS (EVP_CIPH_FLAG_DEFAULT_ASN1 \
| EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER \
| EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT \
- | EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_AEAD_CIPHER)
+ | EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_AEAD_CIPHER \
+ | EVP_CIPH_CUSTOM_IV_LENGTH)
#define BLOCK_CIPHER_aead(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \
static const EVP_CIPHER aria_##keylen##_##mode = { \
diff --git a/deps/openssl/openssl/crypto/evp/e_chacha20_poly1305.c b/deps/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
index 600365d2f077d1..435a38d3658d34 100644
--- a/deps/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
+++ b/deps/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
@@ -534,6 +534,10 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
}
return 1;
+ case EVP_CTRL_GET_IVLEN:
+ *(int *)ptr = actx->nonce_len;
+ return 1;
+
case EVP_CTRL_AEAD_SET_IVLEN:
if (arg <= 0 || arg > CHACHA20_POLY1305_MAX_IVLEN)
return 0;
@@ -613,7 +617,8 @@ static EVP_CIPHER chacha20_poly1305 = {
12, /* iv_len, 96-bit nonce in the context */
EVP_CIPH_FLAG_AEAD_CIPHER | EVP_CIPH_CUSTOM_IV |
EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT |
- EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_CUSTOM_CIPHER,
+ EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_CUSTOM_CIPHER |
+ EVP_CIPH_CUSTOM_IV_LENGTH,
chacha20_poly1305_init_key,
chacha20_poly1305_cipher,
chacha20_poly1305_cleanup,
diff --git a/deps/openssl/openssl/crypto/evp/e_rc5.c b/deps/openssl/openssl/crypto/evp/e_rc5.c
index a2f26d8c5f23bd..dc5589b6881381 100644
--- a/deps/openssl/openssl/crypto/evp/e_rc5.c
+++ b/deps/openssl/openssl/crypto/evp/e_rc5.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -66,6 +66,10 @@ static int rc5_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
static int r_32_12_16_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
const unsigned char *iv, int enc)
{
+ if (EVP_CIPHER_CTX_key_length(ctx) > 255) {
+ EVPerr(EVP_F_R_32_12_16_INIT_KEY, EVP_R_BAD_KEY_LENGTH);
+ return 0;
+ }
RC5_32_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx),
key, data(ctx)->rounds);
return 1;
diff --git a/deps/openssl/openssl/crypto/evp/evp_err.c b/deps/openssl/openssl/crypto/evp/evp_err.c
index 60df27cbc20ac6..84bd3c2dab27af 100644
--- a/deps/openssl/openssl/crypto/evp/evp_err.c
+++ b/deps/openssl/openssl/crypto/evp/evp_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -15,11 +15,15 @@
static const ERR_STRING_DATA EVP_str_functs[] = {
{ERR_PACK(ERR_LIB_EVP, EVP_F_AESNI_INIT_KEY, 0), "aesni_init_key"},
+ {ERR_PACK(ERR_LIB_EVP, EVP_F_AESNI_XTS_INIT_KEY, 0), "aesni_xts_init_key"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_AES_GCM_CTRL, 0), "aes_gcm_ctrl"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_AES_INIT_KEY, 0), "aes_init_key"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_AES_OCB_CIPHER, 0), "aes_ocb_cipher"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_AES_T4_INIT_KEY, 0), "aes_t4_init_key"},
+ {ERR_PACK(ERR_LIB_EVP, EVP_F_AES_T4_XTS_INIT_KEY, 0),
+ "aes_t4_xts_init_key"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_AES_WRAP_CIPHER, 0), "aes_wrap_cipher"},
+ {ERR_PACK(ERR_LIB_EVP, EVP_F_AES_XTS_INIT_KEY, 0), "aes_xts_init_key"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_ALG_MODULE_INIT, 0), "alg_module_init"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_ARIA_CCM_INIT_KEY, 0), "aria_ccm_init_key"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_ARIA_GCM_CTRL, 0), "aria_gcm_ctrl"},
@@ -149,6 +153,8 @@ static const ERR_STRING_DATA EVP_str_functs[] = {
{ERR_PACK(ERR_LIB_EVP, EVP_F_PKEY_SET_TYPE, 0), "pkey_set_type"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_RC2_MAGIC_TO_METH, 0), "rc2_magic_to_meth"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_RC5_CTRL, 0), "rc5_ctrl"},
+ {ERR_PACK(ERR_LIB_EVP, EVP_F_R_32_12_16_INIT_KEY, 0),
+ "r_32_12_16_init_key"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_S390X_AES_GCM_CTRL, 0), "s390x_aes_gcm_ctrl"},
{ERR_PACK(ERR_LIB_EVP, EVP_F_UPDATE, 0), "update"},
{0, NULL}
@@ -160,6 +166,7 @@ static const ERR_STRING_DATA EVP_str_reasons[] = {
{ERR_PACK(ERR_LIB_EVP, 0, EVP_R_ARIA_KEY_SETUP_FAILED),
"aria key setup failed"},
{ERR_PACK(ERR_LIB_EVP, 0, EVP_R_BAD_DECRYPT), "bad decrypt"},
+ {ERR_PACK(ERR_LIB_EVP, 0, EVP_R_BAD_KEY_LENGTH), "bad key length"},
{ERR_PACK(ERR_LIB_EVP, 0, EVP_R_BUFFER_TOO_SMALL), "buffer too small"},
{ERR_PACK(ERR_LIB_EVP, 0, EVP_R_CAMELLIA_KEY_SETUP_FAILED),
"camellia key setup failed"},
@@ -266,6 +273,8 @@ static const ERR_STRING_DATA EVP_str_reasons[] = {
"wrap mode not allowed"},
{ERR_PACK(ERR_LIB_EVP, 0, EVP_R_WRONG_FINAL_BLOCK_LENGTH),
"wrong final block length"},
+ {ERR_PACK(ERR_LIB_EVP, 0, EVP_R_XTS_DUPLICATED_KEYS),
+ "xts duplicated keys"},
{0, NULL}
};
diff --git a/deps/openssl/openssl/crypto/evp/evp_lib.c b/deps/openssl/openssl/crypto/evp/evp_lib.c
index 1b3c9840c6fc53..4935c2a94a1a67 100644
--- a/deps/openssl/openssl/crypto/evp/evp_lib.c
+++ b/deps/openssl/openssl/crypto/evp/evp_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -242,6 +242,13 @@ int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher)
int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx)
{
+ int i, rv;
+
+ if ((EVP_CIPHER_flags(ctx->cipher) & EVP_CIPH_CUSTOM_IV_LENGTH) != 0) {
+ rv = EVP_CIPHER_CTX_ctrl((EVP_CIPHER_CTX *)ctx, EVP_CTRL_GET_IVLEN,
+ 0, &i);
+ return (rv == 1) ? i : -1;
+ }
return ctx->cipher->iv_len;
}
diff --git a/deps/openssl/openssl/crypto/evp/m_sha3.c b/deps/openssl/openssl/crypto/evp/m_sha3.c
index 31379c0f6b9953..01cf57d313d08c 100644
--- a/deps/openssl/openssl/crypto/evp/m_sha3.c
+++ b/deps/openssl/openssl/crypto/evp/m_sha3.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -108,6 +108,9 @@ static int sha3_final(EVP_MD_CTX *evp_ctx, unsigned char *md)
size_t bsz = ctx->block_size;
size_t num = ctx->num;
+ if (ctx->md_size == 0)
+ return 1;
+
/*
* Pad the data with 10*1. Note that |num| can be |bsz - 1|
* in which case both byte operations below are performed on
diff --git a/deps/openssl/openssl/crypto/include/internal/ctype.h b/deps/openssl/openssl/crypto/include/internal/ctype.h
index a35b12bfbff654..9f3a58339c4ffe 100644
--- a/deps/openssl/openssl/crypto/include/internal/ctype.h
+++ b/deps/openssl/openssl/crypto/include/internal/ctype.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -57,6 +57,8 @@ int ossl_ctype_check(int c, unsigned int mask);
int ossl_tolower(int c);
int ossl_toupper(int c);
+int ascii_isdigit(const char inchar);
+
# define ossl_isalnum(c) (ossl_ctype_check((c), CTYPE_MASK_alnum))
# define ossl_isalpha(c) (ossl_ctype_check((c), CTYPE_MASK_alpha))
# ifdef CHARSET_EBCDIC
diff --git a/deps/openssl/openssl/crypto/include/internal/rand_int.h b/deps/openssl/openssl/crypto/include/internal/rand_int.h
index 888cab1b8f6644..10347ab0e37403 100644
--- a/deps/openssl/openssl/crypto/include/internal/rand_int.h
+++ b/deps/openssl/openssl/crypto/include/internal/rand_int.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -26,7 +26,6 @@ typedef struct rand_pool_st RAND_POOL;
void rand_cleanup_int(void);
void rand_drbg_cleanup_int(void);
void drbg_delete_thread_state(void);
-void rand_fork(void);
/* Hardware-based seeding functions. */
size_t rand_acquire_entropy_from_tsc(RAND_POOL *pool);
@@ -52,7 +51,8 @@ void rand_drbg_cleanup_additional_data(RAND_POOL *pool, unsigned char *out);
/*
* RAND_POOL functions
*/
-RAND_POOL *rand_pool_new(int entropy_requested, size_t min_len, size_t max_len);
+RAND_POOL *rand_pool_new(int entropy_requested, int secure,
+ size_t min_len, size_t max_len);
RAND_POOL *rand_pool_attach(const unsigned char *buffer, size_t len,
size_t entropy);
void rand_pool_free(RAND_POOL *pool);
diff --git a/deps/openssl/openssl/crypto/include/internal/sm2err.h b/deps/openssl/openssl/crypto/include/internal/sm2err.h
index a4db1b73d728c8..09edfab787f415 100644
--- a/deps/openssl/openssl/crypto/include/internal/sm2err.h
+++ b/deps/openssl/openssl/crypto/include/internal/sm2err.h
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -11,6 +11,10 @@
#ifndef HEADER_SM2ERR_H
# define HEADER_SM2ERR_H
+# ifndef HEADER_SYMHACKS_H
+# include
+# endif
+
# include
# ifndef OPENSSL_NO_SM2
diff --git a/deps/openssl/openssl/crypto/init.c b/deps/openssl/openssl/crypto/init.c
index 62626a707ea8af..9fc0e8ef68aadb 100644
--- a/deps/openssl/openssl/crypto/init.c
+++ b/deps/openssl/openssl/crypto/init.c
@@ -40,7 +40,7 @@ static int stopped = 0;
* destructor for threads terminating before libcrypto is initialized or
* after it's de-initialized. Access to the key doesn't have to be
* serialized for the said threads, because they didn't use libcrypto
- * and it doesn't matter if they pick "impossible" or derefernce real
+ * and it doesn't matter if they pick "impossible" or dereference real
* key value and pull NULL past initialization in the first thread that
* intends to use libcrypto.
*/
@@ -847,6 +847,5 @@ void OPENSSL_fork_parent(void)
void OPENSSL_fork_child(void)
{
- rand_fork();
}
#endif
diff --git a/deps/openssl/openssl/crypto/lhash/lhash.c b/deps/openssl/openssl/crypto/lhash/lhash.c
index 8d9f933df368c9..485d4c3ffff454 100644
--- a/deps/openssl/openssl/crypto/lhash/lhash.c
+++ b/deps/openssl/openssl/crypto/lhash/lhash.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -19,14 +19,14 @@
/*
* A hashing implementation that appears to be based on the linear hashing
- * alogrithm:
+ * algorithm:
* https://en.wikipedia.org/wiki/Linear_hashing
*
* Litwin, Witold (1980), "Linear hashing: A new tool for file and table
* addressing", Proc. 6th Conference on Very Large Databases: 212-223
- * http://hackthology.com/pdfs/Litwin-1980-Linear_Hashing.pdf
+ * https://hackthology.com/pdfs/Litwin-1980-Linear_Hashing.pdf
*
- * From the wikipedia article "Linear hashing is used in the BDB Berkeley
+ * From the Wikipedia article "Linear hashing is used in the BDB Berkeley
* database system, which in turn is used by many software systems such as
* OpenLDAP, using a C implementation derived from the CACM article and first
* published on the Usenet in 1988 by Esmond Pitt."
diff --git a/deps/openssl/openssl/crypto/o_str.c b/deps/openssl/openssl/crypto/o_str.c
index 1dbd70d58c4ddc..9ad7a89dcadfe7 100644
--- a/deps/openssl/openssl/crypto/o_str.c
+++ b/deps/openssl/openssl/crypto/o_str.c
@@ -231,7 +231,7 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen)
* buf is left unused.
*/
err = strerror_r(errnum, buf, buflen);
- if (err == NULL)
+ if (err == NULL || buflen == 0)
return 0;
/*
* If err is statically allocated, err != buf and we need to copy the data.
diff --git a/deps/openssl/openssl/crypto/pem/pvkfmt.c b/deps/openssl/openssl/crypto/pem/pvkfmt.c
index e39c2438140d05..2bbee4a306e4f1 100644
--- a/deps/openssl/openssl/crypto/pem/pvkfmt.c
+++ b/deps/openssl/openssl/crypto/pem/pvkfmt.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2005-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -274,6 +274,9 @@ static EVP_PKEY *b2i_dss(const unsigned char **in,
if (!read_lebn(&p, 20, &priv_key))
goto memerr;
+ /* Set constant time flag before public key calculation */
+ BN_set_flags(priv_key, BN_FLG_CONSTTIME);
+
/* Calculate public key */
pub_key = BN_new();
if (pub_key == NULL)
diff --git a/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c b/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c
index ee08e602a1eb91..f63fbc50ea60ef 100644
--- a/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c
+++ b/deps/openssl/openssl/crypto/pkcs7/pk7_doit.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -137,7 +137,8 @@ static int pkcs7_encode_rinfo(PKCS7_RECIP_INFO *ri,
}
static int pkcs7_decrypt_rinfo(unsigned char **pek, int *peklen,
- PKCS7_RECIP_INFO *ri, EVP_PKEY *pkey)
+ PKCS7_RECIP_INFO *ri, EVP_PKEY *pkey,
+ size_t fixlen)
{
EVP_PKEY_CTX *pctx = NULL;
unsigned char *ek = NULL;
@@ -170,7 +171,9 @@ static int pkcs7_decrypt_rinfo(unsigned char **pek, int *peklen,
}
if (EVP_PKEY_decrypt(pctx, ek, &eklen,
- ri->enc_key->data, ri->enc_key->length) <= 0) {
+ ri->enc_key->data, ri->enc_key->length) <= 0
+ || eklen == 0
+ || (fixlen != 0 && eklen != fixlen)) {
ret = 0;
PKCS7err(PKCS7_F_PKCS7_DECRYPT_RINFO, ERR_R_EVP_LIB);
goto err;
@@ -499,13 +502,14 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
for (i = 0; i < sk_PKCS7_RECIP_INFO_num(rsk); i++) {
ri = sk_PKCS7_RECIP_INFO_value(rsk, i);
- if (pkcs7_decrypt_rinfo(&ek, &eklen, ri, pkey) < 0)
+ if (pkcs7_decrypt_rinfo(&ek, &eklen, ri, pkey,
+ EVP_CIPHER_key_length(evp_cipher)) < 0)
goto err;
ERR_clear_error();
}
} else {
/* Only exit on fatal errors, not decrypt failure */
- if (pkcs7_decrypt_rinfo(&ek, &eklen, ri, pkey) < 0)
+ if (pkcs7_decrypt_rinfo(&ek, &eklen, ri, pkey, 0) < 0)
goto err;
ERR_clear_error();
}
diff --git a/deps/openssl/openssl/crypto/rand/drbg_lib.c b/deps/openssl/openssl/crypto/rand/drbg_lib.c
index abbe0a8ba30f3e..12bb627a04efab 100644
--- a/deps/openssl/openssl/crypto/rand/drbg_lib.c
+++ b/deps/openssl/openssl/crypto/rand/drbg_lib.c
@@ -197,7 +197,7 @@ static RAND_DRBG *rand_drbg_new(int secure,
}
drbg->secure = secure && CRYPTO_secure_allocated(drbg);
- drbg->fork_count = rand_fork_count;
+ drbg->fork_id = openssl_get_fork_id();
drbg->parent = parent;
if (parent == NULL) {
@@ -318,7 +318,7 @@ int RAND_DRBG_instantiate(RAND_DRBG *drbg,
/*
* NIST SP800-90Ar1 section 9.1 says you can combine getting the entropy
* and nonce in 1 call by increasing the entropy with 50% and increasing
- * the minimum length to accomadate the length of the nonce.
+ * the minimum length to accommodate the length of the nonce.
* We do this in case a nonce is require and get_nonce is NULL.
*/
if (drbg->min_noncelen > 0 && drbg->get_nonce == NULL) {
@@ -578,6 +578,7 @@ int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t outlen,
int prediction_resistance,
const unsigned char *adin, size_t adinlen)
{
+ int fork_id;
int reseed_required = 0;
if (drbg->state != DRBG_READY) {
@@ -603,8 +604,10 @@ int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t outlen,
return 0;
}
- if (drbg->fork_count != rand_fork_count) {
- drbg->fork_count = rand_fork_count;
+ fork_id = openssl_get_fork_id();
+
+ if (drbg->fork_id != fork_id) {
+ drbg->fork_id = fork_id;
reseed_required = 1;
}
@@ -664,7 +667,7 @@ int RAND_DRBG_bytes(RAND_DRBG *drbg, unsigned char *out, size_t outlen)
if (drbg->adin_pool == NULL) {
if (drbg->type == 0)
goto err;
- drbg->adin_pool = rand_pool_new(0, 0, drbg->max_adinlen);
+ drbg->adin_pool = rand_pool_new(0, 0, 0, drbg->max_adinlen);
if (drbg->adin_pool == NULL)
goto err;
}
diff --git a/deps/openssl/openssl/crypto/rand/rand_err.c b/deps/openssl/openssl/crypto/rand/rand_err.c
index 6a870455d50a8a..ae4d8559fb2850 100644
--- a/deps/openssl/openssl/crypto/rand/rand_err.c
+++ b/deps/openssl/openssl/crypto/rand/rand_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -47,6 +47,7 @@ static const ERR_STRING_DATA RAND_str_functs[] = {
{ERR_PACK(ERR_LIB_RAND, RAND_F_RAND_POOL_ATTACH, 0), "rand_pool_attach"},
{ERR_PACK(ERR_LIB_RAND, RAND_F_RAND_POOL_BYTES_NEEDED, 0),
"rand_pool_bytes_needed"},
+ {ERR_PACK(ERR_LIB_RAND, RAND_F_RAND_POOL_GROW, 0), "rand_pool_grow"},
{ERR_PACK(ERR_LIB_RAND, RAND_F_RAND_POOL_NEW, 0), "rand_pool_new"},
{ERR_PACK(ERR_LIB_RAND, RAND_F_RAND_WRITE_FILE, 0), "RAND_write_file"},
{0, NULL}
diff --git a/deps/openssl/openssl/crypto/rand/rand_lcl.h b/deps/openssl/openssl/crypto/rand/rand_lcl.h
index c3e9804dc07e5b..306c59f6efa0f6 100644
--- a/deps/openssl/openssl/crypto/rand/rand_lcl.h
+++ b/deps/openssl/openssl/crypto/rand/rand_lcl.h
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -45,7 +45,6 @@
# define DRBG_MAX_LENGTH INT32_MAX
-
/*
* Maximum allocation size for RANDOM_POOL buffers
*
@@ -72,6 +71,24 @@
* 1.5 * (RAND_DRBG_STRENGTH / 8))
*/
+/*
+ * Initial allocation minimum.
+ *
+ * There is a distinction between the secure and normal allocation minimums.
+ * Ideally, the secure allocation size should be a power of two. The normal
+ * allocation size doesn't have any such restriction.
+ *
+ * The secure value is based on 128 bits of secure material, which is 16 bytes.
+ * Typically, the DRBGs will set a minimum larger than this so optimal
+ * allocation ought to take place (for full quality seed material).
+ *
+ * The normal value has been chosed by noticing that the rand_drbg_get_nonce
+ * function is usually the largest of the built in allocation (twenty four
+ * bytes and then appending another sixteen bytes). This means the buffer ends
+ * with 40 bytes. The value of forty eight is comfortably above this which
+ * allows some slack in the platform specific values used.
+ */
+# define RAND_POOL_MIN_ALLOCATION(secure) ((secure) ? 16 : 48)
/* DRBG status values */
typedef enum drbg_status_e {
@@ -150,9 +167,11 @@ struct rand_pool_st {
size_t len; /* current number of random bytes contained in the pool */
int attached; /* true pool was attached to existing buffer */
+ int secure; /* 1: allocated on the secure heap, 0: otherwise */
size_t min_len; /* minimum number of random bytes requested */
size_t max_len; /* maximum number of random bytes (allocated buffer size) */
+ size_t alloc_len; /* current number of bytes allocated */
size_t entropy; /* current entropy count in bits */
size_t entropy_requested; /* requested entropy count in bits */
};
@@ -167,12 +186,12 @@ struct rand_drbg_st {
int secure; /* 1: allocated on the secure heap, 0: otherwise */
int type; /* the nid of the underlying algorithm */
/*
- * Stores the value of the rand_fork_count global as of when we last
- * reseeded. The DRBG reseeds automatically whenever drbg->fork_count !=
- * rand_fork_count. Used to provide fork-safety and reseed this DRBG in
- * the child process.
+ * Stores the return value of openssl_get_fork_id() as of when we last
+ * reseeded. The DRBG reseeds automatically whenever drbg->fork_id !=
+ * openssl_get_fork_id(). Used to provide fork-safety and reseed this
+ * DRBG in the child process.
*/
- int fork_count;
+ int fork_id;
unsigned short flags; /* various external flags */
/*
@@ -264,19 +283,6 @@ struct rand_drbg_st {
/* The global RAND method, and the global buffer and DRBG instance. */
extern RAND_METHOD rand_meth;
-/*
- * A "generation count" of forks. Incremented in the child process after a
- * fork. Since rand_fork_count is increment-only, and only ever written to in
- * the child process of the fork, which is guaranteed to be single-threaded, no
- * locking is needed for normal (read) accesses; the rest of pthread fork
- * processing is assumed to introduce the necessary memory barriers. Sibling
- * children of a given parent will produce duplicate values, but this is not
- * problematic because the reseeding process pulls input from the system CSPRNG
- * and/or other global sources, so the siblings will end up generating
- * different output streams.
- */
-extern int rand_fork_count;
-
/* DRBG helpers */
int rand_drbg_restart(RAND_DRBG *drbg,
const unsigned char *buffer, size_t len, size_t entropy);
diff --git a/deps/openssl/openssl/crypto/rand/rand_lib.c b/deps/openssl/openssl/crypto/rand/rand_lib.c
index c573b66fdc3268..91b26523110f34 100644
--- a/deps/openssl/openssl/crypto/rand/rand_lib.c
+++ b/deps/openssl/openssl/crypto/rand/rand_lib.c
@@ -26,8 +26,6 @@ static CRYPTO_RWLOCK *rand_meth_lock;
static const RAND_METHOD *default_RAND_meth;
static CRYPTO_ONCE rand_init = CRYPTO_ONCE_STATIC_INIT;
-int rand_fork_count;
-
static CRYPTO_RWLOCK *rand_nonce_lock;
static int rand_nonce_count;
@@ -150,7 +148,7 @@ size_t rand_drbg_get_entropy(RAND_DRBG *drbg,
pool = drbg->seed_pool;
pool->entropy_requested = entropy;
} else {
- pool = rand_pool_new(entropy, min_len, max_len);
+ pool = rand_pool_new(entropy, drbg->secure, min_len, max_len);
if (pool == NULL)
return 0;
}
@@ -163,7 +161,9 @@ size_t rand_drbg_get_entropy(RAND_DRBG *drbg,
size_t bytes = 0;
/*
- * Get random from parent, include our state as additional input.
+ * Get random data from parent. Include our address as additional input,
+ * in order to provide some additional distinction between different
+ * DRBG child instances.
* Our lock is already held, but we need to lock our parent before
* generating bits from it. (Note: taking the lock will be a no-op
* if locking if drbg->parent->lock == NULL.)
@@ -172,7 +172,7 @@ size_t rand_drbg_get_entropy(RAND_DRBG *drbg,
if (RAND_DRBG_generate(drbg->parent,
buffer, bytes_needed,
prediction_resistance,
- NULL, 0) != 0)
+ (unsigned char *)&drbg, sizeof(drbg)) != 0)
bytes = bytes_needed;
drbg->reseed_next_counter
= tsan_load(&drbg->parent->reseed_prop_counter);
@@ -216,8 +216,12 @@ size_t rand_drbg_get_entropy(RAND_DRBG *drbg,
void rand_drbg_cleanup_entropy(RAND_DRBG *drbg,
unsigned char *out, size_t outlen)
{
- if (drbg->seed_pool == NULL)
- OPENSSL_secure_clear_free(out, outlen);
+ if (drbg->seed_pool == NULL) {
+ if (drbg->secure)
+ OPENSSL_secure_clear_free(out, outlen);
+ else
+ OPENSSL_clear_free(out, outlen);
+ }
}
@@ -238,8 +242,7 @@ size_t rand_drbg_get_nonce(RAND_DRBG *drbg,
} data;
memset(&data, 0, sizeof(data));
-
- pool = rand_pool_new(0, min_len, max_len);
+ pool = rand_pool_new(0, 0, min_len, max_len);
if (pool == NULL)
return 0;
@@ -268,7 +271,7 @@ size_t rand_drbg_get_nonce(RAND_DRBG *drbg,
void rand_drbg_cleanup_nonce(RAND_DRBG *drbg,
unsigned char *out, size_t outlen)
{
- OPENSSL_secure_clear_free(out, outlen);
+ OPENSSL_clear_free(out, outlen);
}
/*
@@ -300,11 +303,6 @@ void rand_drbg_cleanup_additional_data(RAND_POOL *pool, unsigned char *out)
rand_pool_reattach(pool, out);
}
-void rand_fork(void)
-{
- rand_fork_count++;
-}
-
DEFINE_RUN_ONCE_STATIC(do_rand_init)
{
#ifndef OPENSSL_NO_ENGINE
@@ -364,7 +362,7 @@ void rand_cleanup_int(void)
}
/*
- * RAND_close_seed_files() ensures that any seed file decriptors are
+ * RAND_close_seed_files() ensures that any seed file descriptors are
* closed after use.
*/
void RAND_keep_random_devices_open(int keep)
@@ -403,7 +401,7 @@ int RAND_poll(void)
} else {
/* fill random pool and seed the current legacy RNG */
- pool = rand_pool_new(RAND_DRBG_STRENGTH,
+ pool = rand_pool_new(RAND_DRBG_STRENGTH, 1,
(RAND_DRBG_STRENGTH + 7) / 8,
RAND_POOL_MAX_LENGTH);
if (pool == NULL)
@@ -430,9 +428,11 @@ int RAND_poll(void)
* Allocate memory and initialize a new random pool
*/
-RAND_POOL *rand_pool_new(int entropy_requested, size_t min_len, size_t max_len)
+RAND_POOL *rand_pool_new(int entropy_requested, int secure,
+ size_t min_len, size_t max_len)
{
RAND_POOL *pool = OPENSSL_zalloc(sizeof(*pool));
+ size_t min_alloc_size = RAND_POOL_MIN_ALLOCATION(secure);
if (pool == NULL) {
RANDerr(RAND_F_RAND_POOL_NEW, ERR_R_MALLOC_FAILURE);
@@ -442,14 +442,22 @@ RAND_POOL *rand_pool_new(int entropy_requested, size_t min_len, size_t max_len)
pool->min_len = min_len;
pool->max_len = (max_len > RAND_POOL_MAX_LENGTH) ?
RAND_POOL_MAX_LENGTH : max_len;
+ pool->alloc_len = min_len < min_alloc_size ? min_alloc_size : min_len;
+ if (pool->alloc_len > pool->max_len)
+ pool->alloc_len = pool->max_len;
+
+ if (secure)
+ pool->buffer = OPENSSL_secure_zalloc(pool->alloc_len);
+ else
+ pool->buffer = OPENSSL_zalloc(pool->alloc_len);
- pool->buffer = OPENSSL_secure_zalloc(pool->max_len);
if (pool->buffer == NULL) {
RANDerr(RAND_F_RAND_POOL_NEW, ERR_R_MALLOC_FAILURE);
goto err;
}
pool->entropy_requested = entropy_requested;
+ pool->secure = secure;
return pool;
@@ -484,7 +492,7 @@ RAND_POOL *rand_pool_attach(const unsigned char *buffer, size_t len,
pool->attached = 1;
- pool->min_len = pool->max_len = pool->len;
+ pool->min_len = pool->max_len = pool->alloc_len = pool->len;
pool->entropy = entropy;
return pool;
@@ -504,8 +512,13 @@ void rand_pool_free(RAND_POOL *pool)
* to rand_pool_attach() as `const unsigned char*`.
* (see corresponding comment in rand_pool_attach()).
*/
- if (!pool->attached)
- OPENSSL_secure_clear_free(pool->buffer, pool->max_len);
+ if (!pool->attached) {
+ if (pool->secure)
+ OPENSSL_secure_clear_free(pool->buffer, pool->alloc_len);
+ else
+ OPENSSL_clear_free(pool->buffer, pool->alloc_len);
+ }
+
OPENSSL_free(pool);
}
@@ -598,6 +611,42 @@ size_t rand_pool_entropy_needed(RAND_POOL *pool)
return 0;
}
+/* Increase the allocation size -- not usable for an attached pool */
+static int rand_pool_grow(RAND_POOL *pool, size_t len)
+{
+ if (len > pool->alloc_len - pool->len) {
+ unsigned char *p;
+ const size_t limit = pool->max_len / 2;
+ size_t newlen = pool->alloc_len;
+
+ if (pool->attached || len > pool->max_len - pool->len) {
+ RANDerr(RAND_F_RAND_POOL_GROW, ERR_R_INTERNAL_ERROR);
+ return 0;
+ }
+
+ do
+ newlen = newlen < limit ? newlen * 2 : pool->max_len;
+ while (len > newlen - pool->len);
+
+ if (pool->secure)
+ p = OPENSSL_secure_zalloc(newlen);
+ else
+ p = OPENSSL_zalloc(newlen);
+ if (p == NULL) {
+ RANDerr(RAND_F_RAND_POOL_GROW, ERR_R_MALLOC_FAILURE);
+ return 0;
+ }
+ memcpy(p, pool->buffer, pool->len);
+ if (pool->secure)
+ OPENSSL_secure_clear_free(pool->buffer, pool->alloc_len);
+ else
+ OPENSSL_clear_free(pool->buffer, pool->alloc_len);
+ pool->buffer = p;
+ pool->alloc_len = newlen;
+ }
+ return 1;
+}
+
/*
* Returns the number of bytes needed to fill the pool, assuming
* the input has 1 / |entropy_factor| entropy bits per data bit.
@@ -627,6 +676,24 @@ size_t rand_pool_bytes_needed(RAND_POOL *pool, unsigned int entropy_factor)
/* to meet the min_len requirement */
bytes_needed = pool->min_len - pool->len;
+ /*
+ * Make sure the buffer is large enough for the requested amount
+ * of data. This guarantees that existing code patterns where
+ * rand_pool_add_begin, rand_pool_add_end or rand_pool_add
+ * are used to collect entropy data without any error handling
+ * whatsoever, continue to be valid.
+ * Furthermore if the allocation here fails once, make sure that
+ * we don't fall back to a less secure or even blocking random source,
+ * as that could happen by the existing code patterns.
+ * This is not a concern for additional data, therefore that
+ * is not needed if rand_pool_grow fails in other places.
+ */
+ if (!rand_pool_grow(pool, bytes_needed)) {
+ /* persistent error for this pool */
+ pool->max_len = pool->len = 0;
+ return 0;
+ }
+
return bytes_needed;
}
@@ -659,6 +726,27 @@ int rand_pool_add(RAND_POOL *pool,
}
if (len > 0) {
+ /*
+ * This is to protect us from accidentally passing the buffer
+ * returned from rand_pool_add_begin.
+ * The check for alloc_len makes sure we do not compare the
+ * address of the end of the allocated memory to something
+ * different, since that comparison would have an
+ * indeterminate result.
+ */
+ if (pool->alloc_len > pool->len && pool->buffer + pool->len == buffer) {
+ RANDerr(RAND_F_RAND_POOL_ADD, ERR_R_INTERNAL_ERROR);
+ return 0;
+ }
+ /*
+ * We have that only for cases when a pool is used to collect
+ * additional data.
+ * For entropy data, as long as the allocation request stays within
+ * the limits given by rand_pool_bytes_needed this rand_pool_grow
+ * below is guaranteed to succeed, thus no allocation happens.
+ */
+ if (!rand_pool_grow(pool, len))
+ return 0;
memcpy(pool->buffer + pool->len, buffer, len);
pool->len += len;
pool->entropy += entropy;
@@ -694,6 +782,18 @@ unsigned char *rand_pool_add_begin(RAND_POOL *pool, size_t len)
return NULL;
}
+ /*
+ * As long as the allocation request stays within the limits given
+ * by rand_pool_bytes_needed this rand_pool_grow below is guaranteed
+ * to succeed, thus no allocation happens.
+ * We have that only for cases when a pool is used to collect
+ * additional data. Then the buffer might need to grow here,
+ * and of course the caller is responsible to check the return
+ * value of this function.
+ */
+ if (!rand_pool_grow(pool, len))
+ return NULL;
+
return pool->buffer + pool->len;
}
@@ -708,7 +808,7 @@ unsigned char *rand_pool_add_begin(RAND_POOL *pool, size_t len)
*/
int rand_pool_add_end(RAND_POOL *pool, size_t len, size_t entropy)
{
- if (len > pool->max_len - pool->len) {
+ if (len > pool->alloc_len - pool->len) {
RANDerr(RAND_F_RAND_POOL_ADD_END, RAND_R_RANDOM_POOL_OVERFLOW);
return 0;
}
diff --git a/deps/openssl/openssl/crypto/rand/rand_unix.c b/deps/openssl/openssl/crypto/rand/rand_unix.c
index 4710dbb2d1019a..69efcdeed752d7 100644
--- a/deps/openssl/openssl/crypto/rand/rand_unix.c
+++ b/deps/openssl/openssl/crypto/rand/rand_unix.c
@@ -14,14 +14,19 @@
#include
#include "internal/cryptlib.h"
#include
+#include
#include "rand_lcl.h"
#include "internal/rand_int.h"
#include
#include "internal/dso.h"
-#if defined(__linux)
-# include
+#ifdef __linux
+# include
+# ifdef DEVRANDOM_WAIT
+# include
+# include
+# endif
#endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) && !defined(OPENSSL_SYS_UEFI)
# include
# include
# include
@@ -275,6 +280,17 @@ static ssize_t sysctl_random(char *buf, size_t buflen)
# endif
# if defined(OPENSSL_RAND_SEED_GETRANDOM)
+
+# if defined(__linux) && !defined(__NR_getrandom)
+# if defined(__arm__) && defined(__NR_SYSCALL_BASE)
+# define __NR_getrandom (__NR_SYSCALL_BASE+384)
+# elif defined(__i386__)
+# define __NR_getrandom 355
+# elif defined(__x86_64__) && !defined(__ILP32__)
+# define __NR_getrandom 318
+# endif
+# endif
+
/*
* syscall_random(): Try to get random data using a system call
* returns the number of bytes returned in buf, or < 0 on error.
@@ -346,6 +362,91 @@ static struct random_device {
} random_devices[OSSL_NELEM(random_device_paths)];
static int keep_random_devices_open = 1;
+# if defined(__linux) && defined(DEVRANDOM_WAIT)
+static void *shm_addr;
+
+static void cleanup_shm(void)
+{
+ shmdt(shm_addr);
+}
+
+/*
+ * Ensure that the system randomness source has been adequately seeded.
+ * This is done by having the first start of libcrypto, wait until the device
+ * /dev/random becomes able to supply a byte of entropy. Subsequent starts
+ * of the library and later reseedings do not need to do this.
+ */
+static int wait_random_seeded(void)
+{
+ static int seeded = OPENSSL_RAND_SEED_DEVRANDOM_SHM_ID < 0;
+ static const int kernel_version[] = { DEVRANDOM_SAFE_KERNEL };
+ int kernel[2];
+ int shm_id, fd, r;
+ char c, *p;
+ struct utsname un;
+ fd_set fds;
+
+ if (!seeded) {
+ /* See if anything has created the global seeded indication */
+ if ((shm_id = shmget(OPENSSL_RAND_SEED_DEVRANDOM_SHM_ID, 1, 0)) == -1) {
+ /*
+ * Check the kernel's version and fail if it is too recent.
+ *
+ * Linux kernels from 4.8 onwards do not guarantee that
+ * /dev/urandom is properly seeded when /dev/random becomes
+ * readable. However, such kernels support the getentropy(2)
+ * system call and this should always succeed which renders
+ * this alternative but essentially identical source moot.
+ */
+ if (uname(&un) == 0) {
+ kernel[0] = atoi(un.release);
+ p = strchr(un.release, '.');
+ kernel[1] = p == NULL ? 0 : atoi(p + 1);
+ if (kernel[0] > kernel_version[0]
+ || (kernel[0] == kernel_version[0]
+ && kernel[1] >= kernel_version[1])) {
+ return 0;
+ }
+ }
+ /* Open /dev/random and wait for it to be readable */
+ if ((fd = open(DEVRANDOM_WAIT, O_RDONLY)) != -1) {
+ if (DEVRANDM_WAIT_USE_SELECT && fd < FD_SETSIZE) {
+ FD_ZERO(&fds);
+ FD_SET(fd, &fds);
+ while ((r = select(fd + 1, &fds, NULL, NULL, NULL)) < 0
+ && errno == EINTR);
+ } else {
+ while ((r = read(fd, &c, 1)) < 0 && errno == EINTR);
+ }
+ close(fd);
+ if (r == 1) {
+ seeded = 1;
+ /* Create the shared memory indicator */
+ shm_id = shmget(OPENSSL_RAND_SEED_DEVRANDOM_SHM_ID, 1,
+ IPC_CREAT | S_IRUSR | S_IRGRP | S_IROTH);
+ }
+ }
+ }
+ if (shm_id != -1) {
+ seeded = 1;
+ /*
+ * Map the shared memory to prevent its premature destruction.
+ * If this call fails, it isn't a big problem.
+ */
+ shm_addr = shmat(shm_id, NULL, SHM_RDONLY);
+ if (shm_addr != (void *)-1)
+ OPENSSL_atexit(&cleanup_shm);
+ }
+ }
+ return seeded;
+}
+# else /* defined __linux */
+static int wait_random_seeded(void)
+{
+ return 1;
+}
+# endif
+
/*
* Verify that the file descriptor associated with the random source is
* still valid. The rationale for doing this is the fact that it is not
@@ -472,12 +573,12 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool)
# if defined(OPENSSL_RAND_SEED_NONE)
return rand_pool_entropy_available(pool);
# else
- size_t bytes_needed;
- size_t entropy_available = 0;
- unsigned char *buffer;
+ size_t entropy_available;
# if defined(OPENSSL_RAND_SEED_GETRANDOM)
{
+ size_t bytes_needed;
+ unsigned char *buffer;
ssize_t bytes;
/* Maximum allowed number of consecutive unsuccessful attempts */
int attempts = 3;
@@ -507,36 +608,16 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool)
# endif
# if defined(OPENSSL_RAND_SEED_DEVRANDOM)
- bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/);
- {
+ if (wait_random_seeded()) {
+ size_t bytes_needed;
+ unsigned char *buffer;
size_t i;
-#ifdef DEVRANDOM_WAIT
- static int wait_done = 0;
- /*
- * On some implementations reading from /dev/urandom is possible
- * before it is initialized. Therefore we wait for /dev/random
- * to be readable to make sure /dev/urandom is initialized.
- */
- if (!wait_done && bytes_needed > 0) {
- int f = open(DEVRANDOM_WAIT, O_RDONLY);
-
- if (f >= 0) {
- fd_set fds;
-
- FD_ZERO(&fds);
- FD_SET(f, &fds);
- while (select(f+1, &fds, NULL, NULL, NULL) < 0
- && errno == EINTR);
- close(f);
- }
- wait_done = 1;
- }
-#endif
-
- for (i = 0; bytes_needed > 0 && i < OSSL_NELEM(random_device_paths); i++) {
+ bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/);
+ for (i = 0; bytes_needed > 0 && i < OSSL_NELEM(random_device_paths);
+ i++) {
ssize_t bytes = 0;
- /* Maximum allowed number of consecutive unsuccessful attempts */
+ /* Maximum number of consecutive unsuccessful attempts */
int attempts = 3;
const int fd = get_random_device(i);
@@ -550,7 +631,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool)
if (bytes > 0) {
rand_pool_add_end(pool, bytes, 8 * bytes);
bytes_needed -= bytes;
- attempts = 3; /* reset counter after successful attempt */
+ attempts = 3; /* reset counter on successful attempt */
} else if (bytes < 0 && errno != EINTR) {
break;
}
@@ -558,7 +639,7 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool)
if (bytes < 0 || !keep_random_devices_open)
close_random_device(i);
- bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/);
+ bytes_needed = rand_pool_bytes_needed(pool, 1);
}
entropy_available = rand_pool_entropy_available(pool);
if (entropy_available > 0)
@@ -579,26 +660,29 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool)
# endif
# if defined(OPENSSL_RAND_SEED_EGD)
- bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/);
- if (bytes_needed > 0) {
+ {
static const char *paths[] = { DEVRANDOM_EGD, NULL };
+ size_t bytes_needed;
+ unsigned char *buffer;
int i;
- for (i = 0; paths[i] != NULL; i++) {
+ bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/);
+ for (i = 0; bytes_needed > 0 && paths[i] != NULL; i++) {
+ size_t bytes = 0;
+ int num;
+
buffer = rand_pool_add_begin(pool, bytes_needed);
- if (buffer != NULL) {
- size_t bytes = 0;
- int num = RAND_query_egd_bytes(paths[i],
- buffer, (int)bytes_needed);
- if (num == (int)bytes_needed)
- bytes = bytes_needed;
+ num = RAND_query_egd_bytes(paths[i],
+ buffer, (int)bytes_needed);
+ if (num == (int)bytes_needed)
+ bytes = bytes_needed;
- rand_pool_add_end(pool, bytes, 8 * bytes);
- entropy_available = rand_pool_entropy_available(pool);
- }
- if (entropy_available > 0)
- return entropy_available;
+ rand_pool_add_end(pool, bytes, 8 * bytes);
+ bytes_needed = rand_pool_bytes_needed(pool, 1);
}
+ entropy_available = rand_pool_entropy_available(pool);
+ if (entropy_available > 0)
+ return entropy_available;
}
# endif
@@ -632,15 +716,18 @@ int rand_pool_add_nonce_data(RAND_POOL *pool)
int rand_pool_add_additional_data(RAND_POOL *pool)
{
struct {
+ int fork_id;
CRYPTO_THREAD_ID tid;
uint64_t time;
} data = { 0 };
/*
* Add some noise from the thread id and a high resolution timer.
+ * The fork_id adds some extra fork-safety.
* The thread id adds a little randomness if the drbg is accessed
* concurrently (which is the case for the drbg).
*/
+ data.fork_id = openssl_get_fork_id();
data.tid = CRYPTO_THREAD_get_current_id();
data.time = get_timer_bits();
diff --git a/deps/openssl/openssl/crypto/rand/rand_win.c b/deps/openssl/openssl/crypto/rand/rand_win.c
index 56d79e7f3b6c84..a9c5751f1a2bc4 100644
--- a/deps/openssl/openssl/crypto/rand/rand_win.c
+++ b/deps/openssl/openssl/crypto/rand/rand_win.c
@@ -19,7 +19,8 @@
# include
/* On Windows Vista or higher use BCrypt instead of the legacy CryptoAPI */
-# if defined(_MSC_VER) && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600
+# if defined(_MSC_VER) && _MSC_VER > 1500 /* 1500 = Visual Studio 2008 */ \
+ && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600
# define USE_BCRYPTGENRANDOM
# endif
diff --git a/deps/openssl/openssl/crypto/rsa/rsa_ameth.c b/deps/openssl/openssl/crypto/rsa/rsa_ameth.c
index ab5f61518bb156..9dcb85d837573e 100644
--- a/deps/openssl/openssl/crypto/rsa/rsa_ameth.c
+++ b/deps/openssl/openssl/crypto/rsa/rsa_ameth.c
@@ -458,6 +458,9 @@ static int rsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,
static int rsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
{
X509_ALGOR *alg = NULL;
+ const EVP_MD *md;
+ const EVP_MD *mgf1md;
+ int min_saltlen;
switch (op) {
@@ -497,6 +500,16 @@ static int rsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
#endif
case ASN1_PKEY_CTRL_DEFAULT_MD_NID:
+ if (pkey->pkey.rsa->pss != NULL) {
+ if (!rsa_pss_get_param(pkey->pkey.rsa->pss, &md, &mgf1md,
+ &min_saltlen)) {
+ RSAerr(0, ERR_R_INTERNAL_ERROR);
+ return 0;
+ }
+ *(int *)arg2 = EVP_MD_type(md);
+ /* Return of 2 indicates this MD is mandatory */
+ return 2;
+ }
*(int *)arg2 = NID_sha256;
return 1;
diff --git a/deps/openssl/openssl/crypto/rsa/rsa_err.c b/deps/openssl/openssl/crypto/rsa/rsa_err.c
index 62fd9e0b114d22..0687c1e6260263 100644
--- a/deps/openssl/openssl/crypto/rsa/rsa_err.c
+++ b/deps/openssl/openssl/crypto/rsa/rsa_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -174,6 +174,8 @@ static const ERR_STRING_DATA RSA_str_reasons[] = {
{ERR_PACK(ERR_LIB_RSA, 0, RSA_R_LAST_OCTET_INVALID), "last octet invalid"},
{ERR_PACK(ERR_LIB_RSA, 0, RSA_R_MGF1_DIGEST_NOT_ALLOWED),
"mgf1 digest not allowed"},
+ {ERR_PACK(ERR_LIB_RSA, 0, RSA_R_MISSING_PRIVATE_KEY),
+ "missing private key"},
{ERR_PACK(ERR_LIB_RSA, 0, RSA_R_MODULUS_TOO_LARGE), "modulus too large"},
{ERR_PACK(ERR_LIB_RSA, 0, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R),
"mp coefficient not inverse of r"},
diff --git a/deps/openssl/openssl/crypto/rsa/rsa_gen.c b/deps/openssl/openssl/crypto/rsa/rsa_gen.c
index 4997a632f2d3f6..2b818088606cdd 100644
--- a/deps/openssl/openssl/crypto/rsa/rsa_gen.c
+++ b/deps/openssl/openssl/crypto/rsa/rsa_gen.c
@@ -250,7 +250,7 @@ static int rsa_builtin_keygen(RSA *rsa, int bits, int primes, BIGNUM *e_value,
*
* This strategy has the following goals:
*
- * 1. 1024-bit factors are effcient when using 3072 and 4096-bit key
+ * 1. 1024-bit factors are efficient when using 3072 and 4096-bit key
* 2. stay the same logic with normal 2-prime key
*/
bitse -= bitsr[i];
diff --git a/deps/openssl/openssl/crypto/rsa/rsa_lib.c b/deps/openssl/openssl/crypto/rsa/rsa_lib.c
index 49c34b7c36c918..e737a28898cc85 100644
--- a/deps/openssl/openssl/crypto/rsa/rsa_lib.c
+++ b/deps/openssl/openssl/crypto/rsa/rsa_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -198,6 +198,7 @@ int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
if (d != NULL) {
BN_clear_free(r->d);
r->d = d;
+ BN_set_flags(r->d, BN_FLG_CONSTTIME);
}
return 1;
@@ -215,10 +216,12 @@ int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
if (p != NULL) {
BN_clear_free(r->p);
r->p = p;
+ BN_set_flags(r->p, BN_FLG_CONSTTIME);
}
if (q != NULL) {
BN_clear_free(r->q);
r->q = q;
+ BN_set_flags(r->q, BN_FLG_CONSTTIME);
}
return 1;
@@ -237,14 +240,17 @@ int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
if (dmp1 != NULL) {
BN_clear_free(r->dmp1);
r->dmp1 = dmp1;
+ BN_set_flags(r->dmp1, BN_FLG_CONSTTIME);
}
if (dmq1 != NULL) {
BN_clear_free(r->dmq1);
r->dmq1 = dmq1;
+ BN_set_flags(r->dmq1, BN_FLG_CONSTTIME);
}
if (iqmp != NULL) {
BN_clear_free(r->iqmp);
r->iqmp = iqmp;
+ BN_set_flags(r->iqmp, BN_FLG_CONSTTIME);
}
return 1;
@@ -276,12 +282,15 @@ int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[],
if (pinfo == NULL)
goto err;
if (primes[i] != NULL && exps[i] != NULL && coeffs[i] != NULL) {
- BN_free(pinfo->r);
- BN_free(pinfo->d);
- BN_free(pinfo->t);
+ BN_clear_free(pinfo->r);
+ BN_clear_free(pinfo->d);
+ BN_clear_free(pinfo->t);
pinfo->r = primes[i];
pinfo->d = exps[i];
pinfo->t = coeffs[i];
+ BN_set_flags(pinfo->r, BN_FLG_CONSTTIME);
+ BN_set_flags(pinfo->d, BN_FLG_CONSTTIME);
+ BN_set_flags(pinfo->t, BN_FLG_CONSTTIME);
} else {
rsa_multip_info_free(pinfo);
goto err;
diff --git a/deps/openssl/openssl/crypto/rsa/rsa_ossl.c b/deps/openssl/openssl/crypto/rsa/rsa_ossl.c
index 33be9ea8cb848b..c8c3b7886aa9a5 100644
--- a/deps/openssl/openssl/crypto/rsa/rsa_ossl.c
+++ b/deps/openssl/openssl/crypto/rsa/rsa_ossl.c
@@ -321,6 +321,11 @@ static int rsa_ossl_private_encrypt(int flen, const unsigned char *from,
RSAerr(RSA_F_RSA_OSSL_PRIVATE_ENCRYPT, ERR_R_MALLOC_FAILURE);
goto err;
}
+ if (rsa->d == NULL) {
+ RSAerr(RSA_F_RSA_OSSL_PRIVATE_ENCRYPT, RSA_R_MISSING_PRIVATE_KEY);
+ BN_free(d);
+ goto err;
+ }
BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME);
if (!rsa->meth->bn_mod_exp(ret, f, d, rsa->n, ctx,
@@ -438,6 +443,11 @@ static int rsa_ossl_private_decrypt(int flen, const unsigned char *from,
RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, ERR_R_MALLOC_FAILURE);
goto err;
}
+ if (rsa->d == NULL) {
+ RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, RSA_R_MISSING_PRIVATE_KEY);
+ BN_free(d);
+ goto err;
+ }
BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME);
if (rsa->flags & RSA_FLAG_CACHE_PUBLIC)
diff --git a/deps/openssl/openssl/crypto/s390xcap.c b/deps/openssl/openssl/crypto/s390xcap.c
index e7c7f0a357f20c..5d58b2d807b427 100644
--- a/deps/openssl/openssl/crypto/s390xcap.c
+++ b/deps/openssl/openssl/crypto/s390xcap.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2010-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -29,7 +29,7 @@ struct OPENSSL_s390xcap_st OPENSSL_s390xcap_P;
void OPENSSL_cpuid_setup(void)
{
sigset_t oset;
- struct sigaction ill_act, oact;
+ struct sigaction ill_act, oact_ill, oact_fpe;
if (OPENSSL_s390xcap_P.stfle[0])
return;
@@ -44,8 +44,8 @@ void OPENSSL_cpuid_setup(void)
sigdelset(&ill_act.sa_mask, SIGFPE);
sigdelset(&ill_act.sa_mask, SIGTRAP);
sigprocmask(SIG_SETMASK, &ill_act.sa_mask, &oset);
- sigaction(SIGILL, &ill_act, &oact);
- sigaction(SIGFPE, &ill_act, &oact);
+ sigaction(SIGILL, &ill_act, &oact_ill);
+ sigaction(SIGFPE, &ill_act, &oact_fpe);
/* protection against missing store-facility-list-extended */
if (sigsetjmp(ill_jmp, 1) == 0)
@@ -61,7 +61,7 @@ void OPENSSL_cpuid_setup(void)
| S390X_CAPBIT(S390X_VXE));
}
- sigaction(SIGFPE, &oact, NULL);
- sigaction(SIGILL, &oact, NULL);
+ sigaction(SIGFPE, &oact_fpe, NULL);
+ sigaction(SIGILL, &oact_ill, NULL);
sigprocmask(SIG_SETMASK, &oset, NULL);
}
diff --git a/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv4.pl b/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv4.pl
index 8bf665c8b38d64..cb8ccc90f5b931 100755
--- a/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv4.pl
+++ b/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv4.pl
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -1104,9 +1104,9 @@ sub Round {
.align 4
.Loop_neon:
@ Theta
- vst1.64 {q4}, [r0:64] @ offload A[0..1][4]
+ vst1.64 {q4}, [r0,:64] @ offload A[0..1][4]
veor q13, q0, q5 @ A[0..1][0]^A[2..3][0]
- vst1.64 {d18}, [r1:64] @ offload A[2][4]
+ vst1.64 {d18}, [r1,:64] @ offload A[2][4]
veor q14, q1, q6 @ A[0..1][1]^A[2..3][1]
veor q15, q2, q7 @ A[0..1][2]^A[2..3][2]
veor d26, d26, d27 @ C[0]=A[0][0]^A[1][0]^A[2][0]^A[3][0]
@@ -1149,10 +1149,10 @@ sub Round {
veor d16, d16, d28 @ A[2][3] ^= C[2]
veor d17, d17, d28 @ A[3][3] ^= C[2]
veor d23, d23, d28 @ A[4][3] ^= C[2]
- vld1.64 {q4}, [r0:64] @ restore A[0..1][4]
+ vld1.64 {q4}, [r0,:64] @ restore A[0..1][4]
vmov d28, d29
- vld1.64 {d18}, [r1:64] @ restore A[2][4]
+ vld1.64 {d18}, [r1,:64] @ restore A[2][4]
veor q2, q2, q13 @ A[0..1][2] ^= D[2]
veor q7, q7, q13 @ A[2..3][2] ^= D[2]
veor d22, d22, d27 @ A[4][2] ^= D[2]
@@ -1227,7 +1227,7 @@ sub Round {
veor q13, q13, q0 @ A[0..1][0] ^ (~A[0..1][1] & A[0..1][2])
veor q14, q14, q1 @ A[0..1][1] ^ (~A[0..1][2] & A[0..1][3])
veor q2, q2, q15 @ A[0..1][2] ^= (~A[0..1][3] & A[0..1][4])
- vst1.64 {q13}, [r0:64] @ offload A[0..1][0]
+ vst1.64 {q13}, [r0,:64] @ offload A[0..1][0]
vbic q13, q0, q4
vbic q15, q1, q0
vmov q1, q14 @ A[0..1][1]
@@ -1248,10 +1248,10 @@ sub Round {
vmov q14, q10 @ A[4][0..1]
veor q9, q9, q13 @ A[2..3][4] ^= (~A[2..3][0] & A[2..3][1])
- vld1.64 d25, [r2:64]! @ Iota[i++]
+ vld1.64 d25, [r2,:64]! @ Iota[i++]
vbic d26, d22, d21
vbic d27, d23, d22
- vld1.64 {q0}, [r0:64] @ restore A[0..1][0]
+ vld1.64 {q0}, [r0,:64] @ restore A[0..1][0]
veor d20, d20, d26 @ A[4][0] ^= (~A[4][1] & A[4][2])
vbic d26, d24, d23
veor d21, d21, d27 @ A[4][1] ^= (~A[4][2] & A[4][3])
@@ -1279,32 +1279,32 @@ sub Round {
mov r5, r2 @ len
mov r6, r3 @ bsz
- vld1.32 {d0}, [r0:64]! @ A[0][0]
- vld1.32 {d2}, [r0:64]! @ A[0][1]
- vld1.32 {d4}, [r0:64]! @ A[0][2]
- vld1.32 {d6}, [r0:64]! @ A[0][3]
- vld1.32 {d8}, [r0:64]! @ A[0][4]
-
- vld1.32 {d1}, [r0:64]! @ A[1][0]
- vld1.32 {d3}, [r0:64]! @ A[1][1]
- vld1.32 {d5}, [r0:64]! @ A[1][2]
- vld1.32 {d7}, [r0:64]! @ A[1][3]
- vld1.32 {d9}, [r0:64]! @ A[1][4]
-
- vld1.32 {d10}, [r0:64]! @ A[2][0]
- vld1.32 {d12}, [r0:64]! @ A[2][1]
- vld1.32 {d14}, [r0:64]! @ A[2][2]
- vld1.32 {d16}, [r0:64]! @ A[2][3]
- vld1.32 {d18}, [r0:64]! @ A[2][4]
-
- vld1.32 {d11}, [r0:64]! @ A[3][0]
- vld1.32 {d13}, [r0:64]! @ A[3][1]
- vld1.32 {d15}, [r0:64]! @ A[3][2]
- vld1.32 {d17}, [r0:64]! @ A[3][3]
- vld1.32 {d19}, [r0:64]! @ A[3][4]
-
- vld1.32 {d20-d23}, [r0:64]! @ A[4][0..3]
- vld1.32 {d24}, [r0:64] @ A[4][4]
+ vld1.32 {d0}, [r0,:64]! @ A[0][0]
+ vld1.32 {d2}, [r0,:64]! @ A[0][1]
+ vld1.32 {d4}, [r0,:64]! @ A[0][2]
+ vld1.32 {d6}, [r0,:64]! @ A[0][3]
+ vld1.32 {d8}, [r0,:64]! @ A[0][4]
+
+ vld1.32 {d1}, [r0,:64]! @ A[1][0]
+ vld1.32 {d3}, [r0,:64]! @ A[1][1]
+ vld1.32 {d5}, [r0,:64]! @ A[1][2]
+ vld1.32 {d7}, [r0,:64]! @ A[1][3]
+ vld1.32 {d9}, [r0,:64]! @ A[1][4]
+
+ vld1.32 {d10}, [r0,:64]! @ A[2][0]
+ vld1.32 {d12}, [r0,:64]! @ A[2][1]
+ vld1.32 {d14}, [r0,:64]! @ A[2][2]
+ vld1.32 {d16}, [r0,:64]! @ A[2][3]
+ vld1.32 {d18}, [r0,:64]! @ A[2][4]
+
+ vld1.32 {d11}, [r0,:64]! @ A[3][0]
+ vld1.32 {d13}, [r0,:64]! @ A[3][1]
+ vld1.32 {d15}, [r0,:64]! @ A[3][2]
+ vld1.32 {d17}, [r0,:64]! @ A[3][3]
+ vld1.32 {d19}, [r0,:64]! @ A[3][4]
+
+ vld1.32 {d20-d23}, [r0,:64]! @ A[4][0..3]
+ vld1.32 {d24}, [r0,:64] @ A[4][4]
sub r0, r0, #24*8 @ rewind
b .Loop_absorb_neon
@@ -1411,32 +1411,32 @@ sub Round {
.align 4
.Labsorbed_neon:
- vst1.32 {d0}, [r0:64]! @ A[0][0..4]
- vst1.32 {d2}, [r0:64]!
- vst1.32 {d4}, [r0:64]!
- vst1.32 {d6}, [r0:64]!
- vst1.32 {d8}, [r0:64]!
-
- vst1.32 {d1}, [r0:64]! @ A[1][0..4]
- vst1.32 {d3}, [r0:64]!
- vst1.32 {d5}, [r0:64]!
- vst1.32 {d7}, [r0:64]!
- vst1.32 {d9}, [r0:64]!
-
- vst1.32 {d10}, [r0:64]! @ A[2][0..4]
- vst1.32 {d12}, [r0:64]!
- vst1.32 {d14}, [r0:64]!
- vst1.32 {d16}, [r0:64]!
- vst1.32 {d18}, [r0:64]!
-
- vst1.32 {d11}, [r0:64]! @ A[3][0..4]
- vst1.32 {d13}, [r0:64]!
- vst1.32 {d15}, [r0:64]!
- vst1.32 {d17}, [r0:64]!
- vst1.32 {d19}, [r0:64]!
-
- vst1.32 {d20-d23}, [r0:64]! @ A[4][0..4]
- vst1.32 {d24}, [r0:64]
+ vst1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vst1.32 {d2}, [r0,:64]!
+ vst1.32 {d4}, [r0,:64]!
+ vst1.32 {d6}, [r0,:64]!
+ vst1.32 {d8}, [r0,:64]!
+
+ vst1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vst1.32 {d3}, [r0,:64]!
+ vst1.32 {d5}, [r0,:64]!
+ vst1.32 {d7}, [r0,:64]!
+ vst1.32 {d9}, [r0,:64]!
+
+ vst1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vst1.32 {d12}, [r0,:64]!
+ vst1.32 {d14}, [r0,:64]!
+ vst1.32 {d16}, [r0,:64]!
+ vst1.32 {d18}, [r0,:64]!
+
+ vst1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vst1.32 {d13}, [r0,:64]!
+ vst1.32 {d15}, [r0,:64]!
+ vst1.32 {d17}, [r0,:64]!
+ vst1.32 {d19}, [r0,:64]!
+
+ vst1.32 {d20-d23}, [r0,:64]! @ A[4][0..4]
+ vst1.32 {d24}, [r0,:64]
mov r0, r5 @ return value
vldmia sp!, {d8-d15}
@@ -1471,64 +1471,64 @@ sub Round {
vstmdb sp!, {d8-d15}
- vld1.32 {d0}, [r0:64]! @ A[0][0..4]
- vld1.32 {d2}, [r0:64]!
- vld1.32 {d4}, [r0:64]!
- vld1.32 {d6}, [r0:64]!
- vld1.32 {d8}, [r0:64]!
-
- vld1.32 {d1}, [r0:64]! @ A[1][0..4]
- vld1.32 {d3}, [r0:64]!
- vld1.32 {d5}, [r0:64]!
- vld1.32 {d7}, [r0:64]!
- vld1.32 {d9}, [r0:64]!
-
- vld1.32 {d10}, [r0:64]! @ A[2][0..4]
- vld1.32 {d12}, [r0:64]!
- vld1.32 {d14}, [r0:64]!
- vld1.32 {d16}, [r0:64]!
- vld1.32 {d18}, [r0:64]!
-
- vld1.32 {d11}, [r0:64]! @ A[3][0..4]
- vld1.32 {d13}, [r0:64]!
- vld1.32 {d15}, [r0:64]!
- vld1.32 {d17}, [r0:64]!
- vld1.32 {d19}, [r0:64]!
-
- vld1.32 {d20-d23}, [r0:64]! @ A[4][0..4]
- vld1.32 {d24}, [r0:64]
+ vld1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vld1.32 {d2}, [r0,:64]!
+ vld1.32 {d4}, [r0,:64]!
+ vld1.32 {d6}, [r0,:64]!
+ vld1.32 {d8}, [r0,:64]!
+
+ vld1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vld1.32 {d3}, [r0,:64]!
+ vld1.32 {d5}, [r0,:64]!
+ vld1.32 {d7}, [r0,:64]!
+ vld1.32 {d9}, [r0,:64]!
+
+ vld1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vld1.32 {d12}, [r0,:64]!
+ vld1.32 {d14}, [r0,:64]!
+ vld1.32 {d16}, [r0,:64]!
+ vld1.32 {d18}, [r0,:64]!
+
+ vld1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vld1.32 {d13}, [r0,:64]!
+ vld1.32 {d15}, [r0,:64]!
+ vld1.32 {d17}, [r0,:64]!
+ vld1.32 {d19}, [r0,:64]!
+
+ vld1.32 {d20-d23}, [r0,:64]! @ A[4][0..4]
+ vld1.32 {d24}, [r0,:64]
sub r0, r0, #24*8 @ rewind
bl KeccakF1600_neon
mov r12, r0 @ A_flat
- vst1.32 {d0}, [r0:64]! @ A[0][0..4]
- vst1.32 {d2}, [r0:64]!
- vst1.32 {d4}, [r0:64]!
- vst1.32 {d6}, [r0:64]!
- vst1.32 {d8}, [r0:64]!
-
- vst1.32 {d1}, [r0:64]! @ A[1][0..4]
- vst1.32 {d3}, [r0:64]!
- vst1.32 {d5}, [r0:64]!
- vst1.32 {d7}, [r0:64]!
- vst1.32 {d9}, [r0:64]!
-
- vst1.32 {d10}, [r0:64]! @ A[2][0..4]
- vst1.32 {d12}, [r0:64]!
- vst1.32 {d14}, [r0:64]!
- vst1.32 {d16}, [r0:64]!
- vst1.32 {d18}, [r0:64]!
-
- vst1.32 {d11}, [r0:64]! @ A[3][0..4]
- vst1.32 {d13}, [r0:64]!
- vst1.32 {d15}, [r0:64]!
- vst1.32 {d17}, [r0:64]!
- vst1.32 {d19}, [r0:64]!
-
- vst1.32 {d20-d23}, [r0:64]! @ A[4][0..4]
+ vst1.32 {d0}, [r0,:64]! @ A[0][0..4]
+ vst1.32 {d2}, [r0,:64]!
+ vst1.32 {d4}, [r0,:64]!
+ vst1.32 {d6}, [r0,:64]!
+ vst1.32 {d8}, [r0,:64]!
+
+ vst1.32 {d1}, [r0,:64]! @ A[1][0..4]
+ vst1.32 {d3}, [r0,:64]!
+ vst1.32 {d5}, [r0,:64]!
+ vst1.32 {d7}, [r0,:64]!
+ vst1.32 {d9}, [r0,:64]!
+
+ vst1.32 {d10}, [r0,:64]! @ A[2][0..4]
+ vst1.32 {d12}, [r0,:64]!
+ vst1.32 {d14}, [r0,:64]!
+ vst1.32 {d16}, [r0,:64]!
+ vst1.32 {d18}, [r0,:64]!
+
+ vst1.32 {d11}, [r0,:64]! @ A[3][0..4]
+ vst1.32 {d13}, [r0,:64]!
+ vst1.32 {d15}, [r0,:64]!
+ vst1.32 {d17}, [r0,:64]!
+ vst1.32 {d19}, [r0,:64]!
+
+ vst1.32 {d20-d23}, [r0,:64]! @ A[4][0..4]
mov r14, r6 @ bsz
- vst1.32 {d24}, [r0:64]
+ vst1.32 {d24}, [r0,:64]
mov r0, r12 @ rewind
vldmia sp!, {d8-d15}
diff --git a/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv8.pl b/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv8.pl
index a3117bd7506ddd..3173c77f53631b 100755
--- a/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv8.pl
+++ b/deps/openssl/openssl/crypto/sha/asm/keccak1600-armv8.pl
@@ -738,7 +738,7 @@
blo .Lprocess_block_ce
ldr d31,[$inp],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor $A[$j/5][$j%5],$A[$j/5][$j%5],v31.16b
beq .Lprocess_block_ce
@@ -747,7 +747,7 @@
$code.=<<___;
ldr d31,[$inp],#8 // *inp++
#ifdef __AARCH64EB__
- rev v31.16b,v31.16b
+ rev64 v31.16b,v31.16b
#endif
eor $A[4][4],$A[4][4],v31.16b
diff --git a/deps/openssl/openssl/crypto/sha/asm/sha512-sparcv9.pl b/deps/openssl/openssl/crypto/sha/asm/sha512-sparcv9.pl
index 4432bda65ab5d0..c215909633aec9 100644
--- a/deps/openssl/openssl/crypto/sha/asm/sha512-sparcv9.pl
+++ b/deps/openssl/openssl/crypto/sha/asm/sha512-sparcv9.pl
@@ -1,5 +1,5 @@
#! /usr/bin/env perl
-# Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2007-2019 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -27,7 +27,7 @@
# over 2x than 32-bit code. X[16] resides on stack, but access to it
# is scheduled for L2 latency and staged through 32 least significant
# bits of %l0-%l7. The latter is done to achieve 32-/64-bit ABI
-# duality. Nevetheless it's ~40% faster than SHA256, which is pretty
+# duality. Nevertheless it's ~40% faster than SHA256, which is pretty
# good [optimal coefficient is 50%].
#
# SHA512 on UltraSPARC T1.
diff --git a/deps/openssl/openssl/crypto/sm2/sm2_sign.c b/deps/openssl/openssl/crypto/sm2/sm2_sign.c
index 0f9c14cb5f4c1f..50ecb4d68cc65b 100644
--- a/deps/openssl/openssl/crypto/sm2/sm2_sign.c
+++ b/deps/openssl/openssl/crypto/sm2/sm2_sign.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 2017 Ribose Inc. All Rights Reserved.
* Ported from Ribose contributions from Botan.
*
@@ -313,12 +313,12 @@ static int sm2_sig_verify(const EC_KEY *key, const ECDSA_SIG *sig,
/*
* B1: verify whether r' in [1,n-1], verification failed if not
- * B2: vefify whether s' in [1,n-1], verification failed if not
+ * B2: verify whether s' in [1,n-1], verification failed if not
* B3: set M'~=ZA || M'
* B4: calculate e'=Hv(M'~)
* B5: calculate t = (r' + s') modn, verification failed if t=0
* B6: calculate the point (x1', y1')=[s']G + [t]PA
- * B7: calculate R=(e'+x1') modn, verfication pass if yes, otherwise failed
+ * B7: calculate R=(e'+x1') modn, verification pass if yes, otherwise failed
*/
ECDSA_SIG_get0(sig, &r, &s);
diff --git a/deps/openssl/openssl/crypto/store/loader_file.c b/deps/openssl/openssl/crypto/store/loader_file.c
index 632e4511f7e790..6f569ee62d71df 100644
--- a/deps/openssl/openssl/crypto/store/loader_file.c
+++ b/deps/openssl/openssl/crypto/store/loader_file.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -172,7 +172,7 @@ typedef OSSL_STORE_INFO *(*file_try_decode_fn)(const char *pem_name,
typedef int (*file_eof_fn)(void *handler_ctx);
/*
* The destroy_ctx function is used to destroy the handler_ctx that was
- * intiated by a repeatable try_decode fuction. This is only used when
+ * initiated by a repeatable try_decode function. This is only used when
* the handler is marked repeatable.
*/
typedef void (*file_destroy_ctx_fn)(void **handler_ctx);
@@ -470,7 +470,7 @@ static FILE_HANDLER PrivateKey_handler = {
};
/*
- * Public key decoder. Only supports SubjectPublicKeyInfo formated keys.
+ * Public key decoder. Only supports SubjectPublicKeyInfo formatted keys.
*/
static OSSL_STORE_INFO *try_decode_PUBKEY(const char *pem_name,
const char *pem_header,
@@ -860,10 +860,10 @@ static OSSL_STORE_LOADER_CTX *file_open(const OSSL_STORE_LOADER *loader,
if (ctx->_.dir.last_entry == NULL) {
if (ctx->_.dir.last_errno != 0) {
char errbuf[256];
- errno = ctx->_.dir.last_errno;
- openssl_strerror_r(errno, errbuf, sizeof(errbuf));
OSSL_STOREerr(OSSL_STORE_F_FILE_OPEN, ERR_R_SYS_LIB);
- ERR_add_error_data(1, errbuf);
+ errno = ctx->_.dir.last_errno;
+ if (openssl_strerror_r(errno, errbuf, sizeof(errbuf)))
+ ERR_add_error_data(1, errbuf);
goto err;
}
ctx->_.dir.end_reached = 1;
@@ -1260,11 +1260,11 @@ static OSSL_STORE_INFO *file_load(OSSL_STORE_LOADER_CTX *ctx,
if (!ctx->_.dir.end_reached) {
char errbuf[256];
assert(ctx->_.dir.last_errno != 0);
+ OSSL_STOREerr(OSSL_STORE_F_FILE_LOAD, ERR_R_SYS_LIB);
errno = ctx->_.dir.last_errno;
ctx->errcnt++;
- openssl_strerror_r(errno, errbuf, sizeof(errbuf));
- OSSL_STOREerr(OSSL_STORE_F_FILE_LOAD, ERR_R_SYS_LIB);
- ERR_add_error_data(1, errbuf);
+ if (openssl_strerror_r(errno, errbuf, sizeof(errbuf)))
+ ERR_add_error_data(1, errbuf);
}
return NULL;
}
diff --git a/deps/openssl/openssl/crypto/store/store_lib.c b/deps/openssl/openssl/crypto/store/store_lib.c
index 1c43547666f1b7..7de2e31f556f75 100644
--- a/deps/openssl/openssl/crypto/store/store_lib.c
+++ b/deps/openssl/openssl/crypto/store/store_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -228,7 +228,7 @@ int OSSL_STORE_close(OSSL_STORE_CTX *ctx)
* Functions to generate OSSL_STORE_INFOs, one function for each type we
* support having in them as well as a generic constructor.
*
- * In all cases, ownership of the object is transfered to the OSSL_STORE_INFO
+ * In all cases, ownership of the object is transferred to the OSSL_STORE_INFO
* and will therefore be freed when the OSSL_STORE_INFO is freed.
*/
static OSSL_STORE_INFO *store_info_new(int type, void *data)
diff --git a/deps/openssl/openssl/crypto/threads_none.c b/deps/openssl/openssl/crypto/threads_none.c
index 4b1940ae44dbd6..aabf0e0dc090b4 100644
--- a/deps/openssl/openssl/crypto/threads_none.c
+++ b/deps/openssl/openssl/crypto/threads_none.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -12,6 +12,11 @@
#if !defined(OPENSSL_THREADS) || defined(CRYPTO_TDEBUG)
+# if defined(OPENSSL_SYS_UNIX)
+# include
+# include
+# endif
+
CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
{
CRYPTO_RWLOCK *lock;
@@ -133,4 +138,12 @@ int openssl_init_fork_handlers(void)
return 0;
}
+int openssl_get_fork_id(void)
+{
+# if defined(OPENSSL_SYS_UNIX)
+ return getpid();
+# else
+ return return 0;
+# endif
+}
#endif
diff --git a/deps/openssl/openssl/crypto/threads_pthread.c b/deps/openssl/openssl/crypto/threads_pthread.c
index 5a59779ebbb1d9..1774a2b2ac1603 100644
--- a/deps/openssl/openssl/crypto/threads_pthread.c
+++ b/deps/openssl/openssl/crypto/threads_pthread.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -12,6 +12,11 @@
#if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) && !defined(OPENSSL_SYS_WINDOWS)
+# if defined(OPENSSL_SYS_UNIX)
+# include
+# include
+#endif
+
# ifdef PTHREAD_RWLOCK_INITIALIZER
# define USE_RWLOCK
# endif
@@ -193,4 +198,9 @@ int openssl_init_fork_handlers(void)
# endif
return 0;
}
+
+int openssl_get_fork_id(void)
+{
+ return getpid();
+}
#endif
diff --git a/deps/openssl/openssl/crypto/threads_win.c b/deps/openssl/openssl/crypto/threads_win.c
index b0b16fd3307f4b..44a360fcabb8d6 100644
--- a/deps/openssl/openssl/crypto/threads_win.c
+++ b/deps/openssl/openssl/crypto/threads_win.c
@@ -164,4 +164,8 @@ int openssl_init_fork_handlers(void)
return 0;
}
+int openssl_get_fork_id(void)
+{
+ return 0;
+}
#endif
diff --git a/deps/openssl/openssl/crypto/ui/ui_lib.c b/deps/openssl/openssl/crypto/ui/ui_lib.c
index 139485dcd15485..f550972d3eec58 100644
--- a/deps/openssl/openssl/crypto/ui/ui_lib.c
+++ b/deps/openssl/openssl/crypto/ui/ui_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -500,6 +500,7 @@ int UI_process(UI *ui)
if (ui->meth->ui_flush != NULL)
switch (ui->meth->ui_flush(ui)) {
case -1: /* Interrupt/Cancel/something... */
+ ui->flags &= ~UI_FLAG_REDOABLE;
ok = -2;
goto err;
case 0: /* Errors */
@@ -517,6 +518,7 @@ int UI_process(UI *ui)
sk_UI_STRING_value(ui->strings,
i))) {
case -1: /* Interrupt/Cancel/something... */
+ ui->flags &= ~UI_FLAG_REDOABLE;
ok = -2;
goto err;
case 0: /* Errors */
diff --git a/deps/openssl/openssl/crypto/ui/ui_openssl.c b/deps/openssl/openssl/crypto/ui/ui_openssl.c
index 5ca418d24870eb..0ec9f0daf333ee 100644
--- a/deps/openssl/openssl/crypto/ui/ui_openssl.c
+++ b/deps/openssl/openssl/crypto/ui/ui_openssl.c
@@ -79,7 +79,7 @@
* systems that require something different.
*
* Note: we do not use SGTTY unless it's defined by the configuration. We
- * may eventually opt to remove it's use entirely.
+ * may eventually opt to remove its use entirely.
*/
# if !defined(TERMIOS) && !defined(TERMIO) && !defined(SGTTY)
diff --git a/deps/openssl/openssl/crypto/uid.c b/deps/openssl/openssl/crypto/uid.c
index b2b096446fb4e6..65b1171039fe5a 100644
--- a/deps/openssl/openssl/crypto/uid.c
+++ b/deps/openssl/openssl/crypto/uid.c
@@ -10,20 +10,20 @@
#include
#include
-#if defined(__OpenBSD__) || (defined(__FreeBSD__) && __FreeBSD__ > 2) || defined(__DragonFly__)
-
-# include OPENSSL_UNISTD
+#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI)
int OPENSSL_issetugid(void)
{
- return issetugid();
+ return 0;
}
-#elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI)
+#elif defined(__OpenBSD__) || (defined(__FreeBSD__) && __FreeBSD__ > 2) || defined(__DragonFly__)
+
+# include OPENSSL_UNISTD
int OPENSSL_issetugid(void)
{
- return 0;
+ return issetugid();
}
#else
diff --git a/deps/openssl/openssl/crypto/whrlpool/wp_block.c b/deps/openssl/openssl/crypto/whrlpool/wp_block.c
index 0cc92a3b014912..2ae5c38aba63e7 100644
--- a/deps/openssl/openssl/crypto/whrlpool/wp_block.c
+++ b/deps/openssl/openssl/crypto/whrlpool/wp_block.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2005-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -87,6 +87,7 @@ typedef unsigned long long u64;
#ifndef PEDANTIC
# if defined(_MSC_VER)
# if defined(_WIN64) /* applies to both IA-64 and AMD64 */
+# include
# pragma intrinsic(_rotl64)
# define ROTATE(a,n) _rotl64((a),n)
# endif
diff --git a/deps/openssl/openssl/crypto/x509/by_dir.c b/deps/openssl/openssl/crypto/x509/by_dir.c
index b3760dbadf3abf..b691a83a0dfbd9 100644
--- a/deps/openssl/openssl/crypto/x509/by_dir.c
+++ b/deps/openssl/openssl/crypto/x509/by_dir.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -327,10 +327,10 @@ static int get_cert_by_subject(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,
/*
* we have added it to the cache so now pull it out again
*/
- CRYPTO_THREAD_write_lock(ctx->lock);
+ X509_STORE_lock(xl->store_ctx);
j = sk_X509_OBJECT_find(xl->store_ctx->objs, &stmp);
tmp = sk_X509_OBJECT_value(xl->store_ctx->objs, j);
- CRYPTO_THREAD_unlock(ctx->lock);
+ X509_STORE_unlock(xl->store_ctx);
/* If a CRL, update the last file suffix added for this */
diff --git a/deps/openssl/openssl/crypto/x509/t_req.c b/deps/openssl/openssl/crypto/x509/t_req.c
index 2d4c591b744582..dc3b4f262de90f 100644
--- a/deps/openssl/openssl/crypto/x509/t_req.c
+++ b/deps/openssl/openssl/crypto/x509/t_req.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -127,6 +127,10 @@ int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags,
if ((j = i2a_ASN1_OBJECT(bp, aobj)) > 0) {
ii = 0;
count = X509_ATTRIBUTE_count(a);
+ if (count == 0) {
+ X509err(X509_F_X509_REQ_PRINT_EX, X509_R_INVALID_ATTRIBUTES);
+ return 0;
+ }
get_next:
at = X509_ATTRIBUTE_get0_type(a, ii);
type = at->type;
diff --git a/deps/openssl/openssl/crypto/x509/x509_att.c b/deps/openssl/openssl/crypto/x509/x509_att.c
index 63895efe460801..3c4566d2e708eb 100644
--- a/deps/openssl/openssl/crypto/x509/x509_att.c
+++ b/deps/openssl/openssl/crypto/x509/x509_att.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -314,7 +314,9 @@ void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,
ttmp = X509_ATTRIBUTE_get0_type(attr, idx);
if (!ttmp)
return NULL;
- if (atrtype != ASN1_TYPE_get(ttmp)) {
+ if (atrtype == V_ASN1_BOOLEAN
+ || atrtype == V_ASN1_NULL
+ || atrtype != ASN1_TYPE_get(ttmp)) {
X509err(X509_F_X509_ATTRIBUTE_GET0_DATA, X509_R_WRONG_TYPE);
return NULL;
}
diff --git a/deps/openssl/openssl/crypto/x509/x509_cmp.c b/deps/openssl/openssl/crypto/x509/x509_cmp.c
index 02fad0c671ce47..833bfce1bf23a8 100644
--- a/deps/openssl/openssl/crypto/x509/x509_cmp.c
+++ b/deps/openssl/openssl/crypto/x509/x509_cmp.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -450,9 +450,17 @@ STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain)
STACK_OF(X509) *ret;
int i;
ret = sk_X509_dup(chain);
+ if (ret == NULL)
+ return NULL;
for (i = 0; i < sk_X509_num(ret); i++) {
X509 *x = sk_X509_value(ret, i);
- X509_up_ref(x);
+ if (!X509_up_ref(x))
+ goto err;
}
return ret;
+ err:
+ while (i-- > 0)
+ X509_free (sk_X509_value(ret, i));
+ sk_X509_free(ret);
+ return NULL;
}
diff --git a/deps/openssl/openssl/crypto/x509/x509_err.c b/deps/openssl/openssl/crypto/x509/x509_err.c
index 739708e24fa3b3..c110d908090e63 100644
--- a/deps/openssl/openssl/crypto/x509/x509_err.c
+++ b/deps/openssl/openssl/crypto/x509/x509_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -123,6 +123,8 @@ static const ERR_STRING_DATA X509_str_reasons[] = {
{ERR_PACK(ERR_LIB_X509, 0, X509_R_CRL_VERIFY_FAILURE),
"crl verify failure"},
{ERR_PACK(ERR_LIB_X509, 0, X509_R_IDP_MISMATCH), "idp mismatch"},
+ {ERR_PACK(ERR_LIB_X509, 0, X509_R_INVALID_ATTRIBUTES),
+ "invalid attributes"},
{ERR_PACK(ERR_LIB_X509, 0, X509_R_INVALID_DIRECTORY), "invalid directory"},
{ERR_PACK(ERR_LIB_X509, 0, X509_R_INVALID_FIELD_NAME),
"invalid field name"},
diff --git a/deps/openssl/openssl/crypto/x509/x509_lu.c b/deps/openssl/openssl/crypto/x509/x509_lu.c
index 8ddd7ec280239b..b7d2e66574c454 100644
--- a/deps/openssl/openssl/crypto/x509/x509_lu.c
+++ b/deps/openssl/openssl/crypto/x509/x509_lu.c
@@ -289,24 +289,25 @@ X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs,
int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
X509_NAME *name, X509_OBJECT *ret)
{
- X509_STORE *ctx = vs->ctx;
+ X509_STORE *store = vs->ctx;
X509_LOOKUP *lu;
X509_OBJECT stmp, *tmp;
int i, j;
- if (ctx == NULL)
+ if (store == NULL)
return 0;
stmp.type = X509_LU_NONE;
stmp.data.ptr = NULL;
- CRYPTO_THREAD_write_lock(ctx->lock);
- tmp = X509_OBJECT_retrieve_by_subject(ctx->objs, type, name);
- CRYPTO_THREAD_unlock(ctx->lock);
+
+ X509_STORE_lock(store);
+ tmp = X509_OBJECT_retrieve_by_subject(store->objs, type, name);
+ X509_STORE_unlock(store);
if (tmp == NULL || type == X509_LU_CRL) {
- for (i = 0; i < sk_X509_LOOKUP_num(ctx->get_cert_methods); i++) {
- lu = sk_X509_LOOKUP_value(ctx->get_cert_methods, i);
+ for (i = 0; i < sk_X509_LOOKUP_num(store->get_cert_methods); i++) {
+ lu = sk_X509_LOOKUP_value(store->get_cert_methods, i);
j = X509_LOOKUP_by_subject(lu, type, name, &stmp);
if (j) {
tmp = &stmp;
@@ -317,15 +318,16 @@ int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
return 0;
}
+ if (!X509_OBJECT_up_ref_count(tmp))
+ return 0;
+
ret->type = tmp->type;
ret->data.ptr = tmp->data.ptr;
- X509_OBJECT_up_ref_count(ret);
-
return 1;
}
-static int x509_store_add(X509_STORE *ctx, void *x, int crl) {
+static int x509_store_add(X509_STORE *store, void *x, int crl) {
X509_OBJECT *obj;
int ret = 0, added = 0;
@@ -342,18 +344,20 @@ static int x509_store_add(X509_STORE *ctx, void *x, int crl) {
obj->type = X509_LU_X509;
obj->data.x509 = (X509 *)x;
}
- X509_OBJECT_up_ref_count(obj);
-
- CRYPTO_THREAD_write_lock(ctx->lock);
+ if (!X509_OBJECT_up_ref_count(obj)) {
+ obj->type = X509_LU_NONE;
+ X509_OBJECT_free(obj);
+ return 0;
+ }
- if (X509_OBJECT_retrieve_match(ctx->objs, obj)) {
+ X509_STORE_lock(store);
+ if (X509_OBJECT_retrieve_match(store->objs, obj)) {
ret = 1;
} else {
- added = sk_X509_OBJECT_push(ctx->objs, obj);
+ added = sk_X509_OBJECT_push(store->objs, obj);
ret = added != 0;
}
-
- CRYPTO_THREAD_unlock(ctx->lock);
+ X509_STORE_unlock(store);
if (added == 0) /* obj not pushed */
X509_OBJECT_free(obj);
@@ -534,12 +538,13 @@ STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *ctx, X509_NAME *nm)
STACK_OF(X509) *sk = NULL;
X509 *x;
X509_OBJECT *obj;
+ X509_STORE *store = ctx->ctx;
- if (ctx->ctx == NULL)
+ if (store == NULL)
return NULL;
- CRYPTO_THREAD_write_lock(ctx->ctx->lock);
- idx = x509_object_idx_cnt(ctx->ctx->objs, X509_LU_X509, nm, &cnt);
+ X509_STORE_lock(store);
+ idx = x509_object_idx_cnt(store->objs, X509_LU_X509, nm, &cnt);
if (idx < 0) {
/*
* Nothing found in cache: do lookup to possibly add new objects to
@@ -547,7 +552,8 @@ STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *ctx, X509_NAME *nm)
*/
X509_OBJECT *xobj = X509_OBJECT_new();
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
+ X509_STORE_unlock(store);
+
if (xobj == NULL)
return NULL;
if (!X509_STORE_CTX_get_by_subject(ctx, X509_LU_X509, nm, xobj)) {
@@ -555,27 +561,31 @@ STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *ctx, X509_NAME *nm)
return NULL;
}
X509_OBJECT_free(xobj);
- CRYPTO_THREAD_write_lock(ctx->ctx->lock);
- idx = x509_object_idx_cnt(ctx->ctx->objs, X509_LU_X509, nm, &cnt);
+ X509_STORE_lock(store);
+ idx = x509_object_idx_cnt(store->objs, X509_LU_X509, nm, &cnt);
if (idx < 0) {
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
+ X509_STORE_unlock(store);
return NULL;
}
}
sk = sk_X509_new_null();
for (i = 0; i < cnt; i++, idx++) {
- obj = sk_X509_OBJECT_value(ctx->ctx->objs, idx);
+ obj = sk_X509_OBJECT_value(store->objs, idx);
x = obj->data.x509;
- X509_up_ref(x);
+ if (!X509_up_ref(x)) {
+ X509_STORE_unlock(store);
+ sk_X509_pop_free(sk, X509_free);
+ return NULL;
+ }
if (!sk_X509_push(sk, x)) {
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
+ X509_STORE_unlock(store);
X509_free(x);
sk_X509_pop_free(sk, X509_free);
return NULL;
}
}
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
+ X509_STORE_unlock(store);
return sk;
}
@@ -585,37 +595,42 @@ STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(X509_STORE_CTX *ctx, X509_NAME *nm)
STACK_OF(X509_CRL) *sk = sk_X509_CRL_new_null();
X509_CRL *x;
X509_OBJECT *obj, *xobj = X509_OBJECT_new();
+ X509_STORE *store = ctx->ctx;
/* Always do lookup to possibly add new CRLs to cache */
if (sk == NULL
|| xobj == NULL
- || ctx->ctx == NULL
+ || store == NULL
|| !X509_STORE_CTX_get_by_subject(ctx, X509_LU_CRL, nm, xobj)) {
X509_OBJECT_free(xobj);
sk_X509_CRL_free(sk);
return NULL;
}
X509_OBJECT_free(xobj);
- CRYPTO_THREAD_write_lock(ctx->ctx->lock);
- idx = x509_object_idx_cnt(ctx->ctx->objs, X509_LU_CRL, nm, &cnt);
+ X509_STORE_lock(store);
+ idx = x509_object_idx_cnt(store->objs, X509_LU_CRL, nm, &cnt);
if (idx < 0) {
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
+ X509_STORE_unlock(store);
sk_X509_CRL_free(sk);
return NULL;
}
for (i = 0; i < cnt; i++, idx++) {
- obj = sk_X509_OBJECT_value(ctx->ctx->objs, idx);
+ obj = sk_X509_OBJECT_value(store->objs, idx);
x = obj->data.crl;
- X509_CRL_up_ref(x);
+ if (!X509_CRL_up_ref(x)) {
+ X509_STORE_unlock(store);
+ sk_X509_CRL_pop_free(sk, X509_CRL_free);
+ return NULL;
+ }
if (!sk_X509_CRL_push(sk, x)) {
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
+ X509_STORE_unlock(store);
X509_CRL_free(x);
sk_X509_CRL_pop_free(sk, X509_CRL_free);
return NULL;
}
}
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
+ X509_STORE_unlock(store);
return sk;
}
@@ -663,6 +678,7 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
{
X509_NAME *xn;
X509_OBJECT *obj = X509_OBJECT_new(), *pobj = NULL;
+ X509_STORE *store = ctx->ctx;
int i, ok, idx, ret;
if (obj == NULL)
@@ -678,25 +694,28 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
if (ctx->check_issued(ctx, x, obj->data.x509)) {
if (x509_check_cert_time(ctx, obj->data.x509, -1)) {
*issuer = obj->data.x509;
- X509_up_ref(*issuer);
+ if (!X509_up_ref(*issuer)) {
+ *issuer = NULL;
+ ok = -1;
+ }
X509_OBJECT_free(obj);
- return 1;
+ return ok;
}
}
X509_OBJECT_free(obj);
- if (ctx->ctx == NULL)
+ if (store == NULL)
return 0;
/* Else find index of first cert accepted by 'check_issued' */
ret = 0;
- CRYPTO_THREAD_write_lock(ctx->ctx->lock);
- idx = X509_OBJECT_idx_by_subject(ctx->ctx->objs, X509_LU_X509, xn);
+ X509_STORE_lock(store);
+ idx = X509_OBJECT_idx_by_subject(store->objs, X509_LU_X509, xn);
if (idx != -1) { /* should be true as we've had at least one
* match */
/* Look through all matching certs for suitable issuer */
- for (i = idx; i < sk_X509_OBJECT_num(ctx->ctx->objs); i++) {
- pobj = sk_X509_OBJECT_value(ctx->ctx->objs, i);
+ for (i = idx; i < sk_X509_OBJECT_num(store->objs); i++) {
+ pobj = sk_X509_OBJECT_value(store->objs, i);
/* See if we've run past the matches */
if (pobj->type != X509_LU_X509)
break;
@@ -717,9 +736,11 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
}
}
}
- CRYPTO_THREAD_unlock(ctx->ctx->lock);
- if (*issuer)
- X509_up_ref(*issuer);
+ if (*issuer && !X509_up_ref(*issuer)) {
+ *issuer = NULL;
+ ret = -1;
+ }
+ X509_STORE_unlock(store);
return ret;
}
diff --git a/deps/openssl/openssl/crypto/x509/x509_vfy.c b/deps/openssl/openssl/crypto/x509/x509_vfy.c
index 4ced716e3646ba..6be2c71e8692bf 100644
--- a/deps/openssl/openssl/crypto/x509/x509_vfy.c
+++ b/deps/openssl/openssl/crypto/x509/x509_vfy.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -1788,7 +1788,11 @@ int X509_cmp_time(const ASN1_TIME *ctm, time_t *cmp_time)
static const size_t generalizedtime_length = sizeof("YYYYMMDDHHMMSSZ") - 1;
ASN1_TIME *asn1_cmp_time = NULL;
int i, day, sec, ret = 0;
-
+#ifdef CHARSET_EBCDIC
+ const char upper_z = 0x5A;
+#else
+ const char upper_z = 'Z';
+#endif
/*
* Note that ASN.1 allows much more slack in the time format than RFC5280.
* In RFC5280, the representation is fixed:
@@ -1819,10 +1823,10 @@ int X509_cmp_time(const ASN1_TIME *ctm, time_t *cmp_time)
* Digit and date ranges will be verified in the conversion methods.
*/
for (i = 0; i < ctm->length - 1; i++) {
- if (!ossl_isdigit(ctm->data[i]))
+ if (!ascii_isdigit(ctm->data[i]))
return 0;
}
- if (ctm->data[ctm->length - 1] != 'Z')
+ if (ctm->data[ctm->length - 1] != upper_z)
return 0;
/*
diff --git a/deps/openssl/openssl/crypto/x509v3/v3_alt.c b/deps/openssl/openssl/crypto/x509v3/v3_alt.c
index 832e6d1285712e..dfcb9094f4fc9a 100644
--- a/deps/openssl/openssl/crypto/x509v3/v3_alt.c
+++ b/deps/openssl/openssl/crypto/x509v3/v3_alt.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -157,15 +157,18 @@ int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen)
break;
case GEN_EMAIL:
- BIO_printf(out, "email:%s", gen->d.ia5->data);
+ BIO_printf(out, "email:");
+ ASN1_STRING_print(out, gen->d.ia5);
break;
case GEN_DNS:
- BIO_printf(out, "DNS:%s", gen->d.ia5->data);
+ BIO_printf(out, "DNS:");
+ ASN1_STRING_print(out, gen->d.ia5);
break;
case GEN_URI:
- BIO_printf(out, "URI:%s", gen->d.ia5->data);
+ BIO_printf(out, "URI:");
+ ASN1_STRING_print(out, gen->d.ia5);
break;
case GEN_DIRNAME:
diff --git a/deps/openssl/openssl/crypto/x509v3/v3_purp.c b/deps/openssl/openssl/crypto/x509v3/v3_purp.c
index 70b0397d97b915..2f06289d1949c0 100644
--- a/deps/openssl/openssl/crypto/x509v3/v3_purp.c
+++ b/deps/openssl/openssl/crypto/x509v3/v3_purp.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -871,6 +871,20 @@ const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x)
return (x->akid != NULL ? x->akid->keyid : NULL);
}
+const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x)
+{
+ /* Call for side-effect of computing hash and caching extensions */
+ X509_check_purpose(x, -1, -1);
+ return (x->akid != NULL ? x->akid->issuer : NULL);
+}
+
+const ASN1_INTEGER *X509_get0_authority_serial(X509 *x)
+{
+ /* Call for side-effect of computing hash and caching extensions */
+ X509_check_purpose(x, -1, -1);
+ return (x->akid != NULL ? x->akid->serial : NULL);
+}
+
long X509_get_pathlen(X509 *x)
{
/* Called for side effect of caching extensions */
diff --git a/deps/openssl/openssl/demos/bio/descrip.mms b/deps/openssl/openssl/demos/bio/descrip.mms
index d49725ffd191df..44ca2febc65746 100644
--- a/deps/openssl/openssl/demos/bio/descrip.mms
+++ b/deps/openssl/openssl/demos/bio/descrip.mms
@@ -37,7 +37,7 @@ server-arg.exe : server-arg.obj
server-cmod.exe : server-cmod.obj
server-conf.exe : server-conf.obj
-# Stoopid MMS doesn't infer this automatically...
+# MMS doesn't infer this automatically...
client-arg.obj : client-arg.c
client-conf.obj : client-conf.c
saccept.obj : saccept.c
diff --git a/deps/openssl/openssl/demos/evp/aesgcm.c b/deps/openssl/openssl/demos/evp/aesgcm.c
index 46d9a5639bc0da..3cef27f9918719 100644
--- a/deps/openssl/openssl/demos/evp/aesgcm.c
+++ b/deps/openssl/openssl/demos/evp/aesgcm.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2012-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -84,7 +84,7 @@ void aes_gcm_decrypt(void)
EVP_CIPHER_CTX *ctx;
int outlen, tmplen, rv;
unsigned char outbuf[1024];
- printf("AES GCM Derypt:\n");
+ printf("AES GCM Decrypt:\n");
printf("Ciphertext:\n");
BIO_dump_fp(stdout, gcm_ct, sizeof(gcm_ct));
ctx = EVP_CIPHER_CTX_new();
diff --git a/deps/openssl/openssl/doc/HOWTO/proxy_certificates.txt b/deps/openssl/openssl/doc/HOWTO/proxy_certificates.txt
index 2936cd6e518b1b..3c423492611114 100644
--- a/deps/openssl/openssl/doc/HOWTO/proxy_certificates.txt
+++ b/deps/openssl/openssl/doc/HOWTO/proxy_certificates.txt
@@ -255,7 +255,7 @@ Here is some skeleton code you can fill in:
/*
* process_rights() is supposed to be a procedure
- * that takes a string and it's length, interprets
+ * that takes a string and its length, interprets
* it and sets the bits in the YOUR_RIGHTS pointed
* at by the third argument.
*/
diff --git a/deps/openssl/openssl/doc/man1/engine.pod b/deps/openssl/openssl/doc/man1/engine.pod
index 24f1b32cdbfc1c..d49f04292bfb8e 100644
--- a/deps/openssl/openssl/doc/man1/engine.pod
+++ b/deps/openssl/openssl/doc/man1/engine.pod
@@ -64,7 +64,7 @@ See the example below.
=back
-=head1 EXAMPLE
+=head1 EXAMPLES
To list all the commands available to a dynamic engine:
@@ -109,7 +109,7 @@ L
=head1 COPYRIGHT
-Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man1/errstr.pod b/deps/openssl/openssl/doc/man1/errstr.pod
index 3c89b8f5cfff10..94198c123ea6b3 100644
--- a/deps/openssl/openssl/doc/man1/errstr.pod
+++ b/deps/openssl/openssl/doc/man1/errstr.pod
@@ -20,7 +20,7 @@ second colon.
None.
-=head1 EXAMPLE
+=head1 EXAMPLES
The error code:
@@ -36,7 +36,7 @@ to produce the error message:
=head1 COPYRIGHT
-Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man1/pkcs12.pod b/deps/openssl/openssl/doc/man1/pkcs12.pod
index 6f890c120f3c0e..da887a469978c2 100644
--- a/deps/openssl/openssl/doc/man1/pkcs12.pod
+++ b/deps/openssl/openssl/doc/man1/pkcs12.pod
@@ -225,7 +225,8 @@ for this search. If the search fails it is considered a fatal error.
Encrypt the certificate using triple DES, this may render the PKCS#12
file unreadable by some "export grade" software. By default the private
-key is encrypted using triple DES and the certificate using 40 bit RC2.
+key is encrypted using triple DES and the certificate using 40 bit RC2
+unless RC2 is disabled in which case triple DES is used.
=item B<-keypbe alg>, B<-certpbe alg>
diff --git a/deps/openssl/openssl/doc/man1/pkeyparam.pod b/deps/openssl/openssl/doc/man1/pkeyparam.pod
index 50949657c818d6..bddabc2707e883 100644
--- a/deps/openssl/openssl/doc/man1/pkeyparam.pod
+++ b/deps/openssl/openssl/doc/man1/pkeyparam.pod
@@ -60,7 +60,7 @@ This option checks the correctness of parameters.
=back
-=head1 EXAMPLE
+=head1 EXAMPLES
Print out text version of parameters:
@@ -78,7 +78,7 @@ L, L, L
=head1 COPYRIGHT
-Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man1/s_client.pod b/deps/openssl/openssl/doc/man1/s_client.pod
index cf8153572af041..2f19aac1dcfc53 100644
--- a/deps/openssl/openssl/doc/man1/s_client.pod
+++ b/deps/openssl/openssl/doc/man1/s_client.pod
@@ -147,7 +147,7 @@ SSL servers.
=head1 OPTIONS
In addition to the options below the B utility also supports the
-common and client only options documented in the
+common and client only options documented
in the "Supported Command Line Commands" section of the L
manual page.
diff --git a/deps/openssl/openssl/doc/man1/s_server.pod b/deps/openssl/openssl/doc/man1/s_server.pod
index 768789633e7f6f..7fa382a8ae3329 100644
--- a/deps/openssl/openssl/doc/man1/s_server.pod
+++ b/deps/openssl/openssl/doc/man1/s_server.pod
@@ -193,7 +193,7 @@ for connections on a given port using SSL/TLS.
=head1 OPTIONS
In addition to the options below the B utility also supports the
-common and server only options documented in the
+common and server only options documented
in the "Supported Command Line Commands" section of the L
manual page.
diff --git a/deps/openssl/openssl/doc/man3/ADMISSIONS.pod b/deps/openssl/openssl/doc/man3/ADMISSIONS.pod
index 5dcf72e201c648..eaf63b219783a3 100644
--- a/deps/openssl/openssl/doc/man3/ADMISSIONS.pod
+++ b/deps/openssl/openssl/doc/man3/ADMISSIONS.pod
@@ -130,7 +130,7 @@ ADMISSION_SYNTAX_set0_contentsOfAdmissions()
functions free any existing value and set the pointer to the specified value.
The B type has an authority name, authority object, and a
-stack of B items.
+stack of B items.
The ADMISSIONS_get0_admissionAuthority(), ADMISSIONS_get0_namingAuthority(),
and ADMISSIONS_get0_professionInfos()
functions return pointers to those values within the object.
@@ -169,7 +169,7 @@ L,
=head1 COPYRIGHT
-Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/ASYNC_start_job.pod b/deps/openssl/openssl/doc/man3/ASYNC_start_job.pod
index 9bd1044b266a94..b06db76708a29a 100644
--- a/deps/openssl/openssl/doc/man3/ASYNC_start_job.pod
+++ b/deps/openssl/openssl/doc/man3/ASYNC_start_job.pod
@@ -170,7 +170,7 @@ is included, commonly as one of the first included headers. Therefore
it is defined as an application developer's responsibility to include
windows.h prior to async.h.
-=head1 EXAMPLE
+=head1 EXAMPLES
The following example demonstrates how to use most of the core async APIs:
@@ -321,7 +321,7 @@ added in OpenSSL 1.1.0.
=head1 COPYRIGHT
-Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_connect.pod b/deps/openssl/openssl/doc/man3/BIO_connect.pod
index 2766c3d6c5b707..853315aa46a4cf 100644
--- a/deps/openssl/openssl/doc/man3/BIO_connect.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_connect.pod
@@ -24,7 +24,7 @@ but is present for future use.
BIO_bind() binds the source address and service to a socket and
may be useful before calling BIO_connect(). The options may include
-B, which is described in L below.
+B, which is described in L below.
BIO_connect() connects B to the address and service given by
B. Connection B may be zero or any combination of
diff --git a/deps/openssl/openssl/doc/man3/BIO_f_ssl.pod b/deps/openssl/openssl/doc/man3/BIO_f_ssl.pod
index e069594fd1547f..59cccbd4e59791 100644
--- a/deps/openssl/openssl/doc/man3/BIO_f_ssl.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_f_ssl.pod
@@ -129,9 +129,25 @@ BIO_set_ssl(), BIO_get_ssl(), BIO_set_ssl_mode(),
BIO_set_ssl_renegotiate_bytes(), BIO_set_ssl_renegotiate_timeout(),
BIO_get_num_renegotiates(), and BIO_do_handshake() are implemented as macros.
-=head1 EXAMPLE
+=head1 RETURN VALUES
+
+BIO_f_ssl() returns the SSL B structure.
+
+BIO_set_ssl(), BIO_get_ssl(), BIO_set_ssl_mode(), BIO_set_ssl_renegotiate_bytes(),
+BIO_set_ssl_renegotiate_timeout() and BIO_get_num_renegotiates() return 1 on
+success or a value which is less than or equal to 0 if an error occurred.
+
+BIO_new_ssl(), BIO_new_ssl_connect() and BIO_new_buffer_ssl_connect() return
+a valid B structure on success or B if an error occurred.
+
+BIO_ssl_copy_session_id() returns 1 on success or 0 on error.
+
+BIO_do_handshake() returns 1 if the connection was established successfully.
+A zero or negative value is returned if the connection could not be established.
+
+=head1 EXAMPLES
-This SSL/TLS client example, attempts to retrieve a page from an
+This SSL/TLS client example attempts to retrieve a page from an
SSL/TLS web server. The I/O routines are identical to those of the
unencrypted example in L.
@@ -271,22 +287,6 @@ a client and also echoes the request to standard output.
BIO_flush(sbio);
BIO_free_all(sbio);
-=head1 RETURN VALUES
-
-BIO_f_ssl() returns the SSL B structure.
-
-BIO_set_ssl(), BIO_get_ssl(), BIO_set_ssl_mode(), BIO_set_ssl_renegotiate_bytes(),
-BIO_set_ssl_renegotiate_timeout() and BIO_get_num_renegotiates() return 1 on
-success or a value which is less than or equal to 0 if an error occurred.
-
-BIO_new_ssl(), BIO_new_ssl_connect() and BIO_new_buffer_ssl_connect() return
-a valid B structure on success or B if an error occurred.
-
-BIO_ssl_copy_session_id() returns 1 on success or 0 on error.
-
-BIO_do_handshake() returns 1 if the connection was established successfully.
-A zero or negative value is returned if the connection could not be established.
-
=head1 HISTORY
In OpenSSL before 1.0.0 the BIO_pop() call was handled incorrectly,
@@ -298,7 +298,7 @@ be modified to handle this fix or they may free up an already freed BIO.
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_find_type.pod b/deps/openssl/openssl/doc/man3/BIO_find_type.pod
index b8171942efcc01..b18b615a33d2c5 100644
--- a/deps/openssl/openssl/doc/man3/BIO_find_type.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_find_type.pod
@@ -40,7 +40,7 @@ BIO_next() returns the next BIO in a chain.
BIO_method_type() returns the type of the BIO B.
-=head1 EXAMPLE
+=head1 EXAMPLES
Traverse a chain looking for digest BIOs:
@@ -60,7 +60,7 @@ Traverse a chain looking for digest BIOs:
=head1 COPYRIGHT
-Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_new.pod b/deps/openssl/openssl/doc/man3/BIO_new.pod
index 2712be0dab069a..c33eb9d02e6ab6 100644
--- a/deps/openssl/openssl/doc/man3/BIO_new.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_new.pod
@@ -53,7 +53,7 @@ on it other than the discarded return value.
BIO_set() was removed in OpenSSL 1.1.0 as BIO type is now opaque.
-=head1 EXAMPLE
+=head1 EXAMPLES
Create a memory BIO:
@@ -61,7 +61,7 @@ Create a memory BIO:
=head1 COPYRIGHT
-Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_s_accept.pod b/deps/openssl/openssl/doc/man3/BIO_s_accept.pod
index 45b864e5e64d91..37b6f4d8391296 100644
--- a/deps/openssl/openssl/doc/man3/BIO_s_accept.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_s_accept.pod
@@ -174,7 +174,7 @@ BIO_get_bind_mode() returns the set of B flags, or -1 on failure.
BIO_new_accept() returns a BIO or NULL on error.
-=head1 EXAMPLE
+=head1 EXAMPLES
This example accepts two connections on port 4444, sends messages
down each and finally closes both down.
@@ -224,7 +224,7 @@ down each and finally closes both down.
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_s_bio.pod b/deps/openssl/openssl/doc/man3/BIO_s_bio.pod
index dfafa351e480c4..f78fe13489c672 100644
--- a/deps/openssl/openssl/doc/man3/BIO_s_bio.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_s_bio.pod
@@ -133,7 +133,7 @@ locations for B and B. Check the error stack for more information.
[XXXXX: More return values need to be added here]
-=head1 EXAMPLE
+=head1 EXAMPLES
The BIO pair can be used to have full control over the network access of an
application. The application can call select() on the socket as required
@@ -176,7 +176,7 @@ and must be transferred to the network. Use BIO_ctrl_get_read_request() to
find out, how many bytes must be written into the buffer before the
SSL_operation() can successfully be continued.
-=head1 WARNING
+=head1 WARNINGS
As the data is buffered, SSL_operation() may return with an ERROR_SSL_WANT_READ
condition, but there is still data in the write buffer. An application must
@@ -191,7 +191,7 @@ L, L
=head1 COPYRIGHT
-Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_s_connect.pod b/deps/openssl/openssl/doc/man3/BIO_s_connect.pod
index d5cc553f250842..4f145297c5876b 100644
--- a/deps/openssl/openssl/doc/man3/BIO_s_connect.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_s_connect.pod
@@ -163,7 +163,7 @@ BIO_set_nbio() always returns 1.
BIO_do_connect() returns 1 if the connection was successfully
established and 0 or -1 if the connection failed.
-=head1 EXAMPLE
+=head1 EXAMPLES
This is example connects to a webserver on the local host and attempts
to retrieve a page and copy the result to standard output.
@@ -203,7 +203,7 @@ Use BIO_set_conn_address() and BIO_get_conn_address() instead.
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_s_fd.pod b/deps/openssl/openssl/doc/man3/BIO_s_fd.pod
index 8ebf563cf64daa..6291373cf34da6 100644
--- a/deps/openssl/openssl/doc/man3/BIO_s_fd.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_s_fd.pod
@@ -68,7 +68,7 @@ been initialized.
BIO_new_fd() returns the newly allocated BIO or NULL is an error
occurred.
-=head1 EXAMPLE
+=head1 EXAMPLES
This is a file descriptor BIO version of "Hello World":
@@ -88,7 +88,7 @@ L, L
=head1 COPYRIGHT
-Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BIO_s_mem.pod b/deps/openssl/openssl/doc/man3/BIO_s_mem.pod
index 2a5d423648db6c..9d3ae216158a43 100644
--- a/deps/openssl/openssl/doc/man3/BIO_s_mem.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_s_mem.pod
@@ -41,9 +41,10 @@ If the BIO_CLOSE flag is set when a memory BIO is freed then the underlying
BUF_MEM structure is also freed.
Calling BIO_reset() on a read write memory BIO clears any data in it if the
-flag BIO_FLAGS_NONCLEAR_RST is not set. On a read only BIO or if the flag
-BIO_FLAGS_NONCLEAR_RST is set it restores the BIO to its original state and
-the data can be read again.
+flag BIO_FLAGS_NONCLEAR_RST is not set, otherwise it just restores the read
+pointer to the state it was just after the last write was performed and the
+data can be read again. On a read only BIO it similarly restores the BIO to
+its original state and the read only data can be read again.
BIO_eof() is true if no data is in the BIO.
@@ -79,11 +80,11 @@ first, so the supplied area of memory must be unchanged until the BIO is freed.
Writes to memory BIOs will always succeed if memory is available: that is
their size can grow indefinitely.
-Every read from a read write memory BIO will remove the data just read with
-an internal copy operation, if a BIO contains a lot of data and it is
-read in small chunks the operation can be very slow. The use of a read only
-memory BIO avoids this problem. If the BIO must be read write then adding
-a buffering BIO to the chain will speed up the process.
+Every write after partial read (not all data in the memory buffer was read)
+to a read write memory BIO will have to move the unread data with an internal
+copy operation, if a BIO contains a lot of data and it is read in small
+chunks intertwined with writes the operation can be very slow. Adding
+a buffering BIO to the chain can speed up the process.
Calling BIO_set_mem_buf() on a BIO created with BIO_new_secmem() will
give undefined results, including perhaps a program crash.
@@ -104,11 +105,32 @@ BIO is set to BIO_NOCLOSE, before freeing the BUF_MEM the data pointer
in it must be set to NULL as the data pointer does not point to an
allocated memory.
+Calling BIO_reset() on a read write memory BIO with BIO_FLAGS_NONCLEAR_RST
+flag set can have unexpected outcome when the reads and writes to the
+BIO are intertwined. As documented above the BIO will be reset to the
+state after the last completed write operation. The effects of reads
+preceding that write operation cannot be undone.
+
+Calling BIO_get_mem_ptr() prior to a BIO_reset() call with
+BIO_FLAGS_NONCLEAR_RST set has the same effect as a write operation.
+
=head1 BUGS
There should be an option to set the maximum size of a memory BIO.
-=head1 EXAMPLE
+=head1 RETURN VALUES
+
+BIO_s_mem() and BIO_s_secmem() return a valid memory B structure.
+
+BIO_set_mem_eof_return(), BIO_set_mem_buf() and BIO_get_mem_ptr()
+return 1 on success or a value which is less than or equal to 0 if an error occurred.
+
+BIO_get_mem_data() returns the total number of bytes available on success,
+0 if b is NULL, or a negative value in case of other errors.
+
+BIO_new_mem_buf() returns a valid B structure on success or NULL on error.
+
+=head1 EXAMPLES
Create a memory BIO and write some data to it:
@@ -129,14 +151,6 @@ Extract the BUF_MEM structure from a memory BIO and then free up the BIO:
BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */
BIO_free(mem);
-=head1 RETURN VALUES
-
-BIO_s_mem() and BIO_s_secmem() return a valid memory B structure.
-
-BIO_set_mem_eof_return(), BIO_get_mem_data(), BIO_set_mem_buf() and BIO_get_mem_ptr()
-return 1 on success or a value which is less than or equal to 0 if an error occurred.
-
-BIO_new_mem_buf() returns a valid B structure on success or NULL on error.
=head1 COPYRIGHT
diff --git a/deps/openssl/openssl/doc/man3/BIO_set_callback.pod b/deps/openssl/openssl/doc/man3/BIO_set_callback.pod
index 0a9b6edb656a72..291456baa42a2a 100644
--- a/deps/openssl/openssl/doc/man3/BIO_set_callback.pod
+++ b/deps/openssl/openssl/doc/man3/BIO_set_callback.pod
@@ -211,11 +211,6 @@ the actual call parameter, see B.
=back
-=head1 EXAMPLE
-
-The BIO_debug_callback() function is a good example, its source is
-in crypto/bio/bio_cb.c
-
=head1 RETURN VALUES
BIO_get_callback_ex() and BIO_get_callback() return the callback function
@@ -228,9 +223,14 @@ via a call to BIO_set_callback_arg().
BIO_debug_callback() returns 1 or B if it's called after specific BIO
operations.
+=head1 EXAMPLES
+
+The BIO_debug_callback() function is a good example, its source is
+in crypto/bio/bio_cb.c
+
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BN_generate_prime.pod b/deps/openssl/openssl/doc/man3/BN_generate_prime.pod
index b6e9145106bec7..31fbc1ffa1743f 100644
--- a/deps/openssl/openssl/doc/man3/BN_generate_prime.pod
+++ b/deps/openssl/openssl/doc/man3/BN_generate_prime.pod
@@ -51,7 +51,9 @@ Deprecated:
=head1 DESCRIPTION
BN_generate_prime_ex() generates a pseudo-random prime number of
-at least bit length B.
+at least bit length B. The returned number is probably prime
+with a negligible error.
+
If B is not B, it will be used to store the number.
If B is not B, it is used as follows:
@@ -89,8 +91,9 @@ generator.
If B is true, it will be a safe prime (i.e. a prime p so
that (p-1)/2 is also prime).
-The PRNG must be seeded prior to calling BN_generate_prime_ex().
-The prime number generation has a negligible error probability.
+The random generator must be seeded prior to calling BN_generate_prime_ex().
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
BN_is_prime_ex() and BN_is_prime_fasttest_ex() test if the number B is
prime. The following tests are performed until one of them shows that
@@ -193,7 +196,8 @@ Instead applications should create a BN_GENCB structure using BN_GENCB_new:
=head1 SEE ALSO
L, L,
-L, L, L
+L, L, L,
+L
=head1 HISTORY
@@ -202,7 +206,7 @@ and BN_GENCB_get_arg() functions were added in OpenSSL 1.1.0.
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BN_mod_mul_montgomery.pod b/deps/openssl/openssl/doc/man3/BN_mod_mul_montgomery.pod
index 4dfcb21d9a1549..7f47e94c2b72aa 100644
--- a/deps/openssl/openssl/doc/man3/BN_mod_mul_montgomery.pod
+++ b/deps/openssl/openssl/doc/man3/BN_mod_mul_montgomery.pod
@@ -64,7 +64,7 @@ BN_MONT_CTX_free() has no return value.
For the other functions, 1 is returned for success, 0 on error.
The error codes can be obtained by L.
-=head1 WARNING
+=head1 WARNINGS
The inputs must be reduced modulo B, otherwise the result will be
outside the expected range.
@@ -80,7 +80,7 @@ BN_MONT_CTX_init() was removed in OpenSSL 1.1.0
=head1 COPYRIGHT
-Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/BN_new.pod b/deps/openssl/openssl/doc/man3/BN_new.pod
index 1fab6d26eb19d0..7f0f6514bc4adf 100644
--- a/deps/openssl/openssl/doc/man3/BN_new.pod
+++ b/deps/openssl/openssl/doc/man3/BN_new.pod
@@ -22,7 +22,7 @@ BN_new, BN_secure_new, BN_clear, BN_free, BN_clear_free - allocate and free BIGN
BN_new() allocates and initializes a B structure.
BN_secure_new() does the same except that the secure heap
-OPENSSL_secure_malloc(3) is used to store the value.
+L is used to store the value.
BN_clear() is used to destroy sensitive data such as keys when they
are no longer needed. It erases the memory used by B and sets it
@@ -46,7 +46,7 @@ BN_clear(), BN_free() and BN_clear_free() have no return values.
=head1 SEE ALSO
-L
+L, L
=head1 HISTORY
diff --git a/deps/openssl/openssl/doc/man3/CMS_final.pod b/deps/openssl/openssl/doc/man3/CMS_final.pod
index 264fe7bc3b1a66..15fd15a68c0d46 100644
--- a/deps/openssl/openssl/doc/man3/CMS_final.pod
+++ b/deps/openssl/openssl/doc/man3/CMS_final.pod
@@ -12,7 +12,7 @@ CMS_final - finalise a CMS_ContentInfo structure
=head1 DESCRIPTION
-CMS_final() finalises the structure B. It's purpose is to perform any
+CMS_final() finalises the structure B. Its purpose is to perform any
operations necessary on B (digest computation for example) and set the
appropriate fields. The parameter B contains the content to be
processed. The B parameter contains a BIO to write content to after
@@ -36,7 +36,7 @@ L
=head1 COPYRIGHT
-Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/CRYPTO_THREAD_run_once.pod b/deps/openssl/openssl/doc/man3/CRYPTO_THREAD_run_once.pod
index 32776131936c8a..b919e2e478164b 100644
--- a/deps/openssl/openssl/doc/man3/CRYPTO_THREAD_run_once.pod
+++ b/deps/openssl/openssl/doc/man3/CRYPTO_THREAD_run_once.pod
@@ -97,7 +97,7 @@ one of the first included headers. Therefore it is defined as an
application developer's responsibility to include windows.h prior to
crypto.h where use of CRYPTO_THREAD_* types and functions is required.
-=head1 EXAMPLE
+=head1 EXAMPLES
This example safely initializes and uses a lock.
@@ -161,7 +161,7 @@ L
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/CRYPTO_memcmp.pod b/deps/openssl/openssl/doc/man3/CRYPTO_memcmp.pod
new file mode 100644
index 00000000000000..9182d00796c9f0
--- /dev/null
+++ b/deps/openssl/openssl/doc/man3/CRYPTO_memcmp.pod
@@ -0,0 +1,39 @@
+=pod
+
+=head1 NAME
+
+CRYPTO_memcmp - Constant time memory comparison
+
+=head1 SYNOPSIS
+
+ #include
+
+ int CRYPTO_memcmp(const void *a, const void *b, size_t len);
+
+=head1 DESCRIPTION
+
+The CRYPTO_memcmp function compares the B bytes pointed to by B and B
+for equality.
+It takes an amount of time dependent on B, but independent of the
+contents of the memory regions pointed to by B and B.
+
+=head1 RETURN VALUES
+
+CRYPTO_memcmp() returns 0 if the memory regions are equal and non-zero
+otherwise.
+
+=head1 NOTES
+
+Unlike memcmp(2), this function cannot be used to order the two memory regions
+as the return value when they differ is undefined, other than being non-zero.
+
+=head1 COPYRIGHT
+
+Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the Apache License 2.0 (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+L.
+
+=cut
diff --git a/deps/openssl/openssl/doc/man3/DES_random_key.pod b/deps/openssl/openssl/doc/man3/DES_random_key.pod
index bd4bd9750cd3cc..04df6ec0dfde3d 100644
--- a/deps/openssl/openssl/doc/man3/DES_random_key.pod
+++ b/deps/openssl/openssl/doc/man3/DES_random_key.pod
@@ -104,9 +104,11 @@ consists of 8 bytes with odd parity. The least significant bit in
each byte is the parity bit. The key schedule is an expanded form of
the key; it is used to speed the encryption process.
-DES_random_key() generates a random key. The PRNG must be seeded
-prior to using this function (see L). If the PRNG
-could not generate a secure key, 0 is returned.
+DES_random_key() generates a random key. The random generator must be
+seeded when calling this function.
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
+If the function fails, 0 is returned.
Before a DES key can be used, it must be converted into the
architecture dependent I via the
diff --git a/deps/openssl/openssl/doc/man3/DSA_generate_key.pod b/deps/openssl/openssl/doc/man3/DSA_generate_key.pod
index 9ff75533525559..bb1bb366909599 100644
--- a/deps/openssl/openssl/doc/man3/DSA_generate_key.pod
+++ b/deps/openssl/openssl/doc/man3/DSA_generate_key.pod
@@ -15,7 +15,9 @@ DSA_generate_key - generate DSA key pair
DSA_generate_key() expects B to contain DSA parameters. It generates
a new key pair and stores it in Bpub_key> and Bpriv_key>.
-The PRNG must be seeded prior to calling DSA_generate_key().
+The random generator must be seeded prior to calling DSA_generate_key().
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
=head1 RETURN VALUES
@@ -29,7 +31,7 @@ L
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/DSA_sign.pod b/deps/openssl/openssl/doc/man3/DSA_sign.pod
index 889c7a1e070822..0d76b8c3f928fb 100644
--- a/deps/openssl/openssl/doc/man3/DSA_sign.pod
+++ b/deps/openssl/openssl/doc/man3/DSA_sign.pod
@@ -36,8 +36,10 @@ B is the signer's public key.
The B parameter is ignored.
-The PRNG must be seeded before DSA_sign() (or DSA_sign_setup())
+The random generator must be seeded when DSA_sign() (or DSA_sign_setup())
is called.
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
=head1 RETURN VALUES
@@ -54,11 +56,12 @@ Standard, DSS), ANSI X9.30
=head1 SEE ALSO
L, L, L,
-L
+L,
+L
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/ECDSA_SIG_new.pod b/deps/openssl/openssl/doc/man3/ECDSA_SIG_new.pod
index 8d6cda5e7a3c97..6a7d107079d513 100644
--- a/deps/openssl/openssl/doc/man3/ECDSA_SIG_new.pod
+++ b/deps/openssl/openssl/doc/man3/ECDSA_SIG_new.pod
@@ -3,10 +3,10 @@
=head1 NAME
ECDSA_SIG_get0, ECDSA_SIG_get0_r, ECDSA_SIG_get0_s, ECDSA_SIG_set0,
-ECDSA_SIG_new, ECDSA_SIG_free, i2d_ECDSA_SIG, d2i_ECDSA_SIG, ECDSA_size,
-ECDSA_sign, ECDSA_do_sign, ECDSA_verify, ECDSA_do_verify, ECDSA_sign_setup,
-ECDSA_sign_ex, ECDSA_do_sign_ex - low level elliptic curve digital signature
-algorithm (ECDSA) functions
+ECDSA_SIG_new, ECDSA_SIG_free, ECDSA_size, ECDSA_sign, ECDSA_do_sign,
+ECDSA_verify, ECDSA_do_verify, ECDSA_sign_setup, ECDSA_sign_ex,
+ECDSA_do_sign_ex - low level elliptic curve digital signature algorithm (ECDSA)
+functions
=head1 SYNOPSIS
@@ -18,8 +18,6 @@ algorithm (ECDSA) functions
const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig);
const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig);
int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s);
- int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp);
- ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len);
int ECDSA_size(const EC_KEY *eckey);
int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen,
@@ -68,15 +66,8 @@ function transfers the memory management of the values to the ECDSA_SIG object,
and therefore the values that have been passed in should not be freed directly
after this function has been called.
-i2d_ECDSA_SIG() creates the DER encoding of the ECDSA signature B and
-writes the encoded signature to B<*pp> (note: if B is NULL i2d_ECDSA_SIG()
-returns the expected length in bytes of the DER encoded signature).
-i2d_ECDSA_SIG() returns the length of the DER encoded signature (or 0 on
-error).
-
-d2i_ECDSA_SIG() decodes a DER encoded ECDSA signature and returns the decoded
-signature in a newly allocated B structure. B<*sig> points to the
-buffer containing the DER encoded signature of size B.
+See L and L for information about encoding
+and decoding ECDSA signatures to/from DER.
ECDSA_size() returns the maximum length of a DER encoded ECDSA signature
created with the private EC key B.
@@ -202,7 +193,9 @@ ANSI X9.62, US Federal Information Processing Standard FIPS 186-2
L,
L,
-L
+L,
+L,
+L
=head1 COPYRIGHT
diff --git a/deps/openssl/openssl/doc/man3/EVP_DigestInit.pod b/deps/openssl/openssl/doc/man3/EVP_DigestInit.pod
index 37bc10d38056fb..3e3e3422976347 100644
--- a/deps/openssl/openssl/doc/man3/EVP_DigestInit.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_DigestInit.pod
@@ -304,7 +304,7 @@ macros.
EVP_MD_CTX_ctrl() sends commands to message digests for additional configuration
or control.
-=head1 EXAMPLE
+=head1 EXAMPLES
This example digests the data "Test Message\n" and "Hello World\n", using the
digest name passed on the command line.
@@ -381,7 +381,7 @@ The EVP_MD_CTX_set_pkey_ctx() function was added in 1.1.1.
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_DigestSignInit.pod b/deps/openssl/openssl/doc/man3/EVP_DigestSignInit.pod
index 7b74a23cbcf25a..0bbc3d0ff8f348 100644
--- a/deps/openssl/openssl/doc/man3/EVP_DigestSignInit.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_DigestSignInit.pod
@@ -35,7 +35,7 @@ EVP_MD_CTX is freed).
The digest B may be NULL if the signing algorithm supports it.
-No B will be created by EVP_DigsetSignInit() if the passed B
+No B will be created by EVP_DigestSignInit() if the passed B
has already been assigned one via L. See also L.
Only EVP_PKEY types that support signing can be used with these functions. This
@@ -125,8 +125,9 @@ and public key algorithms. This meant that "clone" digests such as EVP_dss1()
needed to be used to sign using SHA1 and DSA. This is no longer necessary and
the use of clone digest is now discouraged.
-For some key types and parameters the random number generator must be seeded
-or the operation will fail.
+For some key types and parameters the random number generator must be seeded.
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
The call to EVP_DigestSignFinal() internally finalizes a copy of the digest
context. This means that calls to EVP_DigestSignUpdate() and
@@ -147,7 +148,8 @@ L,
L,
L, L, L,
L, L, L,
-L, L
+L, L,
+L
=head1 HISTORY
@@ -156,7 +158,7 @@ were added in OpenSSL 1.0.0.
=head1 COPYRIGHT
-Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_DigestVerifyInit.pod b/deps/openssl/openssl/doc/man3/EVP_DigestVerifyInit.pod
index 592a7508dce0b5..05b99bb913ce3b 100644
--- a/deps/openssl/openssl/doc/man3/EVP_DigestVerifyInit.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_DigestVerifyInit.pod
@@ -32,7 +32,7 @@ being passed to EVP_DigestVerifyInit() (which means the EVP_PKEY_CTX is created
inside EVP_DigestVerifyInit() and it will be freed automatically when the
EVP_MD_CTX is freed).
-No B will be created by EVP_DigsetSignInit() if the passed B
+No B will be created by EVP_DigestSignInit() if the passed B
has already been assigned one via L. See also L.
EVP_DigestVerifyUpdate() hashes B bytes of data at B into the
@@ -76,8 +76,9 @@ and public key algorithms. This meant that "clone" digests such as EVP_dss1()
needed to be used to sign using SHA1 and DSA. This is no longer necessary and
the use of clone digest is now discouraged.
-For some key types and parameters the random number generator must be seeded
-or the operation will fail.
+For some key types and parameters the random number generator must be seeded.
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
The call to EVP_DigestVerifyFinal() internally finalizes a copy of the digest
context. This means that EVP_VerifyUpdate() and EVP_VerifyFinal() can
@@ -93,7 +94,8 @@ L,
L,
L, L, L,
L, L, L,
-L, L
+L, L,
+L
=head1 HISTORY
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_hkdf_md.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_hkdf_md.pod
index e8f19cfc9980eb..974bbed9b9f2a1 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_hkdf_md.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_hkdf_md.pod
@@ -121,7 +121,7 @@ All these functions return 1 for success and 0 or a negative value for failure.
In particular a return value of -2 indicates the operation is not supported by
the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
This example derives 10 bytes using SHA-256 with the secret key "secret",
salt value "salt" and info value "label":
@@ -156,7 +156,7 @@ L
=head1 COPYRIGHT
-Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_tls1_prf_md.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_tls1_prf_md.pod
index 30e50bc63e9482..9a8d7a88755282 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_tls1_prf_md.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_CTX_set_tls1_prf_md.pod
@@ -70,7 +70,7 @@ All these functions return 1 for success and 0 or a negative value for failure.
In particular a return value of -2 indicates the operation is not supported by
the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
This example derives 10 bytes using SHA-256 with the secret key "secret"
and seed value "seed":
@@ -99,7 +99,7 @@ L
=head1 COPYRIGHT
-Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_decrypt.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_decrypt.pod
index 2e3d266541a66c..08d0ec32bdb399 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_decrypt.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_decrypt.pod
@@ -41,7 +41,7 @@ EVP_PKEY_decrypt_init() and EVP_PKEY_decrypt() return 1 for success and 0
or a negative value for failure. In particular a return value of -2
indicates the operation is not supported by the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
Decrypt data using OAEP (for RSA keys):
@@ -95,7 +95,7 @@ These functions were added in OpenSSL 1.0.0.
=head1 COPYRIGHT
-Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_derive.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_derive.pod
index a74065e31f3b97..76b3c3986b1cde 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_derive.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_derive.pod
@@ -42,7 +42,7 @@ EVP_PKEY_derive_init() and EVP_PKEY_derive() return 1 for success and 0
or a negative value for failure. In particular a return value of -2
indicates the operation is not supported by the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
Derive shared secret (for example DH or EC keys):
@@ -93,7 +93,7 @@ These functions were added in OpenSSL 1.0.0.
=head1 COPYRIGHT
-Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_encrypt.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_encrypt.pod
index 371891046473f1..2a3bf2a0974100 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_encrypt.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_encrypt.pod
@@ -41,7 +41,7 @@ EVP_PKEY_encrypt_init() and EVP_PKEY_encrypt() return 1 for success and 0
or a negative value for failure. In particular a return value of -2
indicates the operation is not supported by the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
Encrypt data using OAEP (for RSA keys). See also L or
L for means to load a public key. You may also simply
@@ -100,7 +100,7 @@ These functions were added in OpenSSL 1.0.0.
=head1 COPYRIGHT
-Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_sign.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_sign.pod
index 1672831ff0158c..175aeed584d9f2 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_sign.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_sign.pod
@@ -46,7 +46,7 @@ EVP_PKEY_sign_init() and EVP_PKEY_sign() return 1 for success and 0
or a negative value for failure. In particular a return value of -2
indicates the operation is not supported by the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
Sign data using RSA with PKCS#1 padding and SHA256 digest:
@@ -105,7 +105,7 @@ These functions were added in OpenSSL 1.0.0.
=head1 COPYRIGHT
-Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_verify.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_verify.pod
index cdbb80b99df86e..616fd5577fd241 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_verify.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_verify.pod
@@ -44,7 +44,7 @@ A negative value indicates an error other that signature verification failure.
In particular a return value of -2 indicates the operation is not supported by
the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
Verify signature using PKCS#1 and SHA256 digest:
@@ -93,7 +93,7 @@ These functions were added in OpenSSL 1.0.0.
=head1 COPYRIGHT
-Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_PKEY_verify_recover.pod b/deps/openssl/openssl/doc/man3/EVP_PKEY_verify_recover.pod
index 251360656167e5..a3a7818d7940a9 100644
--- a/deps/openssl/openssl/doc/man3/EVP_PKEY_verify_recover.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_PKEY_verify_recover.pod
@@ -49,7 +49,7 @@ EVP_PKEY_verify_recover_init() and EVP_PKEY_verify_recover() return 1 for succes
and 0 or a negative value for failure. In particular a return value of -2
indicates the operation is not supported by the public key algorithm.
-=head1 EXAMPLE
+=head1 EXAMPLES
Recover digest originally signed using PKCS#1 and SHA256 digest:
@@ -104,7 +104,7 @@ These functions were added in OpenSSL 1.0.0.
=head1 COPYRIGHT
-Copyright 2013-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2013-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_SealInit.pod b/deps/openssl/openssl/doc/man3/EVP_SealInit.pod
index 29d89c30529a5a..2c2c89a71b51ee 100644
--- a/deps/openssl/openssl/doc/man3/EVP_SealInit.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_SealInit.pod
@@ -55,7 +55,9 @@ failure.
=head1 NOTES
Because a random secret key is generated the random number generator
-must be seeded before calling EVP_SealInit().
+must be seeded when EVP_SealInit() is called.
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
The public key must be RSA because it is the only OpenSSL public key
algorithm that supports key transport.
@@ -75,11 +77,12 @@ with B set to NULL.
L, L,
L,
-L
+L,
+L
=head1 COPYRIGHT
-Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_SignInit.pod b/deps/openssl/openssl/doc/man3/EVP_SignInit.pod
index 86fec82fb007dc..c26b7f7d5d2209 100644
--- a/deps/openssl/openssl/doc/man3/EVP_SignInit.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_SignInit.pod
@@ -66,9 +66,10 @@ The B interface to digital signatures should almost always be used in
preference to the low level interfaces. This is because the code then becomes
transparent to the algorithm used and much more flexible.
-When signing with DSA private keys the random number generator must be seeded
-or the operation will fail. The random number generator does not need to be
-seeded for RSA signatures.
+When signing with DSA private keys the random number generator must be seeded.
+If the automatic seeding or reseeding of the OpenSSL CSPRNG fails due to
+external circumstances (see L), the operation will fail.
+This requirement does not hold for RSA signatures.
The call to EVP_SignFinal() internally finalizes a copy of the digest context.
This means that calls to EVP_SignUpdate() and EVP_SignFinal() can be called
@@ -102,7 +103,7 @@ L, L
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_VerifyInit.pod b/deps/openssl/openssl/doc/man3/EVP_VerifyInit.pod
index f86825849b80ec..647c99bceb5aaa 100644
--- a/deps/openssl/openssl/doc/man3/EVP_VerifyInit.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_VerifyInit.pod
@@ -72,7 +72,7 @@ data have been passed through EVP_SignUpdate().
It is not possible to change the signing parameters using these function.
-The previous two bugs are fixed in the newer EVP_VerifyDigest*() function.
+The previous two bugs are fixed in the newer EVP_DigestVerify*() function.
=head1 SEE ALSO
@@ -85,7 +85,7 @@ L, L
=head1 COPYRIGHT
-Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_aria.pod b/deps/openssl/openssl/doc/man3/EVP_aria.pod
index fbb79187546cd4..c30ff9929cae8f 100644
--- a/deps/openssl/openssl/doc/man3/EVP_aria.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_aria.pod
@@ -32,7 +32,7 @@ EVP_aria_256_ccm,
EVP_aria_128_gcm,
EVP_aria_192_gcm,
EVP_aria_256_gcm,
-- EVP AES cipher
+- EVP ARIA cipher
=head1 SYNOPSIS
@@ -106,7 +106,7 @@ L
=head1 COPYRIGHT
-Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_md5.pod b/deps/openssl/openssl/doc/man3/EVP_md5.pod
index 725fcbf5e2270d..ed0f99c99d37f7 100644
--- a/deps/openssl/openssl/doc/man3/EVP_md5.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_md5.pod
@@ -29,7 +29,7 @@ The MD5 algorithm which produces a 128-bit output from a given input.
=item EVP_md5_sha1()
-A hash algorithm of SSL v3 that combines MD5 with SHA-1 as decirbed in RFC
+A hash algorithm of SSL v3 that combines MD5 with SHA-1 as described in RFC
6101.
WARNING: this algorithm is not intended for non-SSL usage.
@@ -54,7 +54,7 @@ L
=head1 COPYRIGHT
-Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod
index 442a114ea9ce12..9eb8bd9dc3f918 100644
--- a/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod
+++ b/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod
@@ -33,7 +33,26 @@ EVP_rc5_32_12_16_ofb()
RC5 encryption algorithm in CBC, CFB, ECB and OFB modes respectively. This is a
variable key length cipher with an additional "number of rounds" parameter. By
-default the key length is set to 128 bits and 12 rounds.
+default the key length is set to 128 bits and 12 rounds. Alternative key lengths
+can be set using L. The maximum key length is
+2040 bits.
+
+The following rc5 specific Is are supported (see
+L).
+
+=over 4
+
+=item EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_SET_RC5_ROUNDS, rounds, NULL)
+
+Sets the number of rounds to B. This must be one of RC5_8_ROUNDS,
+RC5_12_ROUNDS or RC5_16_ROUNDS.
+
+=item EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GET_RC5_ROUNDS, 0, &rounds)
+
+Stores the number of rounds currently configured in B<*rounds> where B<*rounds>
+is an int.
+
+=back
=back
@@ -43,10 +62,6 @@ These functions return an B structure that contains the
implementation of the symmetric cipher. See L for
details of the B structure.
-=head1 BUGS
-
-Currently the number of rounds in RC5 can only be set to 8, 12 or 16.
-This is a limitation of the current RC5 code rather than the EVP interface.
=head1 SEE ALSO
@@ -56,7 +71,7 @@ L
=head1 COPYRIGHT
-Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/OCSP_REQUEST_new.pod b/deps/openssl/openssl/doc/man3/OCSP_REQUEST_new.pod
index a382b16ed3853e..283c226bc4080e 100644
--- a/deps/openssl/openssl/doc/man3/OCSP_REQUEST_new.pod
+++ b/deps/openssl/openssl/doc/man3/OCSP_REQUEST_new.pod
@@ -75,7 +75,7 @@ corresponding to each certificate.
OCSP_request_onereq_count() and OCSP_request_onereq_get0() are mainly used by
OCSP responders.
-=head1 EXAMPLE
+=head1 EXAMPLES
Create an B structure for certificate B with issuer
B:
@@ -108,7 +108,7 @@ L
=head1 COPYRIGHT
-Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/OPENSSL_fork_prepare.pod b/deps/openssl/openssl/doc/man3/OPENSSL_fork_prepare.pod
index 7c4eb1dbfd9f5f..a47a07a390d8a1 100644
--- a/deps/openssl/openssl/doc/man3/OPENSSL_fork_prepare.pod
+++ b/deps/openssl/openssl/doc/man3/OPENSSL_fork_prepare.pod
@@ -24,7 +24,7 @@ The OPENSSL_fork_prepare(), OPENSSL_fork_parent(), and OPENSSL_fork_child()
functions are used to reset this internal state.
Platforms without fork(2) will probably not need to use these functions.
-Platforms with fork(2) but without pthreads_atfork(3) will probably need
+Platforms with fork(2) but without pthread_atfork(3) will probably need
to call them manually, as described in the following paragraph. Platforms
such as Linux that have both functions will normally not need to call these
functions as the OpenSSL library will do so automatically.
@@ -32,7 +32,7 @@ functions as the OpenSSL library will do so automatically.
L will register these functions with the appropriate
handler, when the B flag is used. For other
applications, these functions can be called directly. They should be used
-according to the calling sequence described by the pthreads_atfork(3)
+according to the calling sequence described by the pthread_atfork(3)
documentation, which is summarized here. OPENSSL_fork_prepare() should
be called before a fork() is done. After the fork() returns, the parent
process should call OPENSSL_fork_parent() and the child process should
@@ -53,7 +53,7 @@ These functions were added in OpenSSL 1.1.1.
=head1 COPYRIGHT
-Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/OSSL_STORE_LOADER.pod b/deps/openssl/openssl/doc/man3/OSSL_STORE_LOADER.pod
index 15037541145228..b0c15b01c3341b 100644
--- a/deps/openssl/openssl/doc/man3/OSSL_STORE_LOADER.pod
+++ b/deps/openssl/openssl/doc/man3/OSSL_STORE_LOADER.pod
@@ -95,7 +95,7 @@ manner possible according to the scheme the loader implements, it also
takes a B and associated data, to be used any time
something needs to be prompted for.
Furthermore, this function is expected to initialize what needs to be
-initialized, to create a privata data store (B, see
+initialized, to create a private data store (B, see
above), and to return it.
If something goes wrong, this function is expected to return NULL.
@@ -254,7 +254,7 @@ were added in OpenSSL 1.1.1.
=head1 COPYRIGHT
-Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/deps/openssl/openssl/doc/man3/OSSL_STORE_expect.pod b/deps/openssl/openssl/doc/man3/OSSL_STORE_expect.pod
index 154472a76b5146..ff3fb2a69d3115 100644
--- a/deps/openssl/openssl/doc/man3/OSSL_STORE_expect.pod
+++ b/deps/openssl/openssl/doc/man3/OSSL_STORE_expect.pod
@@ -32,7 +32,7 @@ grained search of objects.
OSSL_STORE_supports_search() checks if the loader of the given OSSL_STORE
context supports the given search type.
-See L |