Commit 255bcd7d authored by davidben's avatar davidben Committed by Commit bot

Roll src/third_party/boringssl/src 68de407:771a138

Summary of changes available at:
https://boringssl.googlesource.com/boringssl/+log/68de407..771a138

This also removes update_gypi_and_asm.py in favor of the script inside
BoringSSL proper.

BUG=none

Review URL: https://codereview.chromium.org/1136743004

Cr-Commit-Position: refs/heads/master@{#329652}
parent 9e2b43ae
...@@ -74,7 +74,7 @@ vars = { ...@@ -74,7 +74,7 @@ vars = {
# Three lines of non-changing comments so that # Three lines of non-changing comments so that
# the commit queue can handle CLs rolling BoringSSL # the commit queue can handle CLs rolling BoringSSL
# and whatever else without interference from each other. # and whatever else without interference from each other.
'boringssl_revision': '68de407b5fc746c0fa82706dd897288d01c32930', 'boringssl_revision': '771a138f2612c581a547cb3f045b3f6753fe5571',
# Three lines of non-changing comments so that # Three lines of non-changing comments so that
# the commit queue can handle CLs rolling nss # the commit queue can handle CLs rolling nss
# and whatever else without interference from each other. # and whatever else without interference from each other.
......
...@@ -9,3 +9,10 @@ Security Critical: yes ...@@ -9,3 +9,10 @@ Security Critical: yes
Description: Description:
This is BoringSSL, a fork of OpenSSL. See This is BoringSSL, a fork of OpenSSL. See
https://www.imperialviolet.org/2014/06/20/boringssl.html https://www.imperialviolet.org/2014/06/20/boringssl.html
Note: when rolling DEPS forward, remember to run
cd third_party/boringssl
python src/util/generate_build_files.py chromium
from a system with both Perl and Go installed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# This file is created by update_gypi_and_asm.py. Do not edit manually. # This file is created by generate_build_files.py. Do not edit manually.
{ {
'variables': { 'variables': {
...@@ -95,6 +95,7 @@ ...@@ -95,6 +95,7 @@
'src/crypto/cipher/e_ssl3.c', 'src/crypto/cipher/e_ssl3.c',
'src/crypto/cipher/e_tls.c', 'src/crypto/cipher/e_tls.c',
'src/crypto/cipher/tls_cbc.c', 'src/crypto/cipher/tls_cbc.c',
'src/crypto/cmac/cmac.c',
'src/crypto/conf/conf.c', 'src/crypto/conf/conf.c',
'src/crypto/cpu-arm.c', 'src/crypto/cpu-arm.c',
'src/crypto/cpu-intel.c', 'src/crypto/cpu-intel.c',
...@@ -184,6 +185,7 @@ ...@@ -184,6 +185,7 @@
'src/crypto/sha/sha512.c', 'src/crypto/sha/sha512.c',
'src/crypto/stack/stack.c', 'src/crypto/stack/stack.c',
'src/crypto/thread.c', 'src/crypto/thread.c',
'src/crypto/thread_none.c',
'src/crypto/thread_pthread.c', 'src/crypto/thread_pthread.c',
'src/crypto/thread_win.c', 'src/crypto/thread_win.c',
'src/crypto/time_support.c', 'src/crypto/time_support.c',
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# This file is created by update_gypi_and_asm.py. Do not edit manually. # This file is created by generate_build_files.py. Do not edit manually.
{ {
'targets': [ 'targets': [
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/base64/base64_test.cc', 'src/crypto/base64/base64_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/bio/bio_test.cc', 'src/crypto/bio/bio_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -40,6 +42,7 @@ ...@@ -40,6 +42,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/bn/bn_test.cc', 'src/crypto/bn/bn_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -53,6 +56,7 @@ ...@@ -53,6 +56,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/bytestring/bytestring_test.cc', 'src/crypto/bytestring/bytestring_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -65,7 +69,8 @@ ...@@ -65,7 +69,8 @@
'boringssl.gyp:boringssl', 'boringssl.gyp:boringssl',
], ],
'sources': [ 'sources': [
'src/crypto/cipher/aead_test.c', 'src/crypto/cipher/aead_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -79,6 +84,21 @@ ...@@ -79,6 +84,21 @@
], ],
'sources': [ 'sources': [
'src/crypto/cipher/cipher_test.c', 'src/crypto/cipher/cipher_test.c',
'<@(boringssl_test_support_sources)',
],
# TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039
'msvs_disabled_warnings': [ 4267, ],
},
{
'target_name': 'boringssl_cmac_test',
'type': 'executable',
'dependencies': [
'boringssl.gyp:boringssl',
],
'sources': [
'src/crypto/cmac/cmac_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -92,6 +112,7 @@ ...@@ -92,6 +112,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/constant_time_test.c', 'src/crypto/constant_time_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -104,7 +125,8 @@ ...@@ -104,7 +125,8 @@
'boringssl.gyp:boringssl', 'boringssl.gyp:boringssl',
], ],
'sources': [ 'sources': [
'src/crypto/dh/dh_test.c', 'src/crypto/dh/dh_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -118,6 +140,7 @@ ...@@ -118,6 +140,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/digest/digest_test.cc', 'src/crypto/digest/digest_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -131,6 +154,7 @@ ...@@ -131,6 +154,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/dsa/dsa_test.c', 'src/crypto/dsa/dsa_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -144,6 +168,7 @@ ...@@ -144,6 +168,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/ec/ec_test.cc', 'src/crypto/ec/ec_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -157,6 +182,7 @@ ...@@ -157,6 +182,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/ec/example_mul.c', 'src/crypto/ec/example_mul.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -170,6 +196,7 @@ ...@@ -170,6 +196,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/ecdsa/ecdsa_test.cc', 'src/crypto/ecdsa/ecdsa_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -183,6 +210,21 @@ ...@@ -183,6 +210,21 @@
], ],
'sources': [ 'sources': [
'src/crypto/err/err_test.cc', 'src/crypto/err/err_test.cc',
'<@(boringssl_test_support_sources)',
],
# TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039
'msvs_disabled_warnings': [ 4267, ],
},
{
'target_name': 'boringssl_evp_extra_test',
'type': 'executable',
'dependencies': [
'boringssl.gyp:boringssl',
],
'sources': [
'src/crypto/evp/evp_extra_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -196,6 +238,7 @@ ...@@ -196,6 +238,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/evp/evp_test.cc', 'src/crypto/evp/evp_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -209,6 +252,7 @@ ...@@ -209,6 +252,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/evp/pbkdf_test.cc', 'src/crypto/evp/pbkdf_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -222,6 +266,7 @@ ...@@ -222,6 +266,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/hkdf/hkdf_test.c', 'src/crypto/hkdf/hkdf_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -235,6 +280,7 @@ ...@@ -235,6 +280,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/hmac/hmac_test.cc', 'src/crypto/hmac/hmac_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -248,6 +294,7 @@ ...@@ -248,6 +294,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/lhash/lhash_test.c', 'src/crypto/lhash/lhash_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -261,6 +308,7 @@ ...@@ -261,6 +308,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/modes/gcm_test.c', 'src/crypto/modes/gcm_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -273,7 +321,8 @@ ...@@ -273,7 +321,8 @@
'boringssl.gyp:boringssl', 'boringssl.gyp:boringssl',
], ],
'sources': [ 'sources': [
'src/crypto/pkcs8/pkcs12_test.c', 'src/crypto/pkcs8/pkcs12_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -287,6 +336,7 @@ ...@@ -287,6 +336,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/rsa/rsa_test.c', 'src/crypto/rsa/rsa_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -300,6 +350,7 @@ ...@@ -300,6 +350,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/thread_test.c', 'src/crypto/thread_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -313,6 +364,7 @@ ...@@ -313,6 +364,7 @@
], ],
'sources': [ 'sources': [
'src/crypto/x509/pkcs7_test.c', 'src/crypto/x509/pkcs7_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -326,6 +378,7 @@ ...@@ -326,6 +378,7 @@
], ],
'sources': [ 'sources': [
'src/ssl/pqueue/pqueue_test.c', 'src/ssl/pqueue/pqueue_test.c',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -339,6 +392,7 @@ ...@@ -339,6 +392,7 @@
], ],
'sources': [ 'sources': [
'src/ssl/ssl_test.cc', 'src/ssl/ssl_test.cc',
'<@(boringssl_test_support_sources)',
], ],
# TODO(davidben): Fix size_t truncations in BoringSSL. # TODO(davidben): Fix size_t truncations in BoringSSL.
# https://crbug.com/429039 # https://crbug.com/429039
...@@ -346,6 +400,9 @@ ...@@ -346,6 +400,9 @@
}, },
], ],
'variables': { 'variables': {
'boringssl_test_support_sources': [
'src/crypto/test/file_test.cc',
],
'boringssl_test_targets': [ 'boringssl_test_targets': [
'boringssl_aead_test', 'boringssl_aead_test',
'boringssl_base64_test', 'boringssl_base64_test',
...@@ -353,6 +410,7 @@ ...@@ -353,6 +410,7 @@
'boringssl_bn_test', 'boringssl_bn_test',
'boringssl_bytestring_test', 'boringssl_bytestring_test',
'boringssl_cipher_test', 'boringssl_cipher_test',
'boringssl_cmac_test',
'boringssl_constant_time_test', 'boringssl_constant_time_test',
'boringssl_dh_test', 'boringssl_dh_test',
'boringssl_digest_test', 'boringssl_digest_test',
...@@ -360,6 +418,7 @@ ...@@ -360,6 +418,7 @@
'boringssl_ec_test', 'boringssl_ec_test',
'boringssl_ecdsa_test', 'boringssl_ecdsa_test',
'boringssl_err_test', 'boringssl_err_test',
'boringssl_evp_extra_test',
'boringssl_evp_test', 'boringssl_evp_test',
'boringssl_example_mul', 'boringssl_example_mul',
'boringssl_gcm_test', 'boringssl_gcm_test',
......
...@@ -157,10 +157,6 @@ TEST(BoringSSL, ByteString) { ...@@ -157,10 +157,6 @@ TEST(BoringSSL, ByteString) {
TestSimple("bytestring_test"); TestSimple("bytestring_test");
} }
TEST(BoringSSL, ConstantTime) {
TestSimple("constant_time_test");
}
TEST(BoringSSL, Cipher) { TEST(BoringSSL, Cipher) {
base::FilePath data_file; base::FilePath data_file;
ASSERT_TRUE(CryptoCipherTestPath(&data_file)); ASSERT_TRUE(CryptoCipherTestPath(&data_file));
...@@ -172,6 +168,14 @@ TEST(BoringSSL, Cipher) { ...@@ -172,6 +168,14 @@ TEST(BoringSSL, Cipher) {
TestProcess("cipher_test", args); TestProcess("cipher_test", args);
} }
TEST(BoringSSL, CMAC) {
TestSimple("cmac_test");
}
TEST(BoringSSL, ConstantTime) {
TestSimple("constant_time_test");
}
TEST(BoringSSL, DH) { TEST(BoringSSL, DH) {
TestSimple("dh_test"); TestSimple("dh_test");
} }
...@@ -201,7 +205,16 @@ TEST(BoringSSL, GCM) { ...@@ -201,7 +205,16 @@ TEST(BoringSSL, GCM) {
} }
TEST(BoringSSL, HMAC) { TEST(BoringSSL, HMAC) {
TestSimple("hmac_test"); base::FilePath data_file;
ASSERT_TRUE(BoringSSLPath(&data_file));
data_file = data_file.Append(FILE_PATH_LITERAL("crypto"));
data_file = data_file.Append(FILE_PATH_LITERAL("hmac"));
data_file = data_file.Append(FILE_PATH_LITERAL("hmac_tests.txt"));
std::vector<base::CommandLine::StringType> args;
args.push_back(data_file.value());
TestProcess("hmac_test", args);
} }
TEST(BoringSSL, LH) { TEST(BoringSSL, LH) {
...@@ -225,7 +238,34 @@ TEST(BoringSSL, ExampleMul) { ...@@ -225,7 +238,34 @@ TEST(BoringSSL, ExampleMul) {
} }
TEST(BoringSSL, EVP) { TEST(BoringSSL, EVP) {
TestSimple("evp_test"); base::FilePath data_file;
ASSERT_TRUE(BoringSSLPath(&data_file));
data_file = data_file.Append(FILE_PATH_LITERAL("crypto"));
data_file = data_file.Append(FILE_PATH_LITERAL("evp"));
data_file = data_file.Append(FILE_PATH_LITERAL("evp_tests.txt"));
std::vector<base::CommandLine::StringType> args;
args.push_back(data_file.value());
TestProcess("evp_test", args);
}
// evp_test is also run on hmac_test's input.
TEST(BoringSSL, EVPHMAC) {
base::FilePath data_file;
ASSERT_TRUE(BoringSSLPath(&data_file));
data_file = data_file.Append(FILE_PATH_LITERAL("crypto"));
data_file = data_file.Append(FILE_PATH_LITERAL("hmac"));
data_file = data_file.Append(FILE_PATH_LITERAL("hmac_tests.txt"));
std::vector<base::CommandLine::StringType> args;
args.push_back(data_file.value());
TestProcess("evp_test", args);
}
TEST(BoringSSL, EVPExtra) {
TestSimple("evp_extra_test");
} }
TEST(BoringSSL, SSL) { TEST(BoringSSL, SSL) {
......
This diff is collapsed.
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
#if __ARM_MAX_ARCH__>=7 #if __ARM_MAX_ARCH__>=7
.text .text
#if !defined(__clang__)
.arch armv8-a+crypto .arch armv8-a+crypto
#endif
.align 5 .align 5
.Lrcon: .Lrcon:
.long 0x01,0x01,0x01,0x01 .long 0x01,0x01,0x01,0x01
......
#include "arm_arch.h" #include "arm_arch.h"
.text .text
#if !defined(__clang__)
.arch armv8-a+crypto .arch armv8-a+crypto
#endif
.globl gcm_init_v8 .globl gcm_init_v8
.type gcm_init_v8,%function .type gcm_init_v8,%function
.align 4 .align 4
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
.code 32 .code 32
#else #else
.syntax unified .syntax unified
# ifdef __thumb2__ # if defined(__thumb2__) && !defined(__APPLE__)
.thumb .thumb
# else # else
.code 32 .code 32
...@@ -158,9 +158,9 @@ AES_Te: ...@@ -158,9 +158,9 @@ AES_Te:
@ void asm_AES_encrypt(const unsigned char *in, unsigned char *out, @ void asm_AES_encrypt(const unsigned char *in, unsigned char *out,
@ const AES_KEY *key) { @ const AES_KEY *key) {
.global asm_AES_encrypt .globl asm_AES_encrypt
.hidden asm_AES_encrypt .hidden asm_AES_encrypt
.type asm_AES_encrypt,%function .type asm_AES_encrypt,%function
.align 5 .align 5
asm_AES_encrypt: asm_AES_encrypt:
#if __ARM_ARCH__<7 #if __ARM_ARCH__<7
...@@ -168,10 +168,14 @@ asm_AES_encrypt: ...@@ -168,10 +168,14 @@ asm_AES_encrypt:
#else #else
adr r3,asm_AES_encrypt adr r3,asm_AES_encrypt
#endif #endif
stmdb sp!,{r1,r4-r12,lr} stmdb sp!,{r1,r4-r12,lr}
#ifdef __APPLE__
adr r10,AES_Te
#else
sub r10,r3,#asm_AES_encrypt-AES_Te @ Te
#endif
mov r12,r0 @ inp mov r12,r0 @ inp
mov r11,r2 mov r11,r2
sub r10,r3,#asm_AES_encrypt-AES_Te @ Te
#if __ARM_ARCH__<7 #if __ARM_ARCH__<7
ldrb r0,[r12,#3] @ load input data in endian-neutral ldrb r0,[r12,#3] @ load input data in endian-neutral
ldrb r4,[r12,#2] @ manner... ldrb r4,[r12,#2] @ manner...
...@@ -258,20 +262,20 @@ asm_AES_encrypt: ...@@ -258,20 +262,20 @@ asm_AES_encrypt:
strb r3,[r12,#15] strb r3,[r12,#15]
#endif #endif
#if __ARM_ARCH__>=5 #if __ARM_ARCH__>=5
ldmia sp!,{r4-r12,pc} ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
#else #else
ldmia sp!,{r4-r12,lr} ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
tst lr,#1 tst lr,#1
moveq pc,lr @ be binary compatible with V4, yet moveq pc,lr @ be binary compatible with V4, yet
.word 0xe12fff1e @ interoperable with Thumb ISA:-) .word 0xe12fff1e @ interoperable with Thumb ISA:-)
#endif #endif
.size asm_AES_encrypt,.-asm_AES_encrypt .size asm_AES_encrypt,.-asm_AES_encrypt
.type _armv4_AES_encrypt,%function .type _armv4_AES_encrypt,%function
.align 2 .align 2
_armv4_AES_encrypt: _armv4_AES_encrypt:
str lr,[sp,#-4]! @ push lr str lr,[sp,#-4]! @ push lr
ldmia r11!,{r4-r7} ldmia r11!,{r4,r5,r6,r7}
eor r0,r0,r4 eor r0,r0,r4
ldr r12,[r11,#240-16] ldr r12,[r11,#240-16]
eor r1,r1,r5 eor r1,r1,r5
...@@ -404,9 +408,9 @@ _armv4_AES_encrypt: ...@@ -404,9 +408,9 @@ _armv4_AES_encrypt:
ldr pc,[sp],#4 @ pop and return ldr pc,[sp],#4 @ pop and return
.size _armv4_AES_encrypt,.-_armv4_AES_encrypt .size _armv4_AES_encrypt,.-_armv4_AES_encrypt
.global asm_AES_set_encrypt_key .globl asm_AES_set_encrypt_key
.hidden asm_AES_set_encrypt_key .hidden asm_AES_set_encrypt_key
.type asm_AES_set_encrypt_key,%function .type asm_AES_set_encrypt_key,%function
.align 5 .align 5
asm_AES_set_encrypt_key: asm_AES_set_encrypt_key:
_armv4_AES_set_encrypt_key: _armv4_AES_set_encrypt_key:
...@@ -439,13 +443,17 @@ _armv4_AES_set_encrypt_key: ...@@ -439,13 +443,17 @@ _armv4_AES_set_encrypt_key:
movne r0,#-1 movne r0,#-1
bne .Labrt bne .Labrt
.Lok: stmdb sp!,{r4-r12,lr} .Lok: stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
sub r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4
mov r12,r0 @ inp mov r12,r0 @ inp
mov lr,r1 @ bits mov lr,r1 @ bits
mov r11,r2 @ key mov r11,r2 @ key
#ifdef __APPLE__
adr r10,AES_Te+1024 @ Te4
#else
sub r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4
#endif
#if __ARM_ARCH__<7 #if __ARM_ARCH__<7
ldrb r0,[r12,#3] @ load input data in endian-neutral ldrb r0,[r12,#3] @ load input data in endian-neutral
ldrb r4,[r12,#2] @ manner... ldrb r4,[r12,#2] @ manner...
...@@ -696,20 +704,20 @@ _armv4_AES_set_encrypt_key: ...@@ -696,20 +704,20 @@ _armv4_AES_set_encrypt_key:
.align 2 .align 2
.Ldone: mov r0,#0 .Ldone: mov r0,#0
ldmia sp!,{r4-r12,lr} ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
.Labrt: .Labrt:
#if defined(__thumb2__) && __ARM_ARCH__>=7 #if __ARM_ARCH__>=5
.short 0x4770 @ .word 0xe12fff1e in Thumb2 encoding bx lr @ .word 0xe12fff1e
#else #else
tst lr,#1 tst lr,#1
moveq pc,lr @ be binary compatible with V4, yet moveq pc,lr @ be binary compatible with V4, yet
.word 0xe12fff1e @ interoperable with Thumb ISA:-) .word 0xe12fff1e @ interoperable with Thumb ISA:-)
#endif #endif
.size asm_AES_set_encrypt_key,.-asm_AES_set_encrypt_key .size asm_AES_set_encrypt_key,.-asm_AES_set_encrypt_key
.global asm_AES_set_decrypt_key .globl asm_AES_set_decrypt_key
.hidden asm_AES_set_decrypt_key .hidden asm_AES_set_decrypt_key
.type asm_AES_set_decrypt_key,%function .type asm_AES_set_decrypt_key,%function
.align 5 .align 5
asm_AES_set_decrypt_key: asm_AES_set_decrypt_key:
str lr,[sp,#-4]! @ push lr str lr,[sp,#-4]! @ push lr
...@@ -724,13 +732,13 @@ asm_AES_set_decrypt_key: ...@@ -724,13 +732,13 @@ asm_AES_set_decrypt_key:
.size asm_AES_set_decrypt_key,.-asm_AES_set_decrypt_key .size asm_AES_set_decrypt_key,.-asm_AES_set_decrypt_key
@ void AES_set_enc2dec_key(const AES_KEY *inp,AES_KEY *out) @ void AES_set_enc2dec_key(const AES_KEY *inp,AES_KEY *out)
.global AES_set_enc2dec_key .globl AES_set_enc2dec_key
.hidden AES_set_enc2dec_key .hidden AES_set_enc2dec_key
.type AES_set_enc2dec_key,%function .type AES_set_enc2dec_key,%function
.align 5 .align 5
AES_set_enc2dec_key: AES_set_enc2dec_key:
_armv4_AES_set_enc2dec_key: _armv4_AES_set_enc2dec_key:
stmdb sp!,{r4-r12,lr} stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
ldr r12,[r0,#240] ldr r12,[r0,#240]
mov r7,r0 @ input mov r7,r0 @ input
...@@ -812,12 +820,12 @@ _armv4_AES_set_enc2dec_key: ...@@ -812,12 +820,12 @@ _armv4_AES_set_enc2dec_key:
mov r0,#0 mov r0,#0
#if __ARM_ARCH__>=5 #if __ARM_ARCH__>=5
ldmia sp!,{r4-r12,pc} ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
#else #else
ldmia sp!,{r4-r12,lr} ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
tst lr,#1 tst lr,#1
moveq pc,lr @ be binary compatible with V4, yet moveq pc,lr @ be binary compatible with V4, yet
.word 0xe12fff1e @ interoperable with Thumb ISA:-) .word 0xe12fff1e @ interoperable with Thumb ISA:-)
#endif #endif
.size AES_set_enc2dec_key,.-AES_set_enc2dec_key .size AES_set_enc2dec_key,.-AES_set_enc2dec_key
...@@ -925,9 +933,9 @@ AES_Td: ...@@ -925,9 +933,9 @@ AES_Td:
@ void asm_AES_decrypt(const unsigned char *in, unsigned char *out, @ void asm_AES_decrypt(const unsigned char *in, unsigned char *out,
@ const AES_KEY *key) { @ const AES_KEY *key) {
.global asm_AES_decrypt .globl asm_AES_decrypt
.hidden asm_AES_decrypt .hidden asm_AES_decrypt
.type asm_AES_decrypt,%function .type asm_AES_decrypt,%function
.align 5 .align 5
asm_AES_decrypt: asm_AES_decrypt:
#if __ARM_ARCH__<7 #if __ARM_ARCH__<7
...@@ -935,10 +943,14 @@ asm_AES_decrypt: ...@@ -935,10 +943,14 @@ asm_AES_decrypt:
#else #else
adr r3,asm_AES_decrypt adr r3,asm_AES_decrypt
#endif #endif
stmdb sp!,{r1,r4-r12,lr} stmdb sp!,{r1,r4-r12,lr}
#ifdef __APPLE__
adr r10,AES_Td
#else
sub r10,r3,#asm_AES_decrypt-AES_Td @ Td
#endif
mov r12,r0 @ inp mov r12,r0 @ inp
mov r11,r2 mov r11,r2
sub r10,r3,#asm_AES_decrypt-AES_Td @ Td
#if __ARM_ARCH__<7 #if __ARM_ARCH__<7
ldrb r0,[r12,#3] @ load input data in endian-neutral ldrb r0,[r12,#3] @ load input data in endian-neutral
ldrb r4,[r12,#2] @ manner... ldrb r4,[r12,#2] @ manner...
...@@ -1025,20 +1037,20 @@ asm_AES_decrypt: ...@@ -1025,20 +1037,20 @@ asm_AES_decrypt:
strb r3,[r12,#15] strb r3,[r12,#15]
#endif #endif
#if __ARM_ARCH__>=5 #if __ARM_ARCH__>=5
ldmia sp!,{r4-r12,pc} ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
#else #else
ldmia sp!,{r4-r12,lr} ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
tst lr,#1 tst lr,#1
moveq pc,lr @ be binary compatible with V4, yet moveq pc,lr @ be binary compatible with V4, yet
.word 0xe12fff1e @ interoperable with Thumb ISA:-) .word 0xe12fff1e @ interoperable with Thumb ISA:-)
#endif #endif
.size asm_AES_decrypt,.-asm_AES_decrypt .size asm_AES_decrypt,.-asm_AES_decrypt
.type _armv4_AES_decrypt,%function .type _armv4_AES_decrypt,%function
.align 2 .align 2
_armv4_AES_decrypt: _armv4_AES_decrypt:
str lr,[sp,#-4]! @ push lr str lr,[sp,#-4]! @ push lr
ldmia r11!,{r4-r7} ldmia r11!,{r4,r5,r6,r7}
eor r0,r0,r4 eor r0,r0,r4
ldr r12,[r11,#240-16] ldr r12,[r11,#240-16]
eor r1,r1,r5 eor r1,r1,r5
...@@ -1179,7 +1191,8 @@ _armv4_AES_decrypt: ...@@ -1179,7 +1191,8 @@ _armv4_AES_decrypt:
sub r10,r10,#1024 sub r10,r10,#1024
ldr pc,[sp],#4 @ pop and return ldr pc,[sp],#4 @ pop and return
.size _armv4_AES_decrypt,.-_armv4_AES_decrypt .size _armv4_AES_decrypt,.-_armv4_AES_decrypt
.asciz "AES for ARMv4, CRYPTOGAMS by <appro@openssl.org>" .byte 65,69,83,32,102,111,114,32,65,82,77,118,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 2
.align 2 .align 2
#endif #endif
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment