mirror of
https://github.com/nodejs/node.git
synced 2025-05-18 07:36:51 +00:00
deps: downgrade openssl to v1.0.0f
Several people have reported issues with IIS and Resin servers (or maybe SSL terminators sitting in front of those servers) that are fixed by downgrading OpenSSL. The AESNI performance improvements were nice but stability is more important. Downgrade OpenSSL from 1.0.1e to 1.0.0f. Fixes #5360 (and others).
This commit is contained in:
parent
626d7abdb4
commit
4fdb8acdae
96
deps/openssl/README.chromium
vendored
Normal file
96
deps/openssl/README.chromium
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
Name: openssl
|
||||
URL: http://openssl.org/source/
|
||||
Version: 1.0.0f
|
||||
License: BSDish
|
||||
License File: openssl/LICENSE
|
||||
|
||||
Description:
|
||||
This is OpenSSL, the standard SSL/TLS library, which is used only in Android.
|
||||
|
||||
It's an unmodified, upstream source except for the patches listed below.
|
||||
|
||||
|
||||
********************************************************************************
|
||||
The following patches are taken from Android Open Source Project.
|
||||
|
||||
|
||||
progs.patch:
|
||||
|
||||
Fixup sources under the apps/ directory that are not built under the android environment.
|
||||
|
||||
|
||||
small_records.patch:
|
||||
|
||||
Reduce OpenSSL memory consumption.
|
||||
SSL records may be as large as 16K, but are typically < 2K. In
|
||||
addition, a historic bug in Windows allowed records to be as large
|
||||
32K. OpenSSL statically allocates read and write buffers (34K and
|
||||
18K respectively) used for processing records.
|
||||
With this patch, OpenSSL statically allocates 4K + 4K buffers, with
|
||||
the option of dynamically growing buffers to 34K + 4K, which is a
|
||||
saving of 44K per connection for the typical case.
|
||||
|
||||
|
||||
handshake_cutthrough.patch
|
||||
|
||||
Enables SSL3+ clients to send application data immediately following the
|
||||
Finished message even when negotiating full-handshakes. With this patch,
|
||||
clients can negotiate SSL connections in 1-RTT even when performing
|
||||
full-handshakes.
|
||||
|
||||
|
||||
jsse.patch
|
||||
|
||||
Support for JSSE implementation based on OpenSSL.
|
||||
|
||||
|
||||
npn.patch
|
||||
|
||||
Transport Layer Security (TLS) Next Protocol Negotiation Extension
|
||||
|
||||
|
||||
sha1_armv4_large.patch
|
||||
|
||||
This patch eliminates memory stores to addresses below SP.
|
||||
|
||||
|
||||
openssl_no_dtls1.patch
|
||||
|
||||
Add missing #ifndef OPENSSL_NO_DTLS1
|
||||
|
||||
|
||||
********************************************************************************
|
||||
The following patches are needed to compile this openssl on Chromium and pass
|
||||
the related net unit tests.
|
||||
|
||||
|
||||
empty_OPENSSL_cpuid_setup.patch
|
||||
|
||||
Use a empty implementation for function OPENSSL_cpuid_setup to resolve link
|
||||
error. We should figure out how to geenrate platform specific implementation
|
||||
of OPENSSL_cpuid_setup by leveraging crypto/*cpuid.pl.
|
||||
|
||||
|
||||
x509_hash_name_algorithm_change.patch
|
||||
|
||||
There are many symbolic links under /etc/ssl/certs created by using hash of
|
||||
the pem certificates in order for OpenSSL to find those certificate.
|
||||
Openssl has a tool to help you create hash symbolic links. (See tools/c_rehash)
|
||||
However the new openssl changed the hash algorithm, Unless you compile/install
|
||||
the latest openssl library and re-create all related symbolic links, the new
|
||||
openssl can not find some certificates because the links of those certificates
|
||||
were created by using old hash algorithm, which causes some tests failed.
|
||||
This patch gives a way to find a certificate according to its hash by using both
|
||||
new algorithm and old algorithm.
|
||||
crbug.com/111045 is used to track this issue.
|
||||
|
||||
|
||||
tls_exporter.patch
|
||||
|
||||
Keying Material Exporters for Transport Layer Security (RFC 5705).
|
||||
|
||||
|
||||
Android platform support
|
||||
|
||||
Copy config/android/openssl/opensslconf.h from Android's
|
||||
external/openssl/include/openssl/opensslconf.h
|
30
deps/openssl/asm/Makefile
vendored
30
deps/openssl/asm/Makefile
vendored
@ -3,7 +3,6 @@ PERL += -I../openssl/crypto/perlasm -I../openssl/crypto/bn/asm
|
||||
|
||||
OUTPUTS = \
|
||||
x86-elf-gas/aes/aes-586.s \
|
||||
x86-elf-gas/aes/aesni-x86.s \
|
||||
x86-elf-gas/bf/bf-686.s \
|
||||
x86-elf-gas/bn/x86-mont.s \
|
||||
x86-elf-gas/bn/x86.s \
|
||||
@ -21,20 +20,15 @@ OUTPUTS = \
|
||||
x86-elf-gas/whrlpool/wp-mmx.s \
|
||||
x86-elf-gas/x86cpuid.s \
|
||||
x64-elf-gas/aes/aes-x86_64.s \
|
||||
x64-elf-gas/aes/aesni-x86_64.s \
|
||||
x64-elf-gas/aes/aesni-sha1-x86_64.s \
|
||||
x64-elf-gas/bn/modexp512-x86_64.s \
|
||||
x64-elf-gas/bn/x86_64-mont.s \
|
||||
x64-elf-gas/camellia/cmll-x86_64.s \
|
||||
x64-elf-gas/md5/md5-x86_64.s \
|
||||
x64-elf-gas/rc4/rc4-x86_64.s \
|
||||
x64-elf-gas/rc4/rc4-md5-x86_64.s \
|
||||
x64-elf-gas/sha/sha1-x86_64.s \
|
||||
x64-elf-gas/sha/sha512-x86_64.s \
|
||||
x64-elf-gas/whrlpool/wp-x86_64.s \
|
||||
x64-elf-gas/x86_64cpuid.s \
|
||||
x86-macosx-gas/aes/aes-586.s \
|
||||
x86-macosx-gas/aes/aesni-x86.s \
|
||||
x86-macosx-gas/bf/bf-686.s \
|
||||
x86-macosx-gas/bn/x86-mont.s \
|
||||
x86-macosx-gas/bn/x86.s \
|
||||
@ -52,20 +46,15 @@ OUTPUTS = \
|
||||
x86-macosx-gas/whrlpool/wp-mmx.s \
|
||||
x86-macosx-gas/x86cpuid.s \
|
||||
x64-macosx-gas/aes/aes-x86_64.s \
|
||||
x64-macosx-gas/aes/aesni-x86_64.s \
|
||||
x64-macosx-gas/aes/aesni-sha1-x86_64.s \
|
||||
x64-macosx-gas/bn/modexp512-x86_64.s \
|
||||
x64-macosx-gas/bn/x86_64-mont.s \
|
||||
x64-macosx-gas/camellia/cmll-x86_64.s \
|
||||
x64-macosx-gas/md5/md5-x86_64.s \
|
||||
x64-macosx-gas/rc4/rc4-x86_64.s \
|
||||
x64-macosx-gas/rc4/rc4-md5-x86_64.s \
|
||||
x64-macosx-gas/sha/sha1-x86_64.s \
|
||||
x64-macosx-gas/sha/sha512-x86_64.s \
|
||||
x64-macosx-gas/whrlpool/wp-x86_64.s \
|
||||
x64-macosx-gas/x86_64cpuid.s \
|
||||
x86-win32-masm/aes/aes-586.asm \
|
||||
x86-win32-masm/aes/aesni-x86.asm \
|
||||
x86-win32-masm/bf/bf-686.asm \
|
||||
x86-win32-masm/bn/x86-mont.asm \
|
||||
x86-win32-masm/bn/x86.asm \
|
||||
@ -83,14 +72,10 @@ OUTPUTS = \
|
||||
x86-win32-masm/whrlpool/wp-mmx.asm \
|
||||
x86-win32-masm/x86cpuid.asm \
|
||||
x64-win32-masm/aes/aes-x86_64.asm \
|
||||
x64-win32-masm/aes/aesni-x86_64.asm \
|
||||
x64-win32-masm/aes/aesni-sha1-x86_64.asm \
|
||||
x64-win32-masm/bn/modexp512-x86_64.asm \
|
||||
x64-win32-masm/bn/x86_64-mont.asm \
|
||||
x64-win32-masm/camellia/cmll-x86_64.asm \
|
||||
x64-win32-masm/md5/md5-x86_64.asm \
|
||||
x64-win32-masm/rc4/rc4-x86_64.asm \
|
||||
x64-win32-masm/rc4/rc4-md5-x86_64.asm \
|
||||
x64-win32-masm/sha/sha1-x86_64.asm \
|
||||
x64-win32-masm/sha/sha512-x86_64.asm \
|
||||
x64-win32-masm/whrlpool/wp-x86_64.asm \
|
||||
@ -118,46 +103,33 @@ clean:
|
||||
find . -iname '*.s' -exec rm "{}" \;
|
||||
|
||||
x64-elf-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl
|
||||
x64-elf-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl
|
||||
x64-elf-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
|
||||
x64-elf-gas/bn/modexp512-x86_64.s: ../openssl/crypto/bn/asm/modexp512-x86_64.pl
|
||||
x64-elf-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl
|
||||
x64-elf-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl
|
||||
x64-elf-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl
|
||||
x64-elf-gas/rc4/rc4-x86_64.s: ../openssl/crypto/rc4/asm/rc4-x86_64.pl
|
||||
x64-elf-gas/rc4/rc4-md5-x86_64.s: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
|
||||
x64-elf-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl
|
||||
x64-elf-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl
|
||||
x64-elf-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
|
||||
x64-elf-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl
|
||||
x64-macosx-gas/aes/aes-x86_64.s: ../openssl/crypto/aes/asm/aes-x86_64.pl
|
||||
x64-macosx-gas/aes/aesni-x86_64.s: ../openssl/crypto/aes/asm/aesni-x86_64.pl
|
||||
x64-macosx-gas/aes/aesni-sha1-x86_64.s: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
|
||||
x64-macosx-gas/bn/modexp512-x86_64.s: ../openssl/crypto/bn/asm/modexp512-x86_64.pl
|
||||
x64-macosx-gas/bn/x86_64-mont.s: ../openssl/crypto/bn/asm/x86_64-mont.pl
|
||||
x64-macosx-gas/camellia/cmll-x86_64.s: ../openssl/crypto/camellia/asm/cmll-x86_64.pl
|
||||
x64-macosx-gas/md5/md5-x86_64.s: ../openssl/crypto/md5/asm/md5-x86_64.pl
|
||||
x64-macosx-gas/rc4/rc4-x86_64.s: ../openssl/crypto/rc4/asm/rc4-x86_64.pl
|
||||
x64-macosx-gas/rc4/rc4-md5-x86_64.s: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
|
||||
x64-macosx-gas/sha/sha1-x86_64.s: ../openssl/crypto/sha/asm/sha1-x86_64.pl
|
||||
x64-macosx-gas/sha/sha512-x86_64.s: ../openssl/crypto/sha/asm/sha512-x86_64.pl
|
||||
x64-macosx-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
|
||||
x64-macosx-gas/x86_64cpuid.s: ../openssl/crypto/x86_64cpuid.pl
|
||||
x64-win32-masm/aes/aes-x86_64.asm: ../openssl/crypto/aes/asm/aes-x86_64.pl
|
||||
x64-win32-masm/aes/aesni-x86_64.asm: ../openssl/crypto/aes/asm/aesni-x86_64.pl
|
||||
x64-win32-masm/aes/aesni-sha1-x86_64.asm: ../openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
|
||||
x64-win32-masm/bn/modexp512-x86_64.asm: ../openssl/crypto/bn/asm/modexp512-x86_64.pl
|
||||
x64-win32-masm/bn/x86_64-mont.asm: ../openssl/crypto/bn/asm/x86_64-mont.pl
|
||||
x64-win32-masm/camellia/cmll-x86_64.asm: ../openssl/crypto/camellia/asm/cmll-x86_64.pl
|
||||
x64-win32-masm/md5/md5-x86_64.asm: ../openssl/crypto/md5/asm/md5-x86_64.pl
|
||||
x64-win32-masm/rc4/rc4-x86_64.asm: ../openssl/crypto/rc4/asm/rc4-x86_64.pl
|
||||
x64-win32-masm/rc4/rc4-md5-x86_64.asm: ../openssl/crypto/rc4/asm/rc4-md5-x86_64.pl
|
||||
x64-win32-masm/sha/sha1-x86_64.asm: ../openssl/crypto/sha/asm/sha1-x86_64.pl
|
||||
x64-win32-masm/sha/sha512-x86_64.asm: ../openssl/crypto/sha/asm/sha512-x86_64.pl
|
||||
x64-win32-masm/whrlpool/wp-x86_64.asm: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
|
||||
x64-win32-masm/x86_64cpuid.asm: ../openssl/crypto/x86_64cpuid.pl
|
||||
x86-elf-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl
|
||||
x86-elf-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl
|
||||
x86-elf-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl
|
||||
x86-elf-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl
|
||||
x86-elf-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl
|
||||
@ -175,7 +147,6 @@ x86-elf-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl
|
||||
x86-elf-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl
|
||||
x86-elf-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl
|
||||
x86-macosx-gas/aes/aes-586.s: ../openssl/crypto/aes/asm/aes-586.pl
|
||||
x86-macosx-gas/aes/aesni-x86.s: ../openssl/crypto/aes/asm/aesni-x86.pl
|
||||
x86-macosx-gas/bf/bf-686.s: ../openssl/crypto/bf/asm/bf-686.pl
|
||||
x86-macosx-gas/bn/x86-mont.s: ../openssl/crypto/bn/asm/x86-mont.pl
|
||||
x86-macosx-gas/bn/x86.s: ../openssl/crypto/bn/asm/x86.pl
|
||||
@ -193,7 +164,6 @@ x86-macosx-gas/sha/sha512-586.s: ../openssl/crypto/sha/asm/sha512-586.pl
|
||||
x86-macosx-gas/whrlpool/wp-mmx.s: ../openssl/crypto/whrlpool/asm/wp-mmx.pl
|
||||
x86-macosx-gas/x86cpuid.s: ../openssl/crypto/x86cpuid.pl
|
||||
x86-win32-masm/aes/aes-586.asm: ../openssl/crypto/aes/asm/aes-586.pl
|
||||
x86-win32-masm/aes/aesni-x86.asm: ../openssl/crypto/aes/asm/aesni-x86.pl
|
||||
x86-win32-masm/bf/bf-686.asm: ../openssl/crypto/bf/asm/bf-686.pl
|
||||
x86-win32-masm/bn/x86.asm: ../openssl/crypto/bn/asm/x86.pl
|
||||
x86-win32-masm/bn/x86-mont.asm: ../openssl/crypto/bn/asm/x86-mont.pl
|
||||
|
25
deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s
vendored
25
deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s
vendored
@ -333,9 +333,6 @@ _x86_64_AES_encrypt_compact:
|
||||
.globl AES_encrypt
|
||||
.type AES_encrypt,@function
|
||||
.align 16
|
||||
.globl asm_AES_encrypt
|
||||
.hidden asm_AES_encrypt
|
||||
asm_AES_encrypt:
|
||||
AES_encrypt:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
@ -783,9 +780,6 @@ _x86_64_AES_decrypt_compact:
|
||||
.globl AES_decrypt
|
||||
.type AES_decrypt,@function
|
||||
.align 16
|
||||
.globl asm_AES_decrypt
|
||||
.hidden asm_AES_decrypt
|
||||
asm_AES_decrypt:
|
||||
AES_decrypt:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
@ -849,10 +843,10 @@ AES_decrypt:
|
||||
.Ldec_epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
.size AES_decrypt,.-AES_decrypt
|
||||
.globl private_AES_set_encrypt_key
|
||||
.type private_AES_set_encrypt_key,@function
|
||||
.globl AES_set_encrypt_key
|
||||
.type AES_set_encrypt_key,@function
|
||||
.align 16
|
||||
private_AES_set_encrypt_key:
|
||||
AES_set_encrypt_key:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
pushq %r12
|
||||
@ -873,7 +867,7 @@ private_AES_set_encrypt_key:
|
||||
addq $56,%rsp
|
||||
.Lenc_key_epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key
|
||||
.size AES_set_encrypt_key,.-AES_set_encrypt_key
|
||||
|
||||
.type _x86_64_AES_set_encrypt_key,@function
|
||||
.align 16
|
||||
@ -1115,10 +1109,10 @@ _x86_64_AES_set_encrypt_key:
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
|
||||
.globl private_AES_set_decrypt_key
|
||||
.type private_AES_set_decrypt_key,@function
|
||||
.globl AES_set_decrypt_key
|
||||
.type AES_set_decrypt_key,@function
|
||||
.align 16
|
||||
private_AES_set_decrypt_key:
|
||||
AES_set_decrypt_key:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
pushq %r12
|
||||
@ -1301,14 +1295,11 @@ private_AES_set_decrypt_key:
|
||||
addq $56,%rsp
|
||||
.Ldec_key_epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key
|
||||
.size AES_set_decrypt_key,.-AES_set_decrypt_key
|
||||
.globl AES_cbc_encrypt
|
||||
.type AES_cbc_encrypt,@function
|
||||
.align 16
|
||||
|
||||
.globl asm_AES_cbc_encrypt
|
||||
.hidden asm_AES_cbc_encrypt
|
||||
asm_AES_cbc_encrypt:
|
||||
AES_cbc_encrypt:
|
||||
cmpq $0,%rdx
|
||||
je .Lcbc_epilogue
|
||||
|
1327
deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s
vendored
1327
deps/openssl/asm/x64-elf-gas/bn/x86_64-mont.s
vendored
File diff suppressed because it is too large
Load Diff
728
deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s
vendored
728
deps/openssl/asm/x64-elf-gas/rc4/rc4-x86_64.s
vendored
@ -1,7 +1,6 @@
|
||||
.text
|
||||
|
||||
|
||||
|
||||
.globl RC4
|
||||
.type RC4,@function
|
||||
.align 16
|
||||
@ -13,511 +12,316 @@ RC4: orq %rsi,%rsi
|
||||
pushq %r12
|
||||
pushq %r13
|
||||
.Lprologue:
|
||||
movq %rsi,%r11
|
||||
movq %rdx,%r12
|
||||
movq %rcx,%r13
|
||||
xorq %r10,%r10
|
||||
xorq %rcx,%rcx
|
||||
|
||||
leaq 8(%rdi),%rdi
|
||||
movb -8(%rdi),%r10b
|
||||
movb -4(%rdi),%cl
|
||||
addq $8,%rdi
|
||||
movl -8(%rdi),%r8d
|
||||
movl -4(%rdi),%r12d
|
||||
cmpl $-1,256(%rdi)
|
||||
je .LRC4_CHAR
|
||||
movl OPENSSL_ia32cap_P(%rip),%r8d
|
||||
xorq %rbx,%rbx
|
||||
incb %r10b
|
||||
subq %r10,%rbx
|
||||
subq %r12,%r13
|
||||
movl (%rdi,%r10,4),%eax
|
||||
testq $-16,%r11
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
testq $-8,%rsi
|
||||
jz .Lloop1
|
||||
btl $30,%r8d
|
||||
jc .Lintel
|
||||
andq $7,%rbx
|
||||
leaq 1(%r10),%rsi
|
||||
jz .Loop8
|
||||
subq %rbx,%r11
|
||||
.Loop8_warmup:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl %edx,(%rdi,%r10,4)
|
||||
addb %dl,%al
|
||||
jmp .Lloop8
|
||||
.align 16
|
||||
.Lloop8:
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%rax,4),%edx
|
||||
movl (%rdi,%r10,4),%eax
|
||||
xorb (%r12),%dl
|
||||
movb %dl,(%r13,%r12,1)
|
||||
leaq 1(%r12),%r12
|
||||
decq %rbx
|
||||
jnz .Loop8_warmup
|
||||
|
||||
leaq 1(%r10),%rsi
|
||||
jmp .Loop8
|
||||
.align 16
|
||||
.Loop8:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 0(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,0(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl 4(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,4(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 8(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,8(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl 12(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,12(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 16(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,16(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl 20(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,20(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 24(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,24(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb $8,%sil
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl -4(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,28(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb $8,%r10b
|
||||
rorq $8,%r8
|
||||
subq $8,%r11
|
||||
|
||||
xorq (%r12),%r8
|
||||
movq %r8,(%r13,%r12,1)
|
||||
leaq 8(%r12),%r12
|
||||
|
||||
testq $-8,%r11
|
||||
jnz .Loop8
|
||||
cmpq $0,%r11
|
||||
jne .Lloop1
|
||||
jmp .Lexit
|
||||
|
||||
.align 16
|
||||
.Lintel:
|
||||
testq $-32,%r11
|
||||
jz .Lloop1
|
||||
andq $15,%rbx
|
||||
jz .Loop16_is_hot
|
||||
subq %rbx,%r11
|
||||
.Loop16_warmup:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl %edx,(%rdi,%r10,4)
|
||||
addb %dl,%al
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%rax,4),%edx
|
||||
movl (%rdi,%r10,4),%eax
|
||||
xorb (%r12),%dl
|
||||
movb %dl,(%r13,%r12,1)
|
||||
leaq 1(%r12),%r12
|
||||
decq %rbx
|
||||
jnz .Loop16_warmup
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
rorq $8,%rax
|
||||
subq $8,%rsi
|
||||
|
||||
movq %rcx,%rbx
|
||||
xorq %rcx,%rcx
|
||||
movb %bl,%cl
|
||||
xorq (%rdx),%rax
|
||||
addq $8,%rdx
|
||||
movq %rax,(%rcx)
|
||||
addq $8,%rcx
|
||||
|
||||
.Loop16_is_hot:
|
||||
leaq (%rdi,%r10,4),%rsi
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
pxor %xmm0,%xmm0
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 4(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,0(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $0,(%rdi,%rax,4),%xmm0
|
||||
jmp .Loop16_enter
|
||||
.align 16
|
||||
.Loop16:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
pxor %xmm0,%xmm2
|
||||
psllq $8,%xmm1
|
||||
pxor %xmm0,%xmm0
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 4(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,0(%rsi)
|
||||
pxor %xmm1,%xmm2
|
||||
addb %bl,%cl
|
||||
pinsrw $0,(%rdi,%rax,4),%xmm0
|
||||
movdqu %xmm2,(%r13,%r12,1)
|
||||
leaq 16(%r12),%r12
|
||||
.Loop16_enter:
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
pxor %xmm1,%xmm1
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 8(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,4(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $0,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 12(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,8(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $1,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 16(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,12(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $1,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 20(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,16(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $2,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 24(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,20(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $2,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 28(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,24(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $3,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 32(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,28(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $3,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 36(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,32(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $4,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 40(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,36(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $4,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 44(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,40(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $5,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 48(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,44(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $5,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 52(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,48(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $6,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 56(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,52(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $6,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 60(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,56(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $7,(%rdi,%rax,4),%xmm0
|
||||
addb $16,%r10b
|
||||
movdqu (%r12),%xmm2
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,60(%rsi)
|
||||
leaq (%rdi,%r10,4),%rsi
|
||||
pinsrw $7,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rsi),%eax
|
||||
movq %rcx,%rbx
|
||||
xorq %rcx,%rcx
|
||||
subq $16,%r11
|
||||
movb %bl,%cl
|
||||
testq $-16,%r11
|
||||
jnz .Loop16
|
||||
|
||||
psllq $8,%xmm1
|
||||
pxor %xmm0,%xmm2
|
||||
pxor %xmm1,%xmm2
|
||||
movdqu %xmm2,(%r13,%r12,1)
|
||||
leaq 16(%r12),%r12
|
||||
|
||||
cmpq $0,%r11
|
||||
testq $-8,%rsi
|
||||
jnz .Lloop8
|
||||
cmpq $0,%rsi
|
||||
jne .Lloop1
|
||||
jmp .Lexit
|
||||
|
||||
.align 16
|
||||
.Lloop1:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl %edx,(%rdi,%r10,4)
|
||||
addb %dl,%al
|
||||
incb %r10b
|
||||
movl (%rdi,%rax,4),%edx
|
||||
movl (%rdi,%r10,4),%eax
|
||||
xorb (%r12),%dl
|
||||
movb %dl,(%r13,%r12,1)
|
||||
leaq 1(%r12),%r12
|
||||
decq %r11
|
||||
addb %r9b,%r12b
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r13b,%r9b
|
||||
incb %r8b
|
||||
movl (%rdi,%r9,4),%r13d
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
xorb (%rdx),%r13b
|
||||
incq %rdx
|
||||
movb %r13b,(%rcx)
|
||||
incq %rcx
|
||||
decq %rsi
|
||||
jnz .Lloop1
|
||||
jmp .Lexit
|
||||
|
||||
.align 16
|
||||
.LRC4_CHAR:
|
||||
addb $1,%r10b
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
testq $-8,%r11
|
||||
addb $1,%r8b
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
testq $-8,%rsi
|
||||
jz .Lcloop1
|
||||
cmpl $0,260(%rdi)
|
||||
jnz .Lcloop1
|
||||
jmp .Lcloop8
|
||||
.align 16
|
||||
.Lcloop8:
|
||||
movl (%r12),%r8d
|
||||
movl 4(%r12),%r9d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
movl (%rdx),%eax
|
||||
movl 4(%rdx),%ebx
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne .Lcmov0
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
.Lcmov0:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne .Lcmov1
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
.Lcmov1:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne .Lcmov2
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
.Lcmov2:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne .Lcmov3
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
.Lcmov3:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne .Lcmov4
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
.Lcmov4:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne .Lcmov5
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
.Lcmov5:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne .Lcmov6
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
.Lcmov6:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne .Lcmov7
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
.Lcmov7:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
leaq -8(%r11),%r11
|
||||
movl %r8d,(%r13)
|
||||
leaq 8(%r12),%r12
|
||||
movl %r9d,4(%r13)
|
||||
leaq 8(%r13),%r13
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
leaq -8(%rsi),%rsi
|
||||
movl %eax,(%rcx)
|
||||
leaq 8(%rdx),%rdx
|
||||
movl %ebx,4(%rcx)
|
||||
leaq 8(%rcx),%rcx
|
||||
|
||||
testq $-8,%r11
|
||||
testq $-8,%rsi
|
||||
jnz .Lcloop8
|
||||
cmpq $0,%r11
|
||||
cmpq $0,%rsi
|
||||
jne .Lcloop1
|
||||
jmp .Lexit
|
||||
.align 16
|
||||
.Lcloop1:
|
||||
addb %al,%cl
|
||||
movzbl %cl,%ecx
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %al,%dl
|
||||
addb $1,%r10b
|
||||
movzbl %dl,%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%rdx,1),%edx
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
xorb (%r12),%dl
|
||||
leaq 1(%r12),%r12
|
||||
movb %dl,(%r13)
|
||||
leaq 1(%r13),%r13
|
||||
subq $1,%r11
|
||||
addb %r9b,%r12b
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
addb %r9b,%r13b
|
||||
addb $1,%r8b
|
||||
movzbl %r13b,%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r13,1),%r13d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
xorb (%rdx),%r13b
|
||||
leaq 1(%rdx),%rdx
|
||||
movb %r13b,(%rcx)
|
||||
leaq 1(%rcx),%rcx
|
||||
subq $1,%rsi
|
||||
jnz .Lcloop1
|
||||
jmp .Lexit
|
||||
|
||||
.align 16
|
||||
.Lexit:
|
||||
subb $1,%r10b
|
||||
movl %r10d,-8(%rdi)
|
||||
movl %ecx,-4(%rdi)
|
||||
subb $1,%r8b
|
||||
movl %r8d,-8(%rdi)
|
||||
movl %r12d,-4(%rdi)
|
||||
|
||||
movq (%rsp),%r13
|
||||
movq 8(%rsp),%r12
|
||||
@ -526,10 +330,11 @@ RC4: orq %rsi,%rsi
|
||||
.Lepilogue:
|
||||
.byte 0xf3,0xc3
|
||||
.size RC4,.-RC4
|
||||
.globl private_RC4_set_key
|
||||
.type private_RC4_set_key,@function
|
||||
|
||||
.globl RC4_set_key
|
||||
.type RC4_set_key,@function
|
||||
.align 16
|
||||
private_RC4_set_key:
|
||||
RC4_set_key:
|
||||
leaq 8(%rdi),%rdi
|
||||
leaq (%rdx,%rsi,1),%rdx
|
||||
negq %rsi
|
||||
@ -541,8 +346,11 @@ private_RC4_set_key:
|
||||
|
||||
movl OPENSSL_ia32cap_P(%rip),%r8d
|
||||
btl $20,%r8d
|
||||
jc .Lc1stloop
|
||||
jmp .Lw1stloop
|
||||
jnc .Lw1stloop
|
||||
btl $30,%r8d
|
||||
setc %r9b
|
||||
movl %r9d,260(%rdi)
|
||||
jmp .Lc1stloop
|
||||
|
||||
.align 16
|
||||
.Lw1stloop:
|
||||
@ -596,7 +404,7 @@ private_RC4_set_key:
|
||||
movl %eax,-8(%rdi)
|
||||
movl %eax,-4(%rdi)
|
||||
.byte 0xf3,0xc3
|
||||
.size private_RC4_set_key,.-private_RC4_set_key
|
||||
.size RC4_set_key,.-RC4_set_key
|
||||
|
||||
.globl RC4_options
|
||||
.type RC4_options,@function
|
||||
@ -605,20 +413,18 @@ RC4_options:
|
||||
leaq .Lopts(%rip),%rax
|
||||
movl OPENSSL_ia32cap_P(%rip),%edx
|
||||
btl $20,%edx
|
||||
jc .L8xchar
|
||||
jnc .Ldone
|
||||
addq $12,%rax
|
||||
btl $30,%edx
|
||||
jnc .Ldone
|
||||
addq $25,%rax
|
||||
.byte 0xf3,0xc3
|
||||
.L8xchar:
|
||||
addq $12,%rax
|
||||
addq $13,%rax
|
||||
.Ldone:
|
||||
.byte 0xf3,0xc3
|
||||
.align 64
|
||||
.Lopts:
|
||||
.byte 114,99,52,40,56,120,44,105,110,116,41,0
|
||||
.byte 114,99,52,40,56,120,44,99,104,97,114,41,0
|
||||
.byte 114,99,52,40,49,54,120,44,105,110,116,41,0
|
||||
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
|
||||
.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,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 64
|
||||
.size RC4_options,.-RC4_options
|
||||
|
3641
deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s
vendored
3641
deps/openssl/asm/x64-elf-gas/sha/sha1-x86_64.s
vendored
File diff suppressed because it is too large
Load Diff
2652
deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s
vendored
2652
deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s
vendored
File diff suppressed because it is too large
Load Diff
70
deps/openssl/asm/x64-elf-gas/x86_64cpuid.s
vendored
70
deps/openssl/asm/x64-elf-gas/x86_64cpuid.s
vendored
@ -1,11 +1,7 @@
|
||||
|
||||
.hidden OPENSSL_cpuid_setup
|
||||
.section .init
|
||||
call OPENSSL_cpuid_setup
|
||||
|
||||
.hidden OPENSSL_ia32cap_P
|
||||
.comm OPENSSL_ia32cap_P,8,4
|
||||
|
||||
.text
|
||||
|
||||
|
||||
@ -71,15 +67,7 @@ OPENSSL_ia32_cpuid:
|
||||
|
||||
movl $2147483648,%eax
|
||||
cpuid
|
||||
cmpl $2147483649,%eax
|
||||
jb .Lintel
|
||||
movl %eax,%r10d
|
||||
movl $2147483649,%eax
|
||||
cpuid
|
||||
orl %ecx,%r9d
|
||||
andl $2049,%r9d
|
||||
|
||||
cmpl $2147483656,%r10d
|
||||
cmpl $2147483656,%eax
|
||||
jb .Lintel
|
||||
|
||||
movl $2147483656,%eax
|
||||
@ -90,12 +78,12 @@ OPENSSL_ia32_cpuid:
|
||||
movl $1,%eax
|
||||
cpuid
|
||||
btl $28,%edx
|
||||
jnc .Lgeneric
|
||||
jnc .Ldone
|
||||
shrl $16,%ebx
|
||||
cmpb %r10b,%bl
|
||||
ja .Lgeneric
|
||||
ja .Ldone
|
||||
andl $4026531839,%edx
|
||||
jmp .Lgeneric
|
||||
jmp .Ldone
|
||||
|
||||
.Lintel:
|
||||
cmpl $4,%r11d
|
||||
@ -112,48 +100,30 @@ OPENSSL_ia32_cpuid:
|
||||
.Lnocacheinfo:
|
||||
movl $1,%eax
|
||||
cpuid
|
||||
andl $3220176895,%edx
|
||||
cmpl $0,%r9d
|
||||
jne .Lnotintel
|
||||
orl $1073741824,%edx
|
||||
orl $1048576,%edx
|
||||
andb $15,%ah
|
||||
cmpb $15,%ah
|
||||
jne .Lnotintel
|
||||
orl $1048576,%edx
|
||||
je .Lnotintel
|
||||
orl $1073741824,%edx
|
||||
.Lnotintel:
|
||||
btl $28,%edx
|
||||
jnc .Lgeneric
|
||||
jnc .Ldone
|
||||
andl $4026531839,%edx
|
||||
cmpl $0,%r10d
|
||||
je .Lgeneric
|
||||
je .Ldone
|
||||
|
||||
orl $268435456,%edx
|
||||
shrl $16,%ebx
|
||||
cmpb $1,%bl
|
||||
ja .Lgeneric
|
||||
ja .Ldone
|
||||
andl $4026531839,%edx
|
||||
.Lgeneric:
|
||||
andl $2048,%r9d
|
||||
andl $4294965247,%ecx
|
||||
orl %ecx,%r9d
|
||||
|
||||
movl %edx,%r10d
|
||||
btl $27,%r9d
|
||||
jnc .Lclear_avx
|
||||
xorl %ecx,%ecx
|
||||
.byte 0x0f,0x01,0xd0
|
||||
|
||||
andl $6,%eax
|
||||
cmpl $6,%eax
|
||||
je .Ldone
|
||||
.Lclear_avx:
|
||||
movl $4026525695,%eax
|
||||
andl %eax,%r9d
|
||||
.Ldone:
|
||||
shlq $32,%r9
|
||||
movl %r10d,%eax
|
||||
shlq $32,%rcx
|
||||
movl %edx,%eax
|
||||
movq %r8,%rbx
|
||||
orq %r9,%rax
|
||||
orq %rcx,%rax
|
||||
.byte 0xf3,0xc3
|
||||
.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
|
||||
|
||||
@ -222,17 +192,3 @@ OPENSSL_wipe_cpu:
|
||||
leaq 8(%rsp),%rax
|
||||
.byte 0xf3,0xc3
|
||||
.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
|
||||
.globl OPENSSL_ia32_rdrand
|
||||
.type OPENSSL_ia32_rdrand,@function
|
||||
.align 16
|
||||
OPENSSL_ia32_rdrand:
|
||||
movl $8,%ecx
|
||||
.Loop_rdrand:
|
||||
.byte 72,15,199,240
|
||||
jc .Lbreak_rdrand
|
||||
loop .Loop_rdrand
|
||||
.Lbreak_rdrand:
|
||||
cmpq $0,%rax
|
||||
cmoveq %rcx,%rax
|
||||
.byte 0xf3,0xc3
|
||||
.size OPENSSL_ia32_rdrand,.-OPENSSL_ia32_rdrand
|
||||
|
17
deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s
vendored
17
deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s
vendored
@ -333,9 +333,6 @@ L$enc_compact_done:
|
||||
.globl _AES_encrypt
|
||||
|
||||
.p2align 4
|
||||
.globl _asm_AES_encrypt
|
||||
.private_extern _asm_AES_encrypt
|
||||
_asm_AES_encrypt:
|
||||
_AES_encrypt:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
@ -783,9 +780,6 @@ L$dec_compact_done:
|
||||
.globl _AES_decrypt
|
||||
|
||||
.p2align 4
|
||||
.globl _asm_AES_decrypt
|
||||
.private_extern _asm_AES_decrypt
|
||||
_asm_AES_decrypt:
|
||||
_AES_decrypt:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
@ -849,10 +843,10 @@ L$dec_prologue:
|
||||
L$dec_epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.globl _private_AES_set_encrypt_key
|
||||
.globl _AES_set_encrypt_key
|
||||
|
||||
.p2align 4
|
||||
_private_AES_set_encrypt_key:
|
||||
_AES_set_encrypt_key:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
pushq %r12
|
||||
@ -1115,10 +1109,10 @@ L$exit:
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
|
||||
.globl _private_AES_set_decrypt_key
|
||||
.globl _AES_set_decrypt_key
|
||||
|
||||
.p2align 4
|
||||
_private_AES_set_decrypt_key:
|
||||
_AES_set_decrypt_key:
|
||||
pushq %rbx
|
||||
pushq %rbp
|
||||
pushq %r12
|
||||
@ -1306,9 +1300,6 @@ L$dec_key_epilogue:
|
||||
|
||||
.p2align 4
|
||||
|
||||
.globl _asm_AES_cbc_encrypt
|
||||
.private_extern _asm_AES_cbc_encrypt
|
||||
_asm_AES_cbc_encrypt:
|
||||
_AES_cbc_encrypt:
|
||||
cmpq $0,%rdx
|
||||
je L$cbc_epilogue
|
||||
|
1327
deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s
vendored
1327
deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont.s
vendored
File diff suppressed because it is too large
Load Diff
@ -668,3 +668,4 @@ L$end:
|
||||
addq $40,%rsp
|
||||
L$epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
|
725
deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s
vendored
725
deps/openssl/asm/x64-macosx-gas/rc4/rc4-x86_64.s
vendored
@ -1,7 +1,6 @@
|
||||
.text
|
||||
|
||||
|
||||
|
||||
.globl _RC4
|
||||
|
||||
.p2align 4
|
||||
@ -13,511 +12,316 @@ L$entry:
|
||||
pushq %r12
|
||||
pushq %r13
|
||||
L$prologue:
|
||||
movq %rsi,%r11
|
||||
movq %rdx,%r12
|
||||
movq %rcx,%r13
|
||||
xorq %r10,%r10
|
||||
xorq %rcx,%rcx
|
||||
|
||||
leaq 8(%rdi),%rdi
|
||||
movb -8(%rdi),%r10b
|
||||
movb -4(%rdi),%cl
|
||||
addq $8,%rdi
|
||||
movl -8(%rdi),%r8d
|
||||
movl -4(%rdi),%r12d
|
||||
cmpl $-1,256(%rdi)
|
||||
je L$RC4_CHAR
|
||||
movl _OPENSSL_ia32cap_P(%rip),%r8d
|
||||
xorq %rbx,%rbx
|
||||
incb %r10b
|
||||
subq %r10,%rbx
|
||||
subq %r12,%r13
|
||||
movl (%rdi,%r10,4),%eax
|
||||
testq $-16,%r11
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
testq $-8,%rsi
|
||||
jz L$loop1
|
||||
btl $30,%r8d
|
||||
jc L$intel
|
||||
andq $7,%rbx
|
||||
leaq 1(%r10),%rsi
|
||||
jz L$oop8
|
||||
subq %rbx,%r11
|
||||
L$oop8_warmup:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl %edx,(%rdi,%r10,4)
|
||||
addb %dl,%al
|
||||
jmp L$loop8
|
||||
.p2align 4
|
||||
L$loop8:
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%rax,4),%edx
|
||||
movl (%rdi,%r10,4),%eax
|
||||
xorb (%r12),%dl
|
||||
movb %dl,(%r13,%r12,1)
|
||||
leaq 1(%r12),%r12
|
||||
decq %rbx
|
||||
jnz L$oop8_warmup
|
||||
|
||||
leaq 1(%r10),%rsi
|
||||
jmp L$oop8
|
||||
.p2align 4
|
||||
L$oop8:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 0(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,0(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl 4(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,4(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 8(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,8(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl 12(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,12(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 16(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,16(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl 20(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,20(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl 24(%rdi,%rsi,4),%ebx
|
||||
rorq $8,%r8
|
||||
movl %edx,24(%rdi,%r10,4)
|
||||
addb %al,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb $8,%sil
|
||||
addb %bl,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
movl -4(%rdi,%rsi,4),%eax
|
||||
rorq $8,%r8
|
||||
movl %edx,28(%rdi,%r10,4)
|
||||
addb %bl,%dl
|
||||
movb (%rdi,%rdx,4),%r8b
|
||||
addb $8,%r10b
|
||||
rorq $8,%r8
|
||||
subq $8,%r11
|
||||
|
||||
xorq (%r12),%r8
|
||||
movq %r8,(%r13,%r12,1)
|
||||
leaq 8(%r12),%r12
|
||||
|
||||
testq $-8,%r11
|
||||
jnz L$oop8
|
||||
cmpq $0,%r11
|
||||
jne L$loop1
|
||||
jmp L$exit
|
||||
|
||||
.p2align 4
|
||||
L$intel:
|
||||
testq $-32,%r11
|
||||
jz L$loop1
|
||||
andq $15,%rbx
|
||||
jz L$oop16_is_hot
|
||||
subq %rbx,%r11
|
||||
L$oop16_warmup:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl %edx,(%rdi,%r10,4)
|
||||
addb %dl,%al
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%rax,4),%edx
|
||||
movl (%rdi,%r10,4),%eax
|
||||
xorb (%r12),%dl
|
||||
movb %dl,(%r13,%r12,1)
|
||||
leaq 1(%r12),%r12
|
||||
decq %rbx
|
||||
jnz L$oop16_warmup
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r9b,%r12b
|
||||
movq %r8,%r10
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r10b
|
||||
movl (%rdi,%r10,4),%r11d
|
||||
cmpq %r10,%r12
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
cmoveq %r9,%r11
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r9b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
addb %r11b,%r12b
|
||||
movq %r10,%r8
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
rorq $8,%rax
|
||||
incb %r8b
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
cmpq %r8,%r12
|
||||
movl %r11d,(%rdi,%r12,4)
|
||||
cmoveq %r11,%r9
|
||||
movl %r13d,(%rdi,%r10,4)
|
||||
addb %r11b,%r13b
|
||||
movb (%rdi,%r13,4),%al
|
||||
rorq $8,%rax
|
||||
subq $8,%rsi
|
||||
|
||||
movq %rcx,%rbx
|
||||
xorq %rcx,%rcx
|
||||
movb %bl,%cl
|
||||
xorq (%rdx),%rax
|
||||
addq $8,%rdx
|
||||
movq %rax,(%rcx)
|
||||
addq $8,%rcx
|
||||
|
||||
L$oop16_is_hot:
|
||||
leaq (%rdi,%r10,4),%rsi
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
pxor %xmm0,%xmm0
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 4(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,0(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $0,(%rdi,%rax,4),%xmm0
|
||||
jmp L$oop16_enter
|
||||
.p2align 4
|
||||
L$oop16:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
pxor %xmm0,%xmm2
|
||||
psllq $8,%xmm1
|
||||
pxor %xmm0,%xmm0
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 4(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,0(%rsi)
|
||||
pxor %xmm1,%xmm2
|
||||
addb %bl,%cl
|
||||
pinsrw $0,(%rdi,%rax,4),%xmm0
|
||||
movdqu %xmm2,(%r13,%r12,1)
|
||||
leaq 16(%r12),%r12
|
||||
L$oop16_enter:
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
pxor %xmm1,%xmm1
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 8(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,4(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $0,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 12(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,8(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $1,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 16(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,12(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $1,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 20(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,16(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $2,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 24(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,20(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $2,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 28(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,24(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $3,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 32(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,28(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $3,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 36(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,32(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $4,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 40(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,36(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $4,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 44(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,40(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $5,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 48(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,44(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $5,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 52(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,48(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $6,(%rdi,%rax,4),%xmm0
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movl 56(%rsi),%eax
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,52(%rsi)
|
||||
addb %al,%cl
|
||||
pinsrw $6,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
addb %dl,%al
|
||||
movl 60(%rsi),%ebx
|
||||
movzbl %al,%eax
|
||||
movl %edx,56(%rsi)
|
||||
addb %bl,%cl
|
||||
pinsrw $7,(%rdi,%rax,4),%xmm0
|
||||
addb $16,%r10b
|
||||
movdqu (%r12),%xmm2
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %ebx,(%rdi,%rcx,4)
|
||||
addb %dl,%bl
|
||||
movzbl %bl,%ebx
|
||||
movl %edx,60(%rsi)
|
||||
leaq (%rdi,%r10,4),%rsi
|
||||
pinsrw $7,(%rdi,%rbx,4),%xmm1
|
||||
movl (%rsi),%eax
|
||||
movq %rcx,%rbx
|
||||
xorq %rcx,%rcx
|
||||
subq $16,%r11
|
||||
movb %bl,%cl
|
||||
testq $-16,%r11
|
||||
jnz L$oop16
|
||||
|
||||
psllq $8,%xmm1
|
||||
pxor %xmm0,%xmm2
|
||||
pxor %xmm1,%xmm2
|
||||
movdqu %xmm2,(%r13,%r12,1)
|
||||
leaq 16(%r12),%r12
|
||||
|
||||
cmpq $0,%r11
|
||||
testq $-8,%rsi
|
||||
jnz L$loop8
|
||||
cmpq $0,%rsi
|
||||
jne L$loop1
|
||||
jmp L$exit
|
||||
|
||||
.p2align 4
|
||||
L$loop1:
|
||||
addb %al,%cl
|
||||
movl (%rdi,%rcx,4),%edx
|
||||
movl %eax,(%rdi,%rcx,4)
|
||||
movl %edx,(%rdi,%r10,4)
|
||||
addb %dl,%al
|
||||
incb %r10b
|
||||
movl (%rdi,%rax,4),%edx
|
||||
movl (%rdi,%r10,4),%eax
|
||||
xorb (%r12),%dl
|
||||
movb %dl,(%r13,%r12,1)
|
||||
leaq 1(%r12),%r12
|
||||
decq %r11
|
||||
addb %r9b,%r12b
|
||||
movl (%rdi,%r12,4),%r13d
|
||||
movl %r9d,(%rdi,%r12,4)
|
||||
movl %r13d,(%rdi,%r8,4)
|
||||
addb %r13b,%r9b
|
||||
incb %r8b
|
||||
movl (%rdi,%r9,4),%r13d
|
||||
movl (%rdi,%r8,4),%r9d
|
||||
xorb (%rdx),%r13b
|
||||
incq %rdx
|
||||
movb %r13b,(%rcx)
|
||||
incq %rcx
|
||||
decq %rsi
|
||||
jnz L$loop1
|
||||
jmp L$exit
|
||||
|
||||
.p2align 4
|
||||
L$RC4_CHAR:
|
||||
addb $1,%r10b
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
testq $-8,%r11
|
||||
addb $1,%r8b
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
testq $-8,%rsi
|
||||
jz L$cloop1
|
||||
cmpl $0,260(%rdi)
|
||||
jnz L$cloop1
|
||||
jmp L$cloop8
|
||||
.p2align 4
|
||||
L$cloop8:
|
||||
movl (%r12),%r8d
|
||||
movl 4(%r12),%r9d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
movl (%rdx),%eax
|
||||
movl 4(%rdx),%ebx
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne L$cmov0
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
L$cmov0:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne L$cmov1
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
L$cmov1:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne L$cmov2
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
L$cmov2:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne L$cmov3
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
L$cmov3:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r8b
|
||||
rorl $8,%r8d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%al
|
||||
rorl $8,%eax
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne L$cmov4
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
L$cmov4:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne L$cmov5
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
L$cmov5:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
addb %al,%cl
|
||||
leaq 1(%r10),%rsi
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %sil,%esi
|
||||
movzbl (%rdi,%rsi,1),%ebx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
cmpq %rsi,%rcx
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
addb %r9b,%r12b
|
||||
leaq 1(%r8),%r10
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%r11d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
cmpq %r10,%r12
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
jne L$cmov6
|
||||
|
||||
movq %rax,%rbx
|
||||
movq %r9,%r11
|
||||
L$cmov6:
|
||||
addb %al,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
addb %bl,%cl
|
||||
leaq 1(%rsi),%r10
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
movb %bl,(%rdi,%rcx,1)
|
||||
cmpq %r10,%rcx
|
||||
movb %dl,(%rdi,%rsi,1)
|
||||
addb %r9b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
addb %r11b,%r12b
|
||||
leaq 1(%r10),%r8
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
movb %r11b,(%rdi,%r12,1)
|
||||
cmpq %r8,%r12
|
||||
movb %r13b,(%rdi,%r10,1)
|
||||
jne L$cmov7
|
||||
|
||||
movq %rbx,%rax
|
||||
movq %r11,%r9
|
||||
L$cmov7:
|
||||
addb %bl,%dl
|
||||
xorb (%rdi,%rdx,1),%r9b
|
||||
rorl $8,%r9d
|
||||
leaq -8(%r11),%r11
|
||||
movl %r8d,(%r13)
|
||||
leaq 8(%r12),%r12
|
||||
movl %r9d,4(%r13)
|
||||
leaq 8(%r13),%r13
|
||||
addb %r11b,%r13b
|
||||
xorb (%rdi,%r13,1),%bl
|
||||
rorl $8,%ebx
|
||||
leaq -8(%rsi),%rsi
|
||||
movl %eax,(%rcx)
|
||||
leaq 8(%rdx),%rdx
|
||||
movl %ebx,4(%rcx)
|
||||
leaq 8(%rcx),%rcx
|
||||
|
||||
testq $-8,%r11
|
||||
testq $-8,%rsi
|
||||
jnz L$cloop8
|
||||
cmpq $0,%r11
|
||||
cmpq $0,%rsi
|
||||
jne L$cloop1
|
||||
jmp L$exit
|
||||
.p2align 4
|
||||
L$cloop1:
|
||||
addb %al,%cl
|
||||
movzbl %cl,%ecx
|
||||
movzbl (%rdi,%rcx,1),%edx
|
||||
movb %al,(%rdi,%rcx,1)
|
||||
movb %dl,(%rdi,%r10,1)
|
||||
addb %al,%dl
|
||||
addb $1,%r10b
|
||||
movzbl %dl,%edx
|
||||
movzbl %r10b,%r10d
|
||||
movzbl (%rdi,%rdx,1),%edx
|
||||
movzbl (%rdi,%r10,1),%eax
|
||||
xorb (%r12),%dl
|
||||
leaq 1(%r12),%r12
|
||||
movb %dl,(%r13)
|
||||
leaq 1(%r13),%r13
|
||||
subq $1,%r11
|
||||
addb %r9b,%r12b
|
||||
movzbl (%rdi,%r12,1),%r13d
|
||||
movb %r9b,(%rdi,%r12,1)
|
||||
movb %r13b,(%rdi,%r8,1)
|
||||
addb %r9b,%r13b
|
||||
addb $1,%r8b
|
||||
movzbl %r13b,%r13d
|
||||
movzbl %r8b,%r8d
|
||||
movzbl (%rdi,%r13,1),%r13d
|
||||
movzbl (%rdi,%r8,1),%r9d
|
||||
xorb (%rdx),%r13b
|
||||
leaq 1(%rdx),%rdx
|
||||
movb %r13b,(%rcx)
|
||||
leaq 1(%rcx),%rcx
|
||||
subq $1,%rsi
|
||||
jnz L$cloop1
|
||||
jmp L$exit
|
||||
|
||||
.p2align 4
|
||||
L$exit:
|
||||
subb $1,%r10b
|
||||
movl %r10d,-8(%rdi)
|
||||
movl %ecx,-4(%rdi)
|
||||
subb $1,%r8b
|
||||
movl %r8d,-8(%rdi)
|
||||
movl %r12d,-4(%rdi)
|
||||
|
||||
movq (%rsp),%r13
|
||||
movq 8(%rsp),%r12
|
||||
@ -526,10 +330,11 @@ L$exit:
|
||||
L$epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.globl _private_RC4_set_key
|
||||
|
||||
.globl _RC4_set_key
|
||||
|
||||
.p2align 4
|
||||
_private_RC4_set_key:
|
||||
_RC4_set_key:
|
||||
leaq 8(%rdi),%rdi
|
||||
leaq (%rdx,%rsi,1),%rdx
|
||||
negq %rsi
|
||||
@ -541,8 +346,11 @@ _private_RC4_set_key:
|
||||
|
||||
movl _OPENSSL_ia32cap_P(%rip),%r8d
|
||||
btl $20,%r8d
|
||||
jc L$c1stloop
|
||||
jmp L$w1stloop
|
||||
jnc L$w1stloop
|
||||
btl $30,%r8d
|
||||
setc %r9b
|
||||
movl %r9d,260(%rdi)
|
||||
jmp L$c1stloop
|
||||
|
||||
.p2align 4
|
||||
L$w1stloop:
|
||||
@ -605,19 +413,18 @@ _RC4_options:
|
||||
leaq L$opts(%rip),%rax
|
||||
movl _OPENSSL_ia32cap_P(%rip),%edx
|
||||
btl $20,%edx
|
||||
jc L$8xchar
|
||||
jnc L$done
|
||||
addq $12,%rax
|
||||
btl $30,%edx
|
||||
jnc L$done
|
||||
addq $25,%rax
|
||||
.byte 0xf3,0xc3
|
||||
L$8xchar:
|
||||
addq $12,%rax
|
||||
addq $13,%rax
|
||||
L$done:
|
||||
.byte 0xf3,0xc3
|
||||
.p2align 6
|
||||
L$opts:
|
||||
.byte 114,99,52,40,56,120,44,105,110,116,41,0
|
||||
.byte 114,99,52,40,56,120,44,99,104,97,114,41,0
|
||||
.byte 114,99,52,40,49,54,120,44,105,110,116,41,0
|
||||
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
|
||||
.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,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
|
||||
.p2align 6
|
||||
|
||||
|
3639
deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s
vendored
3639
deps/openssl/asm/x64-macosx-gas/sha/sha1-x86_64.s
vendored
File diff suppressed because it is too large
Load Diff
2652
deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s
vendored
2652
deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s
vendored
File diff suppressed because it is too large
Load Diff
69
deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s
vendored
69
deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s
vendored
@ -1,12 +1,8 @@
|
||||
|
||||
.private_extern _OPENSSL_cpuid_setup
|
||||
.mod_init_func
|
||||
.p2align 3
|
||||
.quad _OPENSSL_cpuid_setup
|
||||
|
||||
.private_extern _OPENSSL_ia32cap_P
|
||||
.comm _OPENSSL_ia32cap_P,8,2
|
||||
|
||||
.text
|
||||
|
||||
|
||||
@ -72,15 +68,7 @@ _OPENSSL_ia32_cpuid:
|
||||
|
||||
movl $2147483648,%eax
|
||||
cpuid
|
||||
cmpl $2147483649,%eax
|
||||
jb L$intel
|
||||
movl %eax,%r10d
|
||||
movl $2147483649,%eax
|
||||
cpuid
|
||||
orl %ecx,%r9d
|
||||
andl $2049,%r9d
|
||||
|
||||
cmpl $2147483656,%r10d
|
||||
cmpl $2147483656,%eax
|
||||
jb L$intel
|
||||
|
||||
movl $2147483656,%eax
|
||||
@ -91,12 +79,12 @@ _OPENSSL_ia32_cpuid:
|
||||
movl $1,%eax
|
||||
cpuid
|
||||
btl $28,%edx
|
||||
jnc L$generic
|
||||
jnc L$done
|
||||
shrl $16,%ebx
|
||||
cmpb %r10b,%bl
|
||||
ja L$generic
|
||||
ja L$done
|
||||
andl $4026531839,%edx
|
||||
jmp L$generic
|
||||
jmp L$done
|
||||
|
||||
L$intel:
|
||||
cmpl $4,%r11d
|
||||
@ -113,48 +101,30 @@ L$intel:
|
||||
L$nocacheinfo:
|
||||
movl $1,%eax
|
||||
cpuid
|
||||
andl $3220176895,%edx
|
||||
cmpl $0,%r9d
|
||||
jne L$notintel
|
||||
orl $1073741824,%edx
|
||||
orl $1048576,%edx
|
||||
andb $15,%ah
|
||||
cmpb $15,%ah
|
||||
jne L$notintel
|
||||
orl $1048576,%edx
|
||||
je L$notintel
|
||||
orl $1073741824,%edx
|
||||
L$notintel:
|
||||
btl $28,%edx
|
||||
jnc L$generic
|
||||
jnc L$done
|
||||
andl $4026531839,%edx
|
||||
cmpl $0,%r10d
|
||||
je L$generic
|
||||
je L$done
|
||||
|
||||
orl $268435456,%edx
|
||||
shrl $16,%ebx
|
||||
cmpb $1,%bl
|
||||
ja L$generic
|
||||
ja L$done
|
||||
andl $4026531839,%edx
|
||||
L$generic:
|
||||
andl $2048,%r9d
|
||||
andl $4294965247,%ecx
|
||||
orl %ecx,%r9d
|
||||
|
||||
movl %edx,%r10d
|
||||
btl $27,%r9d
|
||||
jnc L$clear_avx
|
||||
xorl %ecx,%ecx
|
||||
.byte 0x0f,0x01,0xd0
|
||||
|
||||
andl $6,%eax
|
||||
cmpl $6,%eax
|
||||
je L$done
|
||||
L$clear_avx:
|
||||
movl $4026525695,%eax
|
||||
andl %eax,%r9d
|
||||
L$done:
|
||||
shlq $32,%r9
|
||||
movl %r10d,%eax
|
||||
shlq $32,%rcx
|
||||
movl %edx,%eax
|
||||
movq %r8,%rbx
|
||||
orq %r9,%rax
|
||||
orq %rcx,%rax
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
|
||||
@ -223,16 +193,3 @@ _OPENSSL_wipe_cpu:
|
||||
leaq 8(%rsp),%rax
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.globl _OPENSSL_ia32_rdrand
|
||||
|
||||
.p2align 4
|
||||
_OPENSSL_ia32_rdrand:
|
||||
movl $8,%ecx
|
||||
L$oop_rdrand:
|
||||
.byte 72,15,199,240
|
||||
jc L$break_rdrand
|
||||
loop L$oop_rdrand
|
||||
L$break_rdrand:
|
||||
cmpq $0,%rax
|
||||
cmoveq %rcx,%rax
|
||||
.byte 0xf3,0xc3
|
||||
|
@ -333,9 +333,6 @@ _x86_64_AES_encrypt_compact ENDP
|
||||
PUBLIC AES_encrypt
|
||||
|
||||
ALIGN 16
|
||||
PUBLIC asm_AES_encrypt
|
||||
|
||||
asm_AES_encrypt::
|
||||
AES_encrypt PROC PUBLIC
|
||||
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD PTR[16+rsp],rsi
|
||||
@ -795,9 +792,6 @@ _x86_64_AES_decrypt_compact ENDP
|
||||
PUBLIC AES_decrypt
|
||||
|
||||
ALIGN 16
|
||||
PUBLIC asm_AES_decrypt
|
||||
|
||||
asm_AES_decrypt::
|
||||
AES_decrypt PROC PUBLIC
|
||||
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD PTR[16+rsp],rsi
|
||||
@ -873,14 +867,14 @@ $L$dec_epilogue::
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_AES_decrypt::
|
||||
AES_decrypt ENDP
|
||||
PUBLIC private_AES_set_encrypt_key
|
||||
PUBLIC AES_set_encrypt_key
|
||||
|
||||
ALIGN 16
|
||||
private_AES_set_encrypt_key PROC PUBLIC
|
||||
AES_set_encrypt_key PROC PUBLIC
|
||||
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD PTR[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_private_AES_set_encrypt_key::
|
||||
$L$SEH_begin_AES_set_encrypt_key::
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@ -908,8 +902,8 @@ $L$enc_key_epilogue::
|
||||
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD PTR[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_private_AES_set_encrypt_key::
|
||||
private_AES_set_encrypt_key ENDP
|
||||
$L$SEH_end_AES_set_encrypt_key::
|
||||
AES_set_encrypt_key ENDP
|
||||
|
||||
|
||||
ALIGN 16
|
||||
@ -1151,14 +1145,14 @@ $L$exit::
|
||||
DB 0f3h,0c3h
|
||||
|
||||
_x86_64_AES_set_encrypt_key ENDP
|
||||
PUBLIC private_AES_set_decrypt_key
|
||||
PUBLIC AES_set_decrypt_key
|
||||
|
||||
ALIGN 16
|
||||
private_AES_set_decrypt_key PROC PUBLIC
|
||||
AES_set_decrypt_key PROC PUBLIC
|
||||
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD PTR[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_private_AES_set_decrypt_key::
|
||||
$L$SEH_begin_AES_set_decrypt_key::
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@ -1348,15 +1342,12 @@ $L$dec_key_epilogue::
|
||||
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD PTR[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_private_AES_set_decrypt_key::
|
||||
private_AES_set_decrypt_key ENDP
|
||||
$L$SEH_end_AES_set_decrypt_key::
|
||||
AES_set_decrypt_key ENDP
|
||||
PUBLIC AES_cbc_encrypt
|
||||
|
||||
ALIGN 16
|
||||
EXTERN OPENSSL_ia32cap_P:NEAR
|
||||
PUBLIC asm_AES_cbc_encrypt
|
||||
|
||||
asm_AES_cbc_encrypt::
|
||||
AES_cbc_encrypt PROC PUBLIC
|
||||
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD PTR[16+rsp],rsi
|
||||
@ -2851,13 +2842,13 @@ ALIGN 4
|
||||
DD imagerel $L$SEH_end_AES_decrypt
|
||||
DD imagerel $L$SEH_info_AES_decrypt
|
||||
|
||||
DD imagerel $L$SEH_begin_private_AES_set_encrypt_key
|
||||
DD imagerel $L$SEH_end_private_AES_set_encrypt_key
|
||||
DD imagerel $L$SEH_info_private_AES_set_encrypt_key
|
||||
DD imagerel $L$SEH_begin_AES_set_encrypt_key
|
||||
DD imagerel $L$SEH_end_AES_set_encrypt_key
|
||||
DD imagerel $L$SEH_info_AES_set_encrypt_key
|
||||
|
||||
DD imagerel $L$SEH_begin_private_AES_set_decrypt_key
|
||||
DD imagerel $L$SEH_end_private_AES_set_decrypt_key
|
||||
DD imagerel $L$SEH_info_private_AES_set_decrypt_key
|
||||
DD imagerel $L$SEH_begin_AES_set_decrypt_key
|
||||
DD imagerel $L$SEH_end_AES_set_decrypt_key
|
||||
DD imagerel $L$SEH_info_AES_set_decrypt_key
|
||||
|
||||
DD imagerel $L$SEH_begin_AES_cbc_encrypt
|
||||
DD imagerel $L$SEH_end_AES_cbc_encrypt
|
||||
@ -2876,12 +2867,12 @@ DB 9,0,0,0
|
||||
DD imagerel block_se_handler
|
||||
DD imagerel $L$dec_prologue,imagerel $L$dec_epilogue
|
||||
|
||||
$L$SEH_info_private_AES_set_encrypt_key::
|
||||
$L$SEH_info_AES_set_encrypt_key::
|
||||
DB 9,0,0,0
|
||||
DD imagerel key_se_handler
|
||||
DD imagerel $L$enc_key_prologue,imagerel $L$enc_key_epilogue
|
||||
|
||||
$L$SEH_info_private_AES_set_decrypt_key::
|
||||
$L$SEH_info_AES_set_decrypt_key::
|
||||
DB 9,0,0,0
|
||||
DD imagerel key_se_handler
|
||||
DD imagerel $L$dec_key_prologue,imagerel $L$dec_key_epilogue
|
||||
|
1442
deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm
vendored
1442
deps/openssl/asm/x64-win32-masm/bn/x86_64-mont.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -250,7 +250,7 @@ $L$eloop::
|
||||
xor r8d,ecx
|
||||
xor r9d,ecx
|
||||
xor r9d,edx
|
||||
lea r14,QWORD PTR[64+r14]
|
||||
lea r14,QWORD PTR[((16*4))+r14]
|
||||
cmp r14,r15
|
||||
mov edx,DWORD PTR[8+r14]
|
||||
mov ecx,DWORD PTR[12+r14]
|
||||
@ -533,7 +533,7 @@ $L$dloop::
|
||||
xor r8d,ecx
|
||||
xor r9d,ecx
|
||||
xor r9d,edx
|
||||
lea r14,QWORD PTR[((-64))+r14]
|
||||
lea r14,QWORD PTR[((-16*4))+r14]
|
||||
cmp r14,r15
|
||||
mov edx,DWORD PTR[r14]
|
||||
mov ecx,DWORD PTR[4+r14]
|
||||
|
280
deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm
vendored
280
deps/openssl/asm/x64-win32-masm/md5/md5-x86_64.asm
vendored
@ -27,10 +27,10 @@ $L$prologue::
|
||||
mov rbp,rdi
|
||||
shl rdx,6
|
||||
lea rdi,QWORD PTR[rdx*1+rsi]
|
||||
mov eax,DWORD PTR[rbp]
|
||||
mov ebx,DWORD PTR[4+rbp]
|
||||
mov ecx,DWORD PTR[8+rbp]
|
||||
mov edx,DWORD PTR[12+rbp]
|
||||
mov eax,DWORD PTR[((0*4))+rbp]
|
||||
mov ebx,DWORD PTR[((1*4))+rbp]
|
||||
mov ecx,DWORD PTR[((2*4))+rbp]
|
||||
mov edx,DWORD PTR[((3*4))+rbp]
|
||||
|
||||
|
||||
|
||||
@ -48,160 +48,160 @@ $L$loop::
|
||||
mov r9d,ebx
|
||||
mov r14d,ecx
|
||||
mov r15d,edx
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
mov r11d,edx
|
||||
xor r11d,ecx
|
||||
lea eax,DWORD PTR[((-680876936))+r10*1+rax]
|
||||
lea eax,DWORD PTR[0d76aa478h+r10*1+rax]
|
||||
and r11d,ebx
|
||||
xor r11d,edx
|
||||
mov r10d,DWORD PTR[4+rsi]
|
||||
mov r10d,DWORD PTR[((1*4))+rsi]
|
||||
add eax,r11d
|
||||
rol eax,7
|
||||
mov r11d,ecx
|
||||
add eax,ebx
|
||||
xor r11d,ebx
|
||||
lea edx,DWORD PTR[((-389564586))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0e8c7b756h+r10*1+rdx]
|
||||
and r11d,eax
|
||||
xor r11d,ecx
|
||||
mov r10d,DWORD PTR[8+rsi]
|
||||
mov r10d,DWORD PTR[((2*4))+rsi]
|
||||
add edx,r11d
|
||||
rol edx,12
|
||||
mov r11d,ebx
|
||||
add edx,eax
|
||||
xor r11d,eax
|
||||
lea ecx,DWORD PTR[606105819+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0242070dbh+r10*1+rcx]
|
||||
and r11d,edx
|
||||
xor r11d,ebx
|
||||
mov r10d,DWORD PTR[12+rsi]
|
||||
mov r10d,DWORD PTR[((3*4))+rsi]
|
||||
add ecx,r11d
|
||||
rol ecx,17
|
||||
mov r11d,eax
|
||||
add ecx,edx
|
||||
xor r11d,edx
|
||||
lea ebx,DWORD PTR[((-1044525330))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0c1bdceeeh+r10*1+rbx]
|
||||
and r11d,ecx
|
||||
xor r11d,eax
|
||||
mov r10d,DWORD PTR[16+rsi]
|
||||
mov r10d,DWORD PTR[((4*4))+rsi]
|
||||
add ebx,r11d
|
||||
rol ebx,22
|
||||
mov r11d,edx
|
||||
add ebx,ecx
|
||||
xor r11d,ecx
|
||||
lea eax,DWORD PTR[((-176418897))+r10*1+rax]
|
||||
lea eax,DWORD PTR[0f57c0fafh+r10*1+rax]
|
||||
and r11d,ebx
|
||||
xor r11d,edx
|
||||
mov r10d,DWORD PTR[20+rsi]
|
||||
mov r10d,DWORD PTR[((5*4))+rsi]
|
||||
add eax,r11d
|
||||
rol eax,7
|
||||
mov r11d,ecx
|
||||
add eax,ebx
|
||||
xor r11d,ebx
|
||||
lea edx,DWORD PTR[1200080426+r10*1+rdx]
|
||||
lea edx,DWORD PTR[04787c62ah+r10*1+rdx]
|
||||
and r11d,eax
|
||||
xor r11d,ecx
|
||||
mov r10d,DWORD PTR[24+rsi]
|
||||
mov r10d,DWORD PTR[((6*4))+rsi]
|
||||
add edx,r11d
|
||||
rol edx,12
|
||||
mov r11d,ebx
|
||||
add edx,eax
|
||||
xor r11d,eax
|
||||
lea ecx,DWORD PTR[((-1473231341))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0a8304613h+r10*1+rcx]
|
||||
and r11d,edx
|
||||
xor r11d,ebx
|
||||
mov r10d,DWORD PTR[28+rsi]
|
||||
mov r10d,DWORD PTR[((7*4))+rsi]
|
||||
add ecx,r11d
|
||||
rol ecx,17
|
||||
mov r11d,eax
|
||||
add ecx,edx
|
||||
xor r11d,edx
|
||||
lea ebx,DWORD PTR[((-45705983))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0fd469501h+r10*1+rbx]
|
||||
and r11d,ecx
|
||||
xor r11d,eax
|
||||
mov r10d,DWORD PTR[32+rsi]
|
||||
mov r10d,DWORD PTR[((8*4))+rsi]
|
||||
add ebx,r11d
|
||||
rol ebx,22
|
||||
mov r11d,edx
|
||||
add ebx,ecx
|
||||
xor r11d,ecx
|
||||
lea eax,DWORD PTR[1770035416+r10*1+rax]
|
||||
lea eax,DWORD PTR[0698098d8h+r10*1+rax]
|
||||
and r11d,ebx
|
||||
xor r11d,edx
|
||||
mov r10d,DWORD PTR[36+rsi]
|
||||
mov r10d,DWORD PTR[((9*4))+rsi]
|
||||
add eax,r11d
|
||||
rol eax,7
|
||||
mov r11d,ecx
|
||||
add eax,ebx
|
||||
xor r11d,ebx
|
||||
lea edx,DWORD PTR[((-1958414417))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[08b44f7afh+r10*1+rdx]
|
||||
and r11d,eax
|
||||
xor r11d,ecx
|
||||
mov r10d,DWORD PTR[40+rsi]
|
||||
mov r10d,DWORD PTR[((10*4))+rsi]
|
||||
add edx,r11d
|
||||
rol edx,12
|
||||
mov r11d,ebx
|
||||
add edx,eax
|
||||
xor r11d,eax
|
||||
lea ecx,DWORD PTR[((-42063))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0ffff5bb1h+r10*1+rcx]
|
||||
and r11d,edx
|
||||
xor r11d,ebx
|
||||
mov r10d,DWORD PTR[44+rsi]
|
||||
mov r10d,DWORD PTR[((11*4))+rsi]
|
||||
add ecx,r11d
|
||||
rol ecx,17
|
||||
mov r11d,eax
|
||||
add ecx,edx
|
||||
xor r11d,edx
|
||||
lea ebx,DWORD PTR[((-1990404162))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0895cd7beh+r10*1+rbx]
|
||||
and r11d,ecx
|
||||
xor r11d,eax
|
||||
mov r10d,DWORD PTR[48+rsi]
|
||||
mov r10d,DWORD PTR[((12*4))+rsi]
|
||||
add ebx,r11d
|
||||
rol ebx,22
|
||||
mov r11d,edx
|
||||
add ebx,ecx
|
||||
xor r11d,ecx
|
||||
lea eax,DWORD PTR[1804603682+r10*1+rax]
|
||||
lea eax,DWORD PTR[06b901122h+r10*1+rax]
|
||||
and r11d,ebx
|
||||
xor r11d,edx
|
||||
mov r10d,DWORD PTR[52+rsi]
|
||||
mov r10d,DWORD PTR[((13*4))+rsi]
|
||||
add eax,r11d
|
||||
rol eax,7
|
||||
mov r11d,ecx
|
||||
add eax,ebx
|
||||
xor r11d,ebx
|
||||
lea edx,DWORD PTR[((-40341101))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0fd987193h+r10*1+rdx]
|
||||
and r11d,eax
|
||||
xor r11d,ecx
|
||||
mov r10d,DWORD PTR[56+rsi]
|
||||
mov r10d,DWORD PTR[((14*4))+rsi]
|
||||
add edx,r11d
|
||||
rol edx,12
|
||||
mov r11d,ebx
|
||||
add edx,eax
|
||||
xor r11d,eax
|
||||
lea ecx,DWORD PTR[((-1502002290))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0a679438eh+r10*1+rcx]
|
||||
and r11d,edx
|
||||
xor r11d,ebx
|
||||
mov r10d,DWORD PTR[60+rsi]
|
||||
mov r10d,DWORD PTR[((15*4))+rsi]
|
||||
add ecx,r11d
|
||||
rol ecx,17
|
||||
mov r11d,eax
|
||||
add ecx,edx
|
||||
xor r11d,edx
|
||||
lea ebx,DWORD PTR[1236535329+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[049b40821h+r10*1+rbx]
|
||||
and r11d,ecx
|
||||
xor r11d,eax
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
add ebx,r11d
|
||||
rol ebx,22
|
||||
mov r11d,edx
|
||||
add ebx,ecx
|
||||
mov r10d,DWORD PTR[4+rsi]
|
||||
mov r10d,DWORD PTR[((1*4))+rsi]
|
||||
mov r11d,edx
|
||||
mov r12d,edx
|
||||
not r11d
|
||||
lea eax,DWORD PTR[((-165796510))+r10*1+rax]
|
||||
lea eax,DWORD PTR[0f61e2562h+r10*1+rax]
|
||||
and r12d,ebx
|
||||
and r11d,ecx
|
||||
mov r10d,DWORD PTR[24+rsi]
|
||||
mov r10d,DWORD PTR[((6*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ecx
|
||||
add eax,r12d
|
||||
@ -209,10 +209,10 @@ $L$loop::
|
||||
rol eax,5
|
||||
add eax,ebx
|
||||
not r11d
|
||||
lea edx,DWORD PTR[((-1069501632))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0c040b340h+r10*1+rdx]
|
||||
and r12d,eax
|
||||
and r11d,ebx
|
||||
mov r10d,DWORD PTR[44+rsi]
|
||||
mov r10d,DWORD PTR[((11*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ebx
|
||||
add edx,r12d
|
||||
@ -220,10 +220,10 @@ $L$loop::
|
||||
rol edx,9
|
||||
add edx,eax
|
||||
not r11d
|
||||
lea ecx,DWORD PTR[643717713+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0265e5a51h+r10*1+rcx]
|
||||
and r12d,edx
|
||||
and r11d,eax
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,eax
|
||||
add ecx,r12d
|
||||
@ -231,10 +231,10 @@ $L$loop::
|
||||
rol ecx,14
|
||||
add ecx,edx
|
||||
not r11d
|
||||
lea ebx,DWORD PTR[((-373897302))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0e9b6c7aah+r10*1+rbx]
|
||||
and r12d,ecx
|
||||
and r11d,edx
|
||||
mov r10d,DWORD PTR[20+rsi]
|
||||
mov r10d,DWORD PTR[((5*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,edx
|
||||
add ebx,r12d
|
||||
@ -242,10 +242,10 @@ $L$loop::
|
||||
rol ebx,20
|
||||
add ebx,ecx
|
||||
not r11d
|
||||
lea eax,DWORD PTR[((-701558691))+r10*1+rax]
|
||||
lea eax,DWORD PTR[0d62f105dh+r10*1+rax]
|
||||
and r12d,ebx
|
||||
and r11d,ecx
|
||||
mov r10d,DWORD PTR[40+rsi]
|
||||
mov r10d,DWORD PTR[((10*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ecx
|
||||
add eax,r12d
|
||||
@ -253,10 +253,10 @@ $L$loop::
|
||||
rol eax,5
|
||||
add eax,ebx
|
||||
not r11d
|
||||
lea edx,DWORD PTR[38016083+r10*1+rdx]
|
||||
lea edx,DWORD PTR[02441453h+r10*1+rdx]
|
||||
and r12d,eax
|
||||
and r11d,ebx
|
||||
mov r10d,DWORD PTR[60+rsi]
|
||||
mov r10d,DWORD PTR[((15*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ebx
|
||||
add edx,r12d
|
||||
@ -264,10 +264,10 @@ $L$loop::
|
||||
rol edx,9
|
||||
add edx,eax
|
||||
not r11d
|
||||
lea ecx,DWORD PTR[((-660478335))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0d8a1e681h+r10*1+rcx]
|
||||
and r12d,edx
|
||||
and r11d,eax
|
||||
mov r10d,DWORD PTR[16+rsi]
|
||||
mov r10d,DWORD PTR[((4*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,eax
|
||||
add ecx,r12d
|
||||
@ -275,10 +275,10 @@ $L$loop::
|
||||
rol ecx,14
|
||||
add ecx,edx
|
||||
not r11d
|
||||
lea ebx,DWORD PTR[((-405537848))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0e7d3fbc8h+r10*1+rbx]
|
||||
and r12d,ecx
|
||||
and r11d,edx
|
||||
mov r10d,DWORD PTR[36+rsi]
|
||||
mov r10d,DWORD PTR[((9*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,edx
|
||||
add ebx,r12d
|
||||
@ -286,10 +286,10 @@ $L$loop::
|
||||
rol ebx,20
|
||||
add ebx,ecx
|
||||
not r11d
|
||||
lea eax,DWORD PTR[568446438+r10*1+rax]
|
||||
lea eax,DWORD PTR[021e1cde6h+r10*1+rax]
|
||||
and r12d,ebx
|
||||
and r11d,ecx
|
||||
mov r10d,DWORD PTR[56+rsi]
|
||||
mov r10d,DWORD PTR[((14*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ecx
|
||||
add eax,r12d
|
||||
@ -297,10 +297,10 @@ $L$loop::
|
||||
rol eax,5
|
||||
add eax,ebx
|
||||
not r11d
|
||||
lea edx,DWORD PTR[((-1019803690))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0c33707d6h+r10*1+rdx]
|
||||
and r12d,eax
|
||||
and r11d,ebx
|
||||
mov r10d,DWORD PTR[12+rsi]
|
||||
mov r10d,DWORD PTR[((3*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ebx
|
||||
add edx,r12d
|
||||
@ -308,10 +308,10 @@ $L$loop::
|
||||
rol edx,9
|
||||
add edx,eax
|
||||
not r11d
|
||||
lea ecx,DWORD PTR[((-187363961))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0f4d50d87h+r10*1+rcx]
|
||||
and r12d,edx
|
||||
and r11d,eax
|
||||
mov r10d,DWORD PTR[32+rsi]
|
||||
mov r10d,DWORD PTR[((8*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,eax
|
||||
add ecx,r12d
|
||||
@ -319,10 +319,10 @@ $L$loop::
|
||||
rol ecx,14
|
||||
add ecx,edx
|
||||
not r11d
|
||||
lea ebx,DWORD PTR[1163531501+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0455a14edh+r10*1+rbx]
|
||||
and r12d,ecx
|
||||
and r11d,edx
|
||||
mov r10d,DWORD PTR[52+rsi]
|
||||
mov r10d,DWORD PTR[((13*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,edx
|
||||
add ebx,r12d
|
||||
@ -330,10 +330,10 @@ $L$loop::
|
||||
rol ebx,20
|
||||
add ebx,ecx
|
||||
not r11d
|
||||
lea eax,DWORD PTR[((-1444681467))+r10*1+rax]
|
||||
lea eax,DWORD PTR[0a9e3e905h+r10*1+rax]
|
||||
and r12d,ebx
|
||||
and r11d,ecx
|
||||
mov r10d,DWORD PTR[8+rsi]
|
||||
mov r10d,DWORD PTR[((2*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ecx
|
||||
add eax,r12d
|
||||
@ -341,10 +341,10 @@ $L$loop::
|
||||
rol eax,5
|
||||
add eax,ebx
|
||||
not r11d
|
||||
lea edx,DWORD PTR[((-51403784))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0fcefa3f8h+r10*1+rdx]
|
||||
and r12d,eax
|
||||
and r11d,ebx
|
||||
mov r10d,DWORD PTR[28+rsi]
|
||||
mov r10d,DWORD PTR[((7*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,ebx
|
||||
add edx,r12d
|
||||
@ -352,10 +352,10 @@ $L$loop::
|
||||
rol edx,9
|
||||
add edx,eax
|
||||
not r11d
|
||||
lea ecx,DWORD PTR[1735328473+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0676f02d9h+r10*1+rcx]
|
||||
and r12d,edx
|
||||
and r11d,eax
|
||||
mov r10d,DWORD PTR[48+rsi]
|
||||
mov r10d,DWORD PTR[((12*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,eax
|
||||
add ecx,r12d
|
||||
@ -363,289 +363,289 @@ $L$loop::
|
||||
rol ecx,14
|
||||
add ecx,edx
|
||||
not r11d
|
||||
lea ebx,DWORD PTR[((-1926607734))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[08d2a4c8ah+r10*1+rbx]
|
||||
and r12d,ecx
|
||||
and r11d,edx
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
or r12d,r11d
|
||||
mov r11d,edx
|
||||
add ebx,r12d
|
||||
mov r12d,edx
|
||||
rol ebx,20
|
||||
add ebx,ecx
|
||||
mov r10d,DWORD PTR[20+rsi]
|
||||
mov r10d,DWORD PTR[((5*4))+rsi]
|
||||
mov r11d,ecx
|
||||
lea eax,DWORD PTR[((-378558))+r10*1+rax]
|
||||
mov r10d,DWORD PTR[32+rsi]
|
||||
lea eax,DWORD PTR[0fffa3942h+r10*1+rax]
|
||||
mov r10d,DWORD PTR[((8*4))+rsi]
|
||||
xor r11d,edx
|
||||
xor r11d,ebx
|
||||
add eax,r11d
|
||||
rol eax,4
|
||||
mov r11d,ebx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[((-2022574463))+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[44+rsi]
|
||||
lea edx,DWORD PTR[08771f681h+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[((11*4))+rsi]
|
||||
xor r11d,ecx
|
||||
xor r11d,eax
|
||||
add edx,r11d
|
||||
rol edx,11
|
||||
mov r11d,eax
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[1839030562+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[56+rsi]
|
||||
lea ecx,DWORD PTR[06d9d6122h+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[((14*4))+rsi]
|
||||
xor r11d,ebx
|
||||
xor r11d,edx
|
||||
add ecx,r11d
|
||||
rol ecx,16
|
||||
mov r11d,edx
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[((-35309556))+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[4+rsi]
|
||||
lea ebx,DWORD PTR[0fde5380ch+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[((1*4))+rsi]
|
||||
xor r11d,eax
|
||||
xor r11d,ecx
|
||||
add ebx,r11d
|
||||
rol ebx,23
|
||||
mov r11d,ecx
|
||||
add ebx,ecx
|
||||
lea eax,DWORD PTR[((-1530992060))+r10*1+rax]
|
||||
mov r10d,DWORD PTR[16+rsi]
|
||||
lea eax,DWORD PTR[0a4beea44h+r10*1+rax]
|
||||
mov r10d,DWORD PTR[((4*4))+rsi]
|
||||
xor r11d,edx
|
||||
xor r11d,ebx
|
||||
add eax,r11d
|
||||
rol eax,4
|
||||
mov r11d,ebx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[1272893353+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[28+rsi]
|
||||
lea edx,DWORD PTR[04bdecfa9h+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[((7*4))+rsi]
|
||||
xor r11d,ecx
|
||||
xor r11d,eax
|
||||
add edx,r11d
|
||||
rol edx,11
|
||||
mov r11d,eax
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[((-155497632))+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[40+rsi]
|
||||
lea ecx,DWORD PTR[0f6bb4b60h+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[((10*4))+rsi]
|
||||
xor r11d,ebx
|
||||
xor r11d,edx
|
||||
add ecx,r11d
|
||||
rol ecx,16
|
||||
mov r11d,edx
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[((-1094730640))+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[52+rsi]
|
||||
lea ebx,DWORD PTR[0bebfbc70h+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[((13*4))+rsi]
|
||||
xor r11d,eax
|
||||
xor r11d,ecx
|
||||
add ebx,r11d
|
||||
rol ebx,23
|
||||
mov r11d,ecx
|
||||
add ebx,ecx
|
||||
lea eax,DWORD PTR[681279174+r10*1+rax]
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
lea eax,DWORD PTR[0289b7ec6h+r10*1+rax]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
xor r11d,edx
|
||||
xor r11d,ebx
|
||||
add eax,r11d
|
||||
rol eax,4
|
||||
mov r11d,ebx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[((-358537222))+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[12+rsi]
|
||||
lea edx,DWORD PTR[0eaa127fah+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[((3*4))+rsi]
|
||||
xor r11d,ecx
|
||||
xor r11d,eax
|
||||
add edx,r11d
|
||||
rol edx,11
|
||||
mov r11d,eax
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[((-722521979))+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[24+rsi]
|
||||
lea ecx,DWORD PTR[0d4ef3085h+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[((6*4))+rsi]
|
||||
xor r11d,ebx
|
||||
xor r11d,edx
|
||||
add ecx,r11d
|
||||
rol ecx,16
|
||||
mov r11d,edx
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[76029189+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[36+rsi]
|
||||
lea ebx,DWORD PTR[04881d05h+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[((9*4))+rsi]
|
||||
xor r11d,eax
|
||||
xor r11d,ecx
|
||||
add ebx,r11d
|
||||
rol ebx,23
|
||||
mov r11d,ecx
|
||||
add ebx,ecx
|
||||
lea eax,DWORD PTR[((-640364487))+r10*1+rax]
|
||||
mov r10d,DWORD PTR[48+rsi]
|
||||
lea eax,DWORD PTR[0d9d4d039h+r10*1+rax]
|
||||
mov r10d,DWORD PTR[((12*4))+rsi]
|
||||
xor r11d,edx
|
||||
xor r11d,ebx
|
||||
add eax,r11d
|
||||
rol eax,4
|
||||
mov r11d,ebx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[((-421815835))+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[60+rsi]
|
||||
lea edx,DWORD PTR[0e6db99e5h+r10*1+rdx]
|
||||
mov r10d,DWORD PTR[((15*4))+rsi]
|
||||
xor r11d,ecx
|
||||
xor r11d,eax
|
||||
add edx,r11d
|
||||
rol edx,11
|
||||
mov r11d,eax
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[530742520+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[8+rsi]
|
||||
lea ecx,DWORD PTR[01fa27cf8h+r10*1+rcx]
|
||||
mov r10d,DWORD PTR[((2*4))+rsi]
|
||||
xor r11d,ebx
|
||||
xor r11d,edx
|
||||
add ecx,r11d
|
||||
rol ecx,16
|
||||
mov r11d,edx
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[((-995338651))+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
lea ebx,DWORD PTR[0c4ac5665h+r10*1+rbx]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
xor r11d,eax
|
||||
xor r11d,ecx
|
||||
add ebx,r11d
|
||||
rol ebx,23
|
||||
mov r11d,ecx
|
||||
add ebx,ecx
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
xor r11d,edx
|
||||
lea eax,DWORD PTR[((-198630844))+r10*1+rax]
|
||||
lea eax,DWORD PTR[0f4292244h+r10*1+rax]
|
||||
or r11d,ebx
|
||||
xor r11d,ecx
|
||||
add eax,r11d
|
||||
mov r10d,DWORD PTR[28+rsi]
|
||||
mov r10d,DWORD PTR[((7*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol eax,6
|
||||
xor r11d,ecx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[1126891415+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0432aff97h+r10*1+rdx]
|
||||
or r11d,eax
|
||||
xor r11d,ebx
|
||||
add edx,r11d
|
||||
mov r10d,DWORD PTR[56+rsi]
|
||||
mov r10d,DWORD PTR[((14*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol edx,10
|
||||
xor r11d,ebx
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[((-1416354905))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0ab9423a7h+r10*1+rcx]
|
||||
or r11d,edx
|
||||
xor r11d,eax
|
||||
add ecx,r11d
|
||||
mov r10d,DWORD PTR[20+rsi]
|
||||
mov r10d,DWORD PTR[((5*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ecx,15
|
||||
xor r11d,eax
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[((-57434055))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0fc93a039h+r10*1+rbx]
|
||||
or r11d,ecx
|
||||
xor r11d,edx
|
||||
add ebx,r11d
|
||||
mov r10d,DWORD PTR[48+rsi]
|
||||
mov r10d,DWORD PTR[((12*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ebx,21
|
||||
xor r11d,edx
|
||||
add ebx,ecx
|
||||
lea eax,DWORD PTR[1700485571+r10*1+rax]
|
||||
lea eax,DWORD PTR[0655b59c3h+r10*1+rax]
|
||||
or r11d,ebx
|
||||
xor r11d,ecx
|
||||
add eax,r11d
|
||||
mov r10d,DWORD PTR[12+rsi]
|
||||
mov r10d,DWORD PTR[((3*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol eax,6
|
||||
xor r11d,ecx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[((-1894986606))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[08f0ccc92h+r10*1+rdx]
|
||||
or r11d,eax
|
||||
xor r11d,ebx
|
||||
add edx,r11d
|
||||
mov r10d,DWORD PTR[40+rsi]
|
||||
mov r10d,DWORD PTR[((10*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol edx,10
|
||||
xor r11d,ebx
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[((-1051523))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0ffeff47dh+r10*1+rcx]
|
||||
or r11d,edx
|
||||
xor r11d,eax
|
||||
add ecx,r11d
|
||||
mov r10d,DWORD PTR[4+rsi]
|
||||
mov r10d,DWORD PTR[((1*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ecx,15
|
||||
xor r11d,eax
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[((-2054922799))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[085845dd1h+r10*1+rbx]
|
||||
or r11d,ecx
|
||||
xor r11d,edx
|
||||
add ebx,r11d
|
||||
mov r10d,DWORD PTR[32+rsi]
|
||||
mov r10d,DWORD PTR[((8*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ebx,21
|
||||
xor r11d,edx
|
||||
add ebx,ecx
|
||||
lea eax,DWORD PTR[1873313359+r10*1+rax]
|
||||
lea eax,DWORD PTR[06fa87e4fh+r10*1+rax]
|
||||
or r11d,ebx
|
||||
xor r11d,ecx
|
||||
add eax,r11d
|
||||
mov r10d,DWORD PTR[60+rsi]
|
||||
mov r10d,DWORD PTR[((15*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol eax,6
|
||||
xor r11d,ecx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[((-30611744))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0fe2ce6e0h+r10*1+rdx]
|
||||
or r11d,eax
|
||||
xor r11d,ebx
|
||||
add edx,r11d
|
||||
mov r10d,DWORD PTR[24+rsi]
|
||||
mov r10d,DWORD PTR[((6*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol edx,10
|
||||
xor r11d,ebx
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[((-1560198380))+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[0a3014314h+r10*1+rcx]
|
||||
or r11d,edx
|
||||
xor r11d,eax
|
||||
add ecx,r11d
|
||||
mov r10d,DWORD PTR[52+rsi]
|
||||
mov r10d,DWORD PTR[((13*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ecx,15
|
||||
xor r11d,eax
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[1309151649+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[04e0811a1h+r10*1+rbx]
|
||||
or r11d,ecx
|
||||
xor r11d,edx
|
||||
add ebx,r11d
|
||||
mov r10d,DWORD PTR[16+rsi]
|
||||
mov r10d,DWORD PTR[((4*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ebx,21
|
||||
xor r11d,edx
|
||||
add ebx,ecx
|
||||
lea eax,DWORD PTR[((-145523070))+r10*1+rax]
|
||||
lea eax,DWORD PTR[0f7537e82h+r10*1+rax]
|
||||
or r11d,ebx
|
||||
xor r11d,ecx
|
||||
add eax,r11d
|
||||
mov r10d,DWORD PTR[44+rsi]
|
||||
mov r10d,DWORD PTR[((11*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol eax,6
|
||||
xor r11d,ecx
|
||||
add eax,ebx
|
||||
lea edx,DWORD PTR[((-1120210379))+r10*1+rdx]
|
||||
lea edx,DWORD PTR[0bd3af235h+r10*1+rdx]
|
||||
or r11d,eax
|
||||
xor r11d,ebx
|
||||
add edx,r11d
|
||||
mov r10d,DWORD PTR[8+rsi]
|
||||
mov r10d,DWORD PTR[((2*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol edx,10
|
||||
xor r11d,ebx
|
||||
add edx,eax
|
||||
lea ecx,DWORD PTR[718787259+r10*1+rcx]
|
||||
lea ecx,DWORD PTR[02ad7d2bbh+r10*1+rcx]
|
||||
or r11d,edx
|
||||
xor r11d,eax
|
||||
add ecx,r11d
|
||||
mov r10d,DWORD PTR[36+rsi]
|
||||
mov r10d,DWORD PTR[((9*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ecx,15
|
||||
xor r11d,eax
|
||||
add ecx,edx
|
||||
lea ebx,DWORD PTR[((-343485551))+r10*1+rbx]
|
||||
lea ebx,DWORD PTR[0eb86d391h+r10*1+rbx]
|
||||
or r11d,ecx
|
||||
xor r11d,edx
|
||||
add ebx,r11d
|
||||
mov r10d,DWORD PTR[rsi]
|
||||
mov r10d,DWORD PTR[((0*4))+rsi]
|
||||
mov r11d,0ffffffffh
|
||||
rol ebx,21
|
||||
xor r11d,edx
|
||||
@ -664,10 +664,10 @@ $L$loop::
|
||||
|
||||
|
||||
$L$end::
|
||||
mov DWORD PTR[rbp],eax
|
||||
mov DWORD PTR[4+rbp],ebx
|
||||
mov DWORD PTR[8+rbp],ecx
|
||||
mov DWORD PTR[12+rbp],edx
|
||||
mov DWORD PTR[((0*4))+rbp],eax
|
||||
mov DWORD PTR[((1*4))+rbp],ebx
|
||||
mov DWORD PTR[((2*4))+rbp],ecx
|
||||
mov DWORD PTR[((3*4))+rbp],edx
|
||||
|
||||
mov r15,QWORD PTR[rsp]
|
||||
mov r14,QWORD PTR[8+rsp]
|
||||
|
738
deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm
vendored
738
deps/openssl/asm/x64-win32-masm/rc4/rc4-x86_64.asm
vendored
@ -1,6 +1,5 @@
|
||||
OPTION DOTNAME
|
||||
.text$ SEGMENT ALIGN(64) 'CODE'
|
||||
EXTERN OPENSSL_ia32cap_P:NEAR
|
||||
|
||||
PUBLIC RC4
|
||||
|
||||
@ -25,511 +24,316 @@ $L$entry::
|
||||
push r12
|
||||
push r13
|
||||
$L$prologue::
|
||||
mov r11,rsi
|
||||
mov r12,rdx
|
||||
mov r13,rcx
|
||||
xor r10,r10
|
||||
xor rcx,rcx
|
||||
|
||||
lea rdi,QWORD PTR[8+rdi]
|
||||
mov r10b,BYTE PTR[((-8))+rdi]
|
||||
mov cl,BYTE PTR[((-4))+rdi]
|
||||
add rdi,8
|
||||
mov r8d,DWORD PTR[((-8))+rdi]
|
||||
mov r12d,DWORD PTR[((-4))+rdi]
|
||||
cmp DWORD PTR[256+rdi],-1
|
||||
je $L$RC4_CHAR
|
||||
mov r8d,DWORD PTR[OPENSSL_ia32cap_P]
|
||||
xor rbx,rbx
|
||||
inc r10b
|
||||
sub rbx,r10
|
||||
sub r13,r12
|
||||
mov eax,DWORD PTR[r10*4+rdi]
|
||||
test r11,-16
|
||||
inc r8b
|
||||
mov r9d,DWORD PTR[r8*4+rdi]
|
||||
test rsi,-8
|
||||
jz $L$loop1
|
||||
bt r8d,30
|
||||
jc $L$intel
|
||||
and rbx,7
|
||||
lea rsi,QWORD PTR[1+r10]
|
||||
jz $L$oop8
|
||||
sub r11,rbx
|
||||
$L$oop8_warmup::
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
mov DWORD PTR[r10*4+rdi],edx
|
||||
add al,dl
|
||||
jmp $L$loop8
|
||||
ALIGN 16
|
||||
$L$loop8::
|
||||
add r12b,r9b
|
||||
mov r10,r8
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r10b
|
||||
mov edx,DWORD PTR[rax*4+rdi]
|
||||
mov eax,DWORD PTR[r10*4+rdi]
|
||||
xor dl,BYTE PTR[r12]
|
||||
mov BYTE PTR[r12*1+r13],dl
|
||||
lea r12,QWORD PTR[1+r12]
|
||||
dec rbx
|
||||
jnz $L$oop8_warmup
|
||||
|
||||
lea rsi,QWORD PTR[1+r10]
|
||||
jmp $L$oop8
|
||||
ALIGN 16
|
||||
$L$oop8::
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
mov ebx,DWORD PTR[rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[r10*4+rdi],edx
|
||||
add dl,al
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add cl,bl
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
mov eax,DWORD PTR[4+rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[4+r10*4+rdi],edx
|
||||
add dl,bl
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
mov ebx,DWORD PTR[8+rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[8+r10*4+rdi],edx
|
||||
add dl,al
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add cl,bl
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
mov eax,DWORD PTR[12+rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[12+r10*4+rdi],edx
|
||||
add dl,bl
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
mov ebx,DWORD PTR[16+rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[16+r10*4+rdi],edx
|
||||
add dl,al
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add cl,bl
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
mov eax,DWORD PTR[20+rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[20+r10*4+rdi],edx
|
||||
add dl,bl
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
mov ebx,DWORD PTR[24+rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[24+r10*4+rdi],edx
|
||||
add dl,al
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add sil,8
|
||||
add cl,bl
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
mov eax,DWORD PTR[((-4))+rsi*4+rdi]
|
||||
ror r8,8
|
||||
mov DWORD PTR[28+r10*4+rdi],edx
|
||||
add dl,bl
|
||||
mov r8b,BYTE PTR[rdx*4+rdi]
|
||||
add r10b,8
|
||||
ror r8,8
|
||||
sub r11,8
|
||||
|
||||
xor r8,QWORD PTR[r12]
|
||||
mov QWORD PTR[r12*1+r13],r8
|
||||
lea r12,QWORD PTR[8+r12]
|
||||
|
||||
test r11,-8
|
||||
jnz $L$oop8
|
||||
cmp r11,0
|
||||
jne $L$loop1
|
||||
jmp $L$exit
|
||||
|
||||
ALIGN 16
|
||||
$L$intel::
|
||||
test r11,-32
|
||||
jz $L$loop1
|
||||
and rbx,15
|
||||
jz $L$oop16_is_hot
|
||||
sub r11,rbx
|
||||
$L$oop16_warmup::
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
mov DWORD PTR[r10*4+rdi],edx
|
||||
add al,dl
|
||||
mov r11d,DWORD PTR[r10*4+rdi]
|
||||
cmp r12,r10
|
||||
mov DWORD PTR[r12*4+rdi],r9d
|
||||
cmove r11,r9
|
||||
mov DWORD PTR[r8*4+rdi],r13d
|
||||
add r13b,r9b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
add r12b,r11b
|
||||
mov r8,r10
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r8b
|
||||
mov r9d,DWORD PTR[r8*4+rdi]
|
||||
cmp r12,r8
|
||||
mov DWORD PTR[r12*4+rdi],r11d
|
||||
cmove r9,r11
|
||||
mov DWORD PTR[r10*4+rdi],r13d
|
||||
add r13b,r11b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
add r12b,r9b
|
||||
mov r10,r8
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r10b
|
||||
mov edx,DWORD PTR[rax*4+rdi]
|
||||
mov eax,DWORD PTR[r10*4+rdi]
|
||||
xor dl,BYTE PTR[r12]
|
||||
mov BYTE PTR[r12*1+r13],dl
|
||||
lea r12,QWORD PTR[1+r12]
|
||||
dec rbx
|
||||
jnz $L$oop16_warmup
|
||||
mov r11d,DWORD PTR[r10*4+rdi]
|
||||
cmp r12,r10
|
||||
mov DWORD PTR[r12*4+rdi],r9d
|
||||
cmove r11,r9
|
||||
mov DWORD PTR[r8*4+rdi],r13d
|
||||
add r13b,r9b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
add r12b,r11b
|
||||
mov r8,r10
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r8b
|
||||
mov r9d,DWORD PTR[r8*4+rdi]
|
||||
cmp r12,r8
|
||||
mov DWORD PTR[r12*4+rdi],r11d
|
||||
cmove r9,r11
|
||||
mov DWORD PTR[r10*4+rdi],r13d
|
||||
add r13b,r11b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
add r12b,r9b
|
||||
mov r10,r8
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r10b
|
||||
mov r11d,DWORD PTR[r10*4+rdi]
|
||||
cmp r12,r10
|
||||
mov DWORD PTR[r12*4+rdi],r9d
|
||||
cmove r11,r9
|
||||
mov DWORD PTR[r8*4+rdi],r13d
|
||||
add r13b,r9b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
add r12b,r11b
|
||||
mov r8,r10
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r8b
|
||||
mov r9d,DWORD PTR[r8*4+rdi]
|
||||
cmp r12,r8
|
||||
mov DWORD PTR[r12*4+rdi],r11d
|
||||
cmove r9,r11
|
||||
mov DWORD PTR[r10*4+rdi],r13d
|
||||
add r13b,r11b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
add r12b,r9b
|
||||
mov r10,r8
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r10b
|
||||
mov r11d,DWORD PTR[r10*4+rdi]
|
||||
cmp r12,r10
|
||||
mov DWORD PTR[r12*4+rdi],r9d
|
||||
cmove r11,r9
|
||||
mov DWORD PTR[r8*4+rdi],r13d
|
||||
add r13b,r9b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
add r12b,r11b
|
||||
mov r8,r10
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
ror rax,8
|
||||
inc r8b
|
||||
mov r9d,DWORD PTR[r8*4+rdi]
|
||||
cmp r12,r8
|
||||
mov DWORD PTR[r12*4+rdi],r11d
|
||||
cmove r9,r11
|
||||
mov DWORD PTR[r10*4+rdi],r13d
|
||||
add r13b,r11b
|
||||
mov al,BYTE PTR[r13*4+rdi]
|
||||
ror rax,8
|
||||
sub rsi,8
|
||||
|
||||
mov rbx,rcx
|
||||
xor rcx,rcx
|
||||
mov cl,bl
|
||||
xor rax,QWORD PTR[rdx]
|
||||
add rdx,8
|
||||
mov QWORD PTR[rcx],rax
|
||||
add rcx,8
|
||||
|
||||
$L$oop16_is_hot::
|
||||
lea rsi,QWORD PTR[r10*4+rdi]
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
pxor xmm0,xmm0
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[4+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],0
|
||||
jmp $L$oop16_enter
|
||||
ALIGN 16
|
||||
$L$oop16::
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
pxor xmm2,xmm0
|
||||
psllq xmm1,8
|
||||
pxor xmm0,xmm0
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[4+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[rsi],edx
|
||||
pxor xmm2,xmm1
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],0
|
||||
movdqu XMMWORD PTR[r12*1+r13],xmm2
|
||||
lea r12,QWORD PTR[16+r12]
|
||||
$L$oop16_enter::
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
pxor xmm1,xmm1
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
mov eax,DWORD PTR[8+rsi]
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[4+rsi],edx
|
||||
add cl,al
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],0
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[12+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[8+rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],1
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
mov eax,DWORD PTR[16+rsi]
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[12+rsi],edx
|
||||
add cl,al
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],1
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[20+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[16+rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],2
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
mov eax,DWORD PTR[24+rsi]
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[20+rsi],edx
|
||||
add cl,al
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],2
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[28+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[24+rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],3
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
mov eax,DWORD PTR[32+rsi]
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[28+rsi],edx
|
||||
add cl,al
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],3
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[36+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[32+rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],4
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
mov eax,DWORD PTR[40+rsi]
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[36+rsi],edx
|
||||
add cl,al
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],4
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[44+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[40+rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],5
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
mov eax,DWORD PTR[48+rsi]
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[44+rsi],edx
|
||||
add cl,al
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],5
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[52+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[48+rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],6
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
mov eax,DWORD PTR[56+rsi]
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[52+rsi],edx
|
||||
add cl,al
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],6
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
add al,dl
|
||||
mov ebx,DWORD PTR[60+rsi]
|
||||
movzx eax,al
|
||||
mov DWORD PTR[56+rsi],edx
|
||||
add cl,bl
|
||||
pinsrw xmm0,WORD PTR[rax*4+rdi],7
|
||||
add r10b,16
|
||||
movdqu xmm2,XMMWORD PTR[r12]
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],ebx
|
||||
add bl,dl
|
||||
movzx ebx,bl
|
||||
mov DWORD PTR[60+rsi],edx
|
||||
lea rsi,QWORD PTR[r10*4+rdi]
|
||||
pinsrw xmm1,WORD PTR[rbx*4+rdi],7
|
||||
mov eax,DWORD PTR[rsi]
|
||||
mov rbx,rcx
|
||||
xor rcx,rcx
|
||||
sub r11,16
|
||||
mov cl,bl
|
||||
test r11,-16
|
||||
jnz $L$oop16
|
||||
|
||||
psllq xmm1,8
|
||||
pxor xmm2,xmm0
|
||||
pxor xmm2,xmm1
|
||||
movdqu XMMWORD PTR[r12*1+r13],xmm2
|
||||
lea r12,QWORD PTR[16+r12]
|
||||
|
||||
cmp r11,0
|
||||
test rsi,-8
|
||||
jnz $L$loop8
|
||||
cmp rsi,0
|
||||
jne $L$loop1
|
||||
jmp $L$exit
|
||||
|
||||
ALIGN 16
|
||||
$L$loop1::
|
||||
add cl,al
|
||||
mov edx,DWORD PTR[rcx*4+rdi]
|
||||
mov DWORD PTR[rcx*4+rdi],eax
|
||||
mov DWORD PTR[r10*4+rdi],edx
|
||||
add al,dl
|
||||
inc r10b
|
||||
mov edx,DWORD PTR[rax*4+rdi]
|
||||
mov eax,DWORD PTR[r10*4+rdi]
|
||||
xor dl,BYTE PTR[r12]
|
||||
mov BYTE PTR[r12*1+r13],dl
|
||||
lea r12,QWORD PTR[1+r12]
|
||||
dec r11
|
||||
add r12b,r9b
|
||||
mov r13d,DWORD PTR[r12*4+rdi]
|
||||
mov DWORD PTR[r12*4+rdi],r9d
|
||||
mov DWORD PTR[r8*4+rdi],r13d
|
||||
add r9b,r13b
|
||||
inc r8b
|
||||
mov r13d,DWORD PTR[r9*4+rdi]
|
||||
mov r9d,DWORD PTR[r8*4+rdi]
|
||||
xor r13b,BYTE PTR[rdx]
|
||||
inc rdx
|
||||
mov BYTE PTR[rcx],r13b
|
||||
inc rcx
|
||||
dec rsi
|
||||
jnz $L$loop1
|
||||
jmp $L$exit
|
||||
|
||||
ALIGN 16
|
||||
$L$RC4_CHAR::
|
||||
add r10b,1
|
||||
movzx eax,BYTE PTR[r10*1+rdi]
|
||||
test r11,-8
|
||||
add r8b,1
|
||||
movzx r9d,BYTE PTR[r8*1+rdi]
|
||||
test rsi,-8
|
||||
jz $L$cloop1
|
||||
cmp DWORD PTR[260+rdi],0
|
||||
jnz $L$cloop1
|
||||
jmp $L$cloop8
|
||||
ALIGN 16
|
||||
$L$cloop8::
|
||||
mov r8d,DWORD PTR[r12]
|
||||
mov r9d,DWORD PTR[4+r12]
|
||||
add cl,al
|
||||
lea rsi,QWORD PTR[1+r10]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx esi,sil
|
||||
movzx ebx,BYTE PTR[rsi*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],al
|
||||
cmp rcx,rsi
|
||||
mov BYTE PTR[r10*1+rdi],dl
|
||||
mov eax,DWORD PTR[rdx]
|
||||
mov ebx,DWORD PTR[4+rdx]
|
||||
add r12b,r9b
|
||||
lea r10,QWORD PTR[1+r8]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx r11d,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r9b
|
||||
cmp r12,r10
|
||||
mov BYTE PTR[r8*1+rdi],r13b
|
||||
jne $L$cmov0
|
||||
|
||||
mov rbx,rax
|
||||
mov r11,r9
|
||||
$L$cmov0::
|
||||
add dl,al
|
||||
xor r8b,BYTE PTR[rdx*1+rdi]
|
||||
ror r8d,8
|
||||
add cl,bl
|
||||
lea r10,QWORD PTR[1+rsi]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx eax,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],bl
|
||||
cmp rcx,r10
|
||||
mov BYTE PTR[rsi*1+rdi],dl
|
||||
add r13b,r9b
|
||||
xor al,BYTE PTR[r13*1+rdi]
|
||||
ror eax,8
|
||||
add r12b,r11b
|
||||
lea r8,QWORD PTR[1+r10]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r8d,r8b
|
||||
movzx r9d,BYTE PTR[r8*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r11b
|
||||
cmp r12,r8
|
||||
mov BYTE PTR[r10*1+rdi],r13b
|
||||
jne $L$cmov1
|
||||
|
||||
mov rax,rbx
|
||||
mov r9,r11
|
||||
$L$cmov1::
|
||||
add dl,bl
|
||||
xor r8b,BYTE PTR[rdx*1+rdi]
|
||||
ror r8d,8
|
||||
add cl,al
|
||||
lea rsi,QWORD PTR[1+r10]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx esi,sil
|
||||
movzx ebx,BYTE PTR[rsi*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],al
|
||||
cmp rcx,rsi
|
||||
mov BYTE PTR[r10*1+rdi],dl
|
||||
add r13b,r11b
|
||||
xor al,BYTE PTR[r13*1+rdi]
|
||||
ror eax,8
|
||||
add r12b,r9b
|
||||
lea r10,QWORD PTR[1+r8]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx r11d,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r9b
|
||||
cmp r12,r10
|
||||
mov BYTE PTR[r8*1+rdi],r13b
|
||||
jne $L$cmov2
|
||||
|
||||
mov rbx,rax
|
||||
mov r11,r9
|
||||
$L$cmov2::
|
||||
add dl,al
|
||||
xor r8b,BYTE PTR[rdx*1+rdi]
|
||||
ror r8d,8
|
||||
add cl,bl
|
||||
lea r10,QWORD PTR[1+rsi]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx eax,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],bl
|
||||
cmp rcx,r10
|
||||
mov BYTE PTR[rsi*1+rdi],dl
|
||||
add r13b,r9b
|
||||
xor al,BYTE PTR[r13*1+rdi]
|
||||
ror eax,8
|
||||
add r12b,r11b
|
||||
lea r8,QWORD PTR[1+r10]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r8d,r8b
|
||||
movzx r9d,BYTE PTR[r8*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r11b
|
||||
cmp r12,r8
|
||||
mov BYTE PTR[r10*1+rdi],r13b
|
||||
jne $L$cmov3
|
||||
|
||||
mov rax,rbx
|
||||
mov r9,r11
|
||||
$L$cmov3::
|
||||
add dl,bl
|
||||
xor r8b,BYTE PTR[rdx*1+rdi]
|
||||
ror r8d,8
|
||||
add cl,al
|
||||
lea rsi,QWORD PTR[1+r10]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx esi,sil
|
||||
movzx ebx,BYTE PTR[rsi*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],al
|
||||
cmp rcx,rsi
|
||||
mov BYTE PTR[r10*1+rdi],dl
|
||||
add r13b,r11b
|
||||
xor al,BYTE PTR[r13*1+rdi]
|
||||
ror eax,8
|
||||
add r12b,r9b
|
||||
lea r10,QWORD PTR[1+r8]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx r11d,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r9b
|
||||
cmp r12,r10
|
||||
mov BYTE PTR[r8*1+rdi],r13b
|
||||
jne $L$cmov4
|
||||
|
||||
mov rbx,rax
|
||||
mov r11,r9
|
||||
$L$cmov4::
|
||||
add dl,al
|
||||
xor r9b,BYTE PTR[rdx*1+rdi]
|
||||
ror r9d,8
|
||||
add cl,bl
|
||||
lea r10,QWORD PTR[1+rsi]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx eax,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],bl
|
||||
cmp rcx,r10
|
||||
mov BYTE PTR[rsi*1+rdi],dl
|
||||
add r13b,r9b
|
||||
xor bl,BYTE PTR[r13*1+rdi]
|
||||
ror ebx,8
|
||||
add r12b,r11b
|
||||
lea r8,QWORD PTR[1+r10]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r8d,r8b
|
||||
movzx r9d,BYTE PTR[r8*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r11b
|
||||
cmp r12,r8
|
||||
mov BYTE PTR[r10*1+rdi],r13b
|
||||
jne $L$cmov5
|
||||
|
||||
mov rax,rbx
|
||||
mov r9,r11
|
||||
$L$cmov5::
|
||||
add dl,bl
|
||||
xor r9b,BYTE PTR[rdx*1+rdi]
|
||||
ror r9d,8
|
||||
add cl,al
|
||||
lea rsi,QWORD PTR[1+r10]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx esi,sil
|
||||
movzx ebx,BYTE PTR[rsi*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],al
|
||||
cmp rcx,rsi
|
||||
mov BYTE PTR[r10*1+rdi],dl
|
||||
add r13b,r11b
|
||||
xor bl,BYTE PTR[r13*1+rdi]
|
||||
ror ebx,8
|
||||
add r12b,r9b
|
||||
lea r10,QWORD PTR[1+r8]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx r11d,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r9b
|
||||
cmp r12,r10
|
||||
mov BYTE PTR[r8*1+rdi],r13b
|
||||
jne $L$cmov6
|
||||
|
||||
mov rbx,rax
|
||||
mov r11,r9
|
||||
$L$cmov6::
|
||||
add dl,al
|
||||
xor r9b,BYTE PTR[rdx*1+rdi]
|
||||
ror r9d,8
|
||||
add cl,bl
|
||||
lea r10,QWORD PTR[1+rsi]
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
movzx r10d,r10b
|
||||
movzx eax,BYTE PTR[r10*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],bl
|
||||
cmp rcx,r10
|
||||
mov BYTE PTR[rsi*1+rdi],dl
|
||||
add r13b,r9b
|
||||
xor bl,BYTE PTR[r13*1+rdi]
|
||||
ror ebx,8
|
||||
add r12b,r11b
|
||||
lea r8,QWORD PTR[1+r10]
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
movzx r8d,r8b
|
||||
movzx r9d,BYTE PTR[r8*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r11b
|
||||
cmp r12,r8
|
||||
mov BYTE PTR[r10*1+rdi],r13b
|
||||
jne $L$cmov7
|
||||
|
||||
mov rax,rbx
|
||||
mov r9,r11
|
||||
$L$cmov7::
|
||||
add dl,bl
|
||||
xor r9b,BYTE PTR[rdx*1+rdi]
|
||||
ror r9d,8
|
||||
lea r11,QWORD PTR[((-8))+r11]
|
||||
mov DWORD PTR[r13],r8d
|
||||
lea r12,QWORD PTR[8+r12]
|
||||
mov DWORD PTR[4+r13],r9d
|
||||
lea r13,QWORD PTR[8+r13]
|
||||
add r13b,r11b
|
||||
xor bl,BYTE PTR[r13*1+rdi]
|
||||
ror ebx,8
|
||||
lea rsi,QWORD PTR[((-8))+rsi]
|
||||
mov DWORD PTR[rcx],eax
|
||||
lea rdx,QWORD PTR[8+rdx]
|
||||
mov DWORD PTR[4+rcx],ebx
|
||||
lea rcx,QWORD PTR[8+rcx]
|
||||
|
||||
test r11,-8
|
||||
test rsi,-8
|
||||
jnz $L$cloop8
|
||||
cmp r11,0
|
||||
cmp rsi,0
|
||||
jne $L$cloop1
|
||||
jmp $L$exit
|
||||
ALIGN 16
|
||||
$L$cloop1::
|
||||
add cl,al
|
||||
movzx ecx,cl
|
||||
movzx edx,BYTE PTR[rcx*1+rdi]
|
||||
mov BYTE PTR[rcx*1+rdi],al
|
||||
mov BYTE PTR[r10*1+rdi],dl
|
||||
add dl,al
|
||||
add r10b,1
|
||||
movzx edx,dl
|
||||
movzx r10d,r10b
|
||||
movzx edx,BYTE PTR[rdx*1+rdi]
|
||||
movzx eax,BYTE PTR[r10*1+rdi]
|
||||
xor dl,BYTE PTR[r12]
|
||||
lea r12,QWORD PTR[1+r12]
|
||||
mov BYTE PTR[r13],dl
|
||||
lea r13,QWORD PTR[1+r13]
|
||||
sub r11,1
|
||||
add r12b,r9b
|
||||
movzx r13d,BYTE PTR[r12*1+rdi]
|
||||
mov BYTE PTR[r12*1+rdi],r9b
|
||||
mov BYTE PTR[r8*1+rdi],r13b
|
||||
add r13b,r9b
|
||||
add r8b,1
|
||||
movzx r13d,r13b
|
||||
movzx r8d,r8b
|
||||
movzx r13d,BYTE PTR[r13*1+rdi]
|
||||
movzx r9d,BYTE PTR[r8*1+rdi]
|
||||
xor r13b,BYTE PTR[rdx]
|
||||
lea rdx,QWORD PTR[1+rdx]
|
||||
mov BYTE PTR[rcx],r13b
|
||||
lea rcx,QWORD PTR[1+rcx]
|
||||
sub rsi,1
|
||||
jnz $L$cloop1
|
||||
jmp $L$exit
|
||||
|
||||
ALIGN 16
|
||||
$L$exit::
|
||||
sub r10b,1
|
||||
mov DWORD PTR[((-8))+rdi],r10d
|
||||
mov DWORD PTR[((-4))+rdi],ecx
|
||||
sub r8b,1
|
||||
mov DWORD PTR[((-8))+rdi],r8d
|
||||
mov DWORD PTR[((-4))+rdi],r12d
|
||||
|
||||
mov r13,QWORD PTR[rsp]
|
||||
mov r12,QWORD PTR[8+rsp]
|
||||
@ -541,14 +345,15 @@ $L$epilogue::
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_RC4::
|
||||
RC4 ENDP
|
||||
PUBLIC private_RC4_set_key
|
||||
EXTERN OPENSSL_ia32cap_P:NEAR
|
||||
PUBLIC RC4_set_key
|
||||
|
||||
ALIGN 16
|
||||
private_RC4_set_key PROC PUBLIC
|
||||
RC4_set_key PROC PUBLIC
|
||||
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD PTR[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_private_RC4_set_key::
|
||||
$L$SEH_begin_RC4_set_key::
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@ -565,8 +370,11 @@ $L$SEH_begin_private_RC4_set_key::
|
||||
|
||||
mov r8d,DWORD PTR[OPENSSL_ia32cap_P]
|
||||
bt r8d,20
|
||||
jc $L$c1stloop
|
||||
jmp $L$w1stloop
|
||||
jnc $L$w1stloop
|
||||
bt r8d,30
|
||||
setc r9b
|
||||
mov DWORD PTR[260+rdi],r9d
|
||||
jmp $L$c1stloop
|
||||
|
||||
ALIGN 16
|
||||
$L$w1stloop::
|
||||
@ -622,8 +430,8 @@ $L$exit_key::
|
||||
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD PTR[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_private_RC4_set_key::
|
||||
private_RC4_set_key ENDP
|
||||
$L$SEH_end_RC4_set_key::
|
||||
RC4_set_key ENDP
|
||||
|
||||
PUBLIC RC4_options
|
||||
|
||||
@ -632,20 +440,18 @@ RC4_options PROC PUBLIC
|
||||
lea rax,QWORD PTR[$L$opts]
|
||||
mov edx,DWORD PTR[OPENSSL_ia32cap_P]
|
||||
bt edx,20
|
||||
jc $L$8xchar
|
||||
jnc $L$done
|
||||
add rax,12
|
||||
bt edx,30
|
||||
jnc $L$done
|
||||
add rax,25
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$8xchar::
|
||||
add rax,12
|
||||
add rax,13
|
||||
$L$done::
|
||||
DB 0F3h,0C3h ;repret
|
||||
ALIGN 64
|
||||
$L$opts::
|
||||
DB 114,99,52,40,56,120,44,105,110,116,41,0
|
||||
DB 114,99,52,40,56,120,44,99,104,97,114,41,0
|
||||
DB 114,99,52,40,49,54,120,44,105,110,116,41,0
|
||||
DB 114,99,52,40,49,120,44,99,104,97,114,41,0
|
||||
DB 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32
|
||||
DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
|
||||
DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
|
||||
@ -762,9 +568,9 @@ ALIGN 4
|
||||
DD imagerel $L$SEH_end_RC4
|
||||
DD imagerel $L$SEH_info_RC4
|
||||
|
||||
DD imagerel $L$SEH_begin_private_RC4_set_key
|
||||
DD imagerel $L$SEH_end_private_RC4_set_key
|
||||
DD imagerel $L$SEH_info_private_RC4_set_key
|
||||
DD imagerel $L$SEH_begin_RC4_set_key
|
||||
DD imagerel $L$SEH_end_RC4_set_key
|
||||
DD imagerel $L$SEH_info_RC4_set_key
|
||||
|
||||
.pdata ENDS
|
||||
.xdata SEGMENT READONLY ALIGN(8)
|
||||
@ -772,7 +578,7 @@ ALIGN 8
|
||||
$L$SEH_info_RC4::
|
||||
DB 9,0,0,0
|
||||
DD imagerel stream_se_handler
|
||||
$L$SEH_info_private_RC4_set_key::
|
||||
$L$SEH_info_RC4_set_key::
|
||||
DB 9,0,0,0
|
||||
DD imagerel key_se_handler
|
||||
|
||||
|
3736
deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm
vendored
3736
deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm
vendored
File diff suppressed because it is too large
Load Diff
2720
deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm
vendored
2720
deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -37,39 +37,39 @@ $L$prologue::
|
||||
|
||||
xor rcx,rcx
|
||||
xor rdx,rdx
|
||||
mov r8,QWORD PTR[rdi]
|
||||
mov r9,QWORD PTR[8+rdi]
|
||||
mov r10,QWORD PTR[16+rdi]
|
||||
mov r11,QWORD PTR[24+rdi]
|
||||
mov r12,QWORD PTR[32+rdi]
|
||||
mov r13,QWORD PTR[40+rdi]
|
||||
mov r14,QWORD PTR[48+rdi]
|
||||
mov r15,QWORD PTR[56+rdi]
|
||||
mov r8,QWORD PTR[((0*8))+rdi]
|
||||
mov r9,QWORD PTR[((1*8))+rdi]
|
||||
mov r10,QWORD PTR[((2*8))+rdi]
|
||||
mov r11,QWORD PTR[((3*8))+rdi]
|
||||
mov r12,QWORD PTR[((4*8))+rdi]
|
||||
mov r13,QWORD PTR[((5*8))+rdi]
|
||||
mov r14,QWORD PTR[((6*8))+rdi]
|
||||
mov r15,QWORD PTR[((7*8))+rdi]
|
||||
$L$outerloop::
|
||||
mov QWORD PTR[rsp],r8
|
||||
mov QWORD PTR[8+rsp],r9
|
||||
mov QWORD PTR[16+rsp],r10
|
||||
mov QWORD PTR[24+rsp],r11
|
||||
mov QWORD PTR[32+rsp],r12
|
||||
mov QWORD PTR[40+rsp],r13
|
||||
mov QWORD PTR[48+rsp],r14
|
||||
mov QWORD PTR[56+rsp],r15
|
||||
xor r8,QWORD PTR[rsi]
|
||||
xor r9,QWORD PTR[8+rsi]
|
||||
xor r10,QWORD PTR[16+rsi]
|
||||
xor r11,QWORD PTR[24+rsi]
|
||||
xor r12,QWORD PTR[32+rsi]
|
||||
xor r13,QWORD PTR[40+rsi]
|
||||
xor r14,QWORD PTR[48+rsi]
|
||||
xor r15,QWORD PTR[56+rsi]
|
||||
mov QWORD PTR[((64+0))+rsp],r8
|
||||
mov QWORD PTR[((64+8))+rsp],r9
|
||||
mov QWORD PTR[((64+16))+rsp],r10
|
||||
mov QWORD PTR[((64+24))+rsp],r11
|
||||
mov QWORD PTR[((64+32))+rsp],r12
|
||||
mov QWORD PTR[((64+40))+rsp],r13
|
||||
mov QWORD PTR[((64+48))+rsp],r14
|
||||
mov QWORD PTR[((64+56))+rsp],r15
|
||||
mov QWORD PTR[((0*8))+rsp],r8
|
||||
mov QWORD PTR[((1*8))+rsp],r9
|
||||
mov QWORD PTR[((2*8))+rsp],r10
|
||||
mov QWORD PTR[((3*8))+rsp],r11
|
||||
mov QWORD PTR[((4*8))+rsp],r12
|
||||
mov QWORD PTR[((5*8))+rsp],r13
|
||||
mov QWORD PTR[((6*8))+rsp],r14
|
||||
mov QWORD PTR[((7*8))+rsp],r15
|
||||
xor r8,QWORD PTR[((0*8))+rsi]
|
||||
xor r9,QWORD PTR[((1*8))+rsi]
|
||||
xor r10,QWORD PTR[((2*8))+rsi]
|
||||
xor r11,QWORD PTR[((3*8))+rsi]
|
||||
xor r12,QWORD PTR[((4*8))+rsi]
|
||||
xor r13,QWORD PTR[((5*8))+rsi]
|
||||
xor r14,QWORD PTR[((6*8))+rsi]
|
||||
xor r15,QWORD PTR[((7*8))+rsi]
|
||||
mov QWORD PTR[((64+0*8))+rsp],r8
|
||||
mov QWORD PTR[((64+1*8))+rsp],r9
|
||||
mov QWORD PTR[((64+2*8))+rsp],r10
|
||||
mov QWORD PTR[((64+3*8))+rsp],r11
|
||||
mov QWORD PTR[((64+4*8))+rsp],r12
|
||||
mov QWORD PTR[((64+5*8))+rsp],r13
|
||||
mov QWORD PTR[((64+6*8))+rsp],r14
|
||||
mov QWORD PTR[((64+7*8))+rsp],r15
|
||||
xor rsi,rsi
|
||||
mov QWORD PTR[24+rbx],rsi
|
||||
ALIGN 16
|
||||
@ -86,7 +86,7 @@ $L$round::
|
||||
mov r9,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((0+8))+rsp]
|
||||
mov eax,DWORD PTR[((0*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
mov r10,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -100,7 +100,7 @@ $L$round::
|
||||
mov r13,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((0+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((0*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
mov r14,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -114,7 +114,7 @@ $L$round::
|
||||
xor r10,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((8+8))+rsp]
|
||||
mov eax,DWORD PTR[((1*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r11,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -128,7 +128,7 @@ $L$round::
|
||||
xor r14,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((8+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((1*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r15,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -142,7 +142,7 @@ $L$round::
|
||||
xor r11,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((16+8))+rsp]
|
||||
mov eax,DWORD PTR[((2*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r12,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -156,7 +156,7 @@ $L$round::
|
||||
xor r15,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((16+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((2*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r8,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -170,7 +170,7 @@ $L$round::
|
||||
xor r12,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((24+8))+rsp]
|
||||
mov eax,DWORD PTR[((3*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r13,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -184,7 +184,7 @@ $L$round::
|
||||
xor r8,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((24+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((3*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r9,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -198,7 +198,7 @@ $L$round::
|
||||
xor r13,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((32+8))+rsp]
|
||||
mov eax,DWORD PTR[((4*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r14,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -212,7 +212,7 @@ $L$round::
|
||||
xor r9,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((32+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((4*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r10,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -226,7 +226,7 @@ $L$round::
|
||||
xor r14,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((40+8))+rsp]
|
||||
mov eax,DWORD PTR[((5*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r15,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -240,7 +240,7 @@ $L$round::
|
||||
xor r10,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((40+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((5*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r11,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -254,7 +254,7 @@ $L$round::
|
||||
xor r15,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((48+8))+rsp]
|
||||
mov eax,DWORD PTR[((6*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r8,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -268,7 +268,7 @@ $L$round::
|
||||
xor r11,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((48+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((6*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r12,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -282,7 +282,7 @@ $L$round::
|
||||
xor r8,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((56+8))+rsp]
|
||||
mov eax,DWORD PTR[((7*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r9,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -296,19 +296,19 @@ $L$round::
|
||||
xor r12,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((56+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((7*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r13,QWORD PTR[2+rsi*8+rbp]
|
||||
xor r14,QWORD PTR[1+rdi*8+rbp]
|
||||
mov QWORD PTR[rsp],r8
|
||||
mov QWORD PTR[8+rsp],r9
|
||||
mov QWORD PTR[16+rsp],r10
|
||||
mov QWORD PTR[24+rsp],r11
|
||||
mov QWORD PTR[32+rsp],r12
|
||||
mov QWORD PTR[40+rsp],r13
|
||||
mov QWORD PTR[48+rsp],r14
|
||||
mov QWORD PTR[56+rsp],r15
|
||||
mov QWORD PTR[((0*8))+rsp],r8
|
||||
mov QWORD PTR[((1*8))+rsp],r9
|
||||
mov QWORD PTR[((2*8))+rsp],r10
|
||||
mov QWORD PTR[((3*8))+rsp],r11
|
||||
mov QWORD PTR[((4*8))+rsp],r12
|
||||
mov QWORD PTR[((5*8))+rsp],r13
|
||||
mov QWORD PTR[((6*8))+rsp],r14
|
||||
mov QWORD PTR[((7*8))+rsp],r15
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
@ -318,7 +318,7 @@ $L$round::
|
||||
xor r9,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((64+0+8))+rsp]
|
||||
mov eax,DWORD PTR[((64+0*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r10,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -332,7 +332,7 @@ $L$round::
|
||||
xor r13,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((64+0+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((64+0*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r14,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -346,7 +346,7 @@ $L$round::
|
||||
xor r10,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((64+8+8))+rsp]
|
||||
mov eax,DWORD PTR[((64+1*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r11,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -360,7 +360,7 @@ $L$round::
|
||||
xor r14,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((64+8+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((64+1*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r15,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -374,7 +374,7 @@ $L$round::
|
||||
xor r11,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((64+16+8))+rsp]
|
||||
mov eax,DWORD PTR[((64+2*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r12,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -388,7 +388,7 @@ $L$round::
|
||||
xor r15,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((64+16+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((64+2*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r8,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -402,7 +402,7 @@ $L$round::
|
||||
xor r12,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((64+24+8))+rsp]
|
||||
mov eax,DWORD PTR[((64+3*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r13,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -416,7 +416,7 @@ $L$round::
|
||||
xor r8,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((64+24+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((64+3*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r9,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -430,7 +430,7 @@ $L$round::
|
||||
xor r13,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((64+32+8))+rsp]
|
||||
mov eax,DWORD PTR[((64+4*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r14,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -444,7 +444,7 @@ $L$round::
|
||||
xor r9,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((64+32+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((64+4*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r10,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -458,7 +458,7 @@ $L$round::
|
||||
xor r14,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((64+40+8))+rsp]
|
||||
mov eax,DWORD PTR[((64+5*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r15,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -472,7 +472,7 @@ $L$round::
|
||||
xor r10,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((64+40+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((64+5*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r11,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -486,7 +486,7 @@ $L$round::
|
||||
xor r15,QWORD PTR[7+rdi*8+rbp]
|
||||
mov cl,al
|
||||
mov dl,ah
|
||||
mov eax,DWORD PTR[((64+48+8))+rsp]
|
||||
mov eax,DWORD PTR[((64+6*8+8))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r8,QWORD PTR[6+rsi*8+rbp]
|
||||
@ -500,7 +500,7 @@ $L$round::
|
||||
xor r11,QWORD PTR[3+rdi*8+rbp]
|
||||
mov cl,bl
|
||||
mov dl,bh
|
||||
mov ebx,DWORD PTR[((64+48+8+4))+rsp]
|
||||
mov ebx,DWORD PTR[((64+6*8+8+4))+rsp]
|
||||
lea rsi,QWORD PTR[rcx*1+rcx]
|
||||
lea rdi,QWORD PTR[rdx*1+rdx]
|
||||
xor r12,QWORD PTR[2+rsi*8+rbp]
|
||||
@ -540,44 +540,44 @@ $L$round::
|
||||
je $L$roundsdone
|
||||
|
||||
mov QWORD PTR[24+rbx],rsi
|
||||
mov QWORD PTR[((64+0))+rsp],r8
|
||||
mov QWORD PTR[((64+8))+rsp],r9
|
||||
mov QWORD PTR[((64+16))+rsp],r10
|
||||
mov QWORD PTR[((64+24))+rsp],r11
|
||||
mov QWORD PTR[((64+32))+rsp],r12
|
||||
mov QWORD PTR[((64+40))+rsp],r13
|
||||
mov QWORD PTR[((64+48))+rsp],r14
|
||||
mov QWORD PTR[((64+56))+rsp],r15
|
||||
mov QWORD PTR[((64+0*8))+rsp],r8
|
||||
mov QWORD PTR[((64+1*8))+rsp],r9
|
||||
mov QWORD PTR[((64+2*8))+rsp],r10
|
||||
mov QWORD PTR[((64+3*8))+rsp],r11
|
||||
mov QWORD PTR[((64+4*8))+rsp],r12
|
||||
mov QWORD PTR[((64+5*8))+rsp],r13
|
||||
mov QWORD PTR[((64+6*8))+rsp],r14
|
||||
mov QWORD PTR[((64+7*8))+rsp],r15
|
||||
jmp $L$round
|
||||
ALIGN 16
|
||||
$L$roundsdone::
|
||||
mov rdi,QWORD PTR[rbx]
|
||||
mov rsi,QWORD PTR[8+rbx]
|
||||
mov rax,QWORD PTR[16+rbx]
|
||||
xor r8,QWORD PTR[rsi]
|
||||
xor r9,QWORD PTR[8+rsi]
|
||||
xor r10,QWORD PTR[16+rsi]
|
||||
xor r11,QWORD PTR[24+rsi]
|
||||
xor r12,QWORD PTR[32+rsi]
|
||||
xor r13,QWORD PTR[40+rsi]
|
||||
xor r14,QWORD PTR[48+rsi]
|
||||
xor r15,QWORD PTR[56+rsi]
|
||||
xor r8,QWORD PTR[rdi]
|
||||
xor r9,QWORD PTR[8+rdi]
|
||||
xor r10,QWORD PTR[16+rdi]
|
||||
xor r11,QWORD PTR[24+rdi]
|
||||
xor r12,QWORD PTR[32+rdi]
|
||||
xor r13,QWORD PTR[40+rdi]
|
||||
xor r14,QWORD PTR[48+rdi]
|
||||
xor r15,QWORD PTR[56+rdi]
|
||||
mov QWORD PTR[rdi],r8
|
||||
mov QWORD PTR[8+rdi],r9
|
||||
mov QWORD PTR[16+rdi],r10
|
||||
mov QWORD PTR[24+rdi],r11
|
||||
mov QWORD PTR[32+rdi],r12
|
||||
mov QWORD PTR[40+rdi],r13
|
||||
mov QWORD PTR[48+rdi],r14
|
||||
mov QWORD PTR[56+rdi],r15
|
||||
xor r8,QWORD PTR[((0*8))+rsi]
|
||||
xor r9,QWORD PTR[((1*8))+rsi]
|
||||
xor r10,QWORD PTR[((2*8))+rsi]
|
||||
xor r11,QWORD PTR[((3*8))+rsi]
|
||||
xor r12,QWORD PTR[((4*8))+rsi]
|
||||
xor r13,QWORD PTR[((5*8))+rsi]
|
||||
xor r14,QWORD PTR[((6*8))+rsi]
|
||||
xor r15,QWORD PTR[((7*8))+rsi]
|
||||
xor r8,QWORD PTR[((0*8))+rdi]
|
||||
xor r9,QWORD PTR[((1*8))+rdi]
|
||||
xor r10,QWORD PTR[((2*8))+rdi]
|
||||
xor r11,QWORD PTR[((3*8))+rdi]
|
||||
xor r12,QWORD PTR[((4*8))+rdi]
|
||||
xor r13,QWORD PTR[((5*8))+rdi]
|
||||
xor r14,QWORD PTR[((6*8))+rdi]
|
||||
xor r15,QWORD PTR[((7*8))+rdi]
|
||||
mov QWORD PTR[((0*8))+rdi],r8
|
||||
mov QWORD PTR[((1*8))+rdi],r9
|
||||
mov QWORD PTR[((2*8))+rdi],r10
|
||||
mov QWORD PTR[((3*8))+rdi],r11
|
||||
mov QWORD PTR[((4*8))+rdi],r12
|
||||
mov QWORD PTR[((5*8))+rdi],r13
|
||||
mov QWORD PTR[((6*8))+rdi],r14
|
||||
mov QWORD PTR[((7*8))+rdi],r15
|
||||
lea rsi,QWORD PTR[64+rsi]
|
||||
sub rax,1
|
||||
jz $L$alldone
|
||||
|
72
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm
vendored
72
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm
vendored
@ -1,15 +1,9 @@
|
||||
OPTION DOTNAME
|
||||
EXTERN OPENSSL_cpuid_setup:NEAR
|
||||
|
||||
.CRT$XCU SEGMENT READONLY ALIGN(8)
|
||||
DQ OPENSSL_cpuid_setup
|
||||
|
||||
|
||||
.CRT$XCU ENDS
|
||||
_DATA SEGMENT
|
||||
COMM OPENSSL_ia32cap_P:DWORD:2
|
||||
|
||||
_DATA ENDS
|
||||
.text$ SEGMENT ALIGN(64) 'CODE'
|
||||
|
||||
PUBLIC OPENSSL_atomic_add
|
||||
@ -74,15 +68,7 @@ OPENSSL_ia32_cpuid PROC PUBLIC
|
||||
|
||||
mov eax,080000000h
|
||||
cpuid
|
||||
cmp eax,080000001h
|
||||
jb $L$intel
|
||||
mov r10d,eax
|
||||
mov eax,080000001h
|
||||
cpuid
|
||||
or r9d,ecx
|
||||
and r9d,000000801h
|
||||
|
||||
cmp r10d,080000008h
|
||||
cmp eax,080000008h
|
||||
jb $L$intel
|
||||
|
||||
mov eax,080000008h
|
||||
@ -93,12 +79,12 @@ OPENSSL_ia32_cpuid PROC PUBLIC
|
||||
mov eax,1
|
||||
cpuid
|
||||
bt edx,28
|
||||
jnc $L$generic
|
||||
jnc $L$done
|
||||
shr ebx,16
|
||||
cmp bl,r10b
|
||||
ja $L$generic
|
||||
ja $L$done
|
||||
and edx,0efffffffh
|
||||
jmp $L$generic
|
||||
jmp $L$done
|
||||
|
||||
$L$intel::
|
||||
cmp r11d,4
|
||||
@ -115,48 +101,30 @@ $L$intel::
|
||||
$L$nocacheinfo::
|
||||
mov eax,1
|
||||
cpuid
|
||||
and edx,0bfefffffh
|
||||
cmp r9d,0
|
||||
jne $L$notintel
|
||||
or edx,040000000h
|
||||
or edx,000100000h
|
||||
and ah,15
|
||||
cmp ah,15
|
||||
jne $L$notintel
|
||||
or edx,000100000h
|
||||
je $L$notintel
|
||||
or edx,040000000h
|
||||
$L$notintel::
|
||||
bt edx,28
|
||||
jnc $L$generic
|
||||
jnc $L$done
|
||||
and edx,0efffffffh
|
||||
cmp r10d,0
|
||||
je $L$generic
|
||||
je $L$done
|
||||
|
||||
or edx,010000000h
|
||||
shr ebx,16
|
||||
cmp bl,1
|
||||
ja $L$generic
|
||||
ja $L$done
|
||||
and edx,0efffffffh
|
||||
$L$generic::
|
||||
and r9d,000000800h
|
||||
and ecx,0fffff7ffh
|
||||
or r9d,ecx
|
||||
|
||||
mov r10d,edx
|
||||
bt r9d,27
|
||||
jnc $L$clear_avx
|
||||
xor ecx,ecx
|
||||
DB 00fh,001h,0d0h
|
||||
|
||||
and eax,6
|
||||
cmp eax,6
|
||||
je $L$done
|
||||
$L$clear_avx::
|
||||
mov eax,0efffe7ffh
|
||||
and r9d,eax
|
||||
$L$done::
|
||||
shl r9,32
|
||||
mov eax,r10d
|
||||
shl rcx,32
|
||||
mov eax,edx
|
||||
mov rbx,r8
|
||||
or rax,r9
|
||||
or rax,rcx
|
||||
DB 0F3h,0C3h ;repret
|
||||
OPENSSL_ia32_cpuid ENDP
|
||||
|
||||
@ -213,20 +181,6 @@ OPENSSL_wipe_cpu PROC PUBLIC
|
||||
lea rax,QWORD PTR[8+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
OPENSSL_wipe_cpu ENDP
|
||||
PUBLIC OPENSSL_ia32_rdrand
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_ia32_rdrand PROC PUBLIC
|
||||
mov ecx,8
|
||||
$L$oop_rdrand::
|
||||
DB 72,15,199,240
|
||||
jc $L$break_rdrand
|
||||
loop $L$oop_rdrand
|
||||
$L$break_rdrand::
|
||||
cmp rax,0
|
||||
cmove rax,rcx
|
||||
DB 0F3h,0C3h ;repret
|
||||
OPENSSL_ia32_rdrand ENDP
|
||||
|
||||
.text$ ENDS
|
||||
END
|
||||
|
22
deps/openssl/asm/x86-elf-gas/aes/aes-586.s
vendored
22
deps/openssl/asm/x86-elf-gas/aes/aes-586.s
vendored
@ -2986,19 +2986,19 @@ _x86_AES_set_encrypt_key:
|
||||
popl %ebp
|
||||
ret
|
||||
.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
|
||||
.globl private_AES_set_encrypt_key
|
||||
.type private_AES_set_encrypt_key,@function
|
||||
.globl AES_set_encrypt_key
|
||||
.type AES_set_encrypt_key,@function
|
||||
.align 16
|
||||
private_AES_set_encrypt_key:
|
||||
.L_private_AES_set_encrypt_key_begin:
|
||||
AES_set_encrypt_key:
|
||||
.L_AES_set_encrypt_key_begin:
|
||||
call _x86_AES_set_encrypt_key
|
||||
ret
|
||||
.size private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin
|
||||
.globl private_AES_set_decrypt_key
|
||||
.type private_AES_set_decrypt_key,@function
|
||||
.size AES_set_encrypt_key,.-.L_AES_set_encrypt_key_begin
|
||||
.globl AES_set_decrypt_key
|
||||
.type AES_set_decrypt_key,@function
|
||||
.align 16
|
||||
private_AES_set_decrypt_key:
|
||||
.L_private_AES_set_decrypt_key_begin:
|
||||
AES_set_decrypt_key:
|
||||
.L_AES_set_decrypt_key_begin:
|
||||
call _x86_AES_set_encrypt_key
|
||||
cmpl $0,%eax
|
||||
je .L054proceed
|
||||
@ -3227,8 +3227,8 @@ private_AES_set_decrypt_key:
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.size private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin
|
||||
.size AES_set_decrypt_key,.-.L_AES_set_decrypt_key_begin
|
||||
.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
|
||||
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
|
||||
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||||
.comm OPENSSL_ia32cap_P,8,4
|
||||
.comm OPENSSL_ia32cap_P,4,4
|
||||
|
10
deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s
vendored
10
deps/openssl/asm/x86-elf-gas/camellia/cmll-x86.s
vendored
@ -1537,11 +1537,11 @@ Camellia_Ekeygen:
|
||||
popl %ebp
|
||||
ret
|
||||
.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
|
||||
.globl private_Camellia_set_key
|
||||
.type private_Camellia_set_key,@function
|
||||
.globl Camellia_set_key
|
||||
.type Camellia_set_key,@function
|
||||
.align 16
|
||||
private_Camellia_set_key:
|
||||
.L_private_Camellia_set_key_begin:
|
||||
Camellia_set_key:
|
||||
.L_Camellia_set_key_begin:
|
||||
pushl %ebx
|
||||
movl 8(%esp),%ecx
|
||||
movl 12(%esp),%ebx
|
||||
@ -1571,7 +1571,7 @@ private_Camellia_set_key:
|
||||
.L014done:
|
||||
popl %ebx
|
||||
ret
|
||||
.size private_Camellia_set_key,.-.L_private_Camellia_set_key_begin
|
||||
.size Camellia_set_key,.-.L_Camellia_set_key_begin
|
||||
.align 64
|
||||
.LCamellia_SIGMA:
|
||||
.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
|
||||
|
218
deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s
vendored
218
deps/openssl/asm/x86-elf-gas/rc4/rc4-586.s
vendored
@ -29,146 +29,11 @@ RC4:
|
||||
movl (%edi,%eax,4),%ecx
|
||||
andl $-4,%edx
|
||||
jz .L002loop1
|
||||
testl $-8,%edx
|
||||
movl %ebp,32(%esp)
|
||||
jz .L003go4loop4
|
||||
leal OPENSSL_ia32cap_P,%ebp
|
||||
btl $26,(%ebp)
|
||||
jnc .L003go4loop4
|
||||
movl 32(%esp),%ebp
|
||||
andl $-8,%edx
|
||||
leal -8(%esi,%edx,1),%edx
|
||||
movl %edx,-4(%edi)
|
||||
addb %cl,%bl
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
movq (%esi),%mm0
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm2
|
||||
jmp .L004loop_mmx_enter
|
||||
.align 16
|
||||
.L005loop_mmx:
|
||||
addb %cl,%bl
|
||||
psllq $56,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movq (%esi),%mm0
|
||||
movq %mm2,-8(%ebp,%esi,1)
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm2
|
||||
.L004loop_mmx_enter:
|
||||
addb %cl,%bl
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm0,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $8,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $16,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $24,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $32,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $40,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $48,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
movl %ebx,%edx
|
||||
xorl %ebx,%ebx
|
||||
movb %dl,%bl
|
||||
cmpl -4(%edi),%esi
|
||||
leal 8(%esi),%esi
|
||||
jb .L005loop_mmx
|
||||
psllq $56,%mm1
|
||||
pxor %mm1,%mm2
|
||||
movq %mm2,-8(%ebp,%esi,1)
|
||||
emms
|
||||
cmpl 24(%esp),%esi
|
||||
je .L006done
|
||||
jmp .L002loop1
|
||||
.align 16
|
||||
.L003go4loop4:
|
||||
leal -4(%esi,%edx,1),%edx
|
||||
movl %edx,28(%esp)
|
||||
.L007loop4:
|
||||
movl %ebp,32(%esp)
|
||||
.align 16
|
||||
.L003loop4:
|
||||
addb %cl,%bl
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
@ -214,9 +79,9 @@ RC4:
|
||||
movl %ebp,(%ecx,%esi,1)
|
||||
leal 4(%esi),%esi
|
||||
movl (%edi,%eax,4),%ecx
|
||||
jb .L007loop4
|
||||
jb .L003loop4
|
||||
cmpl 24(%esp),%esi
|
||||
je .L006done
|
||||
je .L004done
|
||||
movl 32(%esp),%ebp
|
||||
.align 16
|
||||
.L002loop1:
|
||||
@ -234,11 +99,11 @@ RC4:
|
||||
cmpl 24(%esp),%esi
|
||||
movb %dl,-1(%ebp,%esi,1)
|
||||
jb .L002loop1
|
||||
jmp .L006done
|
||||
jmp .L004done
|
||||
.align 16
|
||||
.L001RC4_CHAR:
|
||||
movzbl (%edi,%eax,1),%ecx
|
||||
.L008cloop1:
|
||||
.L005cloop1:
|
||||
addb %cl,%bl
|
||||
movzbl (%edi,%ebx,1),%edx
|
||||
movb %cl,(%edi,%ebx,1)
|
||||
@ -251,10 +116,10 @@ RC4:
|
||||
movzbl (%edi,%eax,1),%ecx
|
||||
cmpl 24(%esp),%esi
|
||||
movb %dl,-1(%ebp,%esi,1)
|
||||
jb .L008cloop1
|
||||
.L006done:
|
||||
jb .L005cloop1
|
||||
.L004done:
|
||||
decb %al
|
||||
movl %ebx,-4(%edi)
|
||||
movb %bl,-4(%edi)
|
||||
movb %al,-8(%edi)
|
||||
.L000abort:
|
||||
popl %edi
|
||||
@ -263,11 +128,11 @@ RC4:
|
||||
popl %ebp
|
||||
ret
|
||||
.size RC4,.-.L_RC4_begin
|
||||
.globl private_RC4_set_key
|
||||
.type private_RC4_set_key,@function
|
||||
.globl RC4_set_key
|
||||
.type RC4_set_key,@function
|
||||
.align 16
|
||||
private_RC4_set_key:
|
||||
.L_private_RC4_set_key_begin:
|
||||
RC4_set_key:
|
||||
.L_RC4_set_key_begin:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
@ -282,53 +147,53 @@ private_RC4_set_key:
|
||||
xorl %eax,%eax
|
||||
movl %ebp,-4(%edi)
|
||||
btl $20,(%edx)
|
||||
jc .L009c1stloop
|
||||
jc .L006c1stloop
|
||||
.align 16
|
||||
.L010w1stloop:
|
||||
.L007w1stloop:
|
||||
movl %eax,(%edi,%eax,4)
|
||||
addb $1,%al
|
||||
jnc .L010w1stloop
|
||||
jnc .L007w1stloop
|
||||
xorl %ecx,%ecx
|
||||
xorl %edx,%edx
|
||||
.align 16
|
||||
.L011w2ndloop:
|
||||
.L008w2ndloop:
|
||||
movl (%edi,%ecx,4),%eax
|
||||
addb (%esi,%ebp,1),%dl
|
||||
addb %al,%dl
|
||||
addl $1,%ebp
|
||||
movl (%edi,%edx,4),%ebx
|
||||
jnz .L012wnowrap
|
||||
jnz .L009wnowrap
|
||||
movl -4(%edi),%ebp
|
||||
.L012wnowrap:
|
||||
.L009wnowrap:
|
||||
movl %eax,(%edi,%edx,4)
|
||||
movl %ebx,(%edi,%ecx,4)
|
||||
addb $1,%cl
|
||||
jnc .L011w2ndloop
|
||||
jmp .L013exit
|
||||
jnc .L008w2ndloop
|
||||
jmp .L010exit
|
||||
.align 16
|
||||
.L009c1stloop:
|
||||
.L006c1stloop:
|
||||
movb %al,(%edi,%eax,1)
|
||||
addb $1,%al
|
||||
jnc .L009c1stloop
|
||||
jnc .L006c1stloop
|
||||
xorl %ecx,%ecx
|
||||
xorl %edx,%edx
|
||||
xorl %ebx,%ebx
|
||||
.align 16
|
||||
.L014c2ndloop:
|
||||
.L011c2ndloop:
|
||||
movb (%edi,%ecx,1),%al
|
||||
addb (%esi,%ebp,1),%dl
|
||||
addb %al,%dl
|
||||
addl $1,%ebp
|
||||
movb (%edi,%edx,1),%bl
|
||||
jnz .L015cnowrap
|
||||
jnz .L012cnowrap
|
||||
movl -4(%edi),%ebp
|
||||
.L015cnowrap:
|
||||
.L012cnowrap:
|
||||
movb %al,(%edi,%edx,1)
|
||||
movb %bl,(%edi,%ecx,1)
|
||||
addb $1,%cl
|
||||
jnc .L014c2ndloop
|
||||
jnc .L011c2ndloop
|
||||
movl $-1,256(%edi)
|
||||
.L013exit:
|
||||
.L010exit:
|
||||
xorl %eax,%eax
|
||||
movl %eax,-8(%edi)
|
||||
movl %eax,-4(%edi)
|
||||
@ -337,36 +202,29 @@ private_RC4_set_key:
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.size private_RC4_set_key,.-.L_private_RC4_set_key_begin
|
||||
.size RC4_set_key,.-.L_RC4_set_key_begin
|
||||
.globl RC4_options
|
||||
.type RC4_options,@function
|
||||
.align 16
|
||||
RC4_options:
|
||||
.L_RC4_options_begin:
|
||||
call .L016pic_point
|
||||
.L016pic_point:
|
||||
call .L013pic_point
|
||||
.L013pic_point:
|
||||
popl %eax
|
||||
leal .L017opts-.L016pic_point(%eax),%eax
|
||||
leal .L014opts-.L013pic_point(%eax),%eax
|
||||
leal OPENSSL_ia32cap_P,%edx
|
||||
movl (%edx),%edx
|
||||
btl $20,%edx
|
||||
jc .L0181xchar
|
||||
btl $26,%edx
|
||||
jnc .L019ret
|
||||
addl $25,%eax
|
||||
ret
|
||||
.L0181xchar:
|
||||
btl $20,(%edx)
|
||||
jnc .L015skip
|
||||
addl $12,%eax
|
||||
.L019ret:
|
||||
.L015skip:
|
||||
ret
|
||||
.align 64
|
||||
.L017opts:
|
||||
.L014opts:
|
||||
.byte 114,99,52,40,52,120,44,105,110,116,41,0
|
||||
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
|
||||
.byte 114,99,52,40,56,120,44,109,109,120,41,0
|
||||
.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
|
||||
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
|
||||
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||||
.align 64
|
||||
.size RC4_options,.-.L_RC4_options_begin
|
||||
.comm OPENSSL_ia32cap_P,8,4
|
||||
.comm OPENSSL_ia32cap_P,4,4
|
||||
|
1362
deps/openssl/asm/x86-elf-gas/sha/sha1-586.s
vendored
1362
deps/openssl/asm/x86-elf-gas/sha/sha1-586.s
vendored
File diff suppressed because it is too large
Load Diff
71
deps/openssl/asm/x86-elf-gas/sha/sha256-586.s
vendored
71
deps/openssl/asm/x86-elf-gas/sha/sha256-586.s
vendored
@ -96,30 +96,31 @@ sha256_block_data_order:
|
||||
.L00300_15:
|
||||
movl 92(%esp),%ebx
|
||||
movl %edx,%ecx
|
||||
rorl $14,%ecx
|
||||
movl 20(%esp),%esi
|
||||
xorl %edx,%ecx
|
||||
rorl $5,%ecx
|
||||
xorl %edx,%ecx
|
||||
rorl $6,%ecx
|
||||
movl %edx,%edi
|
||||
rorl $11,%edi
|
||||
movl 20(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $14,%edi
|
||||
xorl %edi,%ecx
|
||||
movl 24(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
xorl %edi,%esi
|
||||
movl %edx,16(%esp)
|
||||
xorl %edi,%esi
|
||||
movl %eax,%ecx
|
||||
andl %edx,%esi
|
||||
movl 12(%esp),%edx
|
||||
xorl %edi,%esi
|
||||
movl %eax,%edi
|
||||
addl %esi,%ebx
|
||||
rorl $9,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
xorl %eax,%ecx
|
||||
rorl $11,%ecx
|
||||
movl 4(%esp),%esi
|
||||
xorl %eax,%ecx
|
||||
rorl $2,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
rorl $13,%edi
|
||||
movl 4(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $9,%edi
|
||||
addl %ebx,%edx
|
||||
xorl %edi,%ecx
|
||||
movl 8(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
movl %eax,(%esp)
|
||||
@ -141,46 +142,48 @@ sha256_block_data_order:
|
||||
.L00416_63:
|
||||
movl %ebx,%esi
|
||||
movl 100(%esp),%ecx
|
||||
shrl $3,%ebx
|
||||
rorl $7,%esi
|
||||
xorl %esi,%ebx
|
||||
rorl $11,%esi
|
||||
movl %ecx,%edi
|
||||
xorl %ebx,%esi
|
||||
rorl $7,%esi
|
||||
shrl $3,%ebx
|
||||
rorl $2,%edi
|
||||
xorl %esi,%ebx
|
||||
xorl %ecx,%edi
|
||||
rorl $17,%edi
|
||||
shrl $10,%ecx
|
||||
addl 156(%esp),%ebx
|
||||
movl 156(%esp),%esi
|
||||
rorl $17,%edi
|
||||
xorl %edi,%ecx
|
||||
rorl $2,%edi
|
||||
addl %esi,%ebx
|
||||
xorl %ecx,%edi
|
||||
addl 120(%esp),%ebx
|
||||
movl %edx,%ecx
|
||||
addl %edi,%ebx
|
||||
rorl $14,%ecx
|
||||
movl 20(%esp),%esi
|
||||
xorl %edx,%ecx
|
||||
rorl $5,%ecx
|
||||
movl %ebx,92(%esp)
|
||||
xorl %edx,%ecx
|
||||
movl %edx,%ecx
|
||||
addl 120(%esp),%ebx
|
||||
rorl $6,%ecx
|
||||
movl %edx,%edi
|
||||
rorl $11,%edi
|
||||
movl 20(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $14,%edi
|
||||
movl %ebx,92(%esp)
|
||||
xorl %edi,%ecx
|
||||
movl 24(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
xorl %edi,%esi
|
||||
movl %edx,16(%esp)
|
||||
xorl %edi,%esi
|
||||
movl %eax,%ecx
|
||||
andl %edx,%esi
|
||||
movl 12(%esp),%edx
|
||||
xorl %edi,%esi
|
||||
movl %eax,%edi
|
||||
addl %esi,%ebx
|
||||
rorl $9,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
xorl %eax,%ecx
|
||||
rorl $11,%ecx
|
||||
movl 4(%esp),%esi
|
||||
xorl %eax,%ecx
|
||||
rorl $2,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
rorl $13,%edi
|
||||
movl 4(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $9,%edi
|
||||
addl %ebx,%edx
|
||||
xorl %edi,%ecx
|
||||
movl 8(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
movl %eax,(%esp)
|
||||
|
135
deps/openssl/asm/x86-elf-gas/x86cpuid.s
vendored
135
deps/openssl/asm/x86-elf-gas/x86cpuid.s
vendored
@ -19,9 +19,9 @@ OPENSSL_ia32_cpuid:
|
||||
pushfl
|
||||
popl %eax
|
||||
xorl %eax,%ecx
|
||||
xorl %eax,%eax
|
||||
btl $21,%ecx
|
||||
jnc .L000nocpuid
|
||||
jnc .L000done
|
||||
xorl %eax,%eax
|
||||
.byte 0x0f,0xa2
|
||||
movl %eax,%edi
|
||||
xorl %eax,%eax
|
||||
@ -47,14 +47,7 @@ OPENSSL_ia32_cpuid:
|
||||
jnz .L001intel
|
||||
movl $2147483648,%eax
|
||||
.byte 0x0f,0xa2
|
||||
cmpl $2147483649,%eax
|
||||
jb .L001intel
|
||||
movl %eax,%esi
|
||||
movl $2147483649,%eax
|
||||
.byte 0x0f,0xa2
|
||||
orl %ecx,%ebp
|
||||
andl $2049,%ebp
|
||||
cmpl $2147483656,%esi
|
||||
cmpl $2147483656,%eax
|
||||
jb .L001intel
|
||||
movl $2147483656,%eax
|
||||
.byte 0x0f,0xa2
|
||||
@ -63,68 +56,46 @@ OPENSSL_ia32_cpuid:
|
||||
movl $1,%eax
|
||||
.byte 0x0f,0xa2
|
||||
btl $28,%edx
|
||||
jnc .L002generic
|
||||
jnc .L000done
|
||||
shrl $16,%ebx
|
||||
andl $255,%ebx
|
||||
cmpl %esi,%ebx
|
||||
ja .L002generic
|
||||
ja .L000done
|
||||
andl $4026531839,%edx
|
||||
jmp .L002generic
|
||||
jmp .L000done
|
||||
.L001intel:
|
||||
cmpl $4,%edi
|
||||
movl $-1,%edi
|
||||
jb .L003nocacheinfo
|
||||
jb .L002nocacheinfo
|
||||
movl $4,%eax
|
||||
movl $0,%ecx
|
||||
.byte 0x0f,0xa2
|
||||
movl %eax,%edi
|
||||
shrl $14,%edi
|
||||
andl $4095,%edi
|
||||
.L003nocacheinfo:
|
||||
.L002nocacheinfo:
|
||||
movl $1,%eax
|
||||
.byte 0x0f,0xa2
|
||||
andl $3220176895,%edx
|
||||
cmpl $0,%ebp
|
||||
jne .L004notintel
|
||||
orl $1073741824,%edx
|
||||
jne .L003notP4
|
||||
andb $15,%ah
|
||||
cmpb $15,%ah
|
||||
jne .L004notintel
|
||||
jne .L003notP4
|
||||
orl $1048576,%edx
|
||||
.L004notintel:
|
||||
.L003notP4:
|
||||
btl $28,%edx
|
||||
jnc .L002generic
|
||||
jnc .L000done
|
||||
andl $4026531839,%edx
|
||||
cmpl $0,%edi
|
||||
je .L002generic
|
||||
je .L000done
|
||||
orl $268435456,%edx
|
||||
shrl $16,%ebx
|
||||
cmpb $1,%bl
|
||||
ja .L002generic
|
||||
ja .L000done
|
||||
andl $4026531839,%edx
|
||||
.L002generic:
|
||||
andl $2048,%ebp
|
||||
andl $4294965247,%ecx
|
||||
movl %edx,%esi
|
||||
orl %ecx,%ebp
|
||||
btl $27,%ecx
|
||||
jnc .L005clear_avx
|
||||
xorl %ecx,%ecx
|
||||
.byte 15,1,208
|
||||
andl $6,%eax
|
||||
cmpl $6,%eax
|
||||
je .L006done
|
||||
cmpl $2,%eax
|
||||
je .L005clear_avx
|
||||
.L007clear_xmm:
|
||||
andl $4261412861,%ebp
|
||||
andl $4278190079,%esi
|
||||
.L005clear_avx:
|
||||
andl $4026525695,%ebp
|
||||
.L006done:
|
||||
movl %esi,%eax
|
||||
movl %ebp,%edx
|
||||
.L000nocpuid:
|
||||
.L000done:
|
||||
movl %edx,%eax
|
||||
movl %ecx,%edx
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
@ -140,9 +111,9 @@ OPENSSL_rdtsc:
|
||||
xorl %edx,%edx
|
||||
leal OPENSSL_ia32cap_P,%ecx
|
||||
btl $4,(%ecx)
|
||||
jnc .L008notsc
|
||||
jnc .L004notsc
|
||||
.byte 0x0f,0x31
|
||||
.L008notsc:
|
||||
.L004notsc:
|
||||
ret
|
||||
.size OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin
|
||||
.globl OPENSSL_instrument_halt
|
||||
@ -152,14 +123,14 @@ OPENSSL_instrument_halt:
|
||||
.L_OPENSSL_instrument_halt_begin:
|
||||
leal OPENSSL_ia32cap_P,%ecx
|
||||
btl $4,(%ecx)
|
||||
jnc .L009nohalt
|
||||
jnc .L005nohalt
|
||||
.long 2421723150
|
||||
andl $3,%eax
|
||||
jnz .L009nohalt
|
||||
jnz .L005nohalt
|
||||
pushfl
|
||||
popl %eax
|
||||
btl $9,%eax
|
||||
jnc .L009nohalt
|
||||
jnc .L005nohalt
|
||||
.byte 0x0f,0x31
|
||||
pushl %edx
|
||||
pushl %eax
|
||||
@ -169,7 +140,7 @@ OPENSSL_instrument_halt:
|
||||
sbbl 4(%esp),%edx
|
||||
addl $8,%esp
|
||||
ret
|
||||
.L009nohalt:
|
||||
.L005nohalt:
|
||||
xorl %eax,%eax
|
||||
xorl %edx,%edx
|
||||
ret
|
||||
@ -182,21 +153,21 @@ OPENSSL_far_spin:
|
||||
pushfl
|
||||
popl %eax
|
||||
btl $9,%eax
|
||||
jnc .L010nospin
|
||||
jnc .L006nospin
|
||||
movl 4(%esp),%eax
|
||||
movl 8(%esp),%ecx
|
||||
.long 2430111262
|
||||
xorl %eax,%eax
|
||||
movl (%ecx),%edx
|
||||
jmp .L011spin
|
||||
jmp .L007spin
|
||||
.align 16
|
||||
.L011spin:
|
||||
.L007spin:
|
||||
incl %eax
|
||||
cmpl (%ecx),%edx
|
||||
je .L011spin
|
||||
je .L007spin
|
||||
.long 529567888
|
||||
ret
|
||||
.L010nospin:
|
||||
.L006nospin:
|
||||
xorl %eax,%eax
|
||||
xorl %edx,%edx
|
||||
ret
|
||||
@ -211,9 +182,9 @@ OPENSSL_wipe_cpu:
|
||||
leal OPENSSL_ia32cap_P,%ecx
|
||||
movl (%ecx),%ecx
|
||||
btl $1,(%ecx)
|
||||
jnc .L012no_x87
|
||||
jnc .L008no_x87
|
||||
.long 4007259865,4007259865,4007259865,4007259865,2430851995
|
||||
.L012no_x87:
|
||||
.L008no_x87:
|
||||
leal 4(%esp),%eax
|
||||
ret
|
||||
.size OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin
|
||||
@ -227,11 +198,11 @@ OPENSSL_atomic_add:
|
||||
pushl %ebx
|
||||
nop
|
||||
movl (%edx),%eax
|
||||
.L013spin:
|
||||
.L009spin:
|
||||
leal (%eax,%ecx,1),%ebx
|
||||
nop
|
||||
.long 447811568
|
||||
jne .L013spin
|
||||
jne .L009spin
|
||||
movl %ebx,%eax
|
||||
popl %ebx
|
||||
ret
|
||||
@ -272,49 +243,37 @@ OPENSSL_cleanse:
|
||||
movl 8(%esp),%ecx
|
||||
xorl %eax,%eax
|
||||
cmpl $7,%ecx
|
||||
jae .L014lot
|
||||
jae .L010lot
|
||||
cmpl $0,%ecx
|
||||
je .L015ret
|
||||
.L016little:
|
||||
je .L011ret
|
||||
.L012little:
|
||||
movb %al,(%edx)
|
||||
subl $1,%ecx
|
||||
leal 1(%edx),%edx
|
||||
jnz .L016little
|
||||
.L015ret:
|
||||
jnz .L012little
|
||||
.L011ret:
|
||||
ret
|
||||
.align 16
|
||||
.L014lot:
|
||||
.L010lot:
|
||||
testl $3,%edx
|
||||
jz .L017aligned
|
||||
jz .L013aligned
|
||||
movb %al,(%edx)
|
||||
leal -1(%ecx),%ecx
|
||||
leal 1(%edx),%edx
|
||||
jmp .L014lot
|
||||
.L017aligned:
|
||||
jmp .L010lot
|
||||
.L013aligned:
|
||||
movl %eax,(%edx)
|
||||
leal -4(%ecx),%ecx
|
||||
testl $-4,%ecx
|
||||
leal 4(%edx),%edx
|
||||
jnz .L017aligned
|
||||
jnz .L013aligned
|
||||
cmpl $0,%ecx
|
||||
jne .L016little
|
||||
jne .L012little
|
||||
ret
|
||||
.size OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin
|
||||
.globl OPENSSL_ia32_rdrand
|
||||
.type OPENSSL_ia32_rdrand,@function
|
||||
.align 16
|
||||
OPENSSL_ia32_rdrand:
|
||||
.L_OPENSSL_ia32_rdrand_begin:
|
||||
movl $8,%ecx
|
||||
.L018loop:
|
||||
.byte 15,199,240
|
||||
jc .L019break
|
||||
loop .L018loop
|
||||
.L019break:
|
||||
cmpl $0,%eax
|
||||
cmovel %ecx,%eax
|
||||
ret
|
||||
.size OPENSSL_ia32_rdrand,.-.L_OPENSSL_ia32_rdrand_begin
|
||||
.comm OPENSSL_ia32cap_P,8,4
|
||||
.comm OPENSSL_ia32cap_P,4,4
|
||||
.section .init
|
||||
call OPENSSL_cpuid_setup
|
||||
jmp .Linitalign
|
||||
.align 16
|
||||
.Linitalign:
|
||||
|
24
deps/openssl/asm/x86-macosx-gas/aes/aes-586.s
vendored
24
deps/openssl/asm/x86-macosx-gas/aes/aes-586.s
vendored
@ -975,7 +975,7 @@ L_AES_encrypt_begin:
|
||||
call L004pic_point
|
||||
L004pic_point:
|
||||
popl %ebp
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004pic_point(%ebp),%eax
|
||||
leal _OPENSSL_ia32cap_P,%eax
|
||||
leal LAES_Te-L004pic_point(%ebp),%ebp
|
||||
leal 764(%esp),%ebx
|
||||
subl %ebp,%ebx
|
||||
@ -2153,7 +2153,7 @@ L_AES_decrypt_begin:
|
||||
call L010pic_point
|
||||
L010pic_point:
|
||||
popl %ebp
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010pic_point(%ebp),%eax
|
||||
leal _OPENSSL_ia32cap_P,%eax
|
||||
leal LAES_Td-L010pic_point(%ebp),%ebp
|
||||
leal 764(%esp),%ebx
|
||||
subl %ebp,%ebx
|
||||
@ -2207,7 +2207,7 @@ L_AES_cbc_encrypt_begin:
|
||||
call L013pic_point
|
||||
L013pic_point:
|
||||
popl %ebp
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L013pic_point(%ebp),%eax
|
||||
leal _OPENSSL_ia32cap_P,%eax
|
||||
cmpl $0,40(%esp)
|
||||
leal LAES_Te-L013pic_point(%ebp),%ebp
|
||||
jne L014picked_te
|
||||
@ -2950,16 +2950,16 @@ L045exit:
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.globl _private_AES_set_encrypt_key
|
||||
.globl _AES_set_encrypt_key
|
||||
.align 4
|
||||
_private_AES_set_encrypt_key:
|
||||
L_private_AES_set_encrypt_key_begin:
|
||||
_AES_set_encrypt_key:
|
||||
L_AES_set_encrypt_key_begin:
|
||||
call __x86_AES_set_encrypt_key
|
||||
ret
|
||||
.globl _private_AES_set_decrypt_key
|
||||
.globl _AES_set_decrypt_key
|
||||
.align 4
|
||||
_private_AES_set_decrypt_key:
|
||||
L_private_AES_set_decrypt_key_begin:
|
||||
_AES_set_decrypt_key:
|
||||
L_AES_set_decrypt_key_begin:
|
||||
call __x86_AES_set_encrypt_key
|
||||
cmpl $0,%eax
|
||||
je L054proceed
|
||||
@ -3191,8 +3191,4 @@ L056permute:
|
||||
.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
|
||||
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
|
||||
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||||
.section __IMPORT,__pointers,non_lazy_symbol_pointers
|
||||
L_OPENSSL_ia32cap_P$non_lazy_ptr:
|
||||
.indirect_symbol _OPENSSL_ia32cap_P
|
||||
.long 0
|
||||
.comm _OPENSSL_ia32cap_P,8,2
|
||||
.comm _OPENSSL_ia32cap_P,4
|
||||
|
@ -1519,10 +1519,10 @@ L013done:
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.globl _private_Camellia_set_key
|
||||
.globl _Camellia_set_key
|
||||
.align 4
|
||||
_private_Camellia_set_key:
|
||||
L_private_Camellia_set_key_begin:
|
||||
_Camellia_set_key:
|
||||
L_Camellia_set_key_begin:
|
||||
pushl %ebx
|
||||
movl 8(%esp),%ecx
|
||||
movl 12(%esp),%ebx
|
||||
|
13
deps/openssl/asm/x86-macosx-gas/des/crypt586.s
vendored
13
deps/openssl/asm/x86-macosx-gas/des/crypt586.s
vendored
@ -13,14 +13,11 @@ L_fcrypt_body_begin:
|
||||
|
||||
xorl %edi,%edi
|
||||
xorl %esi,%esi
|
||||
call L000PIC_me_up
|
||||
L000PIC_me_up:
|
||||
popl %edx
|
||||
movl L_DES_SPtrans$non_lazy_ptr-L000PIC_me_up(%edx),%edx
|
||||
leal _DES_SPtrans,%edx
|
||||
pushl %edx
|
||||
movl 28(%esp),%ebp
|
||||
pushl $25
|
||||
L001start:
|
||||
L000start:
|
||||
|
||||
# Round 0
|
||||
|
||||
@ -843,7 +840,7 @@ L001start:
|
||||
movl %esi,%edi
|
||||
movl %eax,%esi
|
||||
movl %ebx,(%esp)
|
||||
jnz L001start
|
||||
jnz L000start
|
||||
|
||||
# FP
|
||||
|
||||
@ -892,7 +889,3 @@ L001start:
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.section __IMPORT,__pointers,non_lazy_symbol_pointers
|
||||
L_DES_SPtrans$non_lazy_ptr:
|
||||
.indirect_symbol _DES_SPtrans
|
||||
.long 0
|
||||
|
231
deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s
vendored
231
deps/openssl/asm/x86-macosx-gas/rc4/rc4-586.s
vendored
@ -28,149 +28,11 @@ L_RC4_begin:
|
||||
movl (%edi,%eax,4),%ecx
|
||||
andl $-4,%edx
|
||||
jz L002loop1
|
||||
testl $-8,%edx
|
||||
movl %ebp,32(%esp)
|
||||
jz L003go4loop4
|
||||
call L004PIC_me_up
|
||||
L004PIC_me_up:
|
||||
popl %ebp
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004PIC_me_up(%ebp),%ebp
|
||||
btl $26,(%ebp)
|
||||
jnc L003go4loop4
|
||||
movl 32(%esp),%ebp
|
||||
andl $-8,%edx
|
||||
leal -8(%esi,%edx,1),%edx
|
||||
movl %edx,-4(%edi)
|
||||
addb %cl,%bl
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
movq (%esi),%mm0
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm2
|
||||
jmp L005loop_mmx_enter
|
||||
.align 4,0x90
|
||||
L006loop_mmx:
|
||||
addb %cl,%bl
|
||||
psllq $56,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movq (%esi),%mm0
|
||||
movq %mm2,-8(%ebp,%esi,1)
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm2
|
||||
L005loop_mmx_enter:
|
||||
addb %cl,%bl
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm0,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $8,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $16,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $24,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $32,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $40,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
addb %cl,%bl
|
||||
psllq $48,%mm1
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
movl %edx,(%edi,%eax,4)
|
||||
incl %eax
|
||||
addl %ecx,%edx
|
||||
movzbl %al,%eax
|
||||
movzbl %dl,%edx
|
||||
pxor %mm1,%mm2
|
||||
movl (%edi,%eax,4),%ecx
|
||||
movd (%edi,%edx,4),%mm1
|
||||
movl %ebx,%edx
|
||||
xorl %ebx,%ebx
|
||||
movb %dl,%bl
|
||||
cmpl -4(%edi),%esi
|
||||
leal 8(%esi),%esi
|
||||
jb L006loop_mmx
|
||||
psllq $56,%mm1
|
||||
pxor %mm1,%mm2
|
||||
movq %mm2,-8(%ebp,%esi,1)
|
||||
emms
|
||||
cmpl 24(%esp),%esi
|
||||
je L007done
|
||||
jmp L002loop1
|
||||
.align 4,0x90
|
||||
L003go4loop4:
|
||||
leal -4(%esi,%edx,1),%edx
|
||||
movl %edx,28(%esp)
|
||||
L008loop4:
|
||||
movl %ebp,32(%esp)
|
||||
.align 4,0x90
|
||||
L003loop4:
|
||||
addb %cl,%bl
|
||||
movl (%edi,%ebx,4),%edx
|
||||
movl %ecx,(%edi,%ebx,4)
|
||||
@ -216,9 +78,9 @@ L008loop4:
|
||||
movl %ebp,(%ecx,%esi,1)
|
||||
leal 4(%esi),%esi
|
||||
movl (%edi,%eax,4),%ecx
|
||||
jb L008loop4
|
||||
jb L003loop4
|
||||
cmpl 24(%esp),%esi
|
||||
je L007done
|
||||
je L004done
|
||||
movl 32(%esp),%ebp
|
||||
.align 4,0x90
|
||||
L002loop1:
|
||||
@ -236,11 +98,11 @@ L002loop1:
|
||||
cmpl 24(%esp),%esi
|
||||
movb %dl,-1(%ebp,%esi,1)
|
||||
jb L002loop1
|
||||
jmp L007done
|
||||
jmp L004done
|
||||
.align 4,0x90
|
||||
L001RC4_CHAR:
|
||||
movzbl (%edi,%eax,1),%ecx
|
||||
L009cloop1:
|
||||
L005cloop1:
|
||||
addb %cl,%bl
|
||||
movzbl (%edi,%ebx,1),%edx
|
||||
movb %cl,(%edi,%ebx,1)
|
||||
@ -253,10 +115,10 @@ L009cloop1:
|
||||
movzbl (%edi,%eax,1),%ecx
|
||||
cmpl 24(%esp),%esi
|
||||
movb %dl,-1(%ebp,%esi,1)
|
||||
jb L009cloop1
|
||||
L007done:
|
||||
jb L005cloop1
|
||||
L004done:
|
||||
decb %al
|
||||
movl %ebx,-4(%edi)
|
||||
movb %bl,-4(%edi)
|
||||
movb %al,-8(%edi)
|
||||
L000abort:
|
||||
popl %edi
|
||||
@ -264,10 +126,10 @@ L000abort:
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.globl _private_RC4_set_key
|
||||
.globl _RC4_set_key
|
||||
.align 4
|
||||
_private_RC4_set_key:
|
||||
L_private_RC4_set_key_begin:
|
||||
_RC4_set_key:
|
||||
L_RC4_set_key_begin:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
@ -275,63 +137,60 @@ L_private_RC4_set_key_begin:
|
||||
movl 20(%esp),%edi
|
||||
movl 24(%esp),%ebp
|
||||
movl 28(%esp),%esi
|
||||
call L010PIC_me_up
|
||||
L010PIC_me_up:
|
||||
popl %edx
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%edx),%edx
|
||||
leal _OPENSSL_ia32cap_P,%edx
|
||||
leal 8(%edi),%edi
|
||||
leal (%esi,%ebp,1),%esi
|
||||
negl %ebp
|
||||
xorl %eax,%eax
|
||||
movl %ebp,-4(%edi)
|
||||
btl $20,(%edx)
|
||||
jc L011c1stloop
|
||||
jc L006c1stloop
|
||||
.align 4,0x90
|
||||
L012w1stloop:
|
||||
L007w1stloop:
|
||||
movl %eax,(%edi,%eax,4)
|
||||
addb $1,%al
|
||||
jnc L012w1stloop
|
||||
jnc L007w1stloop
|
||||
xorl %ecx,%ecx
|
||||
xorl %edx,%edx
|
||||
.align 4,0x90
|
||||
L013w2ndloop:
|
||||
L008w2ndloop:
|
||||
movl (%edi,%ecx,4),%eax
|
||||
addb (%esi,%ebp,1),%dl
|
||||
addb %al,%dl
|
||||
addl $1,%ebp
|
||||
movl (%edi,%edx,4),%ebx
|
||||
jnz L014wnowrap
|
||||
jnz L009wnowrap
|
||||
movl -4(%edi),%ebp
|
||||
L014wnowrap:
|
||||
L009wnowrap:
|
||||
movl %eax,(%edi,%edx,4)
|
||||
movl %ebx,(%edi,%ecx,4)
|
||||
addb $1,%cl
|
||||
jnc L013w2ndloop
|
||||
jmp L015exit
|
||||
jnc L008w2ndloop
|
||||
jmp L010exit
|
||||
.align 4,0x90
|
||||
L011c1stloop:
|
||||
L006c1stloop:
|
||||
movb %al,(%edi,%eax,1)
|
||||
addb $1,%al
|
||||
jnc L011c1stloop
|
||||
jnc L006c1stloop
|
||||
xorl %ecx,%ecx
|
||||
xorl %edx,%edx
|
||||
xorl %ebx,%ebx
|
||||
.align 4,0x90
|
||||
L016c2ndloop:
|
||||
L011c2ndloop:
|
||||
movb (%edi,%ecx,1),%al
|
||||
addb (%esi,%ebp,1),%dl
|
||||
addb %al,%dl
|
||||
addl $1,%ebp
|
||||
movb (%edi,%edx,1),%bl
|
||||
jnz L017cnowrap
|
||||
jnz L012cnowrap
|
||||
movl -4(%edi),%ebp
|
||||
L017cnowrap:
|
||||
L012cnowrap:
|
||||
movb %al,(%edi,%edx,1)
|
||||
movb %bl,(%edi,%ecx,1)
|
||||
addb $1,%cl
|
||||
jnc L016c2ndloop
|
||||
jnc L011c2ndloop
|
||||
movl $-1,256(%edi)
|
||||
L015exit:
|
||||
L010exit:
|
||||
xorl %eax,%eax
|
||||
movl %eax,-8(%edi)
|
||||
movl %eax,-4(%edi)
|
||||
@ -344,36 +203,22 @@ L015exit:
|
||||
.align 4
|
||||
_RC4_options:
|
||||
L_RC4_options_begin:
|
||||
call L018pic_point
|
||||
L018pic_point:
|
||||
call L013pic_point
|
||||
L013pic_point:
|
||||
popl %eax
|
||||
leal L019opts-L018pic_point(%eax),%eax
|
||||
call L020PIC_me_up
|
||||
L020PIC_me_up:
|
||||
popl %edx
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L020PIC_me_up(%edx),%edx
|
||||
movl (%edx),%edx
|
||||
btl $20,%edx
|
||||
jc L0211xchar
|
||||
btl $26,%edx
|
||||
jnc L022ret
|
||||
addl $25,%eax
|
||||
ret
|
||||
L0211xchar:
|
||||
leal L014opts-L013pic_point(%eax),%eax
|
||||
leal _OPENSSL_ia32cap_P,%edx
|
||||
btl $20,(%edx)
|
||||
jnc L015skip
|
||||
addl $12,%eax
|
||||
L022ret:
|
||||
L015skip:
|
||||
ret
|
||||
.align 6,0x90
|
||||
L019opts:
|
||||
L014opts:
|
||||
.byte 114,99,52,40,52,120,44,105,110,116,41,0
|
||||
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
|
||||
.byte 114,99,52,40,56,120,44,109,109,120,41,0
|
||||
.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
|
||||
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
|
||||
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||||
.align 6,0x90
|
||||
.section __IMPORT,__pointers,non_lazy_symbol_pointers
|
||||
L_OPENSSL_ia32cap_P$non_lazy_ptr:
|
||||
.indirect_symbol _OPENSSL_ia32cap_P
|
||||
.long 0
|
||||
.comm _OPENSSL_ia32cap_P,8,2
|
||||
.comm _OPENSSL_ia32cap_P,4
|
||||
|
1262
deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s
vendored
1262
deps/openssl/asm/x86-macosx-gas/sha/sha1-586.s
vendored
File diff suppressed because it is too large
Load Diff
71
deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s
vendored
71
deps/openssl/asm/x86-macosx-gas/sha/sha256-586.s
vendored
@ -95,30 +95,31 @@ L002loop:
|
||||
L00300_15:
|
||||
movl 92(%esp),%ebx
|
||||
movl %edx,%ecx
|
||||
rorl $14,%ecx
|
||||
movl 20(%esp),%esi
|
||||
xorl %edx,%ecx
|
||||
rorl $5,%ecx
|
||||
xorl %edx,%ecx
|
||||
rorl $6,%ecx
|
||||
movl %edx,%edi
|
||||
rorl $11,%edi
|
||||
movl 20(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $14,%edi
|
||||
xorl %edi,%ecx
|
||||
movl 24(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
xorl %edi,%esi
|
||||
movl %edx,16(%esp)
|
||||
xorl %edi,%esi
|
||||
movl %eax,%ecx
|
||||
andl %edx,%esi
|
||||
movl 12(%esp),%edx
|
||||
xorl %edi,%esi
|
||||
movl %eax,%edi
|
||||
addl %esi,%ebx
|
||||
rorl $9,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
xorl %eax,%ecx
|
||||
rorl $11,%ecx
|
||||
movl 4(%esp),%esi
|
||||
xorl %eax,%ecx
|
||||
rorl $2,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
rorl $13,%edi
|
||||
movl 4(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $9,%edi
|
||||
addl %ebx,%edx
|
||||
xorl %edi,%ecx
|
||||
movl 8(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
movl %eax,(%esp)
|
||||
@ -140,46 +141,48 @@ L00300_15:
|
||||
L00416_63:
|
||||
movl %ebx,%esi
|
||||
movl 100(%esp),%ecx
|
||||
shrl $3,%ebx
|
||||
rorl $7,%esi
|
||||
xorl %esi,%ebx
|
||||
rorl $11,%esi
|
||||
movl %ecx,%edi
|
||||
xorl %ebx,%esi
|
||||
rorl $7,%esi
|
||||
shrl $3,%ebx
|
||||
rorl $2,%edi
|
||||
xorl %esi,%ebx
|
||||
xorl %ecx,%edi
|
||||
rorl $17,%edi
|
||||
shrl $10,%ecx
|
||||
addl 156(%esp),%ebx
|
||||
movl 156(%esp),%esi
|
||||
rorl $17,%edi
|
||||
xorl %edi,%ecx
|
||||
rorl $2,%edi
|
||||
addl %esi,%ebx
|
||||
xorl %ecx,%edi
|
||||
addl 120(%esp),%ebx
|
||||
movl %edx,%ecx
|
||||
addl %edi,%ebx
|
||||
rorl $14,%ecx
|
||||
movl 20(%esp),%esi
|
||||
xorl %edx,%ecx
|
||||
rorl $5,%ecx
|
||||
movl %ebx,92(%esp)
|
||||
xorl %edx,%ecx
|
||||
movl %edx,%ecx
|
||||
addl 120(%esp),%ebx
|
||||
rorl $6,%ecx
|
||||
movl %edx,%edi
|
||||
rorl $11,%edi
|
||||
movl 20(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $14,%edi
|
||||
movl %ebx,92(%esp)
|
||||
xorl %edi,%ecx
|
||||
movl 24(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
xorl %edi,%esi
|
||||
movl %edx,16(%esp)
|
||||
xorl %edi,%esi
|
||||
movl %eax,%ecx
|
||||
andl %edx,%esi
|
||||
movl 12(%esp),%edx
|
||||
xorl %edi,%esi
|
||||
movl %eax,%edi
|
||||
addl %esi,%ebx
|
||||
rorl $9,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
xorl %eax,%ecx
|
||||
rorl $11,%ecx
|
||||
movl 4(%esp),%esi
|
||||
xorl %eax,%ecx
|
||||
rorl $2,%ecx
|
||||
addl 28(%esp),%ebx
|
||||
rorl $13,%edi
|
||||
movl 4(%esp),%esi
|
||||
xorl %edi,%ecx
|
||||
rorl $9,%edi
|
||||
addl %ebx,%edx
|
||||
xorl %edi,%ecx
|
||||
movl 8(%esp),%edi
|
||||
addl %ecx,%ebx
|
||||
movl %eax,(%esp)
|
||||
|
149
deps/openssl/asm/x86-macosx-gas/x86cpuid.s
vendored
149
deps/openssl/asm/x86-macosx-gas/x86cpuid.s
vendored
@ -18,9 +18,9 @@ L_OPENSSL_ia32_cpuid_begin:
|
||||
pushfl
|
||||
popl %eax
|
||||
xorl %eax,%ecx
|
||||
xorl %eax,%eax
|
||||
btl $21,%ecx
|
||||
jnc L000nocpuid
|
||||
jnc L000done
|
||||
xorl %eax,%eax
|
||||
.byte 0x0f,0xa2
|
||||
movl %eax,%edi
|
||||
xorl %eax,%eax
|
||||
@ -46,14 +46,7 @@ L_OPENSSL_ia32_cpuid_begin:
|
||||
jnz L001intel
|
||||
movl $2147483648,%eax
|
||||
.byte 0x0f,0xa2
|
||||
cmpl $2147483649,%eax
|
||||
jb L001intel
|
||||
movl %eax,%esi
|
||||
movl $2147483649,%eax
|
||||
.byte 0x0f,0xa2
|
||||
orl %ecx,%ebp
|
||||
andl $2049,%ebp
|
||||
cmpl $2147483656,%esi
|
||||
cmpl $2147483656,%eax
|
||||
jb L001intel
|
||||
movl $2147483656,%eax
|
||||
.byte 0x0f,0xa2
|
||||
@ -62,68 +55,46 @@ L_OPENSSL_ia32_cpuid_begin:
|
||||
movl $1,%eax
|
||||
.byte 0x0f,0xa2
|
||||
btl $28,%edx
|
||||
jnc L002generic
|
||||
jnc L000done
|
||||
shrl $16,%ebx
|
||||
andl $255,%ebx
|
||||
cmpl %esi,%ebx
|
||||
ja L002generic
|
||||
ja L000done
|
||||
andl $4026531839,%edx
|
||||
jmp L002generic
|
||||
jmp L000done
|
||||
L001intel:
|
||||
cmpl $4,%edi
|
||||
movl $-1,%edi
|
||||
jb L003nocacheinfo
|
||||
jb L002nocacheinfo
|
||||
movl $4,%eax
|
||||
movl $0,%ecx
|
||||
.byte 0x0f,0xa2
|
||||
movl %eax,%edi
|
||||
shrl $14,%edi
|
||||
andl $4095,%edi
|
||||
L003nocacheinfo:
|
||||
L002nocacheinfo:
|
||||
movl $1,%eax
|
||||
.byte 0x0f,0xa2
|
||||
andl $3220176895,%edx
|
||||
cmpl $0,%ebp
|
||||
jne L004notintel
|
||||
orl $1073741824,%edx
|
||||
jne L003notP4
|
||||
andb $15,%ah
|
||||
cmpb $15,%ah
|
||||
jne L004notintel
|
||||
jne L003notP4
|
||||
orl $1048576,%edx
|
||||
L004notintel:
|
||||
L003notP4:
|
||||
btl $28,%edx
|
||||
jnc L002generic
|
||||
jnc L000done
|
||||
andl $4026531839,%edx
|
||||
cmpl $0,%edi
|
||||
je L002generic
|
||||
je L000done
|
||||
orl $268435456,%edx
|
||||
shrl $16,%ebx
|
||||
cmpb $1,%bl
|
||||
ja L002generic
|
||||
ja L000done
|
||||
andl $4026531839,%edx
|
||||
L002generic:
|
||||
andl $2048,%ebp
|
||||
andl $4294965247,%ecx
|
||||
movl %edx,%esi
|
||||
orl %ecx,%ebp
|
||||
btl $27,%ecx
|
||||
jnc L005clear_avx
|
||||
xorl %ecx,%ecx
|
||||
.byte 15,1,208
|
||||
andl $6,%eax
|
||||
cmpl $6,%eax
|
||||
je L006done
|
||||
cmpl $2,%eax
|
||||
je L005clear_avx
|
||||
L007clear_xmm:
|
||||
andl $4261412861,%ebp
|
||||
andl $4278190079,%esi
|
||||
L005clear_avx:
|
||||
andl $4026525695,%ebp
|
||||
L006done:
|
||||
movl %esi,%eax
|
||||
movl %ebp,%edx
|
||||
L000nocpuid:
|
||||
L000done:
|
||||
movl %edx,%eax
|
||||
movl %ecx,%edx
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
@ -135,32 +106,26 @@ _OPENSSL_rdtsc:
|
||||
L_OPENSSL_rdtsc_begin:
|
||||
xorl %eax,%eax
|
||||
xorl %edx,%edx
|
||||
call L008PIC_me_up
|
||||
L008PIC_me_up:
|
||||
popl %ecx
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L008PIC_me_up(%ecx),%ecx
|
||||
leal _OPENSSL_ia32cap_P,%ecx
|
||||
btl $4,(%ecx)
|
||||
jnc L009notsc
|
||||
jnc L004notsc
|
||||
.byte 0x0f,0x31
|
||||
L009notsc:
|
||||
L004notsc:
|
||||
ret
|
||||
.globl _OPENSSL_instrument_halt
|
||||
.align 4
|
||||
_OPENSSL_instrument_halt:
|
||||
L_OPENSSL_instrument_halt_begin:
|
||||
call L010PIC_me_up
|
||||
L010PIC_me_up:
|
||||
popl %ecx
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%ecx),%ecx
|
||||
leal _OPENSSL_ia32cap_P,%ecx
|
||||
btl $4,(%ecx)
|
||||
jnc L011nohalt
|
||||
jnc L005nohalt
|
||||
.long 2421723150
|
||||
andl $3,%eax
|
||||
jnz L011nohalt
|
||||
jnz L005nohalt
|
||||
pushfl
|
||||
popl %eax
|
||||
btl $9,%eax
|
||||
jnc L011nohalt
|
||||
jnc L005nohalt
|
||||
.byte 0x0f,0x31
|
||||
pushl %edx
|
||||
pushl %eax
|
||||
@ -170,7 +135,7 @@ L010PIC_me_up:
|
||||
sbbl 4(%esp),%edx
|
||||
addl $8,%esp
|
||||
ret
|
||||
L011nohalt:
|
||||
L005nohalt:
|
||||
xorl %eax,%eax
|
||||
xorl %edx,%edx
|
||||
ret
|
||||
@ -181,21 +146,21 @@ L_OPENSSL_far_spin_begin:
|
||||
pushfl
|
||||
popl %eax
|
||||
btl $9,%eax
|
||||
jnc L012nospin
|
||||
jnc L006nospin
|
||||
movl 4(%esp),%eax
|
||||
movl 8(%esp),%ecx
|
||||
.long 2430111262
|
||||
xorl %eax,%eax
|
||||
movl (%ecx),%edx
|
||||
jmp L013spin
|
||||
jmp L007spin
|
||||
.align 4,0x90
|
||||
L013spin:
|
||||
L007spin:
|
||||
incl %eax
|
||||
cmpl (%ecx),%edx
|
||||
je L013spin
|
||||
je L007spin
|
||||
.long 529567888
|
||||
ret
|
||||
L012nospin:
|
||||
L006nospin:
|
||||
xorl %eax,%eax
|
||||
xorl %edx,%edx
|
||||
ret
|
||||
@ -205,15 +170,12 @@ _OPENSSL_wipe_cpu:
|
||||
L_OPENSSL_wipe_cpu_begin:
|
||||
xorl %eax,%eax
|
||||
xorl %edx,%edx
|
||||
call L014PIC_me_up
|
||||
L014PIC_me_up:
|
||||
popl %ecx
|
||||
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L014PIC_me_up(%ecx),%ecx
|
||||
leal _OPENSSL_ia32cap_P,%ecx
|
||||
movl (%ecx),%ecx
|
||||
btl $1,(%ecx)
|
||||
jnc L015no_x87
|
||||
jnc L008no_x87
|
||||
.long 4007259865,4007259865,4007259865,4007259865,2430851995
|
||||
L015no_x87:
|
||||
L008no_x87:
|
||||
leal 4(%esp),%eax
|
||||
ret
|
||||
.globl _OPENSSL_atomic_add
|
||||
@ -225,11 +187,11 @@ L_OPENSSL_atomic_add_begin:
|
||||
pushl %ebx
|
||||
nop
|
||||
movl (%edx),%eax
|
||||
L016spin:
|
||||
L009spin:
|
||||
leal (%eax,%ecx,1),%ebx
|
||||
nop
|
||||
.long 447811568
|
||||
jne L016spin
|
||||
jne L009spin
|
||||
movl %ebx,%eax
|
||||
popl %ebx
|
||||
ret
|
||||
@ -266,51 +228,34 @@ L_OPENSSL_cleanse_begin:
|
||||
movl 8(%esp),%ecx
|
||||
xorl %eax,%eax
|
||||
cmpl $7,%ecx
|
||||
jae L017lot
|
||||
jae L010lot
|
||||
cmpl $0,%ecx
|
||||
je L018ret
|
||||
L019little:
|
||||
je L011ret
|
||||
L012little:
|
||||
movb %al,(%edx)
|
||||
subl $1,%ecx
|
||||
leal 1(%edx),%edx
|
||||
jnz L019little
|
||||
L018ret:
|
||||
jnz L012little
|
||||
L011ret:
|
||||
ret
|
||||
.align 4,0x90
|
||||
L017lot:
|
||||
L010lot:
|
||||
testl $3,%edx
|
||||
jz L020aligned
|
||||
jz L013aligned
|
||||
movb %al,(%edx)
|
||||
leal -1(%ecx),%ecx
|
||||
leal 1(%edx),%edx
|
||||
jmp L017lot
|
||||
L020aligned:
|
||||
jmp L010lot
|
||||
L013aligned:
|
||||
movl %eax,(%edx)
|
||||
leal -4(%ecx),%ecx
|
||||
testl $-4,%ecx
|
||||
leal 4(%edx),%edx
|
||||
jnz L020aligned
|
||||
jnz L013aligned
|
||||
cmpl $0,%ecx
|
||||
jne L019little
|
||||
jne L012little
|
||||
ret
|
||||
.globl _OPENSSL_ia32_rdrand
|
||||
.align 4
|
||||
_OPENSSL_ia32_rdrand:
|
||||
L_OPENSSL_ia32_rdrand_begin:
|
||||
movl $8,%ecx
|
||||
L021loop:
|
||||
.byte 15,199,240
|
||||
jc L022break
|
||||
loop L021loop
|
||||
L022break:
|
||||
cmpl $0,%eax
|
||||
cmovel %ecx,%eax
|
||||
ret
|
||||
.section __IMPORT,__pointers,non_lazy_symbol_pointers
|
||||
L_OPENSSL_ia32cap_P$non_lazy_ptr:
|
||||
.indirect_symbol _OPENSSL_ia32cap_P
|
||||
.long 0
|
||||
.comm _OPENSSL_ia32cap_P,8,2
|
||||
.comm _OPENSSL_ia32cap_P,4
|
||||
.mod_init_func
|
||||
.align 2
|
||||
.long _OPENSSL_cpuid_setup
|
||||
|
14
deps/openssl/asm/x86-win32-masm/aes/aes-586.asm
vendored
14
deps/openssl/asm/x86-win32-masm/aes/aes-586.asm
vendored
@ -2975,14 +2975,14 @@ $L045exit:
|
||||
ret
|
||||
__x86_AES_set_encrypt_key ENDP
|
||||
ALIGN 16
|
||||
_private_AES_set_encrypt_key PROC PUBLIC
|
||||
$L_private_AES_set_encrypt_key_begin::
|
||||
_AES_set_encrypt_key PROC PUBLIC
|
||||
$L_AES_set_encrypt_key_begin::
|
||||
call __x86_AES_set_encrypt_key
|
||||
ret
|
||||
_private_AES_set_encrypt_key ENDP
|
||||
_AES_set_encrypt_key ENDP
|
||||
ALIGN 16
|
||||
_private_AES_set_decrypt_key PROC PUBLIC
|
||||
$L_private_AES_set_decrypt_key_begin::
|
||||
_AES_set_decrypt_key PROC PUBLIC
|
||||
$L_AES_set_decrypt_key_begin::
|
||||
call __x86_AES_set_encrypt_key
|
||||
cmp eax,0
|
||||
je $L054proceed
|
||||
@ -3211,12 +3211,12 @@ $L056permute:
|
||||
pop ebx
|
||||
pop ebp
|
||||
ret
|
||||
_private_AES_set_decrypt_key ENDP
|
||||
_AES_set_decrypt_key ENDP
|
||||
DB 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
|
||||
DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
|
||||
DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||||
.text$ ENDS
|
||||
.bss SEGMENT 'BSS'
|
||||
COMM _OPENSSL_ia32cap_P:QWORD
|
||||
COMM _OPENSSL_ia32cap_P:DWORD
|
||||
.bss ENDS
|
||||
END
|
||||
|
@ -2,7 +2,7 @@ TITLE bf-686.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
@ -2,7 +2,7 @@ TITLE ../openssl/crypto/bn/asm/x86-mont.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
2
deps/openssl/asm/x86-win32-masm/bn/x86.asm
vendored
2
deps/openssl/asm/x86-win32-masm/bn/x86.asm
vendored
@ -2,7 +2,7 @@ TITLE ../openssl/crypto/bn/asm/x86.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
@ -2,7 +2,7 @@ TITLE cmll-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
@ -1532,8 +1532,8 @@ $L013done:
|
||||
ret
|
||||
_Camellia_Ekeygen ENDP
|
||||
ALIGN 16
|
||||
_private_Camellia_set_key PROC PUBLIC
|
||||
$L_private_Camellia_set_key_begin::
|
||||
_Camellia_set_key PROC PUBLIC
|
||||
$L_Camellia_set_key_begin::
|
||||
push ebx
|
||||
mov ecx,DWORD PTR 8[esp]
|
||||
mov ebx,DWORD PTR 12[esp]
|
||||
@ -1563,7 +1563,7 @@ ALIGN 4
|
||||
$L014done:
|
||||
pop ebx
|
||||
ret
|
||||
_private_Camellia_set_key ENDP
|
||||
_Camellia_set_key ENDP
|
||||
ALIGN 64
|
||||
$LCamellia_SIGMA::
|
||||
DD 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
|
||||
|
@ -2,7 +2,7 @@ TITLE cast-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
@ -2,7 +2,7 @@ TITLE crypt586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
@ -2,7 +2,7 @@ TITLE des-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
@ -2,7 +2,7 @@ TITLE ../openssl/crypto/md5/asm/md5-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
225
deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
vendored
225
deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
vendored
@ -2,14 +2,7 @@ TITLE rc4-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.XMM
|
||||
IF @Version LT 800
|
||||
XMMWORD STRUCT 16
|
||||
DQ 2 dup (?)
|
||||
XMMWORD ENDS
|
||||
ENDIF
|
||||
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
@ -17,7 +10,6 @@ IF @Version LT 800
|
||||
ELSE
|
||||
.text$ SEGMENT ALIGN(64) 'CODE'
|
||||
ENDIF
|
||||
;EXTERN _OPENSSL_ia32cap_P:NEAR
|
||||
ALIGN 16
|
||||
_RC4 PROC PUBLIC
|
||||
$L_RC4_begin::
|
||||
@ -45,146 +37,11 @@ $L_RC4_begin::
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
and edx,-4
|
||||
jz $L002loop1
|
||||
test edx,-8
|
||||
mov DWORD PTR 32[esp],ebp
|
||||
jz $L003go4loop4
|
||||
lea ebp,DWORD PTR _OPENSSL_ia32cap_P
|
||||
bt DWORD PTR [ebp],26
|
||||
jnc $L003go4loop4
|
||||
mov ebp,DWORD PTR 32[esp]
|
||||
and edx,-8
|
||||
lea edx,DWORD PTR [edx*1+esi-8]
|
||||
mov DWORD PTR [edi-4],edx
|
||||
add bl,cl
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
movq mm0,QWORD PTR [esi]
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm2,DWORD PTR [edx*4+edi]
|
||||
jmp $L004loop_mmx_enter
|
||||
ALIGN 16
|
||||
$L005loop_mmx:
|
||||
add bl,cl
|
||||
psllq mm1,56
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm1
|
||||
movq mm0,QWORD PTR [esi]
|
||||
movq QWORD PTR [esi*1+ebp-8],mm2
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm2,DWORD PTR [edx*4+edi]
|
||||
$L004loop_mmx_enter:
|
||||
add bl,cl
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm0
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm1,DWORD PTR [edx*4+edi]
|
||||
add bl,cl
|
||||
psllq mm1,8
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm1
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm1,DWORD PTR [edx*4+edi]
|
||||
add bl,cl
|
||||
psllq mm1,16
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm1
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm1,DWORD PTR [edx*4+edi]
|
||||
add bl,cl
|
||||
psllq mm1,24
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm1
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm1,DWORD PTR [edx*4+edi]
|
||||
add bl,cl
|
||||
psllq mm1,32
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm1
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm1,DWORD PTR [edx*4+edi]
|
||||
add bl,cl
|
||||
psllq mm1,40
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm1
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm1,DWORD PTR [edx*4+edi]
|
||||
add bl,cl
|
||||
psllq mm1,48
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
mov DWORD PTR [eax*4+edi],edx
|
||||
inc eax
|
||||
add edx,ecx
|
||||
movzx eax,al
|
||||
movzx edx,dl
|
||||
pxor mm2,mm1
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
movd mm1,DWORD PTR [edx*4+edi]
|
||||
mov edx,ebx
|
||||
xor ebx,ebx
|
||||
mov bl,dl
|
||||
cmp esi,DWORD PTR [edi-4]
|
||||
lea esi,DWORD PTR 8[esi]
|
||||
jb $L005loop_mmx
|
||||
psllq mm1,56
|
||||
pxor mm2,mm1
|
||||
movq QWORD PTR [esi*1+ebp-8],mm2
|
||||
emms
|
||||
cmp esi,DWORD PTR 24[esp]
|
||||
je $L006done
|
||||
jmp $L002loop1
|
||||
ALIGN 16
|
||||
$L003go4loop4:
|
||||
lea edx,DWORD PTR [edx*1+esi-4]
|
||||
mov DWORD PTR 28[esp],edx
|
||||
$L007loop4:
|
||||
mov DWORD PTR 32[esp],ebp
|
||||
ALIGN 16
|
||||
$L003loop4:
|
||||
add bl,cl
|
||||
mov edx,DWORD PTR [ebx*4+edi]
|
||||
mov DWORD PTR [ebx*4+edi],ecx
|
||||
@ -230,9 +87,9 @@ $L007loop4:
|
||||
mov DWORD PTR [esi*1+ecx],ebp
|
||||
lea esi,DWORD PTR 4[esi]
|
||||
mov ecx,DWORD PTR [eax*4+edi]
|
||||
jb $L007loop4
|
||||
jb $L003loop4
|
||||
cmp esi,DWORD PTR 24[esp]
|
||||
je $L006done
|
||||
je $L004done
|
||||
mov ebp,DWORD PTR 32[esp]
|
||||
ALIGN 16
|
||||
$L002loop1:
|
||||
@ -250,11 +107,11 @@ $L002loop1:
|
||||
cmp esi,DWORD PTR 24[esp]
|
||||
mov BYTE PTR [esi*1+ebp-1],dl
|
||||
jb $L002loop1
|
||||
jmp $L006done
|
||||
jmp $L004done
|
||||
ALIGN 16
|
||||
$L001RC4_CHAR:
|
||||
movzx ecx,BYTE PTR [eax*1+edi]
|
||||
$L008cloop1:
|
||||
$L005cloop1:
|
||||
add bl,cl
|
||||
movzx edx,BYTE PTR [ebx*1+edi]
|
||||
mov BYTE PTR [ebx*1+edi],cl
|
||||
@ -267,10 +124,10 @@ $L008cloop1:
|
||||
movzx ecx,BYTE PTR [eax*1+edi]
|
||||
cmp esi,DWORD PTR 24[esp]
|
||||
mov BYTE PTR [esi*1+ebp-1],dl
|
||||
jb $L008cloop1
|
||||
$L006done:
|
||||
jb $L005cloop1
|
||||
$L004done:
|
||||
dec al
|
||||
mov DWORD PTR [edi-4],ebx
|
||||
mov BYTE PTR [edi-4],bl
|
||||
mov BYTE PTR [edi-8],al
|
||||
$L000abort:
|
||||
pop edi
|
||||
@ -279,9 +136,10 @@ $L000abort:
|
||||
pop ebp
|
||||
ret
|
||||
_RC4 ENDP
|
||||
;EXTERN _OPENSSL_ia32cap_P:NEAR
|
||||
ALIGN 16
|
||||
_private_RC4_set_key PROC PUBLIC
|
||||
$L_private_RC4_set_key_begin::
|
||||
_RC4_set_key PROC PUBLIC
|
||||
$L_RC4_set_key_begin::
|
||||
push ebp
|
||||
push ebx
|
||||
push esi
|
||||
@ -296,53 +154,53 @@ $L_private_RC4_set_key_begin::
|
||||
xor eax,eax
|
||||
mov DWORD PTR [edi-4],ebp
|
||||
bt DWORD PTR [edx],20
|
||||
jc $L009c1stloop
|
||||
jc $L006c1stloop
|
||||
ALIGN 16
|
||||
$L010w1stloop:
|
||||
$L007w1stloop:
|
||||
mov DWORD PTR [eax*4+edi],eax
|
||||
add al,1
|
||||
jnc $L010w1stloop
|
||||
jnc $L007w1stloop
|
||||
xor ecx,ecx
|
||||
xor edx,edx
|
||||
ALIGN 16
|
||||
$L011w2ndloop:
|
||||
$L008w2ndloop:
|
||||
mov eax,DWORD PTR [ecx*4+edi]
|
||||
add dl,BYTE PTR [ebp*1+esi]
|
||||
add dl,al
|
||||
add ebp,1
|
||||
mov ebx,DWORD PTR [edx*4+edi]
|
||||
jnz $L012wnowrap
|
||||
jnz $L009wnowrap
|
||||
mov ebp,DWORD PTR [edi-4]
|
||||
$L012wnowrap:
|
||||
$L009wnowrap:
|
||||
mov DWORD PTR [edx*4+edi],eax
|
||||
mov DWORD PTR [ecx*4+edi],ebx
|
||||
add cl,1
|
||||
jnc $L011w2ndloop
|
||||
jmp $L013exit
|
||||
jnc $L008w2ndloop
|
||||
jmp $L010exit
|
||||
ALIGN 16
|
||||
$L009c1stloop:
|
||||
$L006c1stloop:
|
||||
mov BYTE PTR [eax*1+edi],al
|
||||
add al,1
|
||||
jnc $L009c1stloop
|
||||
jnc $L006c1stloop
|
||||
xor ecx,ecx
|
||||
xor edx,edx
|
||||
xor ebx,ebx
|
||||
ALIGN 16
|
||||
$L014c2ndloop:
|
||||
$L011c2ndloop:
|
||||
mov al,BYTE PTR [ecx*1+edi]
|
||||
add dl,BYTE PTR [ebp*1+esi]
|
||||
add dl,al
|
||||
add ebp,1
|
||||
mov bl,BYTE PTR [edx*1+edi]
|
||||
jnz $L015cnowrap
|
||||
jnz $L012cnowrap
|
||||
mov ebp,DWORD PTR [edi-4]
|
||||
$L015cnowrap:
|
||||
$L012cnowrap:
|
||||
mov BYTE PTR [edx*1+edi],al
|
||||
mov BYTE PTR [ecx*1+edi],bl
|
||||
add cl,1
|
||||
jnc $L014c2ndloop
|
||||
jnc $L011c2ndloop
|
||||
mov DWORD PTR 256[edi],-1
|
||||
$L013exit:
|
||||
$L010exit:
|
||||
xor eax,eax
|
||||
mov DWORD PTR [edi-8],eax
|
||||
mov DWORD PTR [edi-4],eax
|
||||
@ -351,31 +209,24 @@ $L013exit:
|
||||
pop ebx
|
||||
pop ebp
|
||||
ret
|
||||
_private_RC4_set_key ENDP
|
||||
_RC4_set_key ENDP
|
||||
ALIGN 16
|
||||
_RC4_options PROC PUBLIC
|
||||
$L_RC4_options_begin::
|
||||
call $L016pic_point
|
||||
$L016pic_point:
|
||||
call $L013pic_point
|
||||
$L013pic_point:
|
||||
pop eax
|
||||
lea eax,DWORD PTR ($L017opts-$L016pic_point)[eax]
|
||||
lea eax,DWORD PTR ($L014opts-$L013pic_point)[eax]
|
||||
lea edx,DWORD PTR _OPENSSL_ia32cap_P
|
||||
mov edx,DWORD PTR [edx]
|
||||
bt edx,20
|
||||
jc $L0181xchar
|
||||
bt edx,26
|
||||
jnc $L019ret
|
||||
add eax,25
|
||||
ret
|
||||
$L0181xchar:
|
||||
bt DWORD PTR [edx],20
|
||||
jnc $L015skip
|
||||
add eax,12
|
||||
$L019ret:
|
||||
$L015skip:
|
||||
ret
|
||||
ALIGN 64
|
||||
$L017opts:
|
||||
$L014opts:
|
||||
DB 114,99,52,40,52,120,44,105,110,116,41,0
|
||||
DB 114,99,52,40,49,120,44,99,104,97,114,41,0
|
||||
DB 114,99,52,40,56,120,44,109,109,120,41,0
|
||||
DB 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
|
||||
DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
|
||||
DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||||
@ -383,6 +234,6 @@ ALIGN 64
|
||||
_RC4_options ENDP
|
||||
.text$ ENDS
|
||||
.bss SEGMENT 'BSS'
|
||||
COMM _OPENSSL_ia32cap_P:QWORD
|
||||
COMM _OPENSSL_ia32cap_P:DWORD
|
||||
.bss ENDS
|
||||
END
|
||||
|
@ -2,7 +2,7 @@ TITLE rc5-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
@ -2,7 +2,7 @@ TITLE ../openssl/crypto/ripemd/asm/rmd-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
1358
deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm
vendored
1358
deps/openssl/asm/x86-win32-masm/sha/sha1-586.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@ TITLE sha512-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
@ -104,30 +104,31 @@ ALIGN 16
|
||||
$L00300_15:
|
||||
mov ebx,DWORD PTR 92[esp]
|
||||
mov ecx,edx
|
||||
ror ecx,14
|
||||
mov esi,DWORD PTR 20[esp]
|
||||
xor ecx,edx
|
||||
ror ecx,5
|
||||
xor ecx,edx
|
||||
ror ecx,6
|
||||
mov edi,edx
|
||||
ror edi,11
|
||||
mov esi,DWORD PTR 20[esp]
|
||||
xor ecx,edi
|
||||
ror edi,14
|
||||
xor ecx,edi
|
||||
mov edi,DWORD PTR 24[esp]
|
||||
add ebx,ecx
|
||||
xor esi,edi
|
||||
mov DWORD PTR 16[esp],edx
|
||||
xor esi,edi
|
||||
mov ecx,eax
|
||||
and esi,edx
|
||||
mov edx,DWORD PTR 12[esp]
|
||||
xor esi,edi
|
||||
mov edi,eax
|
||||
add ebx,esi
|
||||
ror ecx,9
|
||||
add ebx,DWORD PTR 28[esp]
|
||||
xor ecx,eax
|
||||
ror ecx,11
|
||||
mov esi,DWORD PTR 4[esp]
|
||||
xor ecx,eax
|
||||
ror ecx,2
|
||||
add ebx,DWORD PTR 28[esp]
|
||||
ror edi,13
|
||||
mov esi,DWORD PTR 4[esp]
|
||||
xor ecx,edi
|
||||
ror edi,9
|
||||
add edx,ebx
|
||||
xor ecx,edi
|
||||
mov edi,DWORD PTR 8[esp]
|
||||
add ebx,ecx
|
||||
mov DWORD PTR [esp],eax
|
||||
@ -149,46 +150,48 @@ ALIGN 16
|
||||
$L00416_63:
|
||||
mov esi,ebx
|
||||
mov ecx,DWORD PTR 100[esp]
|
||||
shr ebx,3
|
||||
ror esi,7
|
||||
xor ebx,esi
|
||||
ror esi,11
|
||||
mov edi,ecx
|
||||
xor esi,ebx
|
||||
ror esi,7
|
||||
shr ebx,3
|
||||
ror edi,2
|
||||
xor ebx,esi
|
||||
xor edi,ecx
|
||||
ror edi,17
|
||||
shr ecx,10
|
||||
add ebx,DWORD PTR 156[esp]
|
||||
mov esi,DWORD PTR 156[esp]
|
||||
ror edi,17
|
||||
xor ecx,edi
|
||||
ror edi,2
|
||||
add ebx,esi
|
||||
xor edi,ecx
|
||||
add ebx,DWORD PTR 120[esp]
|
||||
mov ecx,edx
|
||||
add ebx,edi
|
||||
ror ecx,14
|
||||
mov esi,DWORD PTR 20[esp]
|
||||
xor ecx,edx
|
||||
ror ecx,5
|
||||
mov DWORD PTR 92[esp],ebx
|
||||
xor ecx,edx
|
||||
mov ecx,edx
|
||||
add ebx,DWORD PTR 120[esp]
|
||||
ror ecx,6
|
||||
mov edi,edx
|
||||
ror edi,11
|
||||
mov esi,DWORD PTR 20[esp]
|
||||
xor ecx,edi
|
||||
ror edi,14
|
||||
mov DWORD PTR 92[esp],ebx
|
||||
xor ecx,edi
|
||||
mov edi,DWORD PTR 24[esp]
|
||||
add ebx,ecx
|
||||
xor esi,edi
|
||||
mov DWORD PTR 16[esp],edx
|
||||
xor esi,edi
|
||||
mov ecx,eax
|
||||
and esi,edx
|
||||
mov edx,DWORD PTR 12[esp]
|
||||
xor esi,edi
|
||||
mov edi,eax
|
||||
add ebx,esi
|
||||
ror ecx,9
|
||||
add ebx,DWORD PTR 28[esp]
|
||||
xor ecx,eax
|
||||
ror ecx,11
|
||||
mov esi,DWORD PTR 4[esp]
|
||||
xor ecx,eax
|
||||
ror ecx,2
|
||||
add ebx,DWORD PTR 28[esp]
|
||||
ror edi,13
|
||||
mov esi,DWORD PTR 4[esp]
|
||||
xor ecx,edi
|
||||
ror edi,9
|
||||
add edx,ebx
|
||||
xor ecx,edi
|
||||
mov edi,DWORD PTR 8[esp]
|
||||
add ebx,ecx
|
||||
mov DWORD PTR [esp],eax
|
||||
|
@ -2,7 +2,7 @@ TITLE sha512-586.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
|
132
deps/openssl/asm/x86-win32-masm/x86cpuid.asm
vendored
132
deps/openssl/asm/x86-win32-masm/x86cpuid.asm
vendored
@ -2,7 +2,7 @@ TITLE x86cpuid.asm
|
||||
IF @Version LT 800
|
||||
ECHO MASM version 8.00 or later is strongly recommended.
|
||||
ENDIF
|
||||
.686
|
||||
.586
|
||||
.MODEL FLAT
|
||||
OPTION DOTNAME
|
||||
IF @Version LT 800
|
||||
@ -27,9 +27,9 @@ $L_OPENSSL_ia32_cpuid_begin::
|
||||
pushfd
|
||||
pop eax
|
||||
xor ecx,eax
|
||||
xor eax,eax
|
||||
bt ecx,21
|
||||
jnc $L000nocpuid
|
||||
jnc $L000done
|
||||
xor eax,eax
|
||||
cpuid
|
||||
mov edi,eax
|
||||
xor eax,eax
|
||||
@ -55,14 +55,7 @@ $L_OPENSSL_ia32_cpuid_begin::
|
||||
jnz $L001intel
|
||||
mov eax,2147483648
|
||||
cpuid
|
||||
cmp eax,2147483649
|
||||
jb $L001intel
|
||||
mov esi,eax
|
||||
mov eax,2147483649
|
||||
cpuid
|
||||
or ebp,ecx
|
||||
and ebp,2049
|
||||
cmp esi,2147483656
|
||||
cmp eax,2147483656
|
||||
jb $L001intel
|
||||
mov eax,2147483656
|
||||
cpuid
|
||||
@ -71,68 +64,46 @@ $L_OPENSSL_ia32_cpuid_begin::
|
||||
mov eax,1
|
||||
cpuid
|
||||
bt edx,28
|
||||
jnc $L002generic
|
||||
jnc $L000done
|
||||
shr ebx,16
|
||||
and ebx,255
|
||||
cmp ebx,esi
|
||||
ja $L002generic
|
||||
ja $L000done
|
||||
and edx,4026531839
|
||||
jmp $L002generic
|
||||
jmp $L000done
|
||||
$L001intel:
|
||||
cmp edi,4
|
||||
mov edi,-1
|
||||
jb $L003nocacheinfo
|
||||
jb $L002nocacheinfo
|
||||
mov eax,4
|
||||
mov ecx,0
|
||||
cpuid
|
||||
mov edi,eax
|
||||
shr edi,14
|
||||
and edi,4095
|
||||
$L003nocacheinfo:
|
||||
$L002nocacheinfo:
|
||||
mov eax,1
|
||||
cpuid
|
||||
and edx,3220176895
|
||||
cmp ebp,0
|
||||
jne $L004notintel
|
||||
or edx,1073741824
|
||||
jne $L003notP4
|
||||
and ah,15
|
||||
cmp ah,15
|
||||
jne $L004notintel
|
||||
jne $L003notP4
|
||||
or edx,1048576
|
||||
$L004notintel:
|
||||
$L003notP4:
|
||||
bt edx,28
|
||||
jnc $L002generic
|
||||
jnc $L000done
|
||||
and edx,4026531839
|
||||
cmp edi,0
|
||||
je $L002generic
|
||||
je $L000done
|
||||
or edx,268435456
|
||||
shr ebx,16
|
||||
cmp bl,1
|
||||
ja $L002generic
|
||||
ja $L000done
|
||||
and edx,4026531839
|
||||
$L002generic:
|
||||
and ebp,2048
|
||||
and ecx,4294965247
|
||||
mov esi,edx
|
||||
or ebp,ecx
|
||||
bt ecx,27
|
||||
jnc $L005clear_avx
|
||||
xor ecx,ecx
|
||||
DB 15,1,208
|
||||
and eax,6
|
||||
cmp eax,6
|
||||
je $L006done
|
||||
cmp eax,2
|
||||
je $L005clear_avx
|
||||
$L007clear_xmm:
|
||||
and ebp,4261412861
|
||||
and esi,4278190079
|
||||
$L005clear_avx:
|
||||
and ebp,4026525695
|
||||
$L006done:
|
||||
mov eax,esi
|
||||
mov edx,ebp
|
||||
$L000nocpuid:
|
||||
$L000done:
|
||||
mov eax,edx
|
||||
mov edx,ecx
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
@ -147,9 +118,9 @@ $L_OPENSSL_rdtsc_begin::
|
||||
xor edx,edx
|
||||
lea ecx,DWORD PTR _OPENSSL_ia32cap_P
|
||||
bt DWORD PTR [ecx],4
|
||||
jnc $L008notsc
|
||||
jnc $L004notsc
|
||||
rdtsc
|
||||
$L008notsc:
|
||||
$L004notsc:
|
||||
ret
|
||||
_OPENSSL_rdtsc ENDP
|
||||
ALIGN 16
|
||||
@ -157,14 +128,14 @@ _OPENSSL_instrument_halt PROC PUBLIC
|
||||
$L_OPENSSL_instrument_halt_begin::
|
||||
lea ecx,DWORD PTR _OPENSSL_ia32cap_P
|
||||
bt DWORD PTR [ecx],4
|
||||
jnc $L009nohalt
|
||||
jnc $L005nohalt
|
||||
DD 2421723150
|
||||
and eax,3
|
||||
jnz $L009nohalt
|
||||
jnz $L005nohalt
|
||||
pushfd
|
||||
pop eax
|
||||
bt eax,9
|
||||
jnc $L009nohalt
|
||||
jnc $L005nohalt
|
||||
rdtsc
|
||||
push edx
|
||||
push eax
|
||||
@ -174,7 +145,7 @@ DD 2421723150
|
||||
sbb edx,DWORD PTR 4[esp]
|
||||
add esp,8
|
||||
ret
|
||||
$L009nohalt:
|
||||
$L005nohalt:
|
||||
xor eax,eax
|
||||
xor edx,edx
|
||||
ret
|
||||
@ -185,21 +156,21 @@ $L_OPENSSL_far_spin_begin::
|
||||
pushfd
|
||||
pop eax
|
||||
bt eax,9
|
||||
jnc $L010nospin
|
||||
jnc $L006nospin
|
||||
mov eax,DWORD PTR 4[esp]
|
||||
mov ecx,DWORD PTR 8[esp]
|
||||
DD 2430111262
|
||||
xor eax,eax
|
||||
mov edx,DWORD PTR [ecx]
|
||||
jmp $L011spin
|
||||
jmp $L007spin
|
||||
ALIGN 16
|
||||
$L011spin:
|
||||
$L007spin:
|
||||
inc eax
|
||||
cmp edx,DWORD PTR [ecx]
|
||||
je $L011spin
|
||||
je $L007spin
|
||||
DD 529567888
|
||||
ret
|
||||
$L010nospin:
|
||||
$L006nospin:
|
||||
xor eax,eax
|
||||
xor edx,edx
|
||||
ret
|
||||
@ -212,9 +183,9 @@ $L_OPENSSL_wipe_cpu_begin::
|
||||
lea ecx,DWORD PTR _OPENSSL_ia32cap_P
|
||||
mov ecx,DWORD PTR [ecx]
|
||||
bt DWORD PTR [ecx],1
|
||||
jnc $L012no_x87
|
||||
jnc $L008no_x87
|
||||
DD 4007259865,4007259865,4007259865,4007259865,2430851995
|
||||
$L012no_x87:
|
||||
$L008no_x87:
|
||||
lea eax,DWORD PTR 4[esp]
|
||||
ret
|
||||
_OPENSSL_wipe_cpu ENDP
|
||||
@ -226,11 +197,11 @@ $L_OPENSSL_atomic_add_begin::
|
||||
push ebx
|
||||
nop
|
||||
mov eax,DWORD PTR [edx]
|
||||
$L013spin:
|
||||
$L009spin:
|
||||
lea ebx,DWORD PTR [ecx*1+eax]
|
||||
nop
|
||||
DD 447811568
|
||||
jne $L013spin
|
||||
jne $L009spin
|
||||
mov eax,ebx
|
||||
pop ebx
|
||||
ret
|
||||
@ -267,50 +238,37 @@ $L_OPENSSL_cleanse_begin::
|
||||
mov ecx,DWORD PTR 8[esp]
|
||||
xor eax,eax
|
||||
cmp ecx,7
|
||||
jae $L014lot
|
||||
jae $L010lot
|
||||
cmp ecx,0
|
||||
je $L015ret
|
||||
$L016little:
|
||||
je $L011ret
|
||||
$L012little:
|
||||
mov BYTE PTR [edx],al
|
||||
sub ecx,1
|
||||
lea edx,DWORD PTR 1[edx]
|
||||
jnz $L016little
|
||||
$L015ret:
|
||||
jnz $L012little
|
||||
$L011ret:
|
||||
ret
|
||||
ALIGN 16
|
||||
$L014lot:
|
||||
$L010lot:
|
||||
test edx,3
|
||||
jz $L017aligned
|
||||
jz $L013aligned
|
||||
mov BYTE PTR [edx],al
|
||||
lea ecx,DWORD PTR [ecx-1]
|
||||
lea edx,DWORD PTR 1[edx]
|
||||
jmp $L014lot
|
||||
$L017aligned:
|
||||
jmp $L010lot
|
||||
$L013aligned:
|
||||
mov DWORD PTR [edx],eax
|
||||
lea ecx,DWORD PTR [ecx-4]
|
||||
test ecx,-4
|
||||
lea edx,DWORD PTR 4[edx]
|
||||
jnz $L017aligned
|
||||
jnz $L013aligned
|
||||
cmp ecx,0
|
||||
jne $L016little
|
||||
jne $L012little
|
||||
ret
|
||||
_OPENSSL_cleanse ENDP
|
||||
ALIGN 16
|
||||
_OPENSSL_ia32_rdrand PROC PUBLIC
|
||||
$L_OPENSSL_ia32_rdrand_begin::
|
||||
mov ecx,8
|
||||
$L018loop:
|
||||
DB 15,199,240
|
||||
jc $L019break
|
||||
loop $L018loop
|
||||
$L019break:
|
||||
cmp eax,0
|
||||
cmove eax,ecx
|
||||
ret
|
||||
_OPENSSL_ia32_rdrand ENDP
|
||||
.text$ ENDS
|
||||
.bss SEGMENT 'BSS'
|
||||
COMM _OPENSSL_ia32cap_P:QWORD
|
||||
COMM _OPENSSL_ia32cap_P:DWORD
|
||||
.bss ENDS
|
||||
.CRT$XCU SEGMENT DWORD PUBLIC 'DATA'
|
||||
EXTERN _OPENSSL_cpuid_setup:NEAR
|
||||
|
253
deps/openssl/config/android/openssl/opensslconf.h
vendored
Normal file
253
deps/openssl/config/android/openssl/opensslconf.h
vendored
Normal file
@ -0,0 +1,253 @@
|
||||
/* opensslconf.h */
|
||||
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
||||
|
||||
/* OpenSSL was configured with the following options: */
|
||||
#ifndef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_CAMELLIA
|
||||
# define OPENSSL_NO_CAMELLIA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_GMP
|
||||
# define OPENSSL_NO_GMP
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_IDEA
|
||||
# define OPENSSL_NO_IDEA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_JPAKE
|
||||
# define OPENSSL_NO_JPAKE
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_KRB5
|
||||
# define OPENSSL_NO_KRB5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MDC2
|
||||
# define OPENSSL_NO_MDC2
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CMS
|
||||
# define OPENSSL_NO_CMS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC5
|
||||
# define OPENSSL_NO_RC5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
# define OPENSSL_NO_RFC3779
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SEED
|
||||
# define OPENSSL_NO_SEED
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SHA0
|
||||
# define OPENSSL_NO_SHA0
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_WHRLPOOL
|
||||
# define OPENSSL_NO_WHRLPOOL
|
||||
#endif
|
||||
|
||||
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
||||
|
||||
#ifndef OPENSSL_THREADS
|
||||
# define OPENSSL_THREADS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DYNAMIC_ENGINE
|
||||
# define OPENSSL_NO_DYNAMIC_ENGINE
|
||||
#endif
|
||||
|
||||
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
||||
asks for it. This is a transient feature that is provided for those
|
||||
who haven't had the time to do the appropriate changes in their
|
||||
applications. */
|
||||
#ifdef OPENSSL_ALGORITHM_DEFINES
|
||||
# if defined(OPENSSL_NO_CAST) && !defined(NO_CAST)
|
||||
# define NO_CAST
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
||||
# define NO_GMP
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_IDEA) && !defined(NO_IDEA)
|
||||
# define NO_IDEA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
||||
# define NO_JPAKE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
||||
# define NO_KRB5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)
|
||||
# define NO_MD2
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
||||
# define NO_RC5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
||||
# define NO_RFC3779
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_SEED) && !defined(NO_SEED)
|
||||
# define NO_SEED
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_SHA0) && !defined(NO_SHA0)
|
||||
# define NO_SHA0
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)
|
||||
# define NO_STORE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_WHRLPOOL) && !defined(NO_WHRLPOOL)
|
||||
# define NO_WHRLPOOL
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)
|
||||
# define NO_MDC2
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* crypto/opensslconf.h.in */
|
||||
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define ENGINESDIR "/usr/local/ssl/lib/engines"
|
||||
#define OPENSSLDIR "/usr/local/ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_UNISTD
|
||||
#define OPENSSL_UNISTD <unistd.h>
|
||||
|
||||
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
||||
#define MD2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
||||
/* I need to put in a mod for the alpha - eay */
|
||||
#define RC2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_H)
|
||||
#if !defined(RC4_INT)
|
||||
/* using int types make the structure larger but make the code faster
|
||||
* on most boxes I have tested - up to %20 faster. */
|
||||
/*
|
||||
* I don't know what does "most" mean, but declaring "int" is a must on:
|
||||
* - Intel P6 because partial register stalls are very expensive;
|
||||
* - elder Alpha because it lacks byte load/store instructions;
|
||||
*/
|
||||
#define RC4_INT unsigned char
|
||||
#endif
|
||||
#if !defined(RC4_CHUNK)
|
||||
/*
|
||||
* This enables code handling data aligned at natural CPU word
|
||||
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
||||
*/
|
||||
#define RC4_CHUNK unsigned long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
||||
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
||||
* %20 speed up (longs are 8 bytes, int's are 4). */
|
||||
#ifndef DES_LONG
|
||||
#define DES_LONG unsigned int
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
||||
#define CONFIG_HEADER_BN_H
|
||||
#define BN_LLONG
|
||||
|
||||
/* Should we define BN_DIV2W here? */
|
||||
|
||||
/* Only one for the following should be defined */
|
||||
#undef SIXTY_FOUR_BIT_LONG
|
||||
#undef SIXTY_FOUR_BIT
|
||||
#define THIRTY_TWO_BIT
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
||||
#define CONFIG_HEADER_RC4_LOCL_H
|
||||
/* if this is defined data[i] is used instead of *data, this is a %20
|
||||
* speedup on x86 */
|
||||
#undef RC4_INDEX
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
||||
#define CONFIG_HEADER_BF_LOCL_H
|
||||
#define BF_PTR
|
||||
#endif /* HEADER_BF_LOCL_H */
|
||||
|
||||
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
||||
#define CONFIG_HEADER_DES_LOCL_H
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
/* the following is tweaked from a config script, that is why it is a
|
||||
* protected undef/define */
|
||||
#ifndef DES_PTR
|
||||
#undef DES_PTR
|
||||
#endif
|
||||
|
||||
/* This helps C compiler generate the correct code for multiple functional
|
||||
* units. It reduces register dependancies at the expense of 2 more
|
||||
* registers */
|
||||
#ifndef DES_RISC1
|
||||
#undef DES_RISC1
|
||||
#endif
|
||||
|
||||
#ifndef DES_RISC2
|
||||
#undef DES_RISC2
|
||||
#endif
|
||||
|
||||
#if defined(DES_RISC1) && defined(DES_RISC2)
|
||||
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
||||
#endif
|
||||
|
||||
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
||||
* Very mucy CPU dependant */
|
||||
#ifndef DES_UNROLL
|
||||
#define DES_UNROLL
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
||||
* They are only used if nothing else has been defined */
|
||||
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
||||
/* Special defines which change the way the code is built depending on the
|
||||
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
||||
even newer MIPS CPU's, but at the moment one size fits all for
|
||||
optimization options. Older Sparc's work better with only UNROLL, but
|
||||
there's no way to tell at compile time what it is you're running on */
|
||||
|
||||
#if defined( sun ) /* Newer Sparc's */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#elif defined( __ultrix ) /* Older MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined( __osf1__ ) /* Alpha */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
#elif defined ( _AIX ) /* RS6000 */
|
||||
/* Unknown */
|
||||
#elif defined( __hpux ) /* HP-PA */
|
||||
/* Unknown */
|
||||
#elif defined( __aux ) /* 68K */
|
||||
/* Unknown */
|
||||
#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
|
||||
# define DES_UNROLL
|
||||
#elif defined( __sgi ) /* Newer MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#endif /* Systems-specific speed defines */
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
#endif /* HEADER_DES_LOCL_H */
|
273
deps/openssl/config/k8/openssl/opensslconf-posix.h
vendored
Normal file
273
deps/openssl/config/k8/openssl/opensslconf-posix.h
vendored
Normal file
@ -0,0 +1,273 @@
|
||||
/* opensslconf.h */
|
||||
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
||||
|
||||
/* OpenSSL was configured with the following options: */
|
||||
#ifndef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_CAMELLIA
|
||||
# define OPENSSL_NO_CAMELLIA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CAPIENG
|
||||
# define OPENSSL_NO_CAPIENG
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CMS
|
||||
# define OPENSSL_NO_CMS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_FIPS
|
||||
# define OPENSSL_NO_FIPS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_GMP
|
||||
# define OPENSSL_NO_GMP
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_IDEA
|
||||
# define OPENSSL_NO_IDEA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_JPAKE
|
||||
# define OPENSSL_NO_JPAKE
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_KRB5
|
||||
# define OPENSSL_NO_KRB5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MDC2
|
||||
# define OPENSSL_NO_MDC2
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC5
|
||||
# define OPENSSL_NO_RC5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
# define OPENSSL_NO_RFC3779
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SEED
|
||||
# define OPENSSL_NO_SEED
|
||||
#endif
|
||||
|
||||
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
||||
|
||||
#ifndef OPENSSL_THREADS
|
||||
# define OPENSSL_THREADS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DYNAMIC_ENGINE
|
||||
# define OPENSSL_NO_DYNAMIC_ENGINE
|
||||
#endif
|
||||
|
||||
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
||||
asks for it. This is a transient feature that is provided for those
|
||||
who haven't had the time to do the appropriate changes in their
|
||||
applications. */
|
||||
#ifdef OPENSSL_ALGORITHM_DEFINES
|
||||
# if defined(OPENSSL_NO_CAMELLIA) && !defined(NO_CAMELLIA)
|
||||
# define NO_CAMELLIA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CAPIENG) && !defined(NO_CAPIENG)
|
||||
# define NO_CAPIENG
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CMS) && !defined(NO_CMS)
|
||||
# define NO_CMS
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_FIPS) && !defined(NO_FIPS)
|
||||
# define NO_FIPS
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
||||
# define NO_GMP
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_IDEA) && !defined(NO_IDEA)
|
||||
# define NO_IDEA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
||||
# define NO_JPAKE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
||||
# define NO_KRB5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)
|
||||
# define NO_MDC2
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
||||
# define NO_RC5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
||||
# define NO_RFC3779
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_SEED) && !defined(NO_SEED)
|
||||
# define NO_SEED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* crypto/opensslconf.h.in */
|
||||
|
||||
#ifdef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
/* Include any symbols here that have to be explicitly set to enable a feature
|
||||
* that should be visible to makedepend.
|
||||
*
|
||||
* [Our "make depend" doesn't actually look at this, we use actual build settings
|
||||
* instead; we want to make it easy to remove subdirectories with disabled algorithms.]
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
#define OPENSSL_FIPS
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define ENGINESDIR "/usr/local/ssl/lib/engines"
|
||||
#define OPENSSLDIR "/usr/local/ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_UNISTD
|
||||
#define OPENSSL_UNISTD <unistd.h>
|
||||
#if !defined(SWIG)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
||||
#define MD2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
||||
/* I need to put in a mod for the alpha - eay */
|
||||
#define RC2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_H)
|
||||
#if !defined(RC4_INT)
|
||||
/* using int types make the structure larger but make the code faster
|
||||
* on most boxes I have tested - up to %20 faster. */
|
||||
/*
|
||||
* I don't know what does "most" mean, but declaring "int" is a must on:
|
||||
* - Intel P6 because partial register stalls are very expensive;
|
||||
* - elder Alpha because it lacks byte load/store instructions;
|
||||
*/
|
||||
#define RC4_INT unsigned int
|
||||
#endif
|
||||
#if !defined(RC4_CHUNK)
|
||||
/*
|
||||
* This enables code handling data aligned at natural CPU word
|
||||
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
||||
*/
|
||||
#define RC4_CHUNK unsigned long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
||||
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
||||
* %20 speed up (longs are 8 bytes, int's are 4). */
|
||||
#ifndef DES_LONG
|
||||
#define DES_LONG unsigned int
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
||||
#define CONFIG_HEADER_BN_H
|
||||
#undef BN_LLONG
|
||||
|
||||
/* Should we define BN_DIV2W here? */
|
||||
|
||||
/* Only one for the following should be defined */
|
||||
/* The prime number generation stuff may not work when
|
||||
* EIGHT_BIT but I don't care since I've only used this mode
|
||||
* for debuging the bignum libraries */
|
||||
#define SIXTY_FOUR_BIT_LONG
|
||||
#undef SIXTY_FOUR_BIT
|
||||
#undef THIRTY_TWO_BIT
|
||||
#undef SIXTEEN_BIT
|
||||
#undef EIGHT_BIT
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
||||
#define CONFIG_HEADER_RC4_LOCL_H
|
||||
/* if this is defined data[i] is used instead of *data, this is a %20
|
||||
* speedup on x86 */
|
||||
#undef RC4_INDEX
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
||||
#define CONFIG_HEADER_BF_LOCL_H
|
||||
#undef BF_PTR
|
||||
#endif /* HEADER_BF_LOCL_H */
|
||||
|
||||
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
||||
#define CONFIG_HEADER_DES_LOCL_H
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
/* the following is tweaked from a config script, that is why it is a
|
||||
* protected undef/define */
|
||||
#ifndef DES_PTR
|
||||
#undef DES_PTR
|
||||
#endif
|
||||
|
||||
/* This helps C compiler generate the correct code for multiple functional
|
||||
* units. It reduces register dependancies at the expense of 2 more
|
||||
* registers */
|
||||
#ifndef DES_RISC1
|
||||
#undef DES_RISC1
|
||||
#endif
|
||||
|
||||
#ifndef DES_RISC2
|
||||
#undef DES_RISC2
|
||||
#endif
|
||||
|
||||
#if defined(DES_RISC1) && defined(DES_RISC2)
|
||||
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
||||
#endif
|
||||
|
||||
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
||||
* Very mucy CPU dependant */
|
||||
#ifndef DES_UNROLL
|
||||
#define DES_UNROLL
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
||||
* They are only used if nothing else has been defined */
|
||||
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
||||
/* Special defines which change the way the code is built depending on the
|
||||
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
||||
even newer MIPS CPU's, but at the moment one size fits all for
|
||||
optimization options. Older Sparc's work better with only UNROLL, but
|
||||
there's no way to tell at compile time what it is you're running on */
|
||||
|
||||
#if defined( sun ) /* Newer Sparc's */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#elif defined( __ultrix ) /* Older MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined( __osf1__ ) /* Alpha */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
#elif defined ( _AIX ) /* RS6000 */
|
||||
/* Unknown */
|
||||
#elif defined( __hpux ) /* HP-PA */
|
||||
/* Unknown */
|
||||
#elif defined( __aux ) /* 68K */
|
||||
/* Unknown */
|
||||
#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
|
||||
# define DES_UNROLL
|
||||
#elif defined( __sgi ) /* Newer MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#endif /* Systems-specific speed defines */
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
#endif /* HEADER_DES_LOCL_H */
|
262
deps/openssl/config/k8/openssl/opensslconf-win32.h
vendored
Normal file
262
deps/openssl/config/k8/openssl/opensslconf-win32.h
vendored
Normal file
@ -0,0 +1,262 @@
|
||||
/* opensslconf.h */
|
||||
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
||||
|
||||
/* OpenSSL was configured with the following options: */
|
||||
#ifndef OPENSSL_SYSNAME_WIN32
|
||||
# define OPENSSL_SYSNAME_WIN32
|
||||
#endif
|
||||
#ifndef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_CAMELLIA
|
||||
# define OPENSSL_NO_CAMELLIA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CAPIENG
|
||||
# define OPENSSL_NO_CAPIENG
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CMS
|
||||
# define OPENSSL_NO_CMS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_GMP
|
||||
# define OPENSSL_NO_GMP
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_IDEA
|
||||
# define OPENSSL_NO_IDEA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_JPAKE
|
||||
# define OPENSSL_NO_JPAKE
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_KRB5
|
||||
# define OPENSSL_NO_KRB5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MDC2
|
||||
# define OPENSSL_NO_MDC2
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC5
|
||||
# define OPENSSL_NO_RC5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
# define OPENSSL_NO_RFC3779
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SEED
|
||||
# define OPENSSL_NO_SEED
|
||||
#endif
|
||||
|
||||
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
||||
|
||||
#ifndef OPENSSL_THREADS
|
||||
# define OPENSSL_THREADS
|
||||
#endif
|
||||
|
||||
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
||||
asks for it. This is a transient feature that is provided for those
|
||||
who haven't had the time to do the appropriate changes in their
|
||||
applications. */
|
||||
#ifdef OPENSSL_ALGORITHM_DEFINES
|
||||
# if defined(OPENSSL_NO_CAMELLIA) && !defined(NO_CAMELLIA)
|
||||
# define NO_CAMELLIA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CAPIENG) && !defined(NO_CAPIENG)
|
||||
# define NO_CAPIENG
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CMS) && !defined(NO_CMS)
|
||||
# define NO_CMS
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
||||
# define NO_GMP
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
||||
# define NO_JPAKE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
||||
# define NO_KRB5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)
|
||||
# define NO_MDC2
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
||||
# define NO_RC5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
||||
# define NO_RFC3779
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_SEED) && !defined(NO_SEED)
|
||||
# define NO_SEED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* crypto/opensslconf.h.in */
|
||||
|
||||
#ifdef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
/* Include any symbols here that have to be explicitly set to enable a feature
|
||||
* that should be visible to makedepend.
|
||||
*
|
||||
* [Our "make depend" doesn't actually look at this, we use actual build settings
|
||||
* instead; we want to make it easy to remove subdirectories with disabled algorithms.]
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
#define OPENSSL_FIPS
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define ENGINESDIR "ssl/lib/engines"
|
||||
#define OPENSSLDIR "ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_UNISTD
|
||||
#define OPENSSL_UNISTD <unistd.h>
|
||||
|
||||
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
#define OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
||||
#define MD2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
||||
/* I need to put in a mod for the alpha - eay */
|
||||
#define RC2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_H)
|
||||
#if !defined(RC4_INT)
|
||||
/* using int types make the structure larger but make the code faster
|
||||
* on most boxes I have tested - up to %20 faster. */
|
||||
/*
|
||||
* I don't know what does "most" mean, but declaring "int" is a must on:
|
||||
* - Intel P6 because partial register stalls are very expensive;
|
||||
* - elder Alpha because it lacks byte load/store instructions;
|
||||
*/
|
||||
#define RC4_INT unsigned int
|
||||
#endif
|
||||
#if !defined(RC4_CHUNK)
|
||||
/*
|
||||
* This enables code handling data aligned at natural CPU word
|
||||
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
||||
*/
|
||||
#define RC4_CHUNK unsigned long long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
||||
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
||||
* %20 speed up (longs are 8 bytes, int's are 4). */
|
||||
#ifndef DES_LONG
|
||||
#define DES_LONG unsigned int
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
||||
#define CONFIG_HEADER_BN_H
|
||||
#undef BN_LLONG
|
||||
|
||||
/* Should we define BN_DIV2W here? */
|
||||
|
||||
/* Only one for the following should be defined */
|
||||
/* The prime number generation stuff may not work when
|
||||
* EIGHT_BIT but I don't care since I've only used this mode
|
||||
* for debuging the bignum libraries */
|
||||
#undef SIXTY_FOUR_BIT_LONG
|
||||
#define SIXTY_FOUR_BIT
|
||||
#undef THIRTY_TWO_BIT
|
||||
#undef SIXTEEN_BIT
|
||||
#undef EIGHT_BIT
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
||||
#define CONFIG_HEADER_RC4_LOCL_H
|
||||
/* if this is defined data[i] is used instead of *data, this is a %20
|
||||
* speedup on x86 */
|
||||
#undef RC4_INDEX
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
||||
#define CONFIG_HEADER_BF_LOCL_H
|
||||
#undef BF_PTR
|
||||
#endif /* HEADER_BF_LOCL_H */
|
||||
|
||||
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
||||
#define CONFIG_HEADER_DES_LOCL_H
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
/* the following is tweaked from a config script, that is why it is a
|
||||
* protected undef/define */
|
||||
#ifndef DES_PTR
|
||||
#undef DES_PTR
|
||||
#endif
|
||||
|
||||
/* This helps C compiler generate the correct code for multiple functional
|
||||
* units. It reduces register dependancies at the expense of 2 more
|
||||
* registers */
|
||||
#ifndef DES_RISC1
|
||||
#undef DES_RISC1
|
||||
#endif
|
||||
|
||||
#ifndef DES_RISC2
|
||||
#undef DES_RISC2
|
||||
#endif
|
||||
|
||||
#if defined(DES_RISC1) && defined(DES_RISC2)
|
||||
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
||||
#endif
|
||||
|
||||
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
||||
* Very mucy CPU dependant */
|
||||
#ifndef DES_UNROLL
|
||||
#undef DES_UNROLL
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
||||
* They are only used if nothing else has been defined */
|
||||
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
||||
/* Special defines which change the way the code is built depending on the
|
||||
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
||||
even newer MIPS CPU's, but at the moment one size fits all for
|
||||
optimization options. Older Sparc's work better with only UNROLL, but
|
||||
there's no way to tell at compile time what it is you're running on */
|
||||
|
||||
#if defined( sun ) /* Newer Sparc's */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#elif defined( __ultrix ) /* Older MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined( __osf1__ ) /* Alpha */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
#elif defined ( _AIX ) /* RS6000 */
|
||||
/* Unknown */
|
||||
#elif defined( __hpux ) /* HP-PA */
|
||||
/* Unknown */
|
||||
#elif defined( __aux ) /* 68K */
|
||||
/* Unknown */
|
||||
#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
|
||||
# define DES_UNROLL
|
||||
#elif defined( __sgi ) /* Newer MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#endif /* Systems-specific speed defines */
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
#endif /* HEADER_DES_LOCL_H */
|
5
deps/openssl/config/k8/openssl/opensslconf.h
vendored
Normal file
5
deps/openssl/config/k8/openssl/opensslconf.h
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
#ifdef WIN32
|
||||
#include "opensslconf-win32.h"
|
||||
#else
|
||||
#include "opensslconf-posix.h"
|
||||
#endif
|
273
deps/openssl/config/piii/openssl/opensslconf-posix.h
vendored
Normal file
273
deps/openssl/config/piii/openssl/opensslconf-posix.h
vendored
Normal file
@ -0,0 +1,273 @@
|
||||
/* opensslconf.h */
|
||||
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
||||
|
||||
/* OpenSSL was configured with the following options: */
|
||||
#ifndef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_CAMELLIA
|
||||
# define OPENSSL_NO_CAMELLIA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CAPIENG
|
||||
# define OPENSSL_NO_CAPIENG
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CMS
|
||||
# define OPENSSL_NO_CMS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_FIPS
|
||||
# define OPENSSL_NO_FIPS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_GMP
|
||||
# define OPENSSL_NO_GMP
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_IDEA
|
||||
# define OPENSSL_NO_IDEA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_JPAKE
|
||||
# define OPENSSL_NO_JPAKE
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_KRB5
|
||||
# define OPENSSL_NO_KRB5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MDC2
|
||||
# define OPENSSL_NO_MDC2
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC5
|
||||
# define OPENSSL_NO_RC5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
# define OPENSSL_NO_RFC3779
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SEED
|
||||
# define OPENSSL_NO_SEED
|
||||
#endif
|
||||
|
||||
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
||||
|
||||
#ifndef OPENSSL_THREADS
|
||||
# define OPENSSL_THREADS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DYNAMIC_ENGINE
|
||||
# define OPENSSL_NO_DYNAMIC_ENGINE
|
||||
#endif
|
||||
|
||||
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
||||
asks for it. This is a transient feature that is provided for those
|
||||
who haven't had the time to do the appropriate changes in their
|
||||
applications. */
|
||||
#ifdef OPENSSL_ALGORITHM_DEFINES
|
||||
# if defined(OPENSSL_NO_CAMELLIA) && !defined(NO_CAMELLIA)
|
||||
# define NO_CAMELLIA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CAPIENG) && !defined(NO_CAPIENG)
|
||||
# define NO_CAPIENG
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CMS) && !defined(NO_CMS)
|
||||
# define NO_CMS
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_FIPS) && !defined(NO_FIPS)
|
||||
# define NO_FIPS
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
||||
# define NO_GMP
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_IDEA) && !defined(NO_IDEA)
|
||||
# define NO_IDEA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
||||
# define NO_JPAKE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
||||
# define NO_KRB5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)
|
||||
# define NO_MDC2
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
||||
# define NO_RC5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
||||
# define NO_RFC3779
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_SEED) && !defined(NO_SEED)
|
||||
# define NO_SEED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* crypto/opensslconf.h.in */
|
||||
|
||||
#ifdef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
/* Include any symbols here that have to be explicitly set to enable a feature
|
||||
* that should be visible to makedepend.
|
||||
*
|
||||
* [Our "make depend" doesn't actually look at this, we use actual build settings
|
||||
* instead; we want to make it easy to remove subdirectories with disabled algorithms.]
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
#define OPENSSL_FIPS
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define ENGINESDIR "/usr/local/ssl/lib/engines"
|
||||
#define OPENSSLDIR "/usr/local/ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_UNISTD
|
||||
#define OPENSSL_UNISTD <unistd.h>
|
||||
#if !defined(SWIG)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
||||
#define MD2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
||||
/* I need to put in a mod for the alpha - eay */
|
||||
#define RC2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_H)
|
||||
#if !defined(RC4_INT)
|
||||
/* using int types make the structure larger but make the code faster
|
||||
* on most boxes I have tested - up to %20 faster. */
|
||||
/*
|
||||
* I don't know what does "most" mean, but declaring "int" is a must on:
|
||||
* - Intel P6 because partial register stalls are very expensive;
|
||||
* - elder Alpha because it lacks byte load/store instructions;
|
||||
*/
|
||||
#define RC4_INT unsigned int
|
||||
#endif
|
||||
#if !defined(RC4_CHUNK)
|
||||
/*
|
||||
* This enables code handling data aligned at natural CPU word
|
||||
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
||||
*/
|
||||
#undef RC4_CHUNK
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
||||
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
||||
* %20 speed up (longs are 8 bytes, int's are 4). */
|
||||
#ifndef DES_LONG
|
||||
#define DES_LONG unsigned long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
||||
#define CONFIG_HEADER_BN_H
|
||||
#define BN_LLONG
|
||||
|
||||
/* Should we define BN_DIV2W here? */
|
||||
|
||||
/* Only one for the following should be defined */
|
||||
/* The prime number generation stuff may not work when
|
||||
* EIGHT_BIT but I don't care since I've only used this mode
|
||||
* for debuging the bignum libraries */
|
||||
#undef SIXTY_FOUR_BIT_LONG
|
||||
#undef SIXTY_FOUR_BIT
|
||||
#define THIRTY_TWO_BIT
|
||||
#undef SIXTEEN_BIT
|
||||
#undef EIGHT_BIT
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
||||
#define CONFIG_HEADER_RC4_LOCL_H
|
||||
/* if this is defined data[i] is used instead of *data, this is a %20
|
||||
* speedup on x86 */
|
||||
#define RC4_INDEX
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
||||
#define CONFIG_HEADER_BF_LOCL_H
|
||||
#undef BF_PTR
|
||||
#endif /* HEADER_BF_LOCL_H */
|
||||
|
||||
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
||||
#define CONFIG_HEADER_DES_LOCL_H
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
/* the following is tweaked from a config script, that is why it is a
|
||||
* protected undef/define */
|
||||
#ifndef DES_PTR
|
||||
#define DES_PTR
|
||||
#endif
|
||||
|
||||
/* This helps C compiler generate the correct code for multiple functional
|
||||
* units. It reduces register dependancies at the expense of 2 more
|
||||
* registers */
|
||||
#ifndef DES_RISC1
|
||||
#define DES_RISC1
|
||||
#endif
|
||||
|
||||
#ifndef DES_RISC2
|
||||
#undef DES_RISC2
|
||||
#endif
|
||||
|
||||
#if defined(DES_RISC1) && defined(DES_RISC2)
|
||||
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
||||
#endif
|
||||
|
||||
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
||||
* Very mucy CPU dependant */
|
||||
#ifndef DES_UNROLL
|
||||
#define DES_UNROLL
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
||||
* They are only used if nothing else has been defined */
|
||||
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
||||
/* Special defines which change the way the code is built depending on the
|
||||
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
||||
even newer MIPS CPU's, but at the moment one size fits all for
|
||||
optimization options. Older Sparc's work better with only UNROLL, but
|
||||
there's no way to tell at compile time what it is you're running on */
|
||||
|
||||
#if defined( sun ) /* Newer Sparc's */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#elif defined( __ultrix ) /* Older MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined( __osf1__ ) /* Alpha */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
#elif defined ( _AIX ) /* RS6000 */
|
||||
/* Unknown */
|
||||
#elif defined( __hpux ) /* HP-PA */
|
||||
/* Unknown */
|
||||
#elif defined( __aux ) /* 68K */
|
||||
/* Unknown */
|
||||
#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
|
||||
# define DES_UNROLL
|
||||
#elif defined( __sgi ) /* Newer MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#endif /* Systems-specific speed defines */
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
#endif /* HEADER_DES_LOCL_H */
|
274
deps/openssl/config/piii/openssl/opensslconf-win32.h
vendored
Normal file
274
deps/openssl/config/piii/openssl/opensslconf-win32.h
vendored
Normal file
@ -0,0 +1,274 @@
|
||||
/* opensslconf.h */
|
||||
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
||||
|
||||
/* OpenSSL was configured with the following options: */
|
||||
#ifndef OPENSSL_SYSNAME_WIN32
|
||||
# define OPENSSL_SYSNAME_WIN32
|
||||
#endif
|
||||
#ifndef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_CAMELLIA
|
||||
# define OPENSSL_NO_CAMELLIA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CAPIENG
|
||||
# define OPENSSL_NO_CAPIENG
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CMS
|
||||
# define OPENSSL_NO_CMS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_FIPS
|
||||
# define OPENSSL_NO_FIPS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_GMP
|
||||
# define OPENSSL_NO_GMP
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_IDEA
|
||||
# define OPENSSL_NO_IDEA
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_JPAKE
|
||||
# define OPENSSL_NO_JPAKE
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_KRB5
|
||||
# define OPENSSL_NO_KRB5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MDC2
|
||||
# define OPENSSL_NO_MDC2
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC5
|
||||
# define OPENSSL_NO_RC5
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
# define OPENSSL_NO_RFC3779
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SEED
|
||||
# define OPENSSL_NO_SEED
|
||||
#endif
|
||||
|
||||
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
||||
|
||||
#ifndef OPENSSL_THREADS
|
||||
# define OPENSSL_THREADS
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DYNAMIC_ENGINE
|
||||
# define OPENSSL_NO_DYNAMIC_ENGINE
|
||||
#endif
|
||||
|
||||
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
||||
asks for it. This is a transient feature that is provided for those
|
||||
who haven't had the time to do the appropriate changes in their
|
||||
applications. */
|
||||
#ifdef OPENSSL_ALGORITHM_DEFINES
|
||||
# if defined(OPENSSL_NO_CAMELLIA) && !defined(NO_CAMELLIA)
|
||||
# define NO_CAMELLIA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CAPIENG) && !defined(NO_CAPIENG)
|
||||
# define NO_CAPIENG
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_CMS) && !defined(NO_CMS)
|
||||
# define NO_CMS
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_FIPS) && !defined(NO_FIPS)
|
||||
# define NO_FIPS
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
||||
# define NO_GMP
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_IDEA) && !defined(NO_IDEA)
|
||||
# define NO_IDEA
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
||||
# define NO_JPAKE
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
||||
# define NO_KRB5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)
|
||||
# define NO_MDC2
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
||||
# define NO_RC5
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
||||
# define NO_RFC3779
|
||||
# endif
|
||||
# if defined(OPENSSL_NO_SEED) && !defined(NO_SEED)
|
||||
# define NO_SEED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* crypto/opensslconf.h.in */
|
||||
|
||||
#ifdef OPENSSL_DOING_MAKEDEPEND
|
||||
|
||||
/* Include any symbols here that have to be explicitly set to enable a feature
|
||||
* that should be visible to makedepend.
|
||||
*
|
||||
* [Our "make depend" doesn't actually look at this, we use actual build settings
|
||||
* instead; we want to make it easy to remove subdirectories with disabled algorithms.]
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_FIPS
|
||||
#define OPENSSL_FIPS
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define ENGINESDIR "ssl/lib/engines"
|
||||
#define OPENSSLDIR "ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef OPENSSL_UNISTD
|
||||
#define OPENSSL_UNISTD <unistd.h>
|
||||
|
||||
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
#define OPENSSL_EXPORT_VAR_AS_FUNCTION
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
||||
#define MD2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
||||
/* I need to put in a mod for the alpha - eay */
|
||||
#define RC2_INT unsigned int
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_H)
|
||||
#if !defined(RC4_INT)
|
||||
/* using int types make the structure larger but make the code faster
|
||||
* on most boxes I have tested - up to %20 faster. */
|
||||
/*
|
||||
* I don't know what does "most" mean, but declaring "int" is a must on:
|
||||
* - Intel P6 because partial register stalls are very expensive;
|
||||
* - elder Alpha because it lacks byte load/store instructions;
|
||||
*/
|
||||
#define RC4_INT unsigned int
|
||||
#endif
|
||||
#if !defined(RC4_CHUNK)
|
||||
/*
|
||||
* This enables code handling data aligned at natural CPU word
|
||||
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
||||
*/
|
||||
#undef RC4_CHUNK
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
||||
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
||||
* %20 speed up (longs are 8 bytes, int's are 4). */
|
||||
#ifndef DES_LONG
|
||||
#define DES_LONG unsigned long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
||||
#define CONFIG_HEADER_BN_H
|
||||
#define BN_LLONG
|
||||
|
||||
/* Should we define BN_DIV2W here? */
|
||||
|
||||
/* Only one for the following should be defined */
|
||||
/* The prime number generation stuff may not work when
|
||||
* EIGHT_BIT but I don't care since I've only used this mode
|
||||
* for debuging the bignum libraries */
|
||||
#undef SIXTY_FOUR_BIT_LONG
|
||||
#undef SIXTY_FOUR_BIT
|
||||
#define THIRTY_TWO_BIT
|
||||
#undef SIXTEEN_BIT
|
||||
#undef EIGHT_BIT
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
||||
#define CONFIG_HEADER_RC4_LOCL_H
|
||||
/* if this is defined data[i] is used instead of *data, this is a %20
|
||||
* speedup on x86 */
|
||||
#define RC4_INDEX
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
||||
#define CONFIG_HEADER_BF_LOCL_H
|
||||
#undef BF_PTR
|
||||
#endif /* HEADER_BF_LOCL_H */
|
||||
|
||||
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
||||
#define CONFIG_HEADER_DES_LOCL_H
|
||||
#ifndef DES_DEFAULT_OPTIONS
|
||||
/* the following is tweaked from a config script, that is why it is a
|
||||
* protected undef/define */
|
||||
#ifndef DES_PTR
|
||||
#undef DES_PTR
|
||||
#endif
|
||||
|
||||
/* This helps C compiler generate the correct code for multiple functional
|
||||
* units. It reduces register dependancies at the expense of 2 more
|
||||
* registers */
|
||||
#ifndef DES_RISC1
|
||||
#undef DES_RISC1
|
||||
#endif
|
||||
|
||||
#ifndef DES_RISC2
|
||||
#undef DES_RISC2
|
||||
#endif
|
||||
|
||||
#if defined(DES_RISC1) && defined(DES_RISC2)
|
||||
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
||||
#endif
|
||||
|
||||
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
||||
* Very mucy CPU dependant */
|
||||
#ifndef DES_UNROLL
|
||||
#undef DES_UNROLL
|
||||
#endif
|
||||
|
||||
/* These default values were supplied by
|
||||
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
||||
* They are only used if nothing else has been defined */
|
||||
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
||||
/* Special defines which change the way the code is built depending on the
|
||||
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
||||
even newer MIPS CPU's, but at the moment one size fits all for
|
||||
optimization options. Older Sparc's work better with only UNROLL, but
|
||||
there's no way to tell at compile time what it is you're running on */
|
||||
|
||||
#if defined( sun ) /* Newer Sparc's */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#elif defined( __ultrix ) /* Older MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined( __osf1__ ) /* Alpha */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
#elif defined ( _AIX ) /* RS6000 */
|
||||
/* Unknown */
|
||||
#elif defined( __hpux ) /* HP-PA */
|
||||
/* Unknown */
|
||||
#elif defined( __aux ) /* 68K */
|
||||
/* Unknown */
|
||||
#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
|
||||
# define DES_UNROLL
|
||||
#elif defined( __sgi ) /* Newer MIPS */
|
||||
# define DES_PTR
|
||||
# define DES_RISC2
|
||||
# define DES_UNROLL
|
||||
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
||||
# define DES_PTR
|
||||
# define DES_RISC1
|
||||
# define DES_UNROLL
|
||||
#endif /* Systems-specific speed defines */
|
||||
#endif
|
||||
|
||||
#endif /* DES_DEFAULT_OPTIONS */
|
||||
#endif /* HEADER_DES_LOCL_H */
|
5
deps/openssl/config/piii/openssl/opensslconf.h
vendored
Normal file
5
deps/openssl/config/piii/openssl/opensslconf.h
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
#ifdef WIN32
|
||||
#include "opensslconf-win32.h"
|
||||
#else
|
||||
#include "opensslconf-posix.h"
|
||||
#endif
|
175
deps/openssl/openssl.gyp
vendored
175
deps/openssl/openssl.gyp
vendored
@ -3,26 +3,27 @@
|
||||
# found in the LICENSE file.
|
||||
|
||||
{
|
||||
'variables': {
|
||||
'is_clang': 0,
|
||||
'gcc_version': 0,
|
||||
},
|
||||
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'openssl',
|
||||
'type': '<(library)',
|
||||
'defines': [
|
||||
# No clue what these are for.
|
||||
'L_ENDIAN',
|
||||
'OPENSSL_THREADS',
|
||||
'PURIFY',
|
||||
'_REENTRANT',
|
||||
|
||||
# Heartbeat is a TLS extension, that couldn't be turned off or
|
||||
# asked to be not advertised. Unfortunately this is unacceptable for
|
||||
# Microsoft's IIS, which seems to be ignoring whole ClientHello after
|
||||
# seeing this extension.
|
||||
'OPENSSL_NO_HEARTBEATS',
|
||||
# We do not use TLS over UDP on Chromium so far.
|
||||
'OPENSSL_NO_DTLS1',
|
||||
'OPENSSL_NO_SOCK',
|
||||
'OPENSSL_NO_DGRAM',
|
||||
# Work around brain dead SunOS linker.
|
||||
'OPENSSL_NO_GOST',
|
||||
'OPENSSL_NO_HW_PADLOCK',
|
||||
'OPENSSL_NO_CAMELLIA',
|
||||
'OPENSSL_NO_CMS',
|
||||
'OPENSSL_NO_MDC2',
|
||||
'OPENSSL_NO_SEED',
|
||||
'OPENSSL_NO_IDEA',
|
||||
],
|
||||
'sources': [
|
||||
'openssl/ssl/bio_ssl.c',
|
||||
@ -32,7 +33,6 @@
|
||||
'openssl/ssl/d1_lib.c',
|
||||
'openssl/ssl/d1_meth.c',
|
||||
'openssl/ssl/d1_pkt.c',
|
||||
'openssl/ssl/d1_srtp.c',
|
||||
'openssl/ssl/d1_srvr.c',
|
||||
'openssl/ssl/kssl.c',
|
||||
'openssl/ssl/s23_clnt.c',
|
||||
@ -53,7 +53,6 @@
|
||||
'openssl/ssl/s3_meth.c',
|
||||
'openssl/ssl/s3_pkt.c',
|
||||
'openssl/ssl/s3_srvr.c',
|
||||
'openssl/ssl/s3_cbc.c',
|
||||
'openssl/ssl/ssl_algs.c',
|
||||
'openssl/ssl/ssl_asn1.c',
|
||||
'openssl/ssl/ssl_cert.c',
|
||||
@ -71,7 +70,7 @@
|
||||
'openssl/ssl/t1_meth.c',
|
||||
'openssl/ssl/t1_reneg.c',
|
||||
'openssl/ssl/t1_srvr.c',
|
||||
'openssl/ssl/tls_srp.c',
|
||||
|
||||
'openssl/crypto/aes/aes_cfb.c',
|
||||
'openssl/crypto/aes/aes_ctr.c',
|
||||
'openssl/crypto/aes/aes_ecb.c',
|
||||
@ -205,35 +204,12 @@
|
||||
'openssl/crypto/bn/bn_sqr.c',
|
||||
'openssl/crypto/bn/bn_sqrt.c',
|
||||
'openssl/crypto/bn/bn_word.c',
|
||||
'openssl/crypto/bn/bn_x931p.c',
|
||||
'openssl/crypto/buffer/buf_err.c',
|
||||
'openssl/crypto/buffer/buf_str.c',
|
||||
'openssl/crypto/buffer/buffer.c',
|
||||
'openssl/crypto/camellia/cmll_cfb.c',
|
||||
'openssl/crypto/camellia/cmll_ctr.c',
|
||||
'openssl/crypto/camellia/cmll_ecb.c',
|
||||
'openssl/crypto/camellia/cmll_ofb.c',
|
||||
'openssl/crypto/camellia/cmll_utl.c',
|
||||
'openssl/crypto/cast/c_cfb64.c',
|
||||
'openssl/crypto/cast/c_ecb.c',
|
||||
'openssl/crypto/cast/c_ofb64.c',
|
||||
'openssl/crypto/cast/c_skey.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_lib.c',
|
||||
'openssl/crypto/cms/cms_pwri.c',
|
||||
'openssl/crypto/cms/cms_sd.c',
|
||||
'openssl/crypto/cms/cms_smime.c',
|
||||
'openssl/crypto/comp/c_rle.c',
|
||||
'openssl/crypto/comp/c_zlib.c',
|
||||
'openssl/crypto/comp/comp_err.c',
|
||||
@ -295,20 +271,15 @@
|
||||
'openssl/crypto/dsa/dsa_sign.c',
|
||||
'openssl/crypto/dsa/dsa_vrf.c',
|
||||
'openssl/crypto/dso/dso_beos.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_null.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/ec2_mult.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_ameth.c',
|
||||
'openssl/crypto/ec/ec_check.c',
|
||||
'openssl/crypto/ec/ec_curve.c',
|
||||
'openssl/crypto/ec/ec_cvt.c',
|
||||
@ -316,17 +287,11 @@
|
||||
'openssl/crypto/ec/ec_key.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/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/ecdh/ech_err.c',
|
||||
'openssl/crypto/ecdh/ech_key.c',
|
||||
@ -350,8 +315,6 @@
|
||||
'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_rsax.c',
|
||||
'openssl/crypto/engine/eng_table.c',
|
||||
'openssl/crypto/engine/tb_asnmth.c',
|
||||
'openssl/crypto/engine/tb_cipher.c',
|
||||
@ -376,27 +339,20 @@
|
||||
'openssl/crypto/evp/c_alld.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_bf.c',
|
||||
'openssl/crypto/evp/e_camellia.c',
|
||||
'openssl/crypto/evp/e_cast.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_xcbc_d.c',
|
||||
'openssl/crypto/evp/encode.c',
|
||||
'openssl/crypto/evp/evp_acnf.c',
|
||||
'openssl/crypto/evp/evp_cnf.c',
|
||||
'openssl/crypto/evp/evp_enc.c',
|
||||
'openssl/crypto/evp/evp_err.c',
|
||||
'openssl/crypto/evp/evp_fips.c',
|
||||
'openssl/crypto/evp/evp_key.c',
|
||||
'openssl/crypto/evp/evp_lib.c',
|
||||
'openssl/crypto/evp/evp_pbe.c',
|
||||
@ -407,7 +363,6 @@
|
||||
'openssl/crypto/evp/m_md2.c',
|
||||
'openssl/crypto/evp/m_md4.c',
|
||||
'openssl/crypto/evp/m_md5.c',
|
||||
'openssl/crypto/evp/m_mdc2.c',
|
||||
'openssl/crypto/evp/m_null.c',
|
||||
'openssl/crypto/evp/m_ripemd.c',
|
||||
'openssl/crypto/evp/m_sha.c',
|
||||
@ -428,39 +383,24 @@
|
||||
'openssl/crypto/evp/pmeth_gn.c',
|
||||
'openssl/crypto/evp/pmeth_lib.c',
|
||||
'openssl/crypto/ex_data.c',
|
||||
'openssl/crypto/fips_ers.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/krb5/krb5_asn.c',
|
||||
'openssl/crypto/lhash/lh_stats.c',
|
||||
'openssl/crypto/lhash/lhash.c',
|
||||
'openssl/crypto/md2/md2_dgst.c',
|
||||
'openssl/crypto/md2/md2_one.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_dbg.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/ofb128.c',
|
||||
'openssl/crypto/modes/xts128.c',
|
||||
'openssl/crypto/o_dir.c',
|
||||
'openssl/crypto/o_fips.c',
|
||||
'openssl/crypto/o_init.c',
|
||||
'openssl/crypto/o_str.c',
|
||||
'openssl/crypto/o_time.c',
|
||||
'openssl/crypto/objects/o_names.c',
|
||||
@ -527,13 +467,11 @@
|
||||
'openssl/crypto/rc2/rc2_skey.c',
|
||||
'openssl/crypto/rc2/rc2cfb64.c',
|
||||
'openssl/crypto/rc2/rc2ofb64.c',
|
||||
'openssl/crypto/rc4/rc4_utl.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_eay.c',
|
||||
'openssl/crypto/rsa/rsa_err.c',
|
||||
@ -550,24 +488,13 @@
|
||||
'openssl/crypto/rsa/rsa_sign.c',
|
||||
'openssl/crypto/rsa/rsa_ssl.c',
|
||||
'openssl/crypto/rsa/rsa_x931.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/sha1_one.c',
|
||||
'openssl/crypto/sha/sha1dgst.c',
|
||||
'openssl/crypto/sha/sha256.c',
|
||||
'openssl/crypto/sha/sha512.c',
|
||||
'openssl/crypto/sha/sha_dgst.c',
|
||||
'openssl/crypto/sha/sha_one.c',
|
||||
'openssl/crypto/srp/srp_lib.c',
|
||||
'openssl/crypto/srp/srp_vfy.c',
|
||||
'openssl/crypto/stack/stack.c',
|
||||
'openssl/crypto/store/str_err.c',
|
||||
'openssl/crypto/store/str_lib.c',
|
||||
'openssl/crypto/store/str_mem.c',
|
||||
'openssl/crypto/store/str_meth.c',
|
||||
'openssl/crypto/ts/ts_asn1.c',
|
||||
'openssl/crypto/ts/ts_conf.c',
|
||||
'openssl/crypto/ts/ts_err.c',
|
||||
@ -658,32 +585,25 @@
|
||||
'openssl/engines/e_sureware.c',
|
||||
'openssl/engines/e_ubsec.c'
|
||||
],
|
||||
'sources/': [
|
||||
['exclude', 'md2/.*$'],
|
||||
['exclude', 'store/.*$']
|
||||
],
|
||||
'conditions': [
|
||||
['target_arch!="ia32" and target_arch!="x64"', {
|
||||
# Disable asm
|
||||
'defines': [
|
||||
'OPENSSL_NO_ASM'
|
||||
],
|
||||
],
|
||||
'sources': [
|
||||
'openssl/crypto/aes/aes_cbc.c',
|
||||
'openssl/crypto/aes/aes_core.c',
|
||||
'openssl/crypto/bf/bf_enc.c',
|
||||
'openssl/crypto/bn/bn_asm.c',
|
||||
'openssl/crypto/cast/c_enc.c',
|
||||
'openssl/crypto/camellia/camellia.c',
|
||||
'openssl/crypto/camellia/cmll_cbc.c',
|
||||
'openssl/crypto/camellia/cmll_misc.c',
|
||||
'openssl/crypto/des/des_enc.c',
|
||||
'openssl/crypto/des/fcrypt_b.c',
|
||||
'openssl/crypto/mem_clr.c',
|
||||
'openssl/crypto/rc4/rc4_enc.c',
|
||||
'openssl/crypto/rc4/rc4_skey.c',
|
||||
'openssl/crypto/whrlpool/wp_block.c'
|
||||
]
|
||||
]
|
||||
}, {
|
||||
# Enable asm
|
||||
'defines': [
|
||||
@ -704,7 +624,6 @@
|
||||
['OS!="win" and OS!="mac" and target_arch=="ia32"', {
|
||||
'sources': [
|
||||
'asm/x86-elf-gas/aes/aes-586.s',
|
||||
'asm/x86-elf-gas/aes/aesni-x86.s',
|
||||
'asm/x86-elf-gas/bf/bf-686.s',
|
||||
'asm/x86-elf-gas/bn/x86-mont.s',
|
||||
'asm/x86-elf-gas/bn/x86.s',
|
||||
@ -727,14 +646,10 @@
|
||||
['OS!="win" and OS!="mac" and target_arch=="x64"', {
|
||||
'sources': [
|
||||
'asm/x64-elf-gas/aes/aes-x86_64.s',
|
||||
'asm/x64-elf-gas/aes/aesni-x86_64.s',
|
||||
'asm/x64-elf-gas/aes/aesni-sha1-x86_64.s',
|
||||
'asm/x64-elf-gas/bn/modexp512-x86_64.s',
|
||||
'asm/x64-elf-gas/bn/x86_64-mont.s',
|
||||
'asm/x64-elf-gas/camellia/cmll-x86_64.s',
|
||||
'asm/x64-elf-gas/md5/md5-x86_64.s',
|
||||
'asm/x64-elf-gas/rc4/rc4-x86_64.s',
|
||||
'asm/x64-elf-gas/rc4/rc4-md5-x86_64.s',
|
||||
'asm/x64-elf-gas/sha/sha1-x86_64.s',
|
||||
'asm/x64-elf-gas/sha/sha512-x86_64.s',
|
||||
'asm/x64-elf-gas/whrlpool/wp-x86_64.s',
|
||||
@ -742,17 +657,15 @@
|
||||
# Non-generated asm
|
||||
'openssl/crypto/bn/asm/x86_64-gcc.c',
|
||||
# No asm available
|
||||
'openssl/crypto/bf/bf_enc.c',
|
||||
'openssl/crypto/cast/c_enc.c',
|
||||
'openssl/crypto/camellia/cmll_misc.c',
|
||||
'openssl/crypto/des/des_enc.c',
|
||||
'openssl/crypto/bf/bf_enc.c',
|
||||
'openssl/crypto/des/fcrypt_b.c'
|
||||
]
|
||||
}],
|
||||
['OS=="mac" and target_arch=="ia32"', {
|
||||
'sources': [
|
||||
'asm/x86-macosx-gas/aes/aes-586.s',
|
||||
'asm/x86-macosx-gas/aes/aesni-x86.s',
|
||||
'asm/x86-macosx-gas/bf/bf-686.s',
|
||||
'asm/x86-macosx-gas/bn/x86-mont.s',
|
||||
'asm/x86-macosx-gas/bn/x86.s',
|
||||
@ -775,14 +688,10 @@
|
||||
['OS=="mac" and target_arch=="x64"', {
|
||||
'sources': [
|
||||
'asm/x64-macosx-gas/aes/aes-x86_64.s',
|
||||
'asm/x64-macosx-gas/aes/aesni-x86_64.s',
|
||||
'asm/x64-macosx-gas/aes/aesni-sha1-x86_64.s',
|
||||
'asm/x64-macosx-gas/bn/modexp512-x86_64.s',
|
||||
'asm/x64-macosx-gas/bn/x86_64-mont.s',
|
||||
'asm/x64-macosx-gas/camellia/cmll-x86_64.s',
|
||||
'asm/x64-macosx-gas/md5/md5-x86_64.s',
|
||||
'asm/x64-macosx-gas/rc4/rc4-x86_64.s',
|
||||
'asm/x64-macosx-gas/rc4/rc4-md5-x86_64.s',
|
||||
'asm/x64-macosx-gas/sha/sha1-x86_64.s',
|
||||
'asm/x64-macosx-gas/sha/sha512-x86_64.s',
|
||||
'asm/x64-macosx-gas/whrlpool/wp-x86_64.s',
|
||||
@ -790,17 +699,15 @@
|
||||
# Non-generated asm
|
||||
'openssl/crypto/bn/asm/x86_64-gcc.c',
|
||||
# No asm available
|
||||
'openssl/crypto/bf/bf_enc.c',
|
||||
'openssl/crypto/cast/c_enc.c',
|
||||
'openssl/crypto/camellia/cmll_misc.c',
|
||||
'openssl/crypto/des/des_enc.c',
|
||||
'openssl/crypto/bf/bf_enc.c',
|
||||
'openssl/crypto/des/fcrypt_b.c'
|
||||
]
|
||||
}],
|
||||
['OS=="win" and target_arch=="ia32"', {
|
||||
'sources': [
|
||||
'asm/x86-win32-masm/aes/aes-586.asm',
|
||||
'asm/x86-win32-masm/aes/aesni-x86.asm',
|
||||
'asm/x86-win32-masm/bf/bf-686.asm',
|
||||
'asm/x86-win32-masm/bn/x86-mont.asm',
|
||||
'asm/x86-win32-masm/bn/x86.asm',
|
||||
@ -842,14 +749,10 @@
|
||||
['OS=="win" and target_arch=="x64"', {
|
||||
'sources': [
|
||||
'asm/x64-win32-masm/aes/aes-x86_64.asm',
|
||||
'asm/x64-win32-masm/aes/aesni-x86_64.asm',
|
||||
'asm/x64-win32-masm/aes/aesni-sha1-x86_64.asm',
|
||||
'asm/x64-win32-masm/bn/modexp512-x86_64.asm',
|
||||
'asm/x64-win32-masm/bn/x86_64-mont.asm',
|
||||
'asm/x64-win32-masm/camellia/cmll-x86_64.asm',
|
||||
'asm/x64-win32-masm/md5/md5-x86_64.asm',
|
||||
'asm/x64-win32-masm/rc4/rc4-x86_64.asm',
|
||||
'asm/x64-win32-masm/rc4/rc4-md5-x86_64.asm',
|
||||
'asm/x64-win32-masm/sha/sha1-x86_64.asm',
|
||||
'asm/x64-win32-masm/sha/sha512-x86_64.asm',
|
||||
'asm/x64-win32-masm/whrlpool/wp-x86_64.asm',
|
||||
@ -857,10 +760,9 @@
|
||||
# Non-generated asm
|
||||
'openssl/crypto/bn/asm/x86_64-win32-masm.asm',
|
||||
# No asm available
|
||||
'openssl/crypto/bf/bf_enc.c',
|
||||
'openssl/crypto/cast/c_enc.c',
|
||||
'openssl/crypto/camellia/cmll_misc.c',
|
||||
'openssl/crypto/des/des_enc.c',
|
||||
'openssl/crypto/bf/bf_enc.c',
|
||||
'openssl/crypto/des/fcrypt_b.c'
|
||||
],
|
||||
'rules': [
|
||||
@ -887,14 +789,8 @@
|
||||
['OS=="win"', {
|
||||
'defines': [
|
||||
'MK1MF_BUILD',
|
||||
'WIN32_LEAN_AND_MEAN'
|
||||
],
|
||||
'link_settings': {
|
||||
'libraries': [
|
||||
'-lgdi32.lib',
|
||||
'-luser32.lib',
|
||||
]
|
||||
}
|
||||
'WIN32_LEAN_AND_MEAN',
|
||||
]
|
||||
}, {
|
||||
'defines': [
|
||||
# ENGINESDIR must be defined if OPENSSLDIR is.
|
||||
@ -904,17 +800,24 @@
|
||||
'OPENSSLDIR="/etc/ssl"',
|
||||
'TERMIOS',
|
||||
],
|
||||
'cflags': ['-Wno-missing-field-initializers'],
|
||||
}],
|
||||
['is_clang==1 or gcc_version>=43', {
|
||||
'cflags': ['-Wno-old-style-declaration'],
|
||||
}],
|
||||
['OS=="solaris"', {
|
||||
'defines': ['__EXTENSIONS__'],
|
||||
}],
|
||||
['target_arch=="arm"', {
|
||||
'sources': ['openssl/crypto/armcap.c'],
|
||||
['target_arch=="ia32"', {
|
||||
'variables': {'openssl_config_path': 'config/piii'},
|
||||
}],
|
||||
['target_arch=="x64"', {
|
||||
'variables': {'openssl_config_path': 'config/k8'},
|
||||
}],
|
||||
['target_arch=="arm"', {
|
||||
'variables': {'openssl_config_path': 'config/android'},
|
||||
}],
|
||||
],
|
||||
'sources/': [
|
||||
['exclude', 'camellia/.*$'],
|
||||
['exclude', 'cms/.*$'],
|
||||
['exclude', 'mdc2/.*$'],
|
||||
],
|
||||
'include_dirs': [
|
||||
'.',
|
||||
@ -922,13 +825,15 @@
|
||||
'openssl/crypto',
|
||||
'openssl/crypto/asn1',
|
||||
'openssl/crypto/evp',
|
||||
'openssl/crypto/md2',
|
||||
'openssl/crypto/modes',
|
||||
'openssl/crypto/store',
|
||||
'openssl/include',
|
||||
'<@(openssl_config_path)',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': ['openssl/include'],
|
||||
'include_dirs': [
|
||||
'openssl/include',
|
||||
'<@(openssl_config_path)',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
473
deps/openssl/openssl/CHANGES
vendored
473
deps/openssl/openssl/CHANGES
vendored
@ -2,434 +2,6 @@
|
||||
OpenSSL CHANGES
|
||||
_______________
|
||||
|
||||
Changes between 1.0.1d and 1.0.1e [11 Feb 2013]
|
||||
|
||||
*)
|
||||
|
||||
Changes between 1.0.1c and 1.0.1d [5 Feb 2013]
|
||||
|
||||
*) Make the decoding of SSLv3, TLS and DTLS CBC records constant time.
|
||||
|
||||
This addresses the flaw in CBC record processing discovered by
|
||||
Nadhem Alfardan and Kenny Paterson. Details of this attack can be found
|
||||
at: http://www.isg.rhul.ac.uk/tls/
|
||||
|
||||
Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
|
||||
Security Group at Royal Holloway, University of London
|
||||
(www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and
|
||||
Emilia Käsper for the initial patch.
|
||||
(CVE-2013-0169)
|
||||
[Emilia Käsper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson]
|
||||
|
||||
*) Fix flaw in AESNI handling of TLS 1.2 and 1.1 records for CBC mode
|
||||
ciphersuites which can be exploited in a denial of service attack.
|
||||
Thanks go to and to Adam Langley <agl@chromium.org> for discovering
|
||||
and detecting this bug and to Wolfgang Ettlinger
|
||||
<wolfgang.ettlinger@gmail.com> for independently discovering this issue.
|
||||
(CVE-2012-2686)
|
||||
[Adam Langley]
|
||||
|
||||
*) Return an error when checking OCSP signatures when key is NULL.
|
||||
This fixes a DoS attack. (CVE-2013-0166)
|
||||
[Steve Henson]
|
||||
|
||||
*) Make openssl verify return errors.
|
||||
[Chris Palmer <palmer@google.com> and Ben Laurie]
|
||||
|
||||
*) Call OCSP Stapling callback after ciphersuite has been chosen, so
|
||||
the right response is stapled. Also change SSL_get_certificate()
|
||||
so it returns the certificate actually sent.
|
||||
See http://rt.openssl.org/Ticket/Display.html?id=2836.
|
||||
[Rob Stradling <rob.stradling@comodo.com>]
|
||||
|
||||
*) Fix possible deadlock when decoding public keys.
|
||||
[Steve Henson]
|
||||
|
||||
*) Don't use TLS 1.0 record version number in initial client hello
|
||||
if renegotiating.
|
||||
[Steve Henson]
|
||||
|
||||
Changes between 1.0.1b and 1.0.1c [10 May 2012]
|
||||
|
||||
*) Sanity check record length before skipping explicit IV in TLS
|
||||
1.2, 1.1 and DTLS to fix DoS attack.
|
||||
|
||||
Thanks to Codenomicon for discovering this issue using Fuzz-o-Matic
|
||||
fuzzing as a service testing platform.
|
||||
(CVE-2012-2333)
|
||||
[Steve Henson]
|
||||
|
||||
*) Initialise tkeylen properly when encrypting CMS messages.
|
||||
Thanks to Solar Designer of Openwall for reporting this issue.
|
||||
[Steve Henson]
|
||||
|
||||
*) In FIPS mode don't try to use composite ciphers as they are not
|
||||
approved.
|
||||
[Steve Henson]
|
||||
|
||||
Changes between 1.0.1a and 1.0.1b [26 Apr 2012]
|
||||
|
||||
*) OpenSSL 1.0.0 sets SSL_OP_ALL to 0x80000FFFL and OpenSSL 1.0.1 and
|
||||
1.0.1a set SSL_OP_NO_TLSv1_1 to 0x00000400L which would unfortunately
|
||||
mean any application compiled against OpenSSL 1.0.0 headers setting
|
||||
SSL_OP_ALL would also set SSL_OP_NO_TLSv1_1, unintentionally disablng
|
||||
TLS 1.1 also. Fix this by changing the value of SSL_OP_NO_TLSv1_1 to
|
||||
0x10000000L Any application which was previously compiled against
|
||||
OpenSSL 1.0.1 or 1.0.1a headers and which cares about SSL_OP_NO_TLSv1_1
|
||||
will need to be recompiled as a result. Letting be results in
|
||||
inability to disable specifically TLS 1.1 and in client context,
|
||||
in unlike event, limit maximum offered version to TLS 1.0 [see below].
|
||||
[Steve Henson]
|
||||
|
||||
*) In order to ensure interoperabilty SSL_OP_NO_protocolX does not
|
||||
disable just protocol X, but all protocols above X *if* there are
|
||||
protocols *below* X still enabled. In more practical terms it means
|
||||
that if application wants to disable TLS1.0 in favor of TLS1.1 and
|
||||
above, it's not sufficient to pass SSL_OP_NO_TLSv1, one has to pass
|
||||
SSL_OP_NO_TLSv1|SSL_OP_NO_SSLv3|SSL_OP_NO_SSLv2. This applies to
|
||||
client side.
|
||||
[Andy Polyakov]
|
||||
|
||||
Changes between 1.0.1 and 1.0.1a [19 Apr 2012]
|
||||
|
||||
*) Check for potentially exploitable overflows in asn1_d2i_read_bio
|
||||
BUF_mem_grow and BUF_mem_grow_clean. Refuse attempts to shrink buffer
|
||||
in CRYPTO_realloc_clean.
|
||||
|
||||
Thanks to Tavis Ormandy, Google Security Team, for discovering this
|
||||
issue and to Adam Langley <agl@chromium.org> for fixing it.
|
||||
(CVE-2012-2110)
|
||||
[Adam Langley (Google), Tavis Ormandy, Google Security Team]
|
||||
|
||||
*) Don't allow TLS 1.2 SHA-256 ciphersuites in TLS 1.0, 1.1 connections.
|
||||
[Adam Langley]
|
||||
|
||||
*) Workarounds for some broken servers that "hang" if a client hello
|
||||
record length exceeds 255 bytes.
|
||||
|
||||
1. Do not use record version number > TLS 1.0 in initial client
|
||||
hello: some (but not all) hanging servers will now work.
|
||||
2. If we set OPENSSL_MAX_TLS1_2_CIPHER_LENGTH this will truncate
|
||||
the number of ciphers sent in the client hello. This should be
|
||||
set to an even number, such as 50, for example by passing:
|
||||
-DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 to config or Configure.
|
||||
Most broken servers should now work.
|
||||
3. If all else fails setting OPENSSL_NO_TLS1_2_CLIENT will disable
|
||||
TLS 1.2 client support entirely.
|
||||
[Steve Henson]
|
||||
|
||||
*) Fix SEGV in Vector Permutation AES module observed in OpenSSH.
|
||||
[Andy Polyakov]
|
||||
|
||||
Changes between 1.0.0h and 1.0.1 [14 Mar 2012]
|
||||
|
||||
*) Add compatibility with old MDC2 signatures which use an ASN1 OCTET
|
||||
STRING form instead of a DigestInfo.
|
||||
[Steve Henson]
|
||||
|
||||
*) The format used for MDC2 RSA signatures is inconsistent between EVP
|
||||
and the RSA_sign/RSA_verify functions. This was made more apparent when
|
||||
OpenSSL used RSA_sign/RSA_verify for some RSA signatures in particular
|
||||
those which went through EVP_PKEY_METHOD in 1.0.0 and later. Detect
|
||||
the correct format in RSA_verify so both forms transparently work.
|
||||
[Steve Henson]
|
||||
|
||||
*) Some servers which support TLS 1.0 can choke if we initially indicate
|
||||
support for TLS 1.2 and later renegotiate using TLS 1.0 in the RSA
|
||||
encrypted premaster secret. As a workaround use the maximum pemitted
|
||||
client version in client hello, this should keep such servers happy
|
||||
and still work with previous versions of OpenSSL.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add support for TLS/DTLS heartbeats.
|
||||
[Robin Seggelmann <seggelmann@fh-muenster.de>]
|
||||
|
||||
*) Add support for SCTP.
|
||||
[Robin Seggelmann <seggelmann@fh-muenster.de>]
|
||||
|
||||
*) Improved PRNG seeding for VOS.
|
||||
[Paul Green <Paul.Green@stratus.com>]
|
||||
|
||||
*) Extensive assembler packs updates, most notably:
|
||||
|
||||
- x86[_64]: AES-NI, PCLMULQDQ, RDRAND support;
|
||||
- x86[_64]: SSSE3 support (SHA1, vector-permutation AES);
|
||||
- x86_64: bit-sliced AES implementation;
|
||||
- ARM: NEON support, contemporary platforms optimizations;
|
||||
- s390x: z196 support;
|
||||
- *: GHASH and GF(2^m) multiplication implementations;
|
||||
|
||||
[Andy Polyakov]
|
||||
|
||||
*) Make TLS-SRP code conformant with RFC 5054 API cleanup
|
||||
(removal of unnecessary code)
|
||||
[Peter Sylvester <peter.sylvester@edelweb.fr>]
|
||||
|
||||
*) Add TLS key material exporter from RFC 5705.
|
||||
[Eric Rescorla]
|
||||
|
||||
*) Add DTLS-SRTP negotiation from RFC 5764.
|
||||
[Eric Rescorla]
|
||||
|
||||
*) Add Next Protocol Negotiation,
|
||||
http://tools.ietf.org/html/draft-agl-tls-nextprotoneg-00. Can be
|
||||
disabled with a no-npn flag to config or Configure. Code donated
|
||||
by Google.
|
||||
[Adam Langley <agl@google.com> and Ben Laurie]
|
||||
|
||||
*) Add optional 64-bit optimized implementations of elliptic curves NIST-P224,
|
||||
NIST-P256, NIST-P521, with constant-time single point multiplication on
|
||||
typical inputs. Compiler support for the nonstandard type __uint128_t is
|
||||
required to use this (present in gcc 4.4 and later, for 64-bit builds).
|
||||
Code made available under Apache License version 2.0.
|
||||
|
||||
Specify "enable-ec_nistp_64_gcc_128" on the Configure (or config) command
|
||||
line to include this in your build of OpenSSL, and run "make depend" (or
|
||||
"make update"). This enables the following EC_METHODs:
|
||||
|
||||
EC_GFp_nistp224_method()
|
||||
EC_GFp_nistp256_method()
|
||||
EC_GFp_nistp521_method()
|
||||
|
||||
EC_GROUP_new_by_curve_name() will automatically use these (while
|
||||
EC_GROUP_new_curve_GFp() currently prefers the more flexible
|
||||
implementations).
|
||||
[Emilia Käsper, Adam Langley, Bodo Moeller (Google)]
|
||||
|
||||
*) Use type ossl_ssize_t instad of ssize_t which isn't available on
|
||||
all platforms. Move ssize_t definition from e_os.h to the public
|
||||
header file e_os2.h as it now appears in public header file cms.h
|
||||
[Steve Henson]
|
||||
|
||||
*) New -sigopt option to the ca, req and x509 utilities. Additional
|
||||
signature parameters can be passed using this option and in
|
||||
particular PSS.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add RSA PSS signing function. This will generate and set the
|
||||
appropriate AlgorithmIdentifiers for PSS based on those in the
|
||||
corresponding EVP_MD_CTX structure. No application support yet.
|
||||
[Steve Henson]
|
||||
|
||||
*) Support for companion algorithm specific ASN1 signing routines.
|
||||
New function ASN1_item_sign_ctx() signs a pre-initialised
|
||||
EVP_MD_CTX structure and sets AlgorithmIdentifiers based on
|
||||
the appropriate parameters.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add new algorithm specific ASN1 verification initialisation function
|
||||
to EVP_PKEY_ASN1_METHOD: this is not in EVP_PKEY_METHOD since the ASN1
|
||||
handling will be the same no matter what EVP_PKEY_METHOD is used.
|
||||
Add a PSS handler to support verification of PSS signatures: checked
|
||||
against a number of sample certificates.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add signature printing for PSS. Add PSS OIDs.
|
||||
[Steve Henson, Martin Kaiser <lists@kaiser.cx>]
|
||||
|
||||
*) Add algorithm specific signature printing. An individual ASN1 method
|
||||
can now print out signatures instead of the standard hex dump.
|
||||
|
||||
More complex signatures (e.g. PSS) can print out more meaningful
|
||||
information. Include DSA version that prints out the signature
|
||||
parameters r, s.
|
||||
[Steve Henson]
|
||||
|
||||
*) Password based recipient info support for CMS library: implementing
|
||||
RFC3211.
|
||||
[Steve Henson]
|
||||
|
||||
*) Split password based encryption into PBES2 and PBKDF2 functions. This
|
||||
neatly separates the code into cipher and PBE sections and is required
|
||||
for some algorithms that split PBES2 into separate pieces (such as
|
||||
password based CMS).
|
||||
[Steve Henson]
|
||||
|
||||
*) Session-handling fixes:
|
||||
- Fix handling of connections that are resuming with a session ID,
|
||||
but also support Session Tickets.
|
||||
- Fix a bug that suppressed issuing of a new ticket if the client
|
||||
presented a ticket with an expired session.
|
||||
- Try to set the ticket lifetime hint to something reasonable.
|
||||
- Make tickets shorter by excluding irrelevant information.
|
||||
- On the client side, don't ignore renewed tickets.
|
||||
[Adam Langley, Bodo Moeller (Google)]
|
||||
|
||||
*) Fix PSK session representation.
|
||||
[Bodo Moeller]
|
||||
|
||||
*) Add RC4-MD5 and AESNI-SHA1 "stitched" implementations.
|
||||
|
||||
This work was sponsored by Intel.
|
||||
[Andy Polyakov]
|
||||
|
||||
*) Add GCM support to TLS library. Some custom code is needed to split
|
||||
the IV between the fixed (from PRF) and explicit (from TLS record)
|
||||
portions. This adds all GCM ciphersuites supported by RFC5288 and
|
||||
RFC5289. Generalise some AES* cipherstrings to inlclude GCM and
|
||||
add a special AESGCM string for GCM only.
|
||||
[Steve Henson]
|
||||
|
||||
*) Expand range of ctrls for AES GCM. Permit setting invocation
|
||||
field on decrypt and retrieval of invocation field only on encrypt.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add HMAC ECC ciphersuites from RFC5289. Include SHA384 PRF support.
|
||||
As required by RFC5289 these ciphersuites cannot be used if for
|
||||
versions of TLS earlier than 1.2.
|
||||
[Steve Henson]
|
||||
|
||||
*) For FIPS capable OpenSSL interpret a NULL default public key method
|
||||
as unset and return the appopriate default but do *not* set the default.
|
||||
This means we can return the appopriate method in applications that
|
||||
swicth between FIPS and non-FIPS modes.
|
||||
[Steve Henson]
|
||||
|
||||
*) Redirect HMAC and CMAC operations to FIPS module in FIPS mode. If an
|
||||
ENGINE is used then we cannot handle that in the FIPS module so we
|
||||
keep original code iff non-FIPS operations are allowed.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add -attime option to openssl utilities.
|
||||
[Peter Eckersley <pde@eff.org>, Ben Laurie and Steve Henson]
|
||||
|
||||
*) Redirect DSA and DH operations to FIPS module in FIPS mode.
|
||||
[Steve Henson]
|
||||
|
||||
*) Redirect ECDSA and ECDH operations to FIPS module in FIPS mode. Also use
|
||||
FIPS EC methods unconditionally for now.
|
||||
[Steve Henson]
|
||||
|
||||
*) New build option no-ec2m to disable characteristic 2 code.
|
||||
[Steve Henson]
|
||||
|
||||
*) Backport libcrypto audit of return value checking from 1.1.0-dev; not
|
||||
all cases can be covered as some introduce binary incompatibilities.
|
||||
[Steve Henson]
|
||||
|
||||
*) Redirect RSA operations to FIPS module including keygen,
|
||||
encrypt, decrypt, sign and verify. Block use of non FIPS RSA methods.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add similar low level API blocking to ciphers.
|
||||
[Steve Henson]
|
||||
|
||||
*) Low level digest APIs are not approved in FIPS mode: any attempt
|
||||
to use these will cause a fatal error. Applications that *really* want
|
||||
to use them can use the private_* version instead.
|
||||
[Steve Henson]
|
||||
|
||||
*) Redirect cipher operations to FIPS module for FIPS builds.
|
||||
[Steve Henson]
|
||||
|
||||
*) Redirect digest operations to FIPS module for FIPS builds.
|
||||
[Steve Henson]
|
||||
|
||||
*) Update build system to add "fips" flag which will link in fipscanister.o
|
||||
for static and shared library builds embedding a signature if needed.
|
||||
[Steve Henson]
|
||||
|
||||
*) Output TLS supported curves in preference order instead of numerical
|
||||
order. This is currently hardcoded for the highest order curves first.
|
||||
This should be configurable so applications can judge speed vs strength.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add TLS v1.2 server support for client authentication.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add support for FIPS mode in ssl library: disable SSLv3, non-FIPS ciphers
|
||||
and enable MD5.
|
||||
[Steve Henson]
|
||||
|
||||
*) Functions FIPS_mode_set() and FIPS_mode() which call the underlying
|
||||
FIPS modules versions.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add TLS v1.2 client side support for client authentication. Keep cache
|
||||
of handshake records longer as we don't know the hash algorithm to use
|
||||
until after the certificate request message is received.
|
||||
[Steve Henson]
|
||||
|
||||
*) Initial TLS v1.2 client support. Add a default signature algorithms
|
||||
extension including all the algorithms we support. Parse new signature
|
||||
format in client key exchange. Relax some ECC signing restrictions for
|
||||
TLS v1.2 as indicated in RFC5246.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add server support for TLS v1.2 signature algorithms extension. Switch
|
||||
to new signature format when needed using client digest preference.
|
||||
All server ciphersuites should now work correctly in TLS v1.2. No client
|
||||
support yet and no support for client certificates.
|
||||
[Steve Henson]
|
||||
|
||||
*) Initial TLS v1.2 support. Add new SHA256 digest to ssl code, switch
|
||||
to SHA256 for PRF when using TLS v1.2 and later. Add new SHA256 based
|
||||
ciphersuites. At present only RSA key exchange ciphersuites work with
|
||||
TLS v1.2. Add new option for TLS v1.2 replacing the old and obsolete
|
||||
SSL_OP_PKCS1_CHECK flags with SSL_OP_NO_TLSv1_2. New TLSv1.2 methods
|
||||
and version checking.
|
||||
[Steve Henson]
|
||||
|
||||
*) New option OPENSSL_NO_SSL_INTERN. If an application can be compiled
|
||||
with this defined it will not be affected by any changes to ssl internal
|
||||
structures. Add several utility functions to allow openssl application
|
||||
to work with OPENSSL_NO_SSL_INTERN defined.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add SRP support.
|
||||
[Tom Wu <tjw@cs.stanford.edu> and Ben Laurie]
|
||||
|
||||
*) Add functions to copy EVP_PKEY_METHOD and retrieve flags and id.
|
||||
[Steve Henson]
|
||||
|
||||
*) Permit abbreviated handshakes when renegotiating using the function
|
||||
SSL_renegotiate_abbreviated().
|
||||
[Robin Seggelmann <seggelmann@fh-muenster.de>]
|
||||
|
||||
*) Add call to ENGINE_register_all_complete() to
|
||||
ENGINE_load_builtin_engines(), so some implementations get used
|
||||
automatically instead of needing explicit application support.
|
||||
[Steve Henson]
|
||||
|
||||
*) Add support for TLS key exporter as described in RFC5705.
|
||||
[Robin Seggelmann <seggelmann@fh-muenster.de>, Steve Henson]
|
||||
|
||||
*) Initial TLSv1.1 support. Since TLSv1.1 is very similar to TLS v1.0 only
|
||||
a few changes are required:
|
||||
|
||||
Add SSL_OP_NO_TLSv1_1 flag.
|
||||
Add TLSv1_1 methods.
|
||||
Update version checking logic to handle version 1.1.
|
||||
Add explicit IV handling (ported from DTLS code).
|
||||
Add command line options to s_client/s_server.
|
||||
[Steve Henson]
|
||||
|
||||
Changes between 1.0.0g and 1.0.0h [12 Mar 2012]
|
||||
|
||||
*) Fix MMA (Bleichenbacher's attack on PKCS #1 v1.5 RSA padding) weakness
|
||||
in CMS and PKCS7 code. When RSA decryption fails use a random key for
|
||||
content decryption and always return the same error. Note: this attack
|
||||
needs on average 2^20 messages so it only affects automated senders. The
|
||||
old behaviour can be reenabled in the CMS code by setting the
|
||||
CMS_DEBUG_DECRYPT flag: this is useful for debugging and testing where
|
||||
an MMA defence is not necessary.
|
||||
Thanks to Ivan Nestlerode <inestlerode@us.ibm.com> for discovering
|
||||
this issue. (CVE-2012-0884)
|
||||
[Steve Henson]
|
||||
|
||||
*) Fix CVE-2011-4619: make sure we really are receiving a
|
||||
client hello before rejecting multiple SGC restarts. Thanks to
|
||||
Ivan Nestlerode <inestlerode@us.ibm.com> for discovering this bug.
|
||||
[Steve Henson]
|
||||
|
||||
Changes between 1.0.0f and 1.0.0g [18 Jan 2012]
|
||||
|
||||
*) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109.
|
||||
Thanks to Antonio Martin, Enterprise Secure Access Research and
|
||||
Development, Cisco Systems, Inc. for discovering this bug and
|
||||
preparing a fix. (CVE-2012-0050)
|
||||
[Antonio Martin]
|
||||
|
||||
Changes between 1.0.0e and 1.0.0f [4 Jan 2012]
|
||||
|
||||
*) Nadhem Alfardan and Kenny Paterson have discovered an extension
|
||||
@ -450,9 +22,7 @@
|
||||
(CVE-2011-4576)
|
||||
[Adam Langley (Google)]
|
||||
|
||||
*) Only allow one SGC handshake restart for SSL/TLS. Thanks to George
|
||||
Kadianakis <desnacked@gmail.com> for discovering this issue and
|
||||
Adam Langley for preparing the fix. (CVE-2011-4619)
|
||||
*) Only allow one SGC handshake restart for SSL/TLS. (CVE-2011-4619)
|
||||
[Adam Langley (Google)]
|
||||
|
||||
*) Check parameters are not NULL in GOST ENGINE. (CVE-2012-0027)
|
||||
@ -1394,46 +964,7 @@
|
||||
*) Change 'Configure' script to enable Camellia by default.
|
||||
[NTT]
|
||||
|
||||
Changes between 0.9.8s and 0.9.8t [18 Jan 2012]
|
||||
|
||||
*) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109.
|
||||
Thanks to Antonio Martin, Enterprise Secure Access Research and
|
||||
Development, Cisco Systems, Inc. for discovering this bug and
|
||||
preparing a fix. (CVE-2012-0050)
|
||||
[Antonio Martin]
|
||||
|
||||
Changes between 0.9.8r and 0.9.8s [4 Jan 2012]
|
||||
|
||||
*) Nadhem Alfardan and Kenny Paterson have discovered an extension
|
||||
of the Vaudenay padding oracle attack on CBC mode encryption
|
||||
which enables an efficient plaintext recovery attack against
|
||||
the OpenSSL implementation of DTLS. Their attack exploits timing
|
||||
differences arising during decryption processing. A research
|
||||
paper describing this attack can be found at:
|
||||
http://www.isg.rhul.ac.uk/~kp/dtls.pdf
|
||||
Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
|
||||
Security Group at Royal Holloway, University of London
|
||||
(www.isg.rhul.ac.uk) for discovering this flaw and to Robin Seggelmann
|
||||
<seggelmann@fh-muenster.de> and Michael Tuexen <tuexen@fh-muenster.de>
|
||||
for preparing the fix. (CVE-2011-4108)
|
||||
[Robin Seggelmann, Michael Tuexen]
|
||||
|
||||
*) Stop policy check failure freeing same buffer twice. (CVE-2011-4109)
|
||||
[Ben Laurie, Kasper <ekasper@google.com>]
|
||||
|
||||
*) Clear bytes used for block padding of SSL 3.0 records.
|
||||
(CVE-2011-4576)
|
||||
[Adam Langley (Google)]
|
||||
|
||||
*) Only allow one SGC handshake restart for SSL/TLS. Thanks to George
|
||||
Kadianakis <desnacked@gmail.com> for discovering this issue and
|
||||
Adam Langley for preparing the fix. (CVE-2011-4619)
|
||||
[Adam Langley (Google)]
|
||||
|
||||
*) Prevent malformed RFC3779 data triggering an assertion failure.
|
||||
Thanks to Andrew Chi, BBN Technologies, for discovering the flaw
|
||||
and Rob Austein <sra@hactrn.net> for fixing it. (CVE-2011-4577)
|
||||
[Rob Austein <sra@hactrn.net>]
|
||||
Changes between 0.9.8r and 0.9.8s [xx XXX xxxx]
|
||||
|
||||
*) Fix ssl_ciph.c set-up race.
|
||||
[Adam Langley (Google)]
|
||||
|
255
deps/openssl/openssl/Configure
vendored
255
deps/openssl/openssl/Configure
vendored
@ -10,7 +10,7 @@ use strict;
|
||||
|
||||
# see INSTALL for instructions.
|
||||
|
||||
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
|
||||
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
|
||||
|
||||
# Options:
|
||||
#
|
||||
@ -56,7 +56,6 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta
|
||||
# [no-]zlib [don't] compile support for zlib compression.
|
||||
# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared
|
||||
# library and will be loaded in run-time by the OpenSSL library.
|
||||
# sctp include SCTP support
|
||||
# 386 generate 80386 code
|
||||
# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
|
||||
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
|
||||
@ -124,24 +123,21 @@ my $tlib="-lnsl -lsocket";
|
||||
my $bits1="THIRTY_TWO_BIT ";
|
||||
my $bits2="SIXTY_FOUR_BIT ";
|
||||
|
||||
my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o x86-gf2m.o:des-586.o crypt586.o:aes-586.o vpaes-x86.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o:ghash-x86.o:";
|
||||
my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes-586.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o";
|
||||
|
||||
my $x86_elf_asm="$x86_asm:elf";
|
||||
|
||||
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o:";
|
||||
my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void";
|
||||
my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void";
|
||||
my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void";
|
||||
my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void";
|
||||
my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::";
|
||||
my $mips64_asm=":bn-mips.o mips-mont.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o sha512-mips.o::::::::";
|
||||
my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o s390x-gf2m.o::aes-s390x.o aes-ctr.o aes-xts.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::ghash-s390x.o:";
|
||||
my $armv4_asm="armcap.o armv4cpuid.o:bn_asm.o armv4-mont.o armv4-gf2m.o::aes_cbc.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::ghash-armv4.o::void";
|
||||
my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::32";
|
||||
my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::64";
|
||||
my $ppc32_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o::::::::";
|
||||
my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o::::::::";
|
||||
my $no_asm=":::::::::::::::void";
|
||||
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o";
|
||||
my $ia64_asm="ia64cpuid.o:bn-ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::void";
|
||||
my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::void";
|
||||
my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::void";
|
||||
my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o::::::::::::void";
|
||||
my $mips3_asm=":bn-mips3.o::::::::::::void";
|
||||
my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o::aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::void";
|
||||
my $armv4_asm=":bn_asm.o armv4-mont.o::aes_cbc.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::void";
|
||||
my $ppc32_asm="ppccpuid.o:bn-ppc.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o::::::";
|
||||
my $ppc64_asm="ppccpuid.o:bn-ppc.o ppc-mont.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o::::::";
|
||||
my $no_asm=":::::::::::::void";
|
||||
|
||||
# As for $BSDthreads. Idea is to maintain "collective" set of flags,
|
||||
# which would cover all BSD flavors. -pthread applies to them all,
|
||||
@ -152,7 +148,7 @@ my $no_asm=":::::::::::::::void";
|
||||
# seems to be sufficient?
|
||||
my $BSDthreads="-pthread -D_THREAD_SAFE -D_REENTRANT";
|
||||
|
||||
#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $cpuid_obj : $bn_obj : $des_obj : $aes_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $wp_obj : $cmll_obj : $modes_obj : $engines_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags : $multilib
|
||||
#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $cpuid_obj : $bn_obj : $des_obj : $aes_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $wp_obj : $cmll_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags : $multilib
|
||||
|
||||
my %table=(
|
||||
# File 'TABLE' (created by 'make TABLE') contains the data from this list,
|
||||
@ -167,36 +163,32 @@ my %table=(
|
||||
# Our development configs
|
||||
"purify", "purify gcc:-g -DPURIFY -Wall::(unknown)::-lsocket -lnsl::::",
|
||||
"debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror::(unknown)::-lefence::::",
|
||||
"debug-ben", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DDEBUG_SAFESTACK -O2 -pipe::(unknown):::::",
|
||||
"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG_UNUSED -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown):::::bn86-elf.o co86-elf.o",
|
||||
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
||||
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
||||
"debug-ben-debug", "gcc44:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O2 -pipe::(unknown)::::::",
|
||||
"debug-ben-debug-64", "gcc:$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-ben-macos", "cc:$gcc_devteam_warn -arch i386 -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -O3 -DL_ENDIAN -g3 -pipe::(unknown)::-Wl,-search_paths_first::::",
|
||||
"debug-ben-macos-gcc46", "gcc-mp-4.6:$gcc_devteam_warn -Wconversion -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -O3 -DL_ENDIAN -g3 -pipe::(unknown)::::::",
|
||||
"debug-ben-darwin64","cc:$gcc_devteam_warn -Wno-language-extension-token -Wno-extended-offsetof -arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"debug-ben-no-opt", "gcc: -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG -Werror -DL_ENDIAN -DTERMIOS -Wall -g3::(unknown)::::::",
|
||||
"debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
|
||||
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
||||
"debug-bodo", "gcc:$gcc_devteam_warn -DBN_DEBUG -DBN_DEBUG_RAND -DCONF_DEBUG -DBIO_PAIR_DEBUG -m64 -DL_ENDIAN -DTERMIO -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
||||
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
|
||||
"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -Wno-overlength-strings -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-geoff32","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-geoff64","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-geoff32","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -DMD32_REG_T=int -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-geoff64","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -DMD32_REG_T=int -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
||||
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
||||
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes_x86core.o aes_cbc.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"debug-linux-x86_64", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"dist", "cc:-O::(unknown)::::::",
|
||||
|
||||
# Basic configs that should work on any (32 and less bit) box
|
||||
@ -222,7 +214,7 @@ my %table=(
|
||||
# actually recommend to consider using gcc shared build even with vendor
|
||||
# compiler:-)
|
||||
# <appro@fy.chalmers.se>
|
||||
"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
||||
"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
||||
|
||||
#### Solaris x86 with Sun C setups
|
||||
"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
@ -245,7 +237,7 @@ my %table=(
|
||||
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64",
|
||||
####
|
||||
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
@ -256,16 +248,16 @@ my %table=(
|
||||
|
||||
#### IRIX 5.x configs
|
||||
# -mips2 flag is added by ./config when appropriate.
|
||||
"irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"irix-cc", "cc:-O2 -use_readonly_const -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC2 DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${no_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"irix-cc", "cc:-O2 -use_readonly_const -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC2 DES_UNROLL BF_PTR:${no_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
#### IRIX 6.x configs
|
||||
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
|
||||
# './Configure irix-cc -o32' manually.
|
||||
"irix-mips3-gcc","gcc:-mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT:${mips64_asm}:n32:dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32",
|
||||
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:${mips64_asm}:n32:dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32",
|
||||
"irix-mips3-gcc","gcc:-mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT:${mips3_asm}:dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32",
|
||||
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:${mips3_asm}:dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32",
|
||||
# N64 ABI builds.
|
||||
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips64_asm}:64:dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips64_asm}:64:dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips3_asm}:dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips3_asm}:dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
|
||||
#### Unified HP-UX ANSI C configs.
|
||||
# Special notes:
|
||||
@ -298,18 +290,17 @@ my %table=(
|
||||
# Since there is mention of this in shlib/hpux10-cc.sh
|
||||
"hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"hpux-parisc1_1-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${parisc11_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa1.1",
|
||||
"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1:".eval{my $asm=$parisc20_asm;$asm=~s/2W\./2\./;$asm=~s/:64/:32/;$asm}.":dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_32",
|
||||
"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
||||
"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1::pa-risc2.o::::::::::::void:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
||||
|
||||
# More attempts at unified 10.X and 11.X targets for HP C compiler.
|
||||
#
|
||||
# Chris Ruemmler <ruemmler@cup.hp.com>
|
||||
# Kevin Steves <ks@hp.se>
|
||||
"hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"hpux-parisc1_1-cc","cc:+DA1.1 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc11_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa1.1",
|
||||
"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:".eval{my $asm=$parisc20_asm;$asm=~s/2W\./2\./;$asm=~s/:64/:32/;$asm}.":dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_32",
|
||||
"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc20_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
||||
"hpux-parisc1_0-cc","cc:+DAportable +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2.o::::::::::::void:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::::void:dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
||||
|
||||
# HP/UX IA-64 targets
|
||||
"hpux-ia64-cc","cc:-Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD32 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/hpux32",
|
||||
@ -360,22 +351,8 @@ my %table=(
|
||||
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
#### So called "highgprs" target for z/Architecture CPUs
|
||||
# "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
|
||||
# /proc/cpuinfo. The idea is to preserve most significant bits of
|
||||
# general purpose registers not only upon 32-bit process context
|
||||
# switch, but even on asynchronous signal delivery to such process.
|
||||
# This makes it possible to deploy 64-bit instructions even in legacy
|
||||
# application context and achieve better [or should we say adequate]
|
||||
# performance. The build is binary compatible with linux-generic32,
|
||||
# and the idea is to be able to install the resulting libcrypto.so
|
||||
# alongside generic one, e.g. as /lib/highgprs/libcrypto.so.x.y, for
|
||||
# ldconfig and run-time linker to autodiscover. Unfortunately it
|
||||
# doesn't work just yet, because of couple of bugs in glibc
|
||||
# sysdeps/s390/dl-procinfo.c affecting ldconfig and ld.so.1...
|
||||
"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn\-s390x\.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/highgprs",
|
||||
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"linux-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
#### SPARC Linux setups
|
||||
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
|
||||
# assisted with debugging of following two configs.
|
||||
@ -403,11 +380,6 @@ my %table=(
|
||||
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
||||
"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
||||
|
||||
# Android: linux-* but without -DTERMIO and pointers to headers and libs.
|
||||
"android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"android-armv7","gcc:-march=armv7-a -mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
#### *BSD [do see comment about ${BSDthreads} above!]
|
||||
"BSD-generic32","gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
@ -421,7 +393,7 @@ my %table=(
|
||||
# triggered by RIPEMD160 code.
|
||||
"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:${sparcv9_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
"bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
@ -466,8 +438,8 @@ my %table=(
|
||||
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
|
||||
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
|
||||
# at build time. $OBJECT_MODE is respected at ./config stage!
|
||||
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
||||
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
||||
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
||||
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
||||
|
||||
#
|
||||
# Cray T90 and similar (SDSC)
|
||||
@ -518,13 +490,13 @@ my %table=(
|
||||
# Visual C targets
|
||||
#
|
||||
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
|
||||
"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
|
||||
"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
|
||||
"debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
|
||||
"debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
|
||||
"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ias:win32",
|
||||
"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:x86_64cpuid.o:bn_asm.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:auto:win32",
|
||||
"debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ias:win32",
|
||||
"debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:x86_64cpuid.o:bn_asm.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:auto:win32",
|
||||
# x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
|
||||
# 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
|
||||
"VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
|
||||
"VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
|
||||
# Unified CE target
|
||||
"debug-VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
|
||||
"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
|
||||
@ -579,12 +551,10 @@ my %table=(
|
||||
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
|
||||
"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
# iPhoneOS/iOS
|
||||
"iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||
|
||||
##### A/UX
|
||||
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
|
||||
@ -599,21 +569,18 @@ my %table=(
|
||||
"OS2-EMX", "gcc::::::::",
|
||||
|
||||
##### VxWorks for various targets
|
||||
"vxworks-ppc60x","ccppc:-D_REENTRANT -mrtp -mhard-float -mstrict-align -fno-implicit-fp -DPPC32_fp60x -O2 -fstrength-reduce -fno-builtin -fno-strict-aliasing -Wall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/usr/h/wrn/coreip:::VXWORKS:-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/common:::::",
|
||||
"vxworks-ppcgen","ccppc:-D_REENTRANT -mrtp -msoft-float -mstrict-align -O1 -fno-builtin -fno-strict-aliasing -Wall -DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/usr/h/wrn/coreip:::VXWORKS:-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/sfcommon:::::",
|
||||
"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
|
||||
"vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
|
||||
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
|
||||
"vxworks-ppc860","ccppc:-nostdinc -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
|
||||
"vxworks-simlinux","ccpentium:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DL_ENDIAN -DCPU=SIMLINUX -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/h -I\$(WIND_BASE)/target/h/wrn/coreip -DOPENSSL_NO_HW_PADLOCK:::VXWORKS:-r::${no_asm}::::::ranlibpentium:",
|
||||
"vxworks-mips","ccmips:-mrtp -mips2 -O -G 0 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DCPU=MIPS32 -msoft-float -mno-branch-likely -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/h/wrn/coreip::-D_REENTRANT:VXWORKS:-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon::${mips32_asm}:o32::::::ranlibmips:",
|
||||
"vxworks-mipsle","ccmips:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r::${no_asm}::::::ranlibmips:",
|
||||
|
||||
##### Compaq Non-Stop Kernel (Tandem)
|
||||
"tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::",
|
||||
|
||||
# uClinux
|
||||
"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
||||
"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
||||
"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
||||
"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
||||
|
||||
);
|
||||
|
||||
@ -645,8 +612,6 @@ my $idx_rmd160_obj = $idx++;
|
||||
my $idx_rc5_obj = $idx++;
|
||||
my $idx_wp_obj = $idx++;
|
||||
my $idx_cmll_obj = $idx++;
|
||||
my $idx_modes_obj = $idx++;
|
||||
my $idx_engines_obj = $idx++;
|
||||
my $idx_perlasm_scheme = $idx++;
|
||||
my $idx_dso_scheme = $idx++;
|
||||
my $idx_shared_target = $idx++;
|
||||
@ -663,9 +628,6 @@ my $openssldir="";
|
||||
my $exe_ext="";
|
||||
my $install_prefix= "$ENV{'INSTALL_PREFIX'}";
|
||||
my $cross_compile_prefix="";
|
||||
my $fipsdir="/usr/local/ssl/fips-2.0";
|
||||
my $fipslibdir="";
|
||||
my $baseaddr="0xFB00000";
|
||||
my $no_threads=0;
|
||||
my $threads=0;
|
||||
my $no_shared=0; # but "no-shared" is default
|
||||
@ -700,34 +662,26 @@ my $cmll_enc="camellia.o cmll_misc.o cmll_cbc.o";
|
||||
my $processor="";
|
||||
my $default_ranlib;
|
||||
my $perl;
|
||||
my $fips=0;
|
||||
|
||||
if (exists $ENV{FIPSDIR})
|
||||
{
|
||||
$fipsdir = $ENV{FIPSDIR};
|
||||
$fipsdir =~ s/\/$//;
|
||||
}
|
||||
|
||||
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
|
||||
|
||||
my %disabled = ( # "what" => "comment" [or special keyword "experimental"]
|
||||
"ec_nistp_64_gcc_128" => "default",
|
||||
"gmp" => "default",
|
||||
"jpake" => "experimental",
|
||||
"md2" => "default",
|
||||
"rc5" => "default",
|
||||
"jpake" => "experimental",
|
||||
"md2" => "default",
|
||||
"rc5" => "default",
|
||||
"rfc3779" => "default",
|
||||
"sctp" => "default",
|
||||
"shared" => "default",
|
||||
"shared" => "default",
|
||||
"store" => "experimental",
|
||||
"zlib" => "default",
|
||||
"zlib-dynamic" => "default"
|
||||
);
|
||||
"zlib" => "default",
|
||||
"zlib-dynamic" => "default"
|
||||
);
|
||||
my @experimental = ();
|
||||
|
||||
# This is what $depflags will look like with the above defaults
|
||||
# (we need this to see if we should advise the user to run "make depend"):
|
||||
my $default_depflags = " -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_STORE";
|
||||
my $default_depflags = " -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE";
|
||||
|
||||
# Explicit "no-..." options will be collected in %disabled along with the defaults.
|
||||
# To remove something from %disabled, use "enable-foo" (unless it's experimental).
|
||||
@ -785,7 +739,6 @@ PROCESS_ARGS:
|
||||
|
||||
# rewrite some options in "enable-..." form
|
||||
s /^-?-?shared$/enable-shared/;
|
||||
s /^sctp$/enable-sctp/;
|
||||
s /^threads$/enable-threads/;
|
||||
s /^zlib$/enable-zlib/;
|
||||
s /^zlib-dynamic$/enable-zlib-dynamic/;
|
||||
@ -855,10 +808,6 @@ PROCESS_ARGS:
|
||||
}
|
||||
elsif (/^386$/)
|
||||
{ $processor=386; }
|
||||
elsif (/^fips$/)
|
||||
{
|
||||
$fips=1;
|
||||
}
|
||||
elsif (/^rsaref$/)
|
||||
{
|
||||
# No RSAref support any more since it's not needed.
|
||||
@ -873,7 +822,6 @@ PROCESS_ARGS:
|
||||
}
|
||||
elsif (/^-[^-]/ or /^\+/)
|
||||
{
|
||||
$_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei;
|
||||
$flags.=$_." ";
|
||||
}
|
||||
elsif (/^--prefix=(.*)$/)
|
||||
@ -904,18 +852,6 @@ PROCESS_ARGS:
|
||||
{
|
||||
$withargs{"zlib-include"}="-I$1";
|
||||
}
|
||||
elsif (/^--with-fipsdir=(.*)$/)
|
||||
{
|
||||
$fipsdir="$1";
|
||||
}
|
||||
elsif (/^--with-fipslibdir=(.*)$/)
|
||||
{
|
||||
$fipslibdir="$1";
|
||||
}
|
||||
elsif (/^--with-baseaddr=(.*)$/)
|
||||
{
|
||||
$baseaddr="$1";
|
||||
}
|
||||
elsif (/^--cross-compile-prefix=(.*)$/)
|
||||
{
|
||||
$cross_compile_prefix=$1;
|
||||
@ -990,17 +926,6 @@ if (defined($disabled{"md5"}) || defined($disabled{"rsa"}))
|
||||
$disabled{"ssl2"} = "forced";
|
||||
}
|
||||
|
||||
if ($fips && $fipslibdir eq "")
|
||||
{
|
||||
$fipslibdir = $fipsdir . "/lib/";
|
||||
}
|
||||
|
||||
# RSAX ENGINE sets default non-FIPS RSA method.
|
||||
if ($fips)
|
||||
{
|
||||
$disabled{"rsax"} = "forced";
|
||||
}
|
||||
|
||||
# SSL 3.0 and TLS requires MD5 and SHA and either RSA or DSA+DH
|
||||
if (defined($disabled{"md5"}) || defined($disabled{"sha"})
|
||||
|| (defined($disabled{"rsa"})
|
||||
@ -1021,13 +946,6 @@ if (defined($disabled{"ec"}) || defined($disabled{"dsa"})
|
||||
$disabled{"gost"} = "forced";
|
||||
}
|
||||
|
||||
# SRP and HEARTBEATS require TLSEXT
|
||||
if (defined($disabled{"tlsext"}))
|
||||
{
|
||||
$disabled{"srp"} = "forced";
|
||||
$disabled{"heartbeats"} = "forced";
|
||||
}
|
||||
|
||||
if ($target eq "TABLE") {
|
||||
foreach $target (sort keys %table) {
|
||||
print_table_entry($target);
|
||||
@ -1077,7 +995,7 @@ foreach (sort (keys %disabled))
|
||||
else
|
||||
{
|
||||
my ($ALGO, $algo);
|
||||
($ALGO = $algo = $_) =~ tr/[\-a-z]/[_A-Z]/;
|
||||
($ALGO = $algo = $_) =~ tr/[a-z]/[A-Z]/;
|
||||
|
||||
if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/)
|
||||
{
|
||||
@ -1097,8 +1015,6 @@ foreach (sort (keys %disabled))
|
||||
else
|
||||
{
|
||||
push @skip, $algo;
|
||||
# fix-up crypto/directory name(s)
|
||||
@skip[$#skip]="whrlpool" if $algo eq "whirlpool";
|
||||
print " (skip dir)";
|
||||
|
||||
$depflags .= " -DOPENSSL_NO_$ALGO";
|
||||
@ -1169,8 +1085,6 @@ my $rmd160_obj = $fields[$idx_rmd160_obj];
|
||||
my $rc5_obj = $fields[$idx_rc5_obj];
|
||||
my $wp_obj = $fields[$idx_wp_obj];
|
||||
my $cmll_obj = $fields[$idx_cmll_obj];
|
||||
my $modes_obj = $fields[$idx_modes_obj];
|
||||
my $engines_obj = $fields[$idx_engines_obj];
|
||||
my $perlasm_scheme = $fields[$idx_perlasm_scheme];
|
||||
my $dso_scheme = $fields[$idx_dso_scheme];
|
||||
my $shared_target = $fields[$idx_shared_target];
|
||||
@ -1331,7 +1245,7 @@ if ($no_asm)
|
||||
{
|
||||
$cpuid_obj=$bn_obj=
|
||||
$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj=$cmll_obj=
|
||||
$modes_obj=$sha1_obj=$md5_obj=$rmd160_obj=$wp_obj=$engines_obj="";
|
||||
$sha1_obj=$md5_obj=$rmd160_obj=$wp_obj="";
|
||||
}
|
||||
|
||||
if (!$no_shared)
|
||||
@ -1395,7 +1309,7 @@ if (!$IsMK1MF)
|
||||
}
|
||||
}
|
||||
|
||||
$cpuid_obj.=" uplink.o uplink-x86.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);
|
||||
$cpuid_obj.=" uplink.o uplink-cof.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);
|
||||
|
||||
#
|
||||
# Platform fix-ups
|
||||
@ -1463,14 +1377,6 @@ $cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn-586/);
|
||||
$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /86/);
|
||||
|
||||
$cflags.=" -DOPENSSL_BN_ASM_MONT" if ($bn_obj =~ /-mont/);
|
||||
$cflags.=" -DOPENSSL_BN_ASM_MONT5" if ($bn_obj =~ /-mont5/);
|
||||
$cflags.=" -DOPENSSL_BN_ASM_GF2m" if ($bn_obj =~ /-gf2m/);
|
||||
|
||||
if ($fips)
|
||||
{
|
||||
$openssl_other_defines.="#define OPENSSL_FIPS\n";
|
||||
$cflags .= " -I\$(FIPSDIR)/include";
|
||||
}
|
||||
|
||||
$cpuid_obj="mem_clr.o" unless ($cpuid_obj =~ /\.o$/);
|
||||
$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
|
||||
@ -1504,20 +1410,12 @@ if ($rmd160_obj =~ /\.o$/)
|
||||
if ($aes_obj =~ /\.o$/)
|
||||
{
|
||||
$cflags.=" -DAES_ASM";
|
||||
# aes-ctr.o is not a real file, only indication that assembler
|
||||
# module implements AES_ctr32_encrypt...
|
||||
$cflags.=" -DAES_CTR_ASM" if ($aes_obj =~ s/\s*aes\-ctr\.o//);
|
||||
# aes-xts.o indicates presense of AES_xts_[en|de]crypt...
|
||||
$cflags.=" -DAES_XTS_ASM" if ($aes_obj =~ s/\s*aes\-xts\.o//);
|
||||
$aes_obj =~ s/\s*(vpaes|aesni)\-x86\.o//g if ($no_sse2);
|
||||
$cflags.=" -DVPAES_ASM" if ($aes_obj =~ m/vpaes/);
|
||||
$cflags.=" -DBSAES_ASM" if ($aes_obj =~ m/bsaes/);
|
||||
}
|
||||
else {
|
||||
$aes_obj=$aes_enc;
|
||||
}
|
||||
$wp_obj="" if ($wp_obj =~ /mmx/ && $processor eq "386");
|
||||
if ($wp_obj =~ /\.o$/ && !$disabled{"whirlpool"})
|
||||
if ($wp_obj =~ /\.o$/)
|
||||
{
|
||||
$cflags.=" -DWHIRLPOOL_ASM";
|
||||
}
|
||||
@ -1525,10 +1423,6 @@ else {
|
||||
$wp_obj="wp_block.o";
|
||||
}
|
||||
$cmll_obj=$cmll_enc unless ($cmll_obj =~ /.o$/);
|
||||
if ($modes_obj =~ /ghash/)
|
||||
{
|
||||
$cflags.=" -DGHASH_ASM";
|
||||
}
|
||||
|
||||
# "Stringify" the C flags string. This permits it to be made part of a string
|
||||
# and works as well on command lines.
|
||||
@ -1643,8 +1537,6 @@ while (<IN>)
|
||||
s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
|
||||
s/^WP_ASM_OBJ=.*$/WP_ASM_OBJ= $wp_obj/;
|
||||
s/^CMLL_ENC=.*$/CMLL_ENC= $cmll_obj/;
|
||||
s/^MODES_ASM_OBJ.=*$/MODES_ASM_OBJ= $modes_obj/;
|
||||
s/^ENGINES_ASM_OBJ.=*$/ENGINES_ASM_OBJ= $engines_obj/;
|
||||
s/^PERLASM_SCHEME=.*$/PERLASM_SCHEME= $perlasm_scheme/;
|
||||
s/^PROCESSOR=.*/PROCESSOR= $processor/;
|
||||
s/^ARFLAGS=.*/ARFLAGS= $arflags/;
|
||||
@ -1653,12 +1545,6 @@ while (<IN>)
|
||||
s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
|
||||
s/^LIBZLIB=.*/LIBZLIB=$withargs{"zlib-lib"}/;
|
||||
s/^ZLIB_INCLUDE=.*/ZLIB_INCLUDE=$withargs{"zlib-include"}/;
|
||||
|
||||
s/^FIPSDIR=.*/FIPSDIR=$fipsdir/;
|
||||
s/^FIPSLIBDIR=.*/FIPSLIBDIR=$fipslibdir/;
|
||||
s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
|
||||
s/^BASEADDR=.*/BASEADDR=$baseaddr/;
|
||||
|
||||
s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
|
||||
s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
|
||||
s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
|
||||
@ -1702,9 +1588,7 @@ print "RC5_ENC =$rc5_obj\n";
|
||||
print "MD5_OBJ_ASM =$md5_obj\n";
|
||||
print "SHA1_OBJ_ASM =$sha1_obj\n";
|
||||
print "RMD160_OBJ_ASM=$rmd160_obj\n";
|
||||
print "CMLL_ENC =$cmll_obj\n";
|
||||
print "MODES_OBJ =$modes_obj\n";
|
||||
print "ENGINES_OBJ =$engines_obj\n";
|
||||
print "CMLL_ENC= =$cmll_obj\n";
|
||||
print "PROCESSOR =$processor\n";
|
||||
print "RANLIB =$ranlib\n";
|
||||
print "ARFLAGS =$arflags\n";
|
||||
@ -2097,8 +1981,7 @@ sub print_table_entry
|
||||
(my $cc,my $cflags,my $unistd,my $thread_cflag,my $sys_id,my $lflags,
|
||||
my $bn_ops,my $cpuid_obj,my $bn_obj,my $des_obj,my $aes_obj, my $bf_obj,
|
||||
my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj,
|
||||
my $rc5_obj,my $wp_obj,my $cmll_obj,my $modes_obj, my $engines_obj,
|
||||
my $perlasm_scheme,my $dso_scheme,my $shared_target,my $shared_cflag,
|
||||
my $rc5_obj,my $wp_obj,my $cmll_obj,my $perlasm_scheme,my $dso_scheme,my $shared_target,my $shared_cflag,
|
||||
my $shared_ldflag,my $shared_extension,my $ranlib,my $arflags,my $multilib)=
|
||||
split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
||||
|
||||
@ -2125,8 +2008,6 @@ sub print_table_entry
|
||||
\$rc5_obj = $rc5_obj
|
||||
\$wp_obj = $wp_obj
|
||||
\$cmll_obj = $cmll_obj
|
||||
\$modes_obj = $modes_obj
|
||||
\$engines_obj = $engines_obj
|
||||
\$perlasm_scheme = $perlasm_scheme
|
||||
\$dso_scheme = $dso_scheme
|
||||
\$shared_target= $shared_target
|
||||
|
24
deps/openssl/openssl/FAQ
vendored
24
deps/openssl/openssl/FAQ
vendored
@ -10,7 +10,6 @@ OpenSSL - Frequently Asked Questions
|
||||
* Why aren't tools like 'autoconf' and 'libtool' used?
|
||||
* What is an 'engine' version?
|
||||
* How do I check the authenticity of the OpenSSL distribution?
|
||||
* How does the versioning scheme work?
|
||||
|
||||
[LEGAL] Legal questions
|
||||
|
||||
@ -83,11 +82,11 @@ OpenSSL - Frequently Asked Questions
|
||||
* Which is the current version of OpenSSL?
|
||||
|
||||
The current version is available from <URL: http://www.openssl.org>.
|
||||
OpenSSL 1.0.1e was released on Feb 11th, 2013.
|
||||
OpenSSL 1.0.0f was released on Jan 4th, 2012.
|
||||
|
||||
In addition to the current stable release, you can also access daily
|
||||
snapshots of the OpenSSL development version at <URL:
|
||||
ftp://ftp.openssl.org/snapshot/>, or get it by anonymous Git access.
|
||||
ftp://ftp.openssl.org/snapshot/>, or get it by anonymous CVS access.
|
||||
|
||||
|
||||
* Where is the documentation?
|
||||
@ -109,9 +108,7 @@ In addition, you can read the most current versions at
|
||||
<URL: http://www.openssl.org/docs/>. Note that the online documents refer
|
||||
to the very latest development versions of OpenSSL and may include features
|
||||
not present in released versions. If in doubt refer to the documentation
|
||||
that came with the version of OpenSSL you are using. The pod format
|
||||
documentation is included in each OpenSSL distribution under the docs
|
||||
directory.
|
||||
that came with the version of OpenSSL you are using.
|
||||
|
||||
For information on parts of libcrypto that are not yet documented, you
|
||||
might want to read Ariel Glenn's documentation on SSLeay 0.9, OpenSSL's
|
||||
@ -176,19 +173,6 @@ just do:
|
||||
|
||||
pgp TARBALL.asc
|
||||
|
||||
* How does the versioning scheme work?
|
||||
|
||||
After the release of OpenSSL 1.0.0 the versioning scheme changed. Letter
|
||||
releases (e.g. 1.0.1a) can only contain bug and security fixes and no
|
||||
new features. Minor releases change the last number (e.g. 1.0.2) and
|
||||
can contain new features that retain binary compatibility. Changes to
|
||||
the middle number are considered major releases and neither source nor
|
||||
binary compatibility is guaranteed.
|
||||
|
||||
Therefore the answer to the common question "when will feature X be
|
||||
backported to OpenSSL 1.0.0/0.9.8?" is "never" but it could appear
|
||||
in the next minor release.
|
||||
|
||||
[LEGAL] =======================================================================
|
||||
|
||||
* Do I need patent licenses to use OpenSSL?
|
||||
@ -300,7 +284,7 @@ current directory in this case, but this has changed with 0.9.6a.)
|
||||
Check out the CA.pl(1) manual page. This provides a simple wrapper round
|
||||
the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check
|
||||
out the manual pages for the individual utilities and the certificate
|
||||
extensions documentation (in ca(1), req(1), x509v3_config(5) )
|
||||
extensions documentation (currently in doc/openssl.txt).
|
||||
|
||||
|
||||
* Why can't I create certificate requests?
|
||||
|
4
deps/openssl/openssl/INSTALL.W32
vendored
4
deps/openssl/openssl/INSTALL.W32
vendored
@ -29,7 +29,7 @@
|
||||
is required if you intend to utilize assembler modules. Note that NASM
|
||||
is now the only supported assembler.
|
||||
|
||||
If you are compiling from a tarball or a Git snapshot then the Win32 files
|
||||
If you are compiling from a tarball or a CVS snapshot then the Win32 files
|
||||
may well be not up to date. This may mean that some "tweaking" is required to
|
||||
get it all to work. See the trouble shooting section later on for if (when?)
|
||||
it goes wrong.
|
||||
@ -257,7 +257,7 @@
|
||||
|
||||
then ms\do_XXX should not give a warning any more. However the numbers that
|
||||
get assigned by this technique may not match those that eventually get
|
||||
assigned in the Git tree: so anything linked against this version of the
|
||||
assigned in the CVS tree: so anything linked against this version of the
|
||||
library may need to be recompiled.
|
||||
|
||||
If you get errors about unresolved symbols there are several possible
|
||||
|
77
deps/openssl/openssl/Makefile
vendored
77
deps/openssl/openssl/Makefile
vendored
@ -4,16 +4,16 @@
|
||||
## Makefile for OpenSSL
|
||||
##
|
||||
|
||||
VERSION=1.0.1e
|
||||
VERSION=1.0.0f
|
||||
MAJOR=1
|
||||
MINOR=0.1
|
||||
MINOR=0.0
|
||||
SHLIB_VERSION_NUMBER=1.0.0
|
||||
SHLIB_VERSION_HISTORY=
|
||||
SHLIB_MAJOR=1
|
||||
SHLIB_MINOR=0.0
|
||||
SHLIB_EXT=
|
||||
PLATFORM=dist
|
||||
OPTIONS= no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-md2 no-rc5 no-rfc3779 no-sctp no-shared no-store no-zlib no-zlib-dynamic static-engine
|
||||
OPTIONS= no-gmp no-jpake no-krb5 no-md2 no-rc5 no-rfc3779 no-shared no-store no-zlib no-zlib-dynamic static-engine
|
||||
CONFIGURE_ARGS=dist
|
||||
SHLIB_TARGET=
|
||||
|
||||
@ -61,7 +61,7 @@ OPENSSLDIR=/usr/local/ssl
|
||||
|
||||
CC= cc
|
||||
CFLAG= -O
|
||||
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_STORE
|
||||
DEPFLAG= -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE
|
||||
PEX_LIBS=
|
||||
EX_LIBS=
|
||||
EXE_EXT=
|
||||
@ -71,7 +71,7 @@ RANLIB= /usr/bin/ranlib
|
||||
NM= nm
|
||||
PERL= /usr/bin/perl
|
||||
TAR= tar
|
||||
TARFLAGS= --no-recursion --record-size=10240
|
||||
TARFLAGS= --no-recursion
|
||||
MAKEDEPPROG=makedepend
|
||||
LIBDIR=lib
|
||||
|
||||
@ -101,8 +101,6 @@ SHA1_ASM_OBJ=
|
||||
RMD160_ASM_OBJ=
|
||||
WP_ASM_OBJ= wp_block.o
|
||||
CMLL_ENC= camellia.o cmll_misc.o cmll_cbc.o
|
||||
MODES_ASM_OBJ=
|
||||
ENGINES_ASM_OBJ=
|
||||
PERLASM_SCHEME=
|
||||
|
||||
# KRB5 stuff
|
||||
@ -113,30 +111,6 @@ LIBKRB5=
|
||||
ZLIB_INCLUDE=
|
||||
LIBZLIB=
|
||||
|
||||
# TOP level FIPS install directory.
|
||||
FIPSDIR=/usr/local/ssl/fips-2.0
|
||||
|
||||
# This is the location of fipscanister.o and friends.
|
||||
# The FIPS module build will place it $(INSTALLTOP)/lib
|
||||
# but since $(INSTALLTOP) can only take the default value
|
||||
# when the module is built it will be in /usr/local/ssl/lib
|
||||
# $(INSTALLTOP) for this build may be different so hard
|
||||
# code the path.
|
||||
|
||||
FIPSLIBDIR=
|
||||
|
||||
# The location of the library which contains fipscanister.o
|
||||
# normally it will be libcrypto unless fipsdso is set in which
|
||||
# case it will be libfips. If not compiling in FIPS mode at all
|
||||
# this is empty making it a useful test for a FIPS compile.
|
||||
|
||||
FIPSCANLIB=
|
||||
|
||||
# Shared library base address. Currently only used on Windows.
|
||||
#
|
||||
|
||||
BASEADDR=0xFB00000
|
||||
|
||||
DIRS= crypto ssl engines apps test tools
|
||||
ENGDIRS= ccgost
|
||||
SHLIBDIRS= crypto ssl
|
||||
@ -149,7 +123,7 @@ SDIRS= \
|
||||
bn ec rsa dsa ecdsa dh ecdh dso engine \
|
||||
buffer bio stack lhash rand err \
|
||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
|
||||
cms pqueue ts srp cmac
|
||||
cms pqueue ts
|
||||
# keep in mind that the above list is adjusted by ./Configure
|
||||
# according to no-xxx arguments...
|
||||
|
||||
@ -200,7 +174,7 @@ CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \
|
||||
$${EXHEADER+EXHEADER} $${HEADER+HEADER} \
|
||||
$${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
|
||||
$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
|
||||
$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS} \
|
||||
$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} \
|
||||
$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
|
||||
$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
|
||||
|
||||
@ -232,12 +206,7 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
||||
MD5_ASM_OBJ='$(MD5_ASM_OBJ)' \
|
||||
RMD160_ASM_OBJ='$(RMD160_ASM_OBJ)' \
|
||||
WP_ASM_OBJ='$(WP_ASM_OBJ)' \
|
||||
MODES_ASM_OBJ='$(MODES_ASM_OBJ)' \
|
||||
ENGINES_ASM_OBJ='$(ENGINES_ASM_OBJ)' \
|
||||
PERLASM_SCHEME='$(PERLASM_SCHEME)' \
|
||||
FIPSLIBDIR='${FIPSLIBDIR}' \
|
||||
FIPSDIR='${FIPSDIR}' \
|
||||
FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
|
||||
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
||||
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
|
||||
# which in turn eliminates ambiguities in variable treatment with -e.
|
||||
@ -291,20 +260,9 @@ all_testapps: build_libs build_testapps
|
||||
build_testapps:
|
||||
@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
|
||||
|
||||
fips_premain_dso$(EXE_EXT): libcrypto.a
|
||||
[ -z "$(FIPSCANLIB)" ] || $(CC) $(CFLAG) -Iinclude \
|
||||
-DFINGERPRINT_PREMAIN_DSO_LOAD -o $@ \
|
||||
$(FIPSLIBDIR)fips_premain.c $(FIPSLIBDIR)fipscanister.o \
|
||||
libcrypto.a $(EX_LIBS)
|
||||
|
||||
libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
|
||||
libcrypto$(SHLIB_EXT): libcrypto.a
|
||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
||||
FIPSLD_LIBCRYPTO=libcrypto.a ; \
|
||||
FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \
|
||||
export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \
|
||||
fi; \
|
||||
$(MAKE) -e SHLIBDIRS=crypto build-shared; \
|
||||
$(MAKE) SHLIBDIRS=crypto build-shared; \
|
||||
else \
|
||||
echo "There's no support for shared libraries on this platform" >&2; \
|
||||
exit 1; \
|
||||
@ -366,8 +324,7 @@ libcrypto.pc: Makefile
|
||||
echo 'Description: OpenSSL cryptography library'; \
|
||||
echo 'Version: '$(VERSION); \
|
||||
echo 'Requires: '; \
|
||||
echo 'Libs: -L$${libdir} -lcrypto'; \
|
||||
echo 'Libs.private: $(EX_LIBS)'; \
|
||||
echo 'Libs: -L$${libdir} -lcrypto $(EX_LIBS)'; \
|
||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
|
||||
|
||||
libssl.pc: Makefile
|
||||
@ -380,8 +337,7 @@ libssl.pc: Makefile
|
||||
echo 'Description: Secure Sockets Layer and cryptography libraries'; \
|
||||
echo 'Version: '$(VERSION); \
|
||||
echo 'Requires: '; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
|
||||
echo 'Libs.private: $(EX_LIBS)'; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
|
||||
|
||||
openssl.pc: Makefile
|
||||
@ -394,8 +350,7 @@ openssl.pc: Makefile
|
||||
echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
|
||||
echo 'Version: '$(VERSION); \
|
||||
echo 'Requires: '; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
|
||||
echo 'Libs.private: $(EX_LIBS)'; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
|
||||
|
||||
Makefile: Makefile.org Configure config
|
||||
@ -404,7 +359,7 @@ Makefile: Makefile.org Configure config
|
||||
@false
|
||||
|
||||
libclean:
|
||||
rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
|
||||
rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a */lib */*/lib
|
||||
|
||||
clean: libclean
|
||||
rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
|
||||
@ -446,7 +401,7 @@ rehash.time: certs apps
|
||||
[ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
|
||||
OPENSSL_DEBUG_MEMORY=on; \
|
||||
export OPENSSL OPENSSL_DEBUG_MEMORY; \
|
||||
$(PERL) tools/c_rehash certs/demo) && \
|
||||
$(PERL) tools/c_rehash certs) && \
|
||||
touch rehash.time; \
|
||||
else :; fi
|
||||
|
||||
@ -471,9 +426,9 @@ tags:
|
||||
find . -name '[^.]*.[ch]' | xargs etags -a
|
||||
|
||||
errors:
|
||||
$(PERL) util/ck_errf.pl -strict */*.c */*/*.c
|
||||
$(PERL) util/mkerr.pl -recurse -write
|
||||
(cd engines; $(MAKE) PERL=$(PERL) errors)
|
||||
$(PERL) util/ck_errf.pl */*.c */*/*.c
|
||||
|
||||
stacks:
|
||||
$(PERL) util/mkstack.pl -write
|
||||
@ -556,7 +511,7 @@ install_sw:
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
@set -e; target=install; $(RECURSIVE_BUILD_CMD)
|
||||
@set -e; liblist="$(LIBS)"; for i in $$liblist ;\
|
||||
@set -e; for i in $(LIBS) ;\
|
||||
do \
|
||||
if [ -f "$$i" ]; then \
|
||||
( echo installing $$i; \
|
||||
|
69
deps/openssl/openssl/Makefile.org
vendored
69
deps/openssl/openssl/Makefile.org
vendored
@ -69,7 +69,7 @@ RANLIB= ranlib
|
||||
NM= nm
|
||||
PERL= perl
|
||||
TAR= tar
|
||||
TARFLAGS= --no-recursion --record-size=10240
|
||||
TARFLAGS= --no-recursion
|
||||
MAKEDEPPROG=makedepend
|
||||
LIBDIR=lib
|
||||
|
||||
@ -99,8 +99,6 @@ SHA1_ASM_OBJ=
|
||||
RMD160_ASM_OBJ=
|
||||
WP_ASM_OBJ=
|
||||
CMLL_ENC=
|
||||
MODES_ASM_OBJ=
|
||||
ENGINES_ASM_OBJ=
|
||||
PERLASM_SCHEME=
|
||||
|
||||
# KRB5 stuff
|
||||
@ -111,30 +109,6 @@ LIBKRB5=
|
||||
ZLIB_INCLUDE=
|
||||
LIBZLIB=
|
||||
|
||||
# TOP level FIPS install directory.
|
||||
FIPSDIR=
|
||||
|
||||
# This is the location of fipscanister.o and friends.
|
||||
# The FIPS module build will place it $(INSTALLTOP)/lib
|
||||
# but since $(INSTALLTOP) can only take the default value
|
||||
# when the module is built it will be in /usr/local/ssl/lib
|
||||
# $(INSTALLTOP) for this build may be different so hard
|
||||
# code the path.
|
||||
|
||||
FIPSLIBDIR=
|
||||
|
||||
# The location of the library which contains fipscanister.o
|
||||
# normally it will be libcrypto unless fipsdso is set in which
|
||||
# case it will be libfips. If not compiling in FIPS mode at all
|
||||
# this is empty making it a useful test for a FIPS compile.
|
||||
|
||||
FIPSCANLIB=
|
||||
|
||||
# Shared library base address. Currently only used on Windows.
|
||||
#
|
||||
|
||||
BASEADDR=
|
||||
|
||||
DIRS= crypto ssl engines apps test tools
|
||||
ENGDIRS= ccgost
|
||||
SHLIBDIRS= crypto ssl
|
||||
@ -147,7 +121,7 @@ SDIRS= \
|
||||
bn ec rsa dsa ecdsa dh ecdh dso engine \
|
||||
buffer bio stack lhash rand err \
|
||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
|
||||
cms pqueue ts jpake srp store cmac
|
||||
cms pqueue ts jpake store
|
||||
# keep in mind that the above list is adjusted by ./Configure
|
||||
# according to no-xxx arguments...
|
||||
|
||||
@ -198,7 +172,7 @@ CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \
|
||||
$${EXHEADER+EXHEADER} $${HEADER+HEADER} \
|
||||
$${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
|
||||
$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
|
||||
$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS} \
|
||||
$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} \
|
||||
$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
|
||||
$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
|
||||
|
||||
@ -230,12 +204,7 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
||||
MD5_ASM_OBJ='$(MD5_ASM_OBJ)' \
|
||||
RMD160_ASM_OBJ='$(RMD160_ASM_OBJ)' \
|
||||
WP_ASM_OBJ='$(WP_ASM_OBJ)' \
|
||||
MODES_ASM_OBJ='$(MODES_ASM_OBJ)' \
|
||||
ENGINES_ASM_OBJ='$(ENGINES_ASM_OBJ)' \
|
||||
PERLASM_SCHEME='$(PERLASM_SCHEME)' \
|
||||
FIPSLIBDIR='${FIPSLIBDIR}' \
|
||||
FIPSDIR='${FIPSDIR}' \
|
||||
FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
|
||||
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
||||
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
|
||||
# which in turn eliminates ambiguities in variable treatment with -e.
|
||||
@ -289,20 +258,9 @@ all_testapps: build_libs build_testapps
|
||||
build_testapps:
|
||||
@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
|
||||
|
||||
fips_premain_dso$(EXE_EXT): libcrypto.a
|
||||
[ -z "$(FIPSCANLIB)" ] || $(CC) $(CFLAG) -Iinclude \
|
||||
-DFINGERPRINT_PREMAIN_DSO_LOAD -o $@ \
|
||||
$(FIPSLIBDIR)fips_premain.c $(FIPSLIBDIR)fipscanister.o \
|
||||
libcrypto.a $(EX_LIBS)
|
||||
|
||||
libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
|
||||
libcrypto$(SHLIB_EXT): libcrypto.a
|
||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
||||
FIPSLD_LIBCRYPTO=libcrypto.a ; \
|
||||
FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \
|
||||
export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \
|
||||
fi; \
|
||||
$(MAKE) -e SHLIBDIRS=crypto build-shared; \
|
||||
$(MAKE) SHLIBDIRS=crypto build-shared; \
|
||||
else \
|
||||
echo "There's no support for shared libraries on this platform" >&2; \
|
||||
exit 1; \
|
||||
@ -364,8 +322,7 @@ libcrypto.pc: Makefile
|
||||
echo 'Description: OpenSSL cryptography library'; \
|
||||
echo 'Version: '$(VERSION); \
|
||||
echo 'Requires: '; \
|
||||
echo 'Libs: -L$${libdir} -lcrypto'; \
|
||||
echo 'Libs.private: $(EX_LIBS)'; \
|
||||
echo 'Libs: -L$${libdir} -lcrypto $(EX_LIBS)'; \
|
||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
|
||||
|
||||
libssl.pc: Makefile
|
||||
@ -378,8 +335,7 @@ libssl.pc: Makefile
|
||||
echo 'Description: Secure Sockets Layer and cryptography libraries'; \
|
||||
echo 'Version: '$(VERSION); \
|
||||
echo 'Requires: '; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
|
||||
echo 'Libs.private: $(EX_LIBS)'; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
|
||||
|
||||
openssl.pc: Makefile
|
||||
@ -392,8 +348,7 @@ openssl.pc: Makefile
|
||||
echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
|
||||
echo 'Version: '$(VERSION); \
|
||||
echo 'Requires: '; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
|
||||
echo 'Libs.private: $(EX_LIBS)'; \
|
||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
|
||||
|
||||
Makefile: Makefile.org Configure config
|
||||
@ -402,7 +357,7 @@ Makefile: Makefile.org Configure config
|
||||
@false
|
||||
|
||||
libclean:
|
||||
rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
|
||||
rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a */lib */*/lib
|
||||
|
||||
clean: libclean
|
||||
rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
|
||||
@ -444,7 +399,7 @@ rehash.time: certs apps
|
||||
[ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
|
||||
OPENSSL_DEBUG_MEMORY=on; \
|
||||
export OPENSSL OPENSSL_DEBUG_MEMORY; \
|
||||
$(PERL) tools/c_rehash certs/demo) && \
|
||||
$(PERL) tools/c_rehash certs) && \
|
||||
touch rehash.time; \
|
||||
else :; fi
|
||||
|
||||
@ -469,9 +424,9 @@ tags:
|
||||
find . -name '[^.]*.[ch]' | xargs etags -a
|
||||
|
||||
errors:
|
||||
$(PERL) util/ck_errf.pl -strict */*.c */*/*.c
|
||||
$(PERL) util/mkerr.pl -recurse -write
|
||||
(cd engines; $(MAKE) PERL=$(PERL) errors)
|
||||
$(PERL) util/ck_errf.pl */*.c */*/*.c
|
||||
|
||||
stacks:
|
||||
$(PERL) util/mkstack.pl -write
|
||||
@ -554,7 +509,7 @@ install_sw:
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||
done;
|
||||
@set -e; target=install; $(RECURSIVE_BUILD_CMD)
|
||||
@set -e; liblist="$(LIBS)"; for i in $$liblist ;\
|
||||
@set -e; for i in $(LIBS) ;\
|
||||
do \
|
||||
if [ -f "$$i" ]; then \
|
||||
( echo installing $$i; \
|
||||
|
52
deps/openssl/openssl/NEWS
vendored
52
deps/openssl/openssl/NEWS
vendored
@ -5,58 +5,6 @@
|
||||
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.0.1d and OpenSSL 1.0.1e:
|
||||
|
||||
o Corrected fix for CVE-2013-0169
|
||||
|
||||
Major changes between OpenSSL 1.0.1c and OpenSSL 1.0.1d:
|
||||
|
||||
o Fix renegotiation in TLS 1.1, 1.2 by using the correct TLS version.
|
||||
o Include the fips configuration module.
|
||||
o Fix OCSP bad key DoS attack CVE-2013-0166
|
||||
o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
|
||||
o Fix for TLS AESNI record handling flaw CVE-2012-2686
|
||||
|
||||
Major changes between OpenSSL 1.0.1b and OpenSSL 1.0.1c:
|
||||
|
||||
o Fix TLS/DTLS record length checking bug CVE-2012-2333
|
||||
o Don't attempt to use non-FIPS composite ciphers in FIPS mode.
|
||||
|
||||
Major changes between OpenSSL 1.0.1a and OpenSSL 1.0.1b:
|
||||
|
||||
o Fix compilation error on non-x86 platforms.
|
||||
o Make FIPS capable OpenSSL ciphers work in non-FIPS mode.
|
||||
o Fix SSL_OP_NO_TLSv1_1 clash with SSL_OP_ALL in OpenSSL 1.0.0
|
||||
|
||||
Major changes between OpenSSL 1.0.1 and OpenSSL 1.0.1a:
|
||||
|
||||
o Fix for ASN1 overflow bug CVE-2012-2110
|
||||
o Workarounds for some servers that hang on long client hellos.
|
||||
o Fix SEGV in AES code.
|
||||
|
||||
Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.1:
|
||||
|
||||
o TLS/DTLS heartbeat support.
|
||||
o SCTP support.
|
||||
o RFC 5705 TLS key material exporter.
|
||||
o RFC 5764 DTLS-SRTP negotiation.
|
||||
o Next Protocol Negotiation.
|
||||
o PSS signatures in certificates, requests and CRLs.
|
||||
o Support for password based recipient info for CMS.
|
||||
o Support TLS v1.2 and TLS v1.1.
|
||||
o Preliminary FIPS capability for unvalidated 2.0 FIPS module.
|
||||
o SRP support.
|
||||
|
||||
Major changes between OpenSSL 1.0.0g and OpenSSL 1.0.0h:
|
||||
|
||||
o Fix for CMS/PKCS#7 MMA CVE-2012-0884
|
||||
o Corrected fix for CVE-2011-4619
|
||||
o Various DTLS fixes.
|
||||
|
||||
Major changes between OpenSSL 1.0.0f and OpenSSL 1.0.0g:
|
||||
|
||||
o Fix for DTLS DoS issue CVE-2012-0050
|
||||
|
||||
Major changes between OpenSSL 1.0.0e and OpenSSL 1.0.0f:
|
||||
|
||||
o Fix for DTLS plaintext recovery attack CVE-2011-4108
|
||||
|
14
deps/openssl/openssl/PROBLEMS
vendored
14
deps/openssl/openssl/PROBLEMS
vendored
@ -197,17 +197,3 @@ reconfigure with additional no-sse2 [or 386] option passed to ./config.
|
||||
We don't have framework to associate -ldl with no-dso, therefore the only
|
||||
way is to edit Makefile right after ./config no-dso and remove -ldl from
|
||||
EX_LIBS line.
|
||||
|
||||
* hpux-parisc2-cc no-asm build fails with SEGV in ECDSA/DH.
|
||||
|
||||
Compiler bug, presumably at particular patch level. Remaining
|
||||
hpux*-parisc*-cc configurations can be affected too. Drop optimization
|
||||
level to +O2 when compiling bn_nist.o.
|
||||
|
||||
* solaris64-sparcv9-cc link failure
|
||||
|
||||
Solaris 8 ar can fail to maintain symbol table in .a, which results in
|
||||
link failures. Apply 109147-09 or later or modify Makefile generated
|
||||
by ./Configure solaris64-sparcv9-cc and replace RANLIB assignment with
|
||||
|
||||
RANLIB= /usr/ccs/bin/ar rs
|
||||
|
4
deps/openssl/openssl/README
vendored
4
deps/openssl/openssl/README
vendored
@ -1,5 +1,5 @@
|
||||
|
||||
OpenSSL 1.0.1e 11 Feb 2013
|
||||
OpenSSL 1.0.0f 4 Jan 2012
|
||||
|
||||
Copyright (c) 1998-2011 The OpenSSL Project
|
||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
||||
@ -190,7 +190,7 @@
|
||||
reason as to why that feature isn't implemented.
|
||||
|
||||
Patches should be as up to date as possible, preferably relative to the
|
||||
current Git or the last snapshot. They should follow the coding style of
|
||||
current CVS or the last snapshot. They should follow the coding style of
|
||||
OpenSSL and compile without warnings. Some of the core team developer targets
|
||||
can be used for testing purposes, (debug-steve64, debug-geoff etc). OpenSSL
|
||||
compiles on many varied platforms: try to ensure you only use portable
|
||||
|
0
deps/openssl/openssl/VMS/install-vms.com
vendored
Executable file → Normal file
0
deps/openssl/openssl/VMS/install-vms.com
vendored
Executable file → Normal file
0
deps/openssl/openssl/VMS/openssl_startup.com
vendored
Executable file → Normal file
0
deps/openssl/openssl/VMS/openssl_startup.com
vendored
Executable file → Normal file
0
deps/openssl/openssl/VMS/openssl_undo.com
vendored
Executable file → Normal file
0
deps/openssl/openssl/VMS/openssl_undo.com
vendored
Executable file → Normal file
102
deps/openssl/openssl/config
vendored
102
deps/openssl/openssl/config
vendored
@ -370,10 +370,6 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
||||
NONSTOP_KERNEL*)
|
||||
echo "nsr-tandem-nsk"; exit 0;
|
||||
;;
|
||||
|
||||
vxworks*)
|
||||
echo "${MACHINE}-whatever-vxworks"; exit 0;
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
@ -411,18 +407,23 @@ exit 0
|
||||
# this is where the translation occurs into SSLeay terms
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
GCCVER=`(gcc -dumpversion) 2>/dev/null`
|
||||
if [ "$GCCVER" != "" ]; then
|
||||
# then strip off whatever prefix egcs prepends the number with...
|
||||
# Hopefully, this will work for any future prefixes as well.
|
||||
GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
|
||||
# Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion
|
||||
# does give us what we want though, so we use that. We just just the
|
||||
# major and minor version numbers.
|
||||
# peak single digit before and after first dot, e.g. 2.95.1 gives 29
|
||||
GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'`
|
||||
fi
|
||||
|
||||
# Only set CC if not supplied already
|
||||
if [ -z "$CROSS_COMPILE$CC" ]; then
|
||||
GCCVER=`sh -c "gcc -dumpversion" 2>/dev/null`
|
||||
if [ -z "$CC" ]; then
|
||||
# figure out if gcc is available and if so we use it otherwise
|
||||
# we fallback to whatever cc does on the system
|
||||
if [ "$GCCVER" != "" ]; then
|
||||
# then strip off whatever prefix egcs prepends the number with...
|
||||
# Hopefully, this will work for any future prefixes as well.
|
||||
GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
|
||||
# Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion
|
||||
# does give us what we want though, so we use that. We just just the
|
||||
# major and minor version numbers.
|
||||
# peak single digit before and after first dot, e.g. 2.95.1 gives 29
|
||||
GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'`
|
||||
CC=gcc
|
||||
else
|
||||
CC=cc
|
||||
@ -538,7 +539,7 @@ case "$GUESSOS" in
|
||||
ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
|
||||
ppc-apple-darwin*)
|
||||
ISA64=`(sysctl -n hw.optional.64bitops) 2>/dev/null`
|
||||
if [ "$ISA64" = "1" -a -z "$KERNEL_BITS" ]; then
|
||||
if [ "$ISA64" = "1" ]; then
|
||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||
echo " invoke './Configure darwin64-ppc-cc' *manually*."
|
||||
if [ "$TEST" = "false" -a -t 1 ]; then
|
||||
@ -546,14 +547,10 @@ case "$GUESSOS" in
|
||||
(trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
|
||||
fi
|
||||
fi
|
||||
if [ "$ISA64" = "1" -a "$KERNEL_BITS" = "64" ]; then
|
||||
OUT="darwin64-ppc-cc"
|
||||
else
|
||||
OUT="darwin-ppc-cc"
|
||||
fi ;;
|
||||
OUT="darwin-ppc-cc" ;;
|
||||
i?86-apple-darwin*)
|
||||
ISA64=`(sysctl -n hw.optional.x86_64) 2>/dev/null`
|
||||
if [ "$ISA64" = "1" -a -z "$KERNEL_BITS" ]; then
|
||||
if [ "$ISA64" = "1" ]; then
|
||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||
echo " invoke './Configure darwin64-x86_64-cc' *manually*."
|
||||
if [ "$TEST" = "false" -a -t 1 ]; then
|
||||
@ -561,17 +558,7 @@ case "$GUESSOS" in
|
||||
(trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
|
||||
fi
|
||||
fi
|
||||
if [ "$ISA64" = "1" -a "$KERNEL_BITS" = "64" ]; then
|
||||
OUT="darwin64-x86_64-cc"
|
||||
else
|
||||
OUT="darwin-i386-cc"
|
||||
fi ;;
|
||||
armv6+7-*-iphoneos)
|
||||
options="$options -arch%20armv6 -arch%20armv7"
|
||||
OUT="iphoneos-cross" ;;
|
||||
*-*-iphoneos)
|
||||
options="$options -arch%20${MACHINE}"
|
||||
OUT="iphoneos-cross" ;;
|
||||
OUT="darwin-i386-cc" ;;
|
||||
alpha-*-linux2)
|
||||
ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo`
|
||||
case ${ISA:-generic} in
|
||||
@ -596,11 +583,6 @@ case "$GUESSOS" in
|
||||
OUT="linux-ppc"
|
||||
;;
|
||||
ppc-*-linux2) OUT="linux-ppc" ;;
|
||||
ppc60x-*-vxworks*) OUT="vxworks-ppc60x" ;;
|
||||
ppcgen-*-vxworks*) OUT="vxworks-ppcgen" ;;
|
||||
pentium-*-vxworks*) OUT="vxworks-pentium" ;;
|
||||
simlinux-*-vxworks*) OUT="vxworks-simlinux" ;;
|
||||
mips-*-vxworks*) OUT="vxworks-mips";;
|
||||
ia64-*-linux?) OUT="linux-ia64" ;;
|
||||
sparc64-*-linux2)
|
||||
echo "WARNING! If you *know* that your GNU C supports 64-bit/V9 ABI"
|
||||
@ -642,24 +624,12 @@ case "$GUESSOS" in
|
||||
options="$options -DB_ENDIAN -mschedule=$CPUSCHEDULE -march=$CPUARCH"
|
||||
OUT="linux-generic32" ;;
|
||||
armv[1-3]*-*-linux2) OUT="linux-generic32" ;;
|
||||
armv[7-9]*-*-linux2) OUT="linux-armv4"; options="$options -march=armv7-a" ;;
|
||||
arm*-*-linux2) OUT="linux-armv4" ;;
|
||||
sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||
sh*-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
|
||||
m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||
s390-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||
s390x-*-linux2)
|
||||
# To be uncommented when glibc bug is fixed, see Configure...
|
||||
#if egrep -e '^features.* highgprs' /proc/cpuinfo >/dev/null ; then
|
||||
# echo "WARNING! If you wish to build \"highgprs\" 32-bit library, then you"
|
||||
# echo " have to invoke './Configure linux32-s390x' *manually*."
|
||||
# if [ "$TEST" = "false" -a -t -1 ]; then
|
||||
# echo " You have about 5 seconds to press Ctrl-C to abort."
|
||||
# (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
|
||||
# fi
|
||||
#fi
|
||||
OUT="linux64-s390x"
|
||||
;;
|
||||
s390x-*-linux2) OUT="linux-s390x" ;;
|
||||
x86_64-*-linux?) OUT="linux-x86_64" ;;
|
||||
*86-*-linux2) OUT="linux-elf"
|
||||
if [ "$GCCVER" -gt 28 ]; then
|
||||
@ -678,7 +648,7 @@ case "$GUESSOS" in
|
||||
sun4[uv]*-*-solaris2)
|
||||
OUT="solaris-sparcv9-$CC"
|
||||
ISA64=`(isalist) 2>/dev/null | grep sparcv9`
|
||||
if [ "$ISA64" != "" -a "$KERNEL_BITS" = "" ]; then
|
||||
if [ "$ISA64" != "" ]; then
|
||||
if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then
|
||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||
echo " invoke './Configure solaris64-sparcv9-cc' *manually*."
|
||||
@ -708,16 +678,13 @@ case "$GUESSOS" in
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ "$ISA64" != "" -a "$KERNEL_BITS" = "64" ]; then
|
||||
OUT="solaris64-sparcv9-$CC"
|
||||
fi
|
||||
;;
|
||||
sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
|
||||
sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
|
||||
sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;;
|
||||
*86*-*-solaris2)
|
||||
ISA64=`(isalist) 2>/dev/null | grep amd64`
|
||||
if [ "$ISA64" != "" -a ${KERNEL_BITS:-64} -eq 64 ]; then
|
||||
if [ "$ISA64" != "" ]; then
|
||||
OUT="solaris64-x86_64-$CC"
|
||||
else
|
||||
OUT="solaris-x86-$CC"
|
||||
@ -769,17 +736,20 @@ case "$GUESSOS" in
|
||||
if [ $CC = "gcc" -a $GCC_BITS = "64" ]; then
|
||||
OUT="hpux64-parisc2-gcc"
|
||||
fi
|
||||
[ "$KERNEL_BITS" ] || KERNEL_BITS=`(getconf KERNEL_BITS) 2>/dev/null`
|
||||
KERNEL_BITS=`(getconf KERNEL_BITS) 2>/dev/null`
|
||||
KERNEL_BITS=${KERNEL_BITS:-32}
|
||||
CPU_VERSION=`(getconf CPU_VERSION) 2>/dev/null`
|
||||
CPU_VERSION=${CPU_VERSION:-0}
|
||||
# See <sys/unistd.h> for further info on CPU_VERSION.
|
||||
if [ $CPU_VERSION -ge 768 ]; then # IA-64 CPU
|
||||
if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
|
||||
OUT="hpux64-ia64-cc"
|
||||
else
|
||||
OUT="hpux-ia64-cc"
|
||||
fi
|
||||
echo "WARNING! 64-bit ABI is the default configured ABI on HP-UXi."
|
||||
echo " If you wish to build 32-bit library, the you have to"
|
||||
echo " invoke './Configure hpux-ia64-cc' *manually*."
|
||||
if [ "$TEST" = "false" -a -t 1 ]; then
|
||||
echo " You have about 5 seconds to press Ctrl-C to abort."
|
||||
(trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
|
||||
fi
|
||||
OUT="hpux64-ia64-cc"
|
||||
elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU
|
||||
OUT=${OUT:-"hpux-parisc2-${CC}"}
|
||||
if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
|
||||
@ -800,7 +770,7 @@ case "$GUESSOS" in
|
||||
options="$options -D_REENTRANT" ;;
|
||||
*-hpux) OUT="hpux-parisc-$CC" ;;
|
||||
*-aix)
|
||||
[ "$KERNEL_BITS" ] || KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null`
|
||||
KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null`
|
||||
KERNEL_BITS=${KERNEL_BITS:-32}
|
||||
OBJECT_MODE=${OBJECT_MODE:-32}
|
||||
if [ "$CC" = "gcc" ]; then
|
||||
@ -840,8 +810,6 @@ case "$GUESSOS" in
|
||||
beos-*) OUT="$GUESSOS" ;;
|
||||
x86pc-*-qnx6) OUT="QNX6-i386" ;;
|
||||
*-*-qnx6) OUT="QNX6" ;;
|
||||
x86-*-android|i?86-*-android) OUT="android-x86" ;;
|
||||
armv[7-9]*-*-android) OUT="android-armv7" ;;
|
||||
*) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
|
||||
esac
|
||||
|
||||
@ -857,11 +825,9 @@ esac
|
||||
# options="$options -DATALLA"
|
||||
#fi
|
||||
|
||||
if expr "$options" : '.*no\-asm' > /dev/null; then :; else
|
||||
sh -c "$CROSS_COMPILE${CC:-gcc} -Wa,--help -c -o /tmp/null.$$.o -x assembler /dev/null && rm /tmp/null.$$.o" 2>&1 | \
|
||||
grep \\--noexecstack >/dev/null && \
|
||||
($CC -Wa,--help -c -o /dev/null -x assembler /dev/null 2>&1 | \
|
||||
grep \\--noexecstack) 2>&1 > /dev/null && \
|
||||
options="$options -Wa,--noexecstack"
|
||||
fi
|
||||
|
||||
# gcc < 2.8 does not support -march=ultrasparc
|
||||
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
|
||||
|
34
deps/openssl/openssl/crypto/Makefile
vendored
34
deps/openssl/openssl/crypto/Makefile
vendored
@ -7,7 +7,7 @@ TOP= ..
|
||||
CC= cc
|
||||
INCLUDE= -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
|
||||
# INCLUDES targets sudbirs!
|
||||
INCLUDES= -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include $(ZLIB_INCLUDE)
|
||||
INCLUDES= -I.. -I../.. -I../asn1 -I../evp -I../../include $(ZLIB_INCLUDE)
|
||||
CFLAG= -g
|
||||
MAKEDEPPROG= makedepend
|
||||
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
|
||||
@ -34,10 +34,8 @@ GENERAL=Makefile README crypto-lib.com install.com
|
||||
|
||||
LIB= $(TOP)/libcrypto.a
|
||||
SHARED_LIB= libcrypto$(SHLIB_EXT)
|
||||
LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \
|
||||
ebcdic.c uid.c o_time.c o_str.c o_dir.c o_fips.c o_init.c fips_ers.c
|
||||
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o ebcdic.o \
|
||||
uid.o o_time.o o_str.o o_dir.o o_fips.o o_init.o fips_ers.o $(CPUID_OBJ)
|
||||
LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c
|
||||
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o $(CPUID_OBJ)
|
||||
|
||||
SRC= $(LIBSRC)
|
||||
|
||||
@ -69,13 +67,14 @@ applink.o: $(TOP)/ms/applink.c
|
||||
uplink.o: $(TOP)/ms/uplink.c applink.o
|
||||
$(CC) $(CFLAGS) -c -o $@ $(TOP)/ms/uplink.c
|
||||
|
||||
uplink-x86.s: $(TOP)/ms/uplink-x86.pl
|
||||
$(PERL) $(TOP)/ms/uplink-x86.pl $(PERLASM_SCHEME) > $@
|
||||
uplink-cof.s: $(TOP)/ms/uplink.pl
|
||||
$(PERL) $(TOP)/ms/uplink.pl coff > $@
|
||||
|
||||
x86_64cpuid.s: x86_64cpuid.pl; $(PERL) x86_64cpuid.pl $(PERLASM_SCHEME) > $@
|
||||
ia64cpuid.s: ia64cpuid.S; $(CC) $(CFLAGS) -E ia64cpuid.S > $@
|
||||
x86_64cpuid.s: x86_64cpuid.pl
|
||||
$(PERL) x86_64cpuid.pl $(PERLASM_SCHEME) > $@
|
||||
ia64cpuid.s: ia64cpuid.S
|
||||
$(CC) $(CFLAGS) -E ia64cpuid.S > $@
|
||||
ppccpuid.s: ppccpuid.pl; $(PERL) ppccpuid.pl $(PERLASM_SCHEME) $@
|
||||
pariscid.s: pariscid.pl; $(PERL) pariscid.pl $(PERLASM_SCHEME) $@
|
||||
alphacpuid.s: alphacpuid.pl
|
||||
$(PERL) $< | $(CC) -E - | tee $@ > /dev/null
|
||||
|
||||
@ -103,7 +102,6 @@ lib: $(LIB)
|
||||
@touch lib
|
||||
$(LIB): $(LIBOBJ)
|
||||
$(AR) $(LIB) $(LIBOBJ)
|
||||
[ -z "$(FIPSLIBDIR)" ] || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o
|
||||
$(RANLIB) $(LIB) || echo Never mind.
|
||||
|
||||
shared: buildinf.h lib subdirs
|
||||
@ -173,7 +171,6 @@ ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
ex_data.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||
ex_data.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
ex_data.o: ex_data.c
|
||||
fips_ers.o: ../include/openssl/opensslconf.h fips_ers.c
|
||||
mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||
mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||
@ -194,19 +191,6 @@ mem_dbg.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
mem_dbg.o: mem_dbg.c
|
||||
o_dir.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
||||
o_dir.o: LPdir_unix.c o_dir.c o_dir.h
|
||||
o_fips.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||
o_fips.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||
o_fips.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||
o_fips.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
o_fips.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||
o_fips.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||
o_fips.o: o_fips.c
|
||||
o_init.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
|
||||
o_init.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
o_init.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
o_init.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
||||
o_init.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
||||
o_init.o: ../include/openssl/symhacks.h o_init.c
|
||||
o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
||||
o_str.o: o_str.c o_str.h
|
||||
o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
|
||||
|
29
deps/openssl/openssl/crypto/aes/Makefile
vendored
29
deps/openssl/openssl/crypto/aes/Makefile
vendored
@ -50,21 +50,9 @@ aes-ia64.s: asm/aes-ia64.S
|
||||
|
||||
aes-586.s: asm/aes-586.pl ../perlasm/x86asm.pl
|
||||
$(PERL) asm/aes-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
|
||||
vpaes-x86.s: asm/vpaes-x86.pl ../perlasm/x86asm.pl
|
||||
$(PERL) asm/vpaes-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
|
||||
aesni-x86.s: asm/aesni-x86.pl ../perlasm/x86asm.pl
|
||||
$(PERL) asm/aesni-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
|
||||
|
||||
aes-x86_64.s: asm/aes-x86_64.pl
|
||||
$(PERL) asm/aes-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||
vpaes-x86_64.s: asm/vpaes-x86_64.pl
|
||||
$(PERL) asm/vpaes-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||
bsaes-x86_64.s: asm/bsaes-x86_64.pl
|
||||
$(PERL) asm/bsaes-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||
aesni-x86_64.s: asm/aesni-x86_64.pl
|
||||
$(PERL) asm/aesni-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||
aesni-sha1-x86_64.s: asm/aesni-sha1-x86_64.pl
|
||||
$(PERL) asm/aesni-sha1-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||
|
||||
aes-sparcv9.s: asm/aes-sparcv9.pl
|
||||
$(PERL) asm/aes-sparcv9.pl $(CFLAGS) > $@
|
||||
@ -72,15 +60,8 @@ aes-sparcv9.s: asm/aes-sparcv9.pl
|
||||
aes-ppc.s: asm/aes-ppc.pl
|
||||
$(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@
|
||||
|
||||
aes-parisc.s: asm/aes-parisc.pl
|
||||
$(PERL) asm/aes-parisc.pl $(PERLASM_SCHEME) $@
|
||||
|
||||
aes-mips.S: asm/aes-mips.pl
|
||||
$(PERL) asm/aes-mips.pl $(PERLASM_SCHEME) $@
|
||||
|
||||
# GNU make "catch all"
|
||||
aes-%.S: asm/aes-%.pl; $(PERL) $< $(PERLASM_SCHEME) > $@
|
||||
aes-armv4.o: aes-armv4.S
|
||||
aes-%.s: asm/aes-%.pl; $(PERL) $< $(CFLAGS) > $@
|
||||
|
||||
files:
|
||||
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
||||
@ -136,11 +117,9 @@ aes_ige.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
aes_ige.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
aes_ige.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
aes_ige.o: ../../include/openssl/symhacks.h ../cryptlib.h aes_ige.c aes_locl.h
|
||||
aes_misc.o: ../../include/openssl/aes.h ../../include/openssl/crypto.h
|
||||
aes_misc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||
aes_misc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
aes_misc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
aes_misc.o: ../../include/openssl/symhacks.h aes_locl.h aes_misc.c
|
||||
aes_misc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
|
||||
aes_misc.o: ../../include/openssl/opensslconf.h
|
||||
aes_misc.o: ../../include/openssl/opensslv.h aes_locl.h aes_misc.c
|
||||
aes_ofb.o: ../../include/openssl/aes.h ../../include/openssl/modes.h
|
||||
aes_ofb.o: ../../include/openssl/opensslconf.h aes_ofb.c
|
||||
aes_wrap.o: ../../e_os.h ../../include/openssl/aes.h
|
||||
|
5
deps/openssl/openssl/crypto/aes/aes.h
vendored
5
deps/openssl/openssl/crypto/aes/aes.h
vendored
@ -90,11 +90,6 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key);
|
||||
|
||||
int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key);
|
||||
int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key);
|
||||
|
||||
void AES_encrypt(const unsigned char *in, unsigned char *out,
|
||||
const AES_KEY *key);
|
||||
void AES_decrypt(const unsigned char *in, unsigned char *out,
|
||||
|
12
deps/openssl/openssl/crypto/aes/aes_core.c
vendored
12
deps/openssl/openssl/crypto/aes/aes_core.c
vendored
@ -625,7 +625,7 @@ static const u32 rcon[] = {
|
||||
/**
|
||||
* Expand the cipher key into the encryption key schedule.
|
||||
*/
|
||||
int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key) {
|
||||
|
||||
u32 *rk;
|
||||
@ -726,7 +726,7 @@ int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
/**
|
||||
* Expand the cipher key into the decryption key schedule.
|
||||
*/
|
||||
int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key) {
|
||||
|
||||
u32 *rk;
|
||||
@ -734,7 +734,7 @@ int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
u32 temp;
|
||||
|
||||
/* first, start with an encryption schedule */
|
||||
status = private_AES_set_encrypt_key(userKey, bits, key);
|
||||
status = AES_set_encrypt_key(userKey, bits, key);
|
||||
if (status < 0)
|
||||
return status;
|
||||
|
||||
@ -1201,7 +1201,7 @@ static const u32 rcon[] = {
|
||||
/**
|
||||
* Expand the cipher key into the encryption key schedule.
|
||||
*/
|
||||
int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key) {
|
||||
u32 *rk;
|
||||
int i = 0;
|
||||
@ -1301,7 +1301,7 @@ int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
/**
|
||||
* Expand the cipher key into the decryption key schedule.
|
||||
*/
|
||||
int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key) {
|
||||
|
||||
u32 *rk;
|
||||
@ -1309,7 +1309,7 @@ int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
u32 temp;
|
||||
|
||||
/* first, start with an encryption schedule */
|
||||
status = private_AES_set_encrypt_key(userKey, bits, key);
|
||||
status = AES_set_encrypt_key(userKey, bits, key);
|
||||
if (status < 0)
|
||||
return status;
|
||||
|
||||
|
21
deps/openssl/openssl/crypto/aes/aes_misc.c
vendored
21
deps/openssl/openssl/crypto/aes/aes_misc.c
vendored
@ -50,7 +50,6 @@
|
||||
*/
|
||||
|
||||
#include <openssl/opensslv.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/aes.h>
|
||||
#include "aes_locl.h"
|
||||
|
||||
@ -63,23 +62,3 @@ const char *AES_options(void) {
|
||||
return "aes(partial)";
|
||||
#endif
|
||||
}
|
||||
|
||||
/* FIPS wrapper functions to block low level AES calls in FIPS mode */
|
||||
|
||||
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key)
|
||||
{
|
||||
#ifdef OPENSSL_FIPS
|
||||
fips_cipher_abort(AES);
|
||||
#endif
|
||||
return private_AES_set_encrypt_key(userKey, bits, key);
|
||||
}
|
||||
|
||||
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
AES_KEY *key)
|
||||
{
|
||||
#ifdef OPENSSL_FIPS
|
||||
fips_cipher_abort(AES);
|
||||
#endif
|
||||
return private_AES_set_decrypt_key(userKey, bits, key);
|
||||
}
|
||||
|
14
deps/openssl/openssl/crypto/aes/asm/aes-586.pl
vendored
14
deps/openssl/openssl/crypto/aes/asm/aes-586.pl
vendored
@ -39,7 +39,7 @@
|
||||
# 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 private_AES_set_[de|en]cryption_key.
|
||||
# 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
|
||||
@ -2854,12 +2854,12 @@ sub enckey()
|
||||
&set_label("exit");
|
||||
&function_end("_x86_AES_set_encrypt_key");
|
||||
|
||||
# int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
# AES_KEY *key)
|
||||
&function_begin_B("private_AES_set_encrypt_key");
|
||||
&function_begin_B("AES_set_encrypt_key");
|
||||
&call ("_x86_AES_set_encrypt_key");
|
||||
&ret ();
|
||||
&function_end_B("private_AES_set_encrypt_key");
|
||||
&function_end_B("AES_set_encrypt_key");
|
||||
|
||||
sub deckey()
|
||||
{ my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_;
|
||||
@ -2916,9 +2916,9 @@ sub deckey()
|
||||
&mov (&DWP(4*$i,$key),$tp1);
|
||||
}
|
||||
|
||||
# int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
# AES_KEY *key)
|
||||
&function_begin_B("private_AES_set_decrypt_key");
|
||||
&function_begin_B("AES_set_decrypt_key");
|
||||
&call ("_x86_AES_set_encrypt_key");
|
||||
&cmp ("eax",0);
|
||||
&je (&label("proceed"));
|
||||
@ -2974,7 +2974,7 @@ sub deckey()
|
||||
&jb (&label("permute"));
|
||||
|
||||
&xor ("eax","eax"); # return success
|
||||
&function_end("private_AES_set_decrypt_key");
|
||||
&function_end("AES_set_decrypt_key");
|
||||
&asciz("AES for x86, CRYPTOGAMS by <appro\@openssl.org>");
|
||||
|
||||
&asm_finish();
|
||||
|
182
deps/openssl/openssl/crypto/aes/asm/aes-armv4.pl
vendored
182
deps/openssl/openssl/crypto/aes/asm/aes-armv4.pl
vendored
@ -27,11 +27,6 @@
|
||||
# Rescheduling for dual-issue pipeline resulted in 12% improvement on
|
||||
# Cortex A8 core and ~25 cycles per byte processed with 128-bit key.
|
||||
|
||||
# February 2011.
|
||||
#
|
||||
# Profiler-assisted and platform-specific optimization resulted in 16%
|
||||
# improvement on Cortex A8 core and ~21.5 cycles per byte.
|
||||
|
||||
while (($output=shift) && ($output!~/^\w[\w\-]*\.\w+$/)) {}
|
||||
open STDOUT,">$output";
|
||||
|
||||
@ -51,7 +46,6 @@ $key="r11";
|
||||
$rounds="r12";
|
||||
|
||||
$code=<<___;
|
||||
#include "arm_arch.h"
|
||||
.text
|
||||
.code 32
|
||||
|
||||
@ -172,7 +166,7 @@ AES_encrypt:
|
||||
mov $rounds,r0 @ inp
|
||||
mov $key,r2
|
||||
sub $tbl,r3,#AES_encrypt-AES_Te @ Te
|
||||
#if __ARM_ARCH__<7
|
||||
|
||||
ldrb $s0,[$rounds,#3] @ load input data in endian-neutral
|
||||
ldrb $t1,[$rounds,#2] @ manner...
|
||||
ldrb $t2,[$rounds,#1]
|
||||
@ -201,33 +195,10 @@ AES_encrypt:
|
||||
orr $s3,$s3,$t1,lsl#8
|
||||
orr $s3,$s3,$t2,lsl#16
|
||||
orr $s3,$s3,$t3,lsl#24
|
||||
#else
|
||||
ldr $s0,[$rounds,#0]
|
||||
ldr $s1,[$rounds,#4]
|
||||
ldr $s2,[$rounds,#8]
|
||||
ldr $s3,[$rounds,#12]
|
||||
#ifdef __ARMEL__
|
||||
rev $s0,$s0
|
||||
rev $s1,$s1
|
||||
rev $s2,$s2
|
||||
rev $s3,$s3
|
||||
#endif
|
||||
#endif
|
||||
|
||||
bl _armv4_AES_encrypt
|
||||
|
||||
ldr $rounds,[sp],#4 @ pop out
|
||||
#if __ARM_ARCH__>=7
|
||||
#ifdef __ARMEL__
|
||||
rev $s0,$s0
|
||||
rev $s1,$s1
|
||||
rev $s2,$s2
|
||||
rev $s3,$s3
|
||||
#endif
|
||||
str $s0,[$rounds,#0]
|
||||
str $s1,[$rounds,#4]
|
||||
str $s2,[$rounds,#8]
|
||||
str $s3,[$rounds,#12]
|
||||
#else
|
||||
mov $t1,$s0,lsr#24 @ write output in endian-neutral
|
||||
mov $t2,$s0,lsr#16 @ manner...
|
||||
mov $t3,$s0,lsr#8
|
||||
@ -256,15 +227,11 @@ AES_encrypt:
|
||||
strb $t2,[$rounds,#13]
|
||||
strb $t3,[$rounds,#14]
|
||||
strb $s3,[$rounds,#15]
|
||||
#endif
|
||||
#if __ARM_ARCH__>=5
|
||||
ldmia sp!,{r4-r12,pc}
|
||||
#else
|
||||
|
||||
ldmia sp!,{r4-r12,lr}
|
||||
tst lr,#1
|
||||
moveq pc,lr @ be binary compatible with V4, yet
|
||||
bx lr @ interoperable with Thumb ISA:-)
|
||||
#endif
|
||||
.size AES_encrypt,.-AES_encrypt
|
||||
|
||||
.type _armv4_AES_encrypt,%function
|
||||
@ -304,11 +271,11 @@ _armv4_AES_encrypt:
|
||||
and $i2,lr,$s2,lsr#16 @ i1
|
||||
eor $t3,$t3,$i3,ror#8
|
||||
and $i3,lr,$s2
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Te2[s2>>8]
|
||||
eor $s1,$s1,$t1,ror#24
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Te1[s2>>16]
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Te2[s2>>8]
|
||||
mov $s2,$s2,lsr#24
|
||||
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Te1[s2>>16]
|
||||
ldr $i3,[$tbl,$i3,lsl#2] @ Te3[s2>>0]
|
||||
eor $s0,$s0,$i1,ror#16
|
||||
ldr $s2,[$tbl,$s2,lsl#2] @ Te0[s2>>24]
|
||||
@ -317,16 +284,16 @@ _armv4_AES_encrypt:
|
||||
and $i2,lr,$s3,lsr#8 @ i1
|
||||
eor $t3,$t3,$i3,ror#16
|
||||
and $i3,lr,$s3,lsr#16 @ i2
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Te3[s3>>0]
|
||||
eor $s2,$s2,$t2,ror#16
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Te2[s3>>8]
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Te3[s3>>0]
|
||||
mov $s3,$s3,lsr#24
|
||||
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Te2[s3>>8]
|
||||
ldr $i3,[$tbl,$i3,lsl#2] @ Te1[s3>>16]
|
||||
eor $s0,$s0,$i1,ror#24
|
||||
ldr $i1,[$key],#16
|
||||
eor $s1,$s1,$i2,ror#16
|
||||
ldr $s3,[$tbl,$s3,lsl#2] @ Te0[s3>>24]
|
||||
eor $s1,$s1,$i2,ror#16
|
||||
ldr $i1,[$key],#16
|
||||
eor $s2,$s2,$i3,ror#8
|
||||
ldr $t1,[$key,#-12]
|
||||
eor $s3,$s3,$t3,ror#8
|
||||
@ -366,11 +333,11 @@ _armv4_AES_encrypt:
|
||||
and $i2,lr,$s2,lsr#16 @ i1
|
||||
eor $t3,$i3,$t3,lsl#8
|
||||
and $i3,lr,$s2
|
||||
ldrb $i1,[$tbl,$i1,lsl#2] @ Te4[s2>>8]
|
||||
eor $s1,$t1,$s1,lsl#24
|
||||
ldrb $i2,[$tbl,$i2,lsl#2] @ Te4[s2>>16]
|
||||
ldrb $i1,[$tbl,$i1,lsl#2] @ Te4[s2>>8]
|
||||
mov $s2,$s2,lsr#24
|
||||
|
||||
ldrb $i2,[$tbl,$i2,lsl#2] @ Te4[s2>>16]
|
||||
ldrb $i3,[$tbl,$i3,lsl#2] @ Te4[s2>>0]
|
||||
eor $s0,$i1,$s0,lsl#8
|
||||
ldrb $s2,[$tbl,$s2,lsl#2] @ Te4[s2>>24]
|
||||
@ -379,15 +346,15 @@ _armv4_AES_encrypt:
|
||||
and $i2,lr,$s3,lsr#8 @ i1
|
||||
eor $t3,$i3,$t3,lsl#8
|
||||
and $i3,lr,$s3,lsr#16 @ i2
|
||||
ldrb $i1,[$tbl,$i1,lsl#2] @ Te4[s3>>0]
|
||||
eor $s2,$t2,$s2,lsl#24
|
||||
ldrb $i2,[$tbl,$i2,lsl#2] @ Te4[s3>>8]
|
||||
ldrb $i1,[$tbl,$i1,lsl#2] @ Te4[s3>>0]
|
||||
mov $s3,$s3,lsr#24
|
||||
|
||||
ldrb $i2,[$tbl,$i2,lsl#2] @ Te4[s3>>8]
|
||||
ldrb $i3,[$tbl,$i3,lsl#2] @ Te4[s3>>16]
|
||||
eor $s0,$i1,$s0,lsl#8
|
||||
ldr $i1,[$key,#0]
|
||||
ldrb $s3,[$tbl,$s3,lsl#2] @ Te4[s3>>24]
|
||||
ldr $i1,[$key,#0]
|
||||
eor $s1,$s1,$i2,lsl#8
|
||||
ldr $t1,[$key,#4]
|
||||
eor $s2,$s2,$i3,lsl#16
|
||||
@ -404,11 +371,10 @@ _armv4_AES_encrypt:
|
||||
ldr pc,[sp],#4 @ pop and return
|
||||
.size _armv4_AES_encrypt,.-_armv4_AES_encrypt
|
||||
|
||||
.global private_AES_set_encrypt_key
|
||||
.type private_AES_set_encrypt_key,%function
|
||||
.global AES_set_encrypt_key
|
||||
.type AES_set_encrypt_key,%function
|
||||
.align 5
|
||||
private_AES_set_encrypt_key:
|
||||
_armv4_AES_set_encrypt_key:
|
||||
AES_set_encrypt_key:
|
||||
sub r3,pc,#8 @ AES_set_encrypt_key
|
||||
teq r0,#0
|
||||
moveq r0,#-1
|
||||
@ -426,13 +392,12 @@ _armv4_AES_set_encrypt_key:
|
||||
bne .Labrt
|
||||
|
||||
.Lok: stmdb sp!,{r4-r12,lr}
|
||||
sub $tbl,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4
|
||||
sub $tbl,r3,#AES_set_encrypt_key-AES_Te-1024 @ Te4
|
||||
|
||||
mov $rounds,r0 @ inp
|
||||
mov lr,r1 @ bits
|
||||
mov $key,r2 @ key
|
||||
|
||||
#if __ARM_ARCH__<7
|
||||
ldrb $s0,[$rounds,#3] @ load input data in endian-neutral
|
||||
ldrb $t1,[$rounds,#2] @ manner...
|
||||
ldrb $t2,[$rounds,#1]
|
||||
@ -465,22 +430,6 @@ _armv4_AES_set_encrypt_key:
|
||||
orr $s3,$s3,$t3,lsl#24
|
||||
str $s2,[$key,#-8]
|
||||
str $s3,[$key,#-4]
|
||||
#else
|
||||
ldr $s0,[$rounds,#0]
|
||||
ldr $s1,[$rounds,#4]
|
||||
ldr $s2,[$rounds,#8]
|
||||
ldr $s3,[$rounds,#12]
|
||||
#ifdef __ARMEL__
|
||||
rev $s0,$s0
|
||||
rev $s1,$s1
|
||||
rev $s2,$s2
|
||||
rev $s3,$s3
|
||||
#endif
|
||||
str $s0,[$key],#16
|
||||
str $s1,[$key,#-12]
|
||||
str $s2,[$key,#-8]
|
||||
str $s3,[$key,#-4]
|
||||
#endif
|
||||
|
||||
teq lr,#128
|
||||
bne .Lnot128
|
||||
@ -517,7 +466,6 @@ _armv4_AES_set_encrypt_key:
|
||||
b .Ldone
|
||||
|
||||
.Lnot128:
|
||||
#if __ARM_ARCH__<7
|
||||
ldrb $i2,[$rounds,#19]
|
||||
ldrb $t1,[$rounds,#18]
|
||||
ldrb $t2,[$rounds,#17]
|
||||
@ -534,16 +482,6 @@ _armv4_AES_set_encrypt_key:
|
||||
str $i2,[$key],#8
|
||||
orr $i3,$i3,$t3,lsl#24
|
||||
str $i3,[$key,#-4]
|
||||
#else
|
||||
ldr $i2,[$rounds,#16]
|
||||
ldr $i3,[$rounds,#20]
|
||||
#ifdef __ARMEL__
|
||||
rev $i2,$i2
|
||||
rev $i3,$i3
|
||||
#endif
|
||||
str $i2,[$key],#8
|
||||
str $i3,[$key,#-4]
|
||||
#endif
|
||||
|
||||
teq lr,#192
|
||||
bne .Lnot192
|
||||
@ -588,7 +526,6 @@ _armv4_AES_set_encrypt_key:
|
||||
b .L192_loop
|
||||
|
||||
.Lnot192:
|
||||
#if __ARM_ARCH__<7
|
||||
ldrb $i2,[$rounds,#27]
|
||||
ldrb $t1,[$rounds,#26]
|
||||
ldrb $t2,[$rounds,#25]
|
||||
@ -605,16 +542,6 @@ _armv4_AES_set_encrypt_key:
|
||||
str $i2,[$key],#8
|
||||
orr $i3,$i3,$t3,lsl#24
|
||||
str $i3,[$key,#-4]
|
||||
#else
|
||||
ldr $i2,[$rounds,#24]
|
||||
ldr $i3,[$rounds,#28]
|
||||
#ifdef __ARMEL__
|
||||
rev $i2,$i2
|
||||
rev $i3,$i3
|
||||
#endif
|
||||
str $i2,[$key],#8
|
||||
str $i3,[$key,#-4]
|
||||
#endif
|
||||
|
||||
mov $rounds,#14
|
||||
str $rounds,[$key,#240-32]
|
||||
@ -679,14 +606,14 @@ _armv4_AES_set_encrypt_key:
|
||||
.Labrt: tst lr,#1
|
||||
moveq pc,lr @ be binary compatible with V4, yet
|
||||
bx lr @ interoperable with Thumb ISA:-)
|
||||
.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key
|
||||
.size AES_set_encrypt_key,.-AES_set_encrypt_key
|
||||
|
||||
.global private_AES_set_decrypt_key
|
||||
.type private_AES_set_decrypt_key,%function
|
||||
.global AES_set_decrypt_key
|
||||
.type AES_set_decrypt_key,%function
|
||||
.align 5
|
||||
private_AES_set_decrypt_key:
|
||||
AES_set_decrypt_key:
|
||||
str lr,[sp,#-4]! @ push lr
|
||||
bl _armv4_AES_set_encrypt_key
|
||||
bl AES_set_encrypt_key
|
||||
teq r0,#0
|
||||
ldrne lr,[sp],#4 @ pop lr
|
||||
bne .Labrt
|
||||
@ -765,15 +692,11 @@ $code.=<<___;
|
||||
bne .Lmix
|
||||
|
||||
mov r0,#0
|
||||
#if __ARM_ARCH__>=5
|
||||
ldmia sp!,{r4-r12,pc}
|
||||
#else
|
||||
ldmia sp!,{r4-r12,lr}
|
||||
tst lr,#1
|
||||
moveq pc,lr @ be binary compatible with V4, yet
|
||||
bx lr @ interoperable with Thumb ISA:-)
|
||||
#endif
|
||||
.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key
|
||||
.size AES_set_decrypt_key,.-AES_set_decrypt_key
|
||||
|
||||
.type AES_Td,%object
|
||||
.align 5
|
||||
@ -888,7 +811,7 @@ AES_decrypt:
|
||||
mov $rounds,r0 @ inp
|
||||
mov $key,r2
|
||||
sub $tbl,r3,#AES_decrypt-AES_Td @ Td
|
||||
#if __ARM_ARCH__<7
|
||||
|
||||
ldrb $s0,[$rounds,#3] @ load input data in endian-neutral
|
||||
ldrb $t1,[$rounds,#2] @ manner...
|
||||
ldrb $t2,[$rounds,#1]
|
||||
@ -917,33 +840,10 @@ AES_decrypt:
|
||||
orr $s3,$s3,$t1,lsl#8
|
||||
orr $s3,$s3,$t2,lsl#16
|
||||
orr $s3,$s3,$t3,lsl#24
|
||||
#else
|
||||
ldr $s0,[$rounds,#0]
|
||||
ldr $s1,[$rounds,#4]
|
||||
ldr $s2,[$rounds,#8]
|
||||
ldr $s3,[$rounds,#12]
|
||||
#ifdef __ARMEL__
|
||||
rev $s0,$s0
|
||||
rev $s1,$s1
|
||||
rev $s2,$s2
|
||||
rev $s3,$s3
|
||||
#endif
|
||||
#endif
|
||||
|
||||
bl _armv4_AES_decrypt
|
||||
|
||||
ldr $rounds,[sp],#4 @ pop out
|
||||
#if __ARM_ARCH__>=7
|
||||
#ifdef __ARMEL__
|
||||
rev $s0,$s0
|
||||
rev $s1,$s1
|
||||
rev $s2,$s2
|
||||
rev $s3,$s3
|
||||
#endif
|
||||
str $s0,[$rounds,#0]
|
||||
str $s1,[$rounds,#4]
|
||||
str $s2,[$rounds,#8]
|
||||
str $s3,[$rounds,#12]
|
||||
#else
|
||||
mov $t1,$s0,lsr#24 @ write output in endian-neutral
|
||||
mov $t2,$s0,lsr#16 @ manner...
|
||||
mov $t3,$s0,lsr#8
|
||||
@ -972,15 +872,11 @@ AES_decrypt:
|
||||
strb $t2,[$rounds,#13]
|
||||
strb $t3,[$rounds,#14]
|
||||
strb $s3,[$rounds,#15]
|
||||
#endif
|
||||
#if __ARM_ARCH__>=5
|
||||
ldmia sp!,{r4-r12,pc}
|
||||
#else
|
||||
|
||||
ldmia sp!,{r4-r12,lr}
|
||||
tst lr,#1
|
||||
moveq pc,lr @ be binary compatible with V4, yet
|
||||
bx lr @ interoperable with Thumb ISA:-)
|
||||
#endif
|
||||
.size AES_decrypt,.-AES_decrypt
|
||||
|
||||
.type _armv4_AES_decrypt,%function
|
||||
@ -1020,11 +916,11 @@ _armv4_AES_decrypt:
|
||||
and $i2,lr,$s2 @ i1
|
||||
eor $t3,$i3,$t3,ror#8
|
||||
and $i3,lr,$s2,lsr#16
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Td2[s2>>8]
|
||||
eor $s1,$s1,$t1,ror#8
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Td3[s2>>0]
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Td2[s2>>8]
|
||||
mov $s2,$s2,lsr#24
|
||||
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Td3[s2>>0]
|
||||
ldr $i3,[$tbl,$i3,lsl#2] @ Td1[s2>>16]
|
||||
eor $s0,$s0,$i1,ror#16
|
||||
ldr $s2,[$tbl,$s2,lsl#2] @ Td0[s2>>24]
|
||||
@ -1033,22 +929,22 @@ _armv4_AES_decrypt:
|
||||
and $i2,lr,$s3,lsr#8 @ i1
|
||||
eor $t3,$i3,$t3,ror#8
|
||||
and $i3,lr,$s3 @ i2
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Td1[s3>>16]
|
||||
eor $s2,$s2,$t2,ror#8
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Td2[s3>>8]
|
||||
ldr $i1,[$tbl,$i1,lsl#2] @ Td1[s3>>16]
|
||||
mov $s3,$s3,lsr#24
|
||||
|
||||
ldr $i2,[$tbl,$i2,lsl#2] @ Td2[s3>>8]
|
||||
ldr $i3,[$tbl,$i3,lsl#2] @ Td3[s3>>0]
|
||||
eor $s0,$s0,$i1,ror#8
|
||||
ldr $i1,[$key],#16
|
||||
eor $s1,$s1,$i2,ror#16
|
||||
ldr $s3,[$tbl,$s3,lsl#2] @ Td0[s3>>24]
|
||||
eor $s1,$s1,$i2,ror#16
|
||||
eor $s2,$s2,$i3,ror#24
|
||||
ldr $i1,[$key],#16
|
||||
eor $s3,$s3,$t3,ror#8
|
||||
|
||||
ldr $t1,[$key,#-12]
|
||||
eor $s0,$s0,$i1
|
||||
ldr $t2,[$key,#-8]
|
||||
eor $s3,$s3,$t3,ror#8
|
||||
eor $s0,$s0,$i1
|
||||
ldr $t3,[$key,#-4]
|
||||
and $i1,lr,$s0,lsr#16
|
||||
eor $s1,$s1,$t1
|
||||
@ -1089,11 +985,11 @@ _armv4_AES_decrypt:
|
||||
and $i1,lr,$s2,lsr#8 @ i0
|
||||
eor $t2,$t2,$i2,lsl#8
|
||||
and $i2,lr,$s2 @ i1
|
||||
ldrb $i1,[$tbl,$i1] @ Td4[s2>>8]
|
||||
eor $t3,$t3,$i3,lsl#8
|
||||
ldrb $i2,[$tbl,$i2] @ Td4[s2>>0]
|
||||
ldrb $i1,[$tbl,$i1] @ Td4[s2>>8]
|
||||
and $i3,lr,$s2,lsr#16
|
||||
|
||||
ldrb $i2,[$tbl,$i2] @ Td4[s2>>0]
|
||||
ldrb $s2,[$tbl,$s2,lsr#24] @ Td4[s2>>24]
|
||||
eor $s0,$s0,$i1,lsl#8
|
||||
ldrb $i3,[$tbl,$i3] @ Td4[s2>>16]
|
||||
@ -1101,11 +997,11 @@ _armv4_AES_decrypt:
|
||||
and $i1,lr,$s3,lsr#16 @ i0
|
||||
eor $s2,$t2,$s2,lsl#16
|
||||
and $i2,lr,$s3,lsr#8 @ i1
|
||||
ldrb $i1,[$tbl,$i1] @ Td4[s3>>16]
|
||||
eor $t3,$t3,$i3,lsl#16
|
||||
ldrb $i2,[$tbl,$i2] @ Td4[s3>>8]
|
||||
ldrb $i1,[$tbl,$i1] @ Td4[s3>>16]
|
||||
and $i3,lr,$s3 @ i2
|
||||
|
||||
ldrb $i2,[$tbl,$i2] @ Td4[s3>>8]
|
||||
ldrb $i3,[$tbl,$i3] @ Td4[s3>>0]
|
||||
ldrb $s3,[$tbl,$s3,lsr#24] @ Td4[s3>>24]
|
||||
eor $s0,$s0,$i1,lsl#16
|
||||
|
444
deps/openssl/openssl/crypto/aes/asm/aes-ppc.pl
vendored
444
deps/openssl/openssl/crypto/aes/asm/aes-ppc.pl
vendored
@ -7,7 +7,7 @@
|
||||
# details see http://www.openssl.org/~appro/cryptogams/.
|
||||
# ====================================================================
|
||||
|
||||
# Needs more work: key setup, CBC routine...
|
||||
# Needs more work: key setup, page boundaries, CBC routine...
|
||||
#
|
||||
# ppc_AES_[en|de]crypt perform at 18 cycles per byte processed with
|
||||
# 128-bit key, which is ~40% better than 64-bit code generated by gcc
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
# February 2010
|
||||
#
|
||||
# Rescheduling instructions to favour Power6 pipeline gave 10%
|
||||
# Rescheduling instructions to favour Power6 pipeline gives 10%
|
||||
# performance improvement on the platfrom in question (and marginal
|
||||
# improvement even on others). It should be noted that Power6 fails
|
||||
# to process byte in 18 cycles, only in 23, because it fails to issue
|
||||
@ -33,13 +33,11 @@ $flavour = shift;
|
||||
|
||||
if ($flavour =~ /64/) {
|
||||
$SIZE_T =8;
|
||||
$LRSAVE =2*$SIZE_T;
|
||||
$STU ="stdu";
|
||||
$POP ="ld";
|
||||
$PUSH ="std";
|
||||
} elsif ($flavour =~ /32/) {
|
||||
$SIZE_T =4;
|
||||
$LRSAVE =$SIZE_T;
|
||||
$STU ="stwu";
|
||||
$POP ="lwz";
|
||||
$PUSH ="stw";
|
||||
@ -118,19 +116,15 @@ LAES_Te:
|
||||
addi $Tbl0,$Tbl0,`128-8`
|
||||
mtlr r0
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
.space `64-9*4`
|
||||
.space `32-24`
|
||||
LAES_Td:
|
||||
mflr r0
|
||||
bcl 20,31,\$+4
|
||||
mflr $Tbl0 ; vvvvvvvv "distance" between . and 1st data entry
|
||||
addi $Tbl0,$Tbl0,`128-64-8+2048+256`
|
||||
addi $Tbl0,$Tbl0,`128-8-32+2048+256`
|
||||
mtlr r0
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
.space `128-64-9*4`
|
||||
.space `128-32-24`
|
||||
___
|
||||
&_data_word(
|
||||
0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d,
|
||||
@ -334,9 +328,10 @@ $code.=<<___;
|
||||
.globl .AES_encrypt
|
||||
.align 7
|
||||
.AES_encrypt:
|
||||
$STU $sp,-$FRAME($sp)
|
||||
mflr r0
|
||||
$STU $sp,-$FRAME($sp)
|
||||
|
||||
$PUSH r0,`$FRAME-$SIZE_T*21`($sp)
|
||||
$PUSH $toc,`$FRAME-$SIZE_T*20`($sp)
|
||||
$PUSH r13,`$FRAME-$SIZE_T*19`($sp)
|
||||
$PUSH r14,`$FRAME-$SIZE_T*18`($sp)
|
||||
@ -357,14 +352,7 @@ $code.=<<___;
|
||||
$PUSH r29,`$FRAME-$SIZE_T*3`($sp)
|
||||
$PUSH r30,`$FRAME-$SIZE_T*2`($sp)
|
||||
$PUSH r31,`$FRAME-$SIZE_T*1`($sp)
|
||||
$PUSH r0,`$FRAME+$LRSAVE`($sp)
|
||||
|
||||
andi. $t0,$inp,3
|
||||
andi. $t1,$out,3
|
||||
or. $t0,$t0,$t1
|
||||
bne Lenc_unaligned
|
||||
|
||||
Lenc_unaligned_ok:
|
||||
lwz $s0,0($inp)
|
||||
lwz $s1,4($inp)
|
||||
lwz $s2,8($inp)
|
||||
@ -375,80 +363,8 @@ Lenc_unaligned_ok:
|
||||
stw $s1,4($out)
|
||||
stw $s2,8($out)
|
||||
stw $s3,12($out)
|
||||
b Lenc_done
|
||||
|
||||
Lenc_unaligned:
|
||||
subfic $t0,$inp,4096
|
||||
subfic $t1,$out,4096
|
||||
andi. $t0,$t0,4096-16
|
||||
beq Lenc_xpage
|
||||
andi. $t1,$t1,4096-16
|
||||
bne Lenc_unaligned_ok
|
||||
|
||||
Lenc_xpage:
|
||||
lbz $acc00,0($inp)
|
||||
lbz $acc01,1($inp)
|
||||
lbz $acc02,2($inp)
|
||||
lbz $s0,3($inp)
|
||||
lbz $acc04,4($inp)
|
||||
lbz $acc05,5($inp)
|
||||
lbz $acc06,6($inp)
|
||||
lbz $s1,7($inp)
|
||||
lbz $acc08,8($inp)
|
||||
lbz $acc09,9($inp)
|
||||
lbz $acc10,10($inp)
|
||||
insrwi $s0,$acc00,8,0
|
||||
lbz $s2,11($inp)
|
||||
insrwi $s1,$acc04,8,0
|
||||
lbz $acc12,12($inp)
|
||||
insrwi $s0,$acc01,8,8
|
||||
lbz $acc13,13($inp)
|
||||
insrwi $s1,$acc05,8,8
|
||||
lbz $acc14,14($inp)
|
||||
insrwi $s0,$acc02,8,16
|
||||
lbz $s3,15($inp)
|
||||
insrwi $s1,$acc06,8,16
|
||||
insrwi $s2,$acc08,8,0
|
||||
insrwi $s3,$acc12,8,0
|
||||
insrwi $s2,$acc09,8,8
|
||||
insrwi $s3,$acc13,8,8
|
||||
insrwi $s2,$acc10,8,16
|
||||
insrwi $s3,$acc14,8,16
|
||||
|
||||
bl LAES_Te
|
||||
bl Lppc_AES_encrypt_compact
|
||||
|
||||
extrwi $acc00,$s0,8,0
|
||||
extrwi $acc01,$s0,8,8
|
||||
stb $acc00,0($out)
|
||||
extrwi $acc02,$s0,8,16
|
||||
stb $acc01,1($out)
|
||||
stb $acc02,2($out)
|
||||
extrwi $acc04,$s1,8,0
|
||||
stb $s0,3($out)
|
||||
extrwi $acc05,$s1,8,8
|
||||
stb $acc04,4($out)
|
||||
extrwi $acc06,$s1,8,16
|
||||
stb $acc05,5($out)
|
||||
stb $acc06,6($out)
|
||||
extrwi $acc08,$s2,8,0
|
||||
stb $s1,7($out)
|
||||
extrwi $acc09,$s2,8,8
|
||||
stb $acc08,8($out)
|
||||
extrwi $acc10,$s2,8,16
|
||||
stb $acc09,9($out)
|
||||
stb $acc10,10($out)
|
||||
extrwi $acc12,$s3,8,0
|
||||
stb $s2,11($out)
|
||||
extrwi $acc13,$s3,8,8
|
||||
stb $acc12,12($out)
|
||||
extrwi $acc14,$s3,8,16
|
||||
stb $acc13,13($out)
|
||||
stb $acc14,14($out)
|
||||
stb $s3,15($out)
|
||||
|
||||
Lenc_done:
|
||||
$POP r0,`$FRAME+$LRSAVE`($sp)
|
||||
$POP r0,`$FRAME-$SIZE_T*21`($sp)
|
||||
$POP $toc,`$FRAME-$SIZE_T*20`($sp)
|
||||
$POP r13,`$FRAME-$SIZE_T*19`($sp)
|
||||
$POP r14,`$FRAME-$SIZE_T*18`($sp)
|
||||
@ -472,21 +388,18 @@ Lenc_done:
|
||||
mtlr r0
|
||||
addi $sp,$sp,$FRAME
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,4,1,0x80,18,3,0
|
||||
.long 0
|
||||
|
||||
.align 5
|
||||
Lppc_AES_encrypt:
|
||||
lwz $acc00,240($key)
|
||||
addi $Tbl1,$Tbl0,3
|
||||
lwz $t0,0($key)
|
||||
addi $Tbl2,$Tbl0,2
|
||||
lwz $t1,4($key)
|
||||
addi $Tbl3,$Tbl0,1
|
||||
lwz $t2,8($key)
|
||||
addi $acc00,$acc00,-1
|
||||
lwz $t3,12($key)
|
||||
addi $Tbl1,$Tbl0,3
|
||||
addi $Tbl2,$Tbl0,2
|
||||
addi $Tbl3,$Tbl0,1
|
||||
addi $acc00,$acc00,-1
|
||||
addi $key,$key,16
|
||||
xor $s0,$s0,$t0
|
||||
xor $s1,$s1,$t1
|
||||
@ -500,44 +413,44 @@ Lenc_loop:
|
||||
rlwinm $acc02,$s2,`32-24+3`,21,28
|
||||
rlwinm $acc03,$s3,`32-24+3`,21,28
|
||||
lwz $t0,0($key)
|
||||
rlwinm $acc04,$s1,`32-16+3`,21,28
|
||||
lwz $t1,4($key)
|
||||
rlwinm $acc04,$s1,`32-16+3`,21,28
|
||||
rlwinm $acc05,$s2,`32-16+3`,21,28
|
||||
lwz $t2,8($key)
|
||||
rlwinm $acc06,$s3,`32-16+3`,21,28
|
||||
lwz $t3,12($key)
|
||||
rlwinm $acc06,$s3,`32-16+3`,21,28
|
||||
rlwinm $acc07,$s0,`32-16+3`,21,28
|
||||
lwzx $acc00,$Tbl0,$acc00
|
||||
rlwinm $acc08,$s2,`32-8+3`,21,28
|
||||
lwzx $acc01,$Tbl0,$acc01
|
||||
rlwinm $acc08,$s2,`32-8+3`,21,28
|
||||
rlwinm $acc09,$s3,`32-8+3`,21,28
|
||||
lwzx $acc02,$Tbl0,$acc02
|
||||
rlwinm $acc10,$s0,`32-8+3`,21,28
|
||||
lwzx $acc03,$Tbl0,$acc03
|
||||
rlwinm $acc10,$s0,`32-8+3`,21,28
|
||||
rlwinm $acc11,$s1,`32-8+3`,21,28
|
||||
lwzx $acc04,$Tbl1,$acc04
|
||||
rlwinm $acc12,$s3,`0+3`,21,28
|
||||
lwzx $acc05,$Tbl1,$acc05
|
||||
rlwinm $acc12,$s3,`0+3`,21,28
|
||||
rlwinm $acc13,$s0,`0+3`,21,28
|
||||
lwzx $acc06,$Tbl1,$acc06
|
||||
rlwinm $acc14,$s1,`0+3`,21,28
|
||||
lwzx $acc07,$Tbl1,$acc07
|
||||
rlwinm $acc14,$s1,`0+3`,21,28
|
||||
rlwinm $acc15,$s2,`0+3`,21,28
|
||||
lwzx $acc08,$Tbl2,$acc08
|
||||
xor $t0,$t0,$acc00
|
||||
lwzx $acc09,$Tbl2,$acc09
|
||||
xor $t0,$t0,$acc00
|
||||
xor $t1,$t1,$acc01
|
||||
lwzx $acc10,$Tbl2,$acc10
|
||||
xor $t2,$t2,$acc02
|
||||
lwzx $acc11,$Tbl2,$acc11
|
||||
xor $t2,$t2,$acc02
|
||||
xor $t3,$t3,$acc03
|
||||
lwzx $acc12,$Tbl3,$acc12
|
||||
xor $t0,$t0,$acc04
|
||||
lwzx $acc13,$Tbl3,$acc13
|
||||
xor $t0,$t0,$acc04
|
||||
xor $t1,$t1,$acc05
|
||||
lwzx $acc14,$Tbl3,$acc14
|
||||
xor $t2,$t2,$acc06
|
||||
lwzx $acc15,$Tbl3,$acc15
|
||||
xor $t2,$t2,$acc06
|
||||
xor $t3,$t3,$acc07
|
||||
xor $t0,$t0,$acc08
|
||||
xor $t1,$t1,$acc09
|
||||
@ -553,60 +466,60 @@ Lenc_loop:
|
||||
addi $Tbl2,$Tbl0,2048
|
||||
nop
|
||||
lwz $t0,0($key)
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
lwz $t1,4($key)
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
rlwinm $acc01,$s1,`32-24`,24,31
|
||||
lwz $t2,8($key)
|
||||
rlwinm $acc02,$s2,`32-24`,24,31
|
||||
lwz $t3,12($key)
|
||||
rlwinm $acc02,$s2,`32-24`,24,31
|
||||
rlwinm $acc03,$s3,`32-24`,24,31
|
||||
lwz $acc08,`2048+0`($Tbl0) ! prefetch Te4
|
||||
rlwinm $acc04,$s1,`32-16`,24,31
|
||||
lwz $acc09,`2048+32`($Tbl0)
|
||||
rlwinm $acc04,$s1,`32-16`,24,31
|
||||
rlwinm $acc05,$s2,`32-16`,24,31
|
||||
lwz $acc10,`2048+64`($Tbl0)
|
||||
rlwinm $acc06,$s3,`32-16`,24,31
|
||||
lwz $acc11,`2048+96`($Tbl0)
|
||||
rlwinm $acc06,$s3,`32-16`,24,31
|
||||
rlwinm $acc07,$s0,`32-16`,24,31
|
||||
lwz $acc12,`2048+128`($Tbl0)
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
lwz $acc13,`2048+160`($Tbl0)
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
rlwinm $acc09,$s3,`32-8`,24,31
|
||||
lwz $acc14,`2048+192`($Tbl0)
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
lwz $acc15,`2048+224`($Tbl0)
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
rlwinm $acc11,$s1,`32-8`,24,31
|
||||
lbzx $acc00,$Tbl2,$acc00
|
||||
rlwinm $acc12,$s3,`0`,24,31
|
||||
lbzx $acc01,$Tbl2,$acc01
|
||||
rlwinm $acc12,$s3,`0`,24,31
|
||||
rlwinm $acc13,$s0,`0`,24,31
|
||||
lbzx $acc02,$Tbl2,$acc02
|
||||
rlwinm $acc14,$s1,`0`,24,31
|
||||
lbzx $acc03,$Tbl2,$acc03
|
||||
rlwinm $acc14,$s1,`0`,24,31
|
||||
rlwinm $acc15,$s2,`0`,24,31
|
||||
lbzx $acc04,$Tbl2,$acc04
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
lbzx $acc05,$Tbl2,$acc05
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
rlwinm $s1,$acc01,24,0,7
|
||||
lbzx $acc06,$Tbl2,$acc06
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
lbzx $acc07,$Tbl2,$acc07
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
rlwinm $s3,$acc03,24,0,7
|
||||
lbzx $acc08,$Tbl2,$acc08
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
lbzx $acc09,$Tbl2,$acc09
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
rlwimi $s1,$acc05,16,8,15
|
||||
lbzx $acc10,$Tbl2,$acc10
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
lbzx $acc11,$Tbl2,$acc11
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
rlwimi $s3,$acc07,16,8,15
|
||||
lbzx $acc12,$Tbl2,$acc12
|
||||
rlwimi $s0,$acc08,8,16,23
|
||||
lbzx $acc13,$Tbl2,$acc13
|
||||
rlwimi $s0,$acc08,8,16,23
|
||||
rlwimi $s1,$acc09,8,16,23
|
||||
lbzx $acc14,$Tbl2,$acc14
|
||||
rlwimi $s2,$acc10,8,16,23
|
||||
lbzx $acc15,$Tbl2,$acc15
|
||||
rlwimi $s2,$acc10,8,16,23
|
||||
rlwimi $s3,$acc11,8,16,23
|
||||
or $s0,$s0,$acc12
|
||||
or $s1,$s1,$acc13
|
||||
@ -617,31 +530,29 @@ Lenc_loop:
|
||||
xor $s2,$s2,$t2
|
||||
xor $s3,$s3,$t3
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
|
||||
.align 4
|
||||
Lppc_AES_encrypt_compact:
|
||||
lwz $acc00,240($key)
|
||||
addi $Tbl1,$Tbl0,2048
|
||||
lwz $t0,0($key)
|
||||
lis $mask80,0x8080
|
||||
lwz $t1,4($key)
|
||||
lis $mask1b,0x1b1b
|
||||
lwz $t2,8($key)
|
||||
ori $mask80,$mask80,0x8080
|
||||
lwz $t3,12($key)
|
||||
ori $mask1b,$mask1b,0x1b1b
|
||||
addi $Tbl1,$Tbl0,2048
|
||||
lis $mask80,0x8080
|
||||
lis $mask1b,0x1b1b
|
||||
addi $key,$key,16
|
||||
ori $mask80,$mask80,0x8080
|
||||
ori $mask1b,$mask1b,0x1b1b
|
||||
mtctr $acc00
|
||||
.align 4
|
||||
Lenc_compact_loop:
|
||||
xor $s0,$s0,$t0
|
||||
xor $s1,$s1,$t1
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
xor $s2,$s2,$t2
|
||||
rlwinm $acc01,$s1,`32-24`,24,31
|
||||
xor $s3,$s3,$t3
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
rlwinm $acc01,$s1,`32-24`,24,31
|
||||
rlwinm $acc02,$s2,`32-24`,24,31
|
||||
rlwinm $acc03,$s3,`32-24`,24,31
|
||||
rlwinm $acc04,$s1,`32-16`,24,31
|
||||
@ -649,48 +560,48 @@ Lenc_compact_loop:
|
||||
rlwinm $acc06,$s3,`32-16`,24,31
|
||||
rlwinm $acc07,$s0,`32-16`,24,31
|
||||
lbzx $acc00,$Tbl1,$acc00
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
lbzx $acc01,$Tbl1,$acc01
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
rlwinm $acc09,$s3,`32-8`,24,31
|
||||
lbzx $acc02,$Tbl1,$acc02
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
lbzx $acc03,$Tbl1,$acc03
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
rlwinm $acc11,$s1,`32-8`,24,31
|
||||
lbzx $acc04,$Tbl1,$acc04
|
||||
rlwinm $acc12,$s3,`0`,24,31
|
||||
lbzx $acc05,$Tbl1,$acc05
|
||||
rlwinm $acc12,$s3,`0`,24,31
|
||||
rlwinm $acc13,$s0,`0`,24,31
|
||||
lbzx $acc06,$Tbl1,$acc06
|
||||
rlwinm $acc14,$s1,`0`,24,31
|
||||
lbzx $acc07,$Tbl1,$acc07
|
||||
rlwinm $acc14,$s1,`0`,24,31
|
||||
rlwinm $acc15,$s2,`0`,24,31
|
||||
lbzx $acc08,$Tbl1,$acc08
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
lbzx $acc09,$Tbl1,$acc09
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
rlwinm $s1,$acc01,24,0,7
|
||||
lbzx $acc10,$Tbl1,$acc10
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
lbzx $acc11,$Tbl1,$acc11
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
rlwinm $s3,$acc03,24,0,7
|
||||
lbzx $acc12,$Tbl1,$acc12
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
lbzx $acc13,$Tbl1,$acc13
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
rlwimi $s1,$acc05,16,8,15
|
||||
lbzx $acc14,$Tbl1,$acc14
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
lbzx $acc15,$Tbl1,$acc15
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
rlwimi $s3,$acc07,16,8,15
|
||||
rlwimi $s0,$acc08,8,16,23
|
||||
rlwimi $s1,$acc09,8,16,23
|
||||
rlwimi $s2,$acc10,8,16,23
|
||||
rlwimi $s3,$acc11,8,16,23
|
||||
lwz $t0,0($key)
|
||||
or $s0,$s0,$acc12
|
||||
lwz $t1,4($key)
|
||||
or $s0,$s0,$acc12
|
||||
or $s1,$s1,$acc13
|
||||
lwz $t2,8($key)
|
||||
or $s2,$s2,$acc14
|
||||
lwz $t3,12($key)
|
||||
or $s2,$s2,$acc14
|
||||
or $s3,$s3,$acc15
|
||||
|
||||
addi $key,$key,16
|
||||
@ -701,12 +612,12 @@ Lenc_compact_loop:
|
||||
and $acc02,$s2,$mask80
|
||||
and $acc03,$s3,$mask80
|
||||
srwi $acc04,$acc00,7 # r1>>7
|
||||
andc $acc08,$s0,$mask80 # r0&0x7f7f7f7f
|
||||
srwi $acc05,$acc01,7
|
||||
andc $acc09,$s1,$mask80
|
||||
srwi $acc06,$acc02,7
|
||||
andc $acc10,$s2,$mask80
|
||||
srwi $acc07,$acc03,7
|
||||
andc $acc08,$s0,$mask80 # r0&0x7f7f7f7f
|
||||
andc $acc09,$s1,$mask80
|
||||
andc $acc10,$s2,$mask80
|
||||
andc $acc11,$s3,$mask80
|
||||
sub $acc00,$acc00,$acc04 # r1-(r1>>7)
|
||||
sub $acc01,$acc01,$acc05
|
||||
@ -722,32 +633,32 @@ Lenc_compact_loop:
|
||||
and $acc03,$acc03,$mask1b
|
||||
xor $acc00,$acc00,$acc08 # r2
|
||||
xor $acc01,$acc01,$acc09
|
||||
rotlwi $acc12,$s0,16 # ROTATE(r0,16)
|
||||
xor $acc02,$acc02,$acc10
|
||||
rotlwi $acc13,$s1,16
|
||||
xor $acc03,$acc03,$acc11
|
||||
rotlwi $acc14,$s2,16
|
||||
|
||||
xor $s0,$s0,$acc00 # r0^r2
|
||||
rotlwi $acc12,$s0,16 # ROTATE(r0,16)
|
||||
rotlwi $acc13,$s1,16
|
||||
rotlwi $acc14,$s2,16
|
||||
rotlwi $acc15,$s3,16
|
||||
xor $s0,$s0,$acc00 # r0^r2
|
||||
xor $s1,$s1,$acc01
|
||||
rotrwi $s0,$s0,24 # ROTATE(r2^r0,24)
|
||||
xor $s2,$s2,$acc02
|
||||
rotrwi $s1,$s1,24
|
||||
xor $s3,$s3,$acc03
|
||||
rotrwi $s0,$s0,24 # ROTATE(r2^r0,24)
|
||||
rotrwi $s1,$s1,24
|
||||
rotrwi $s2,$s2,24
|
||||
xor $s0,$s0,$acc00 # ROTATE(r2^r0,24)^r2
|
||||
rotrwi $s3,$s3,24
|
||||
xor $s0,$s0,$acc00 # ROTATE(r2^r0,24)^r2
|
||||
xor $s1,$s1,$acc01
|
||||
xor $s2,$s2,$acc02
|
||||
xor $s3,$s3,$acc03
|
||||
rotlwi $acc08,$acc12,8 # ROTATE(r0,24)
|
||||
xor $s0,$s0,$acc12 #
|
||||
rotlwi $acc09,$acc13,8
|
||||
xor $s1,$s1,$acc13
|
||||
rotlwi $acc10,$acc14,8
|
||||
xor $s2,$s2,$acc14
|
||||
rotlwi $acc11,$acc15,8
|
||||
xor $s0,$s0,$acc12 #
|
||||
xor $s1,$s1,$acc13
|
||||
xor $s2,$s2,$acc14
|
||||
xor $s3,$s3,$acc15
|
||||
xor $s0,$s0,$acc08 #
|
||||
xor $s1,$s1,$acc09
|
||||
@ -762,15 +673,14 @@ Lenc_compact_done:
|
||||
xor $s2,$s2,$t2
|
||||
xor $s3,$s3,$t3
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
|
||||
.globl .AES_decrypt
|
||||
.align 7
|
||||
.AES_decrypt:
|
||||
$STU $sp,-$FRAME($sp)
|
||||
mflr r0
|
||||
$STU $sp,-$FRAME($sp)
|
||||
|
||||
$PUSH r0,`$FRAME-$SIZE_T*21`($sp)
|
||||
$PUSH $toc,`$FRAME-$SIZE_T*20`($sp)
|
||||
$PUSH r13,`$FRAME-$SIZE_T*19`($sp)
|
||||
$PUSH r14,`$FRAME-$SIZE_T*18`($sp)
|
||||
@ -791,14 +701,7 @@ Lenc_compact_done:
|
||||
$PUSH r29,`$FRAME-$SIZE_T*3`($sp)
|
||||
$PUSH r30,`$FRAME-$SIZE_T*2`($sp)
|
||||
$PUSH r31,`$FRAME-$SIZE_T*1`($sp)
|
||||
$PUSH r0,`$FRAME+$LRSAVE`($sp)
|
||||
|
||||
andi. $t0,$inp,3
|
||||
andi. $t1,$out,3
|
||||
or. $t0,$t0,$t1
|
||||
bne Ldec_unaligned
|
||||
|
||||
Ldec_unaligned_ok:
|
||||
lwz $s0,0($inp)
|
||||
lwz $s1,4($inp)
|
||||
lwz $s2,8($inp)
|
||||
@ -809,80 +712,8 @@ Ldec_unaligned_ok:
|
||||
stw $s1,4($out)
|
||||
stw $s2,8($out)
|
||||
stw $s3,12($out)
|
||||
b Ldec_done
|
||||
|
||||
Ldec_unaligned:
|
||||
subfic $t0,$inp,4096
|
||||
subfic $t1,$out,4096
|
||||
andi. $t0,$t0,4096-16
|
||||
beq Ldec_xpage
|
||||
andi. $t1,$t1,4096-16
|
||||
bne Ldec_unaligned_ok
|
||||
|
||||
Ldec_xpage:
|
||||
lbz $acc00,0($inp)
|
||||
lbz $acc01,1($inp)
|
||||
lbz $acc02,2($inp)
|
||||
lbz $s0,3($inp)
|
||||
lbz $acc04,4($inp)
|
||||
lbz $acc05,5($inp)
|
||||
lbz $acc06,6($inp)
|
||||
lbz $s1,7($inp)
|
||||
lbz $acc08,8($inp)
|
||||
lbz $acc09,9($inp)
|
||||
lbz $acc10,10($inp)
|
||||
insrwi $s0,$acc00,8,0
|
||||
lbz $s2,11($inp)
|
||||
insrwi $s1,$acc04,8,0
|
||||
lbz $acc12,12($inp)
|
||||
insrwi $s0,$acc01,8,8
|
||||
lbz $acc13,13($inp)
|
||||
insrwi $s1,$acc05,8,8
|
||||
lbz $acc14,14($inp)
|
||||
insrwi $s0,$acc02,8,16
|
||||
lbz $s3,15($inp)
|
||||
insrwi $s1,$acc06,8,16
|
||||
insrwi $s2,$acc08,8,0
|
||||
insrwi $s3,$acc12,8,0
|
||||
insrwi $s2,$acc09,8,8
|
||||
insrwi $s3,$acc13,8,8
|
||||
insrwi $s2,$acc10,8,16
|
||||
insrwi $s3,$acc14,8,16
|
||||
|
||||
bl LAES_Td
|
||||
bl Lppc_AES_decrypt_compact
|
||||
|
||||
extrwi $acc00,$s0,8,0
|
||||
extrwi $acc01,$s0,8,8
|
||||
stb $acc00,0($out)
|
||||
extrwi $acc02,$s0,8,16
|
||||
stb $acc01,1($out)
|
||||
stb $acc02,2($out)
|
||||
extrwi $acc04,$s1,8,0
|
||||
stb $s0,3($out)
|
||||
extrwi $acc05,$s1,8,8
|
||||
stb $acc04,4($out)
|
||||
extrwi $acc06,$s1,8,16
|
||||
stb $acc05,5($out)
|
||||
stb $acc06,6($out)
|
||||
extrwi $acc08,$s2,8,0
|
||||
stb $s1,7($out)
|
||||
extrwi $acc09,$s2,8,8
|
||||
stb $acc08,8($out)
|
||||
extrwi $acc10,$s2,8,16
|
||||
stb $acc09,9($out)
|
||||
stb $acc10,10($out)
|
||||
extrwi $acc12,$s3,8,0
|
||||
stb $s2,11($out)
|
||||
extrwi $acc13,$s3,8,8
|
||||
stb $acc12,12($out)
|
||||
extrwi $acc14,$s3,8,16
|
||||
stb $acc13,13($out)
|
||||
stb $acc14,14($out)
|
||||
stb $s3,15($out)
|
||||
|
||||
Ldec_done:
|
||||
$POP r0,`$FRAME+$LRSAVE`($sp)
|
||||
$POP r0,`$FRAME-$SIZE_T*21`($sp)
|
||||
$POP $toc,`$FRAME-$SIZE_T*20`($sp)
|
||||
$POP r13,`$FRAME-$SIZE_T*19`($sp)
|
||||
$POP r14,`$FRAME-$SIZE_T*18`($sp)
|
||||
@ -906,21 +737,18 @@ Ldec_done:
|
||||
mtlr r0
|
||||
addi $sp,$sp,$FRAME
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,4,1,0x80,18,3,0
|
||||
.long 0
|
||||
|
||||
.align 5
|
||||
Lppc_AES_decrypt:
|
||||
lwz $acc00,240($key)
|
||||
addi $Tbl1,$Tbl0,3
|
||||
lwz $t0,0($key)
|
||||
addi $Tbl2,$Tbl0,2
|
||||
lwz $t1,4($key)
|
||||
addi $Tbl3,$Tbl0,1
|
||||
lwz $t2,8($key)
|
||||
addi $acc00,$acc00,-1
|
||||
lwz $t3,12($key)
|
||||
addi $Tbl1,$Tbl0,3
|
||||
addi $Tbl2,$Tbl0,2
|
||||
addi $Tbl3,$Tbl0,1
|
||||
addi $acc00,$acc00,-1
|
||||
addi $key,$key,16
|
||||
xor $s0,$s0,$t0
|
||||
xor $s1,$s1,$t1
|
||||
@ -934,44 +762,44 @@ Ldec_loop:
|
||||
rlwinm $acc02,$s2,`32-24+3`,21,28
|
||||
rlwinm $acc03,$s3,`32-24+3`,21,28
|
||||
lwz $t0,0($key)
|
||||
rlwinm $acc04,$s3,`32-16+3`,21,28
|
||||
lwz $t1,4($key)
|
||||
rlwinm $acc04,$s3,`32-16+3`,21,28
|
||||
rlwinm $acc05,$s0,`32-16+3`,21,28
|
||||
lwz $t2,8($key)
|
||||
rlwinm $acc06,$s1,`32-16+3`,21,28
|
||||
lwz $t3,12($key)
|
||||
rlwinm $acc06,$s1,`32-16+3`,21,28
|
||||
rlwinm $acc07,$s2,`32-16+3`,21,28
|
||||
lwzx $acc00,$Tbl0,$acc00
|
||||
rlwinm $acc08,$s2,`32-8+3`,21,28
|
||||
lwzx $acc01,$Tbl0,$acc01
|
||||
rlwinm $acc08,$s2,`32-8+3`,21,28
|
||||
rlwinm $acc09,$s3,`32-8+3`,21,28
|
||||
lwzx $acc02,$Tbl0,$acc02
|
||||
rlwinm $acc10,$s0,`32-8+3`,21,28
|
||||
lwzx $acc03,$Tbl0,$acc03
|
||||
rlwinm $acc10,$s0,`32-8+3`,21,28
|
||||
rlwinm $acc11,$s1,`32-8+3`,21,28
|
||||
lwzx $acc04,$Tbl1,$acc04
|
||||
rlwinm $acc12,$s1,`0+3`,21,28
|
||||
lwzx $acc05,$Tbl1,$acc05
|
||||
rlwinm $acc12,$s1,`0+3`,21,28
|
||||
rlwinm $acc13,$s2,`0+3`,21,28
|
||||
lwzx $acc06,$Tbl1,$acc06
|
||||
rlwinm $acc14,$s3,`0+3`,21,28
|
||||
lwzx $acc07,$Tbl1,$acc07
|
||||
rlwinm $acc14,$s3,`0+3`,21,28
|
||||
rlwinm $acc15,$s0,`0+3`,21,28
|
||||
lwzx $acc08,$Tbl2,$acc08
|
||||
xor $t0,$t0,$acc00
|
||||
lwzx $acc09,$Tbl2,$acc09
|
||||
xor $t0,$t0,$acc00
|
||||
xor $t1,$t1,$acc01
|
||||
lwzx $acc10,$Tbl2,$acc10
|
||||
xor $t2,$t2,$acc02
|
||||
lwzx $acc11,$Tbl2,$acc11
|
||||
xor $t2,$t2,$acc02
|
||||
xor $t3,$t3,$acc03
|
||||
lwzx $acc12,$Tbl3,$acc12
|
||||
xor $t0,$t0,$acc04
|
||||
lwzx $acc13,$Tbl3,$acc13
|
||||
xor $t0,$t0,$acc04
|
||||
xor $t1,$t1,$acc05
|
||||
lwzx $acc14,$Tbl3,$acc14
|
||||
xor $t2,$t2,$acc06
|
||||
lwzx $acc15,$Tbl3,$acc15
|
||||
xor $t2,$t2,$acc06
|
||||
xor $t3,$t3,$acc07
|
||||
xor $t0,$t0,$acc08
|
||||
xor $t1,$t1,$acc09
|
||||
@ -987,56 +815,56 @@ Ldec_loop:
|
||||
addi $Tbl2,$Tbl0,2048
|
||||
nop
|
||||
lwz $t0,0($key)
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
lwz $t1,4($key)
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
rlwinm $acc01,$s1,`32-24`,24,31
|
||||
lwz $t2,8($key)
|
||||
rlwinm $acc02,$s2,`32-24`,24,31
|
||||
lwz $t3,12($key)
|
||||
rlwinm $acc02,$s2,`32-24`,24,31
|
||||
rlwinm $acc03,$s3,`32-24`,24,31
|
||||
lwz $acc08,`2048+0`($Tbl0) ! prefetch Td4
|
||||
rlwinm $acc04,$s3,`32-16`,24,31
|
||||
lwz $acc09,`2048+32`($Tbl0)
|
||||
rlwinm $acc04,$s3,`32-16`,24,31
|
||||
rlwinm $acc05,$s0,`32-16`,24,31
|
||||
lwz $acc10,`2048+64`($Tbl0)
|
||||
lbzx $acc00,$Tbl2,$acc00
|
||||
lwz $acc11,`2048+96`($Tbl0)
|
||||
lbzx $acc00,$Tbl2,$acc00
|
||||
lbzx $acc01,$Tbl2,$acc01
|
||||
lwz $acc12,`2048+128`($Tbl0)
|
||||
rlwinm $acc06,$s1,`32-16`,24,31
|
||||
lwz $acc13,`2048+160`($Tbl0)
|
||||
rlwinm $acc06,$s1,`32-16`,24,31
|
||||
rlwinm $acc07,$s2,`32-16`,24,31
|
||||
lwz $acc14,`2048+192`($Tbl0)
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
lwz $acc15,`2048+224`($Tbl0)
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
rlwinm $acc09,$s3,`32-8`,24,31
|
||||
lbzx $acc02,$Tbl2,$acc02
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
lbzx $acc03,$Tbl2,$acc03
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
rlwinm $acc11,$s1,`32-8`,24,31
|
||||
lbzx $acc04,$Tbl2,$acc04
|
||||
rlwinm $acc12,$s1,`0`,24,31
|
||||
lbzx $acc05,$Tbl2,$acc05
|
||||
rlwinm $acc12,$s1,`0`,24,31
|
||||
rlwinm $acc13,$s2,`0`,24,31
|
||||
lbzx $acc06,$Tbl2,$acc06
|
||||
rlwinm $acc14,$s3,`0`,24,31
|
||||
lbzx $acc07,$Tbl2,$acc07
|
||||
rlwinm $acc14,$s3,`0`,24,31
|
||||
rlwinm $acc15,$s0,`0`,24,31
|
||||
lbzx $acc08,$Tbl2,$acc08
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
lbzx $acc09,$Tbl2,$acc09
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
rlwinm $s1,$acc01,24,0,7
|
||||
lbzx $acc10,$Tbl2,$acc10
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
lbzx $acc11,$Tbl2,$acc11
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
rlwinm $s3,$acc03,24,0,7
|
||||
lbzx $acc12,$Tbl2,$acc12
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
lbzx $acc13,$Tbl2,$acc13
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
rlwimi $s1,$acc05,16,8,15
|
||||
lbzx $acc14,$Tbl2,$acc14
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
lbzx $acc15,$Tbl2,$acc15
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
rlwimi $s3,$acc07,16,8,15
|
||||
rlwimi $s0,$acc08,8,16,23
|
||||
rlwimi $s1,$acc09,8,16,23
|
||||
@ -1051,22 +879,20 @@ Ldec_loop:
|
||||
xor $s2,$s2,$t2
|
||||
xor $s3,$s3,$t3
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
|
||||
.align 4
|
||||
Lppc_AES_decrypt_compact:
|
||||
lwz $acc00,240($key)
|
||||
addi $Tbl1,$Tbl0,2048
|
||||
lwz $t0,0($key)
|
||||
lis $mask80,0x8080
|
||||
lwz $t1,4($key)
|
||||
lis $mask1b,0x1b1b
|
||||
lwz $t2,8($key)
|
||||
ori $mask80,$mask80,0x8080
|
||||
lwz $t3,12($key)
|
||||
ori $mask1b,$mask1b,0x1b1b
|
||||
addi $Tbl1,$Tbl0,2048
|
||||
lis $mask80,0x8080
|
||||
lis $mask1b,0x1b1b
|
||||
addi $key,$key,16
|
||||
ori $mask80,$mask80,0x8080
|
||||
ori $mask1b,$mask1b,0x1b1b
|
||||
___
|
||||
$code.=<<___ if ($SIZE_T==8);
|
||||
insrdi $mask80,$mask80,32,0
|
||||
@ -1078,10 +904,10 @@ $code.=<<___;
|
||||
Ldec_compact_loop:
|
||||
xor $s0,$s0,$t0
|
||||
xor $s1,$s1,$t1
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
xor $s2,$s2,$t2
|
||||
rlwinm $acc01,$s1,`32-24`,24,31
|
||||
xor $s3,$s3,$t3
|
||||
rlwinm $acc00,$s0,`32-24`,24,31
|
||||
rlwinm $acc01,$s1,`32-24`,24,31
|
||||
rlwinm $acc02,$s2,`32-24`,24,31
|
||||
rlwinm $acc03,$s3,`32-24`,24,31
|
||||
rlwinm $acc04,$s3,`32-16`,24,31
|
||||
@ -1089,48 +915,48 @@ Ldec_compact_loop:
|
||||
rlwinm $acc06,$s1,`32-16`,24,31
|
||||
rlwinm $acc07,$s2,`32-16`,24,31
|
||||
lbzx $acc00,$Tbl1,$acc00
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
lbzx $acc01,$Tbl1,$acc01
|
||||
rlwinm $acc08,$s2,`32-8`,24,31
|
||||
rlwinm $acc09,$s3,`32-8`,24,31
|
||||
lbzx $acc02,$Tbl1,$acc02
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
lbzx $acc03,$Tbl1,$acc03
|
||||
rlwinm $acc10,$s0,`32-8`,24,31
|
||||
rlwinm $acc11,$s1,`32-8`,24,31
|
||||
lbzx $acc04,$Tbl1,$acc04
|
||||
rlwinm $acc12,$s1,`0`,24,31
|
||||
lbzx $acc05,$Tbl1,$acc05
|
||||
rlwinm $acc12,$s1,`0`,24,31
|
||||
rlwinm $acc13,$s2,`0`,24,31
|
||||
lbzx $acc06,$Tbl1,$acc06
|
||||
rlwinm $acc14,$s3,`0`,24,31
|
||||
lbzx $acc07,$Tbl1,$acc07
|
||||
rlwinm $acc14,$s3,`0`,24,31
|
||||
rlwinm $acc15,$s0,`0`,24,31
|
||||
lbzx $acc08,$Tbl1,$acc08
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
lbzx $acc09,$Tbl1,$acc09
|
||||
rlwinm $s0,$acc00,24,0,7
|
||||
rlwinm $s1,$acc01,24,0,7
|
||||
lbzx $acc10,$Tbl1,$acc10
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
lbzx $acc11,$Tbl1,$acc11
|
||||
rlwinm $s2,$acc02,24,0,7
|
||||
rlwinm $s3,$acc03,24,0,7
|
||||
lbzx $acc12,$Tbl1,$acc12
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
lbzx $acc13,$Tbl1,$acc13
|
||||
rlwimi $s0,$acc04,16,8,15
|
||||
rlwimi $s1,$acc05,16,8,15
|
||||
lbzx $acc14,$Tbl1,$acc14
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
lbzx $acc15,$Tbl1,$acc15
|
||||
rlwimi $s2,$acc06,16,8,15
|
||||
rlwimi $s3,$acc07,16,8,15
|
||||
rlwimi $s0,$acc08,8,16,23
|
||||
rlwimi $s1,$acc09,8,16,23
|
||||
rlwimi $s2,$acc10,8,16,23
|
||||
rlwimi $s3,$acc11,8,16,23
|
||||
lwz $t0,0($key)
|
||||
or $s0,$s0,$acc12
|
||||
lwz $t1,4($key)
|
||||
or $s0,$s0,$acc12
|
||||
or $s1,$s1,$acc13
|
||||
lwz $t2,8($key)
|
||||
or $s2,$s2,$acc14
|
||||
lwz $t3,12($key)
|
||||
or $s2,$s2,$acc14
|
||||
or $s3,$s3,$acc15
|
||||
|
||||
addi $key,$key,16
|
||||
@ -1204,12 +1030,12 @@ $code.=<<___ if ($SIZE_T==4);
|
||||
and $acc02,$s2,$mask80
|
||||
and $acc03,$s3,$mask80
|
||||
srwi $acc04,$acc00,7 # r1>>7
|
||||
andc $acc08,$s0,$mask80 # r0&0x7f7f7f7f
|
||||
srwi $acc05,$acc01,7
|
||||
andc $acc09,$s1,$mask80
|
||||
srwi $acc06,$acc02,7
|
||||
andc $acc10,$s2,$mask80
|
||||
srwi $acc07,$acc03,7
|
||||
andc $acc08,$s0,$mask80 # r0&0x7f7f7f7f
|
||||
andc $acc09,$s1,$mask80
|
||||
andc $acc10,$s2,$mask80
|
||||
andc $acc11,$s3,$mask80
|
||||
sub $acc00,$acc00,$acc04 # r1-(r1>>7)
|
||||
sub $acc01,$acc01,$acc05
|
||||
@ -1233,12 +1059,12 @@ $code.=<<___ if ($SIZE_T==4);
|
||||
and $acc06,$acc02,$mask80
|
||||
and $acc07,$acc03,$mask80
|
||||
srwi $acc08,$acc04,7 # r1>>7
|
||||
andc $acc12,$acc00,$mask80 # r2&0x7f7f7f7f
|
||||
srwi $acc09,$acc05,7
|
||||
andc $acc13,$acc01,$mask80
|
||||
srwi $acc10,$acc06,7
|
||||
andc $acc14,$acc02,$mask80
|
||||
srwi $acc11,$acc07,7
|
||||
andc $acc12,$acc00,$mask80 # r2&0x7f7f7f7f
|
||||
andc $acc13,$acc01,$mask80
|
||||
andc $acc14,$acc02,$mask80
|
||||
andc $acc15,$acc03,$mask80
|
||||
sub $acc04,$acc04,$acc08 # r1-(r1>>7)
|
||||
sub $acc05,$acc05,$acc09
|
||||
@ -1259,13 +1085,13 @@ $code.=<<___ if ($SIZE_T==4);
|
||||
|
||||
and $acc08,$acc04,$mask80 # r1=r4&0x80808080
|
||||
and $acc09,$acc05,$mask80
|
||||
srwi $acc12,$acc08,7 # r1>>7
|
||||
and $acc10,$acc06,$mask80
|
||||
srwi $acc13,$acc09,7
|
||||
and $acc11,$acc07,$mask80
|
||||
srwi $acc12,$acc08,7 # r1>>7
|
||||
srwi $acc13,$acc09,7
|
||||
srwi $acc14,$acc10,7
|
||||
sub $acc08,$acc08,$acc12 # r1-(r1>>7)
|
||||
srwi $acc15,$acc11,7
|
||||
sub $acc08,$acc08,$acc12 # r1-(r1>>7)
|
||||
sub $acc09,$acc09,$acc13
|
||||
sub $acc10,$acc10,$acc14
|
||||
sub $acc11,$acc11,$acc15
|
||||
@ -1298,10 +1124,10 @@ ___
|
||||
$code.=<<___;
|
||||
rotrwi $s0,$s0,8 # = ROTATE(r0,8)
|
||||
rotrwi $s1,$s1,8
|
||||
xor $s0,$s0,$acc00 # ^= r2^r0
|
||||
rotrwi $s2,$s2,8
|
||||
xor $s1,$s1,$acc01
|
||||
rotrwi $s3,$s3,8
|
||||
xor $s0,$s0,$acc00 # ^= r2^r0
|
||||
xor $s1,$s1,$acc01
|
||||
xor $s2,$s2,$acc02
|
||||
xor $s3,$s3,$acc03
|
||||
xor $acc00,$acc00,$acc08
|
||||
@ -1309,32 +1135,32 @@ $code.=<<___;
|
||||
xor $acc02,$acc02,$acc10
|
||||
xor $acc03,$acc03,$acc11
|
||||
xor $s0,$s0,$acc04 # ^= r4^r0
|
||||
rotrwi $acc00,$acc00,24
|
||||
xor $s1,$s1,$acc05
|
||||
rotrwi $acc01,$acc01,24
|
||||
xor $s2,$s2,$acc06
|
||||
rotrwi $acc02,$acc02,24
|
||||
xor $s3,$s3,$acc07
|
||||
rotrwi $acc00,$acc00,24
|
||||
rotrwi $acc01,$acc01,24
|
||||
rotrwi $acc02,$acc02,24
|
||||
rotrwi $acc03,$acc03,24
|
||||
xor $acc04,$acc04,$acc08
|
||||
xor $acc05,$acc05,$acc09
|
||||
xor $acc06,$acc06,$acc10
|
||||
xor $acc07,$acc07,$acc11
|
||||
xor $s0,$s0,$acc08 # ^= r8 [^((r4^r0)^(r2^r0)=r4^r2)]
|
||||
rotrwi $acc04,$acc04,16
|
||||
xor $s1,$s1,$acc09
|
||||
rotrwi $acc05,$acc05,16
|
||||
xor $s2,$s2,$acc10
|
||||
rotrwi $acc06,$acc06,16
|
||||
xor $s3,$s3,$acc11
|
||||
rotrwi $acc04,$acc04,16
|
||||
rotrwi $acc05,$acc05,16
|
||||
rotrwi $acc06,$acc06,16
|
||||
rotrwi $acc07,$acc07,16
|
||||
xor $s0,$s0,$acc00 # ^= ROTATE(r8^r2^r0,24)
|
||||
rotrwi $acc08,$acc08,8
|
||||
xor $s1,$s1,$acc01
|
||||
rotrwi $acc09,$acc09,8
|
||||
xor $s2,$s2,$acc02
|
||||
rotrwi $acc10,$acc10,8
|
||||
xor $s3,$s3,$acc03
|
||||
rotrwi $acc08,$acc08,8
|
||||
rotrwi $acc09,$acc09,8
|
||||
rotrwi $acc10,$acc10,8
|
||||
rotrwi $acc11,$acc11,8
|
||||
xor $s0,$s0,$acc04 # ^= ROTATE(r8^r4^r0,16)
|
||||
xor $s1,$s1,$acc05
|
||||
@ -1353,9 +1179,7 @@ Ldec_compact_done:
|
||||
xor $s2,$s2,$t2
|
||||
xor $s3,$s3,$t3
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
|
||||
.long 0
|
||||
.asciz "AES for PPC, CRYPTOGAMS by <appro\@openssl.org>"
|
||||
.align 7
|
||||
___
|
||||
|
1054
deps/openssl/openssl/crypto/aes/asm/aes-s390x.pl
vendored
1054
deps/openssl/openssl/crypto/aes/asm/aes-s390x.pl
vendored
File diff suppressed because it is too large
Load Diff
3
deps/openssl/openssl/crypto/aes/asm/aes-sparcv9.pl
vendored
Executable file → Normal file
3
deps/openssl/openssl/crypto/aes/asm/aes-sparcv9.pl
vendored
Executable file → Normal file
@ -1176,7 +1176,6 @@ ___
|
||||
# As UltraSPARC T1, a.k.a. Niagara, has shared FPU, FP nops can have
|
||||
# undesired effect, so just omit them and sacrifice some portion of
|
||||
# percent in performance...
|
||||
$code =~ s/fmovs.*$//gm;
|
||||
$code =~ s/fmovs.*$//gem;
|
||||
|
||||
print $code;
|
||||
close STDOUT; # ensure flush
|
||||
|
@ -36,8 +36,7 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
|
||||
( $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;
|
||||
open STDOUT,"| $^X $xlate $flavour $output";
|
||||
|
||||
$verticalspin=1; # unlike 32-bit version $verticalspin performs
|
||||
# ~15% better on both AMD and Intel cores
|
||||
@ -589,9 +588,6 @@ $code.=<<___;
|
||||
.globl AES_encrypt
|
||||
.type AES_encrypt,\@function,3
|
||||
.align 16
|
||||
.globl asm_AES_encrypt
|
||||
.hidden asm_AES_encrypt
|
||||
asm_AES_encrypt:
|
||||
AES_encrypt:
|
||||
push %rbx
|
||||
push %rbp
|
||||
@ -1188,9 +1184,6 @@ $code.=<<___;
|
||||
.globl AES_decrypt
|
||||
.type AES_decrypt,\@function,3
|
||||
.align 16
|
||||
.globl asm_AES_decrypt
|
||||
.hidden asm_AES_decrypt
|
||||
asm_AES_decrypt:
|
||||
AES_decrypt:
|
||||
push %rbx
|
||||
push %rbp
|
||||
@ -1284,13 +1277,13 @@ $code.=<<___;
|
||||
___
|
||||
}
|
||||
|
||||
# int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||
# AES_KEY *key)
|
||||
$code.=<<___;
|
||||
.globl private_AES_set_encrypt_key
|
||||
.type private_AES_set_encrypt_key,\@function,3
|
||||
.globl AES_set_encrypt_key
|
||||
.type AES_set_encrypt_key,\@function,3
|
||||
.align 16
|
||||
private_AES_set_encrypt_key:
|
||||
AES_set_encrypt_key:
|
||||
push %rbx
|
||||
push %rbp
|
||||
push %r12 # redundant, but allows to share
|
||||
@ -1311,7 +1304,7 @@ private_AES_set_encrypt_key:
|
||||
add \$56,%rsp
|
||||
.Lenc_key_epilogue:
|
||||
ret
|
||||
.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key
|
||||
.size AES_set_encrypt_key,.-AES_set_encrypt_key
|
||||
|
||||
.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent
|
||||
.align 16
|
||||
@ -1554,13 +1547,13 @@ $code.=<<___;
|
||||
___
|
||||
}
|
||||
|
||||
# int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||
# AES_KEY *key)
|
||||
$code.=<<___;
|
||||
.globl private_AES_set_decrypt_key
|
||||
.type private_AES_set_decrypt_key,\@function,3
|
||||
.globl AES_set_decrypt_key
|
||||
.type AES_set_decrypt_key,\@function,3
|
||||
.align 16
|
||||
private_AES_set_decrypt_key:
|
||||
AES_set_decrypt_key:
|
||||
push %rbx
|
||||
push %rbp
|
||||
push %r12
|
||||
@ -1629,7 +1622,7 @@ $code.=<<___;
|
||||
add \$56,%rsp
|
||||
.Ldec_key_epilogue:
|
||||
ret
|
||||
.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key
|
||||
.size AES_set_decrypt_key,.-AES_set_decrypt_key
|
||||
___
|
||||
|
||||
# void AES_cbc_encrypt (const void char *inp, unsigned char *out,
|
||||
@ -1655,9 +1648,6 @@ $code.=<<___;
|
||||
.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:
|
||||
cmp \$0,%rdx # check length
|
||||
je .Lcbc_epilogue
|
||||
@ -2776,13 +2766,13 @@ cbc_se_handler:
|
||||
.rva .LSEH_end_AES_decrypt
|
||||
.rva .LSEH_info_AES_decrypt
|
||||
|
||||
.rva .LSEH_begin_private_AES_set_encrypt_key
|
||||
.rva .LSEH_end_private_AES_set_encrypt_key
|
||||
.rva .LSEH_info_private_AES_set_encrypt_key
|
||||
.rva .LSEH_begin_AES_set_encrypt_key
|
||||
.rva .LSEH_end_AES_set_encrypt_key
|
||||
.rva .LSEH_info_AES_set_encrypt_key
|
||||
|
||||
.rva .LSEH_begin_private_AES_set_decrypt_key
|
||||
.rva .LSEH_end_private_AES_set_decrypt_key
|
||||
.rva .LSEH_info_private_AES_set_decrypt_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
|
||||
@ -2798,11 +2788,11 @@ cbc_se_handler:
|
||||
.byte 9,0,0,0
|
||||
.rva block_se_handler
|
||||
.rva .Ldec_prologue,.Ldec_epilogue # HandlerData[]
|
||||
.LSEH_info_private_AES_set_encrypt_key:
|
||||
.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_private_AES_set_decrypt_key:
|
||||
.LSEH_info_AES_set_decrypt_key:
|
||||
.byte 9,0,0,0
|
||||
.rva key_se_handler
|
||||
.rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[]
|
||||
|
2
deps/openssl/openssl/crypto/asn1/Makefile
vendored
2
deps/openssl/openssl/crypto/asn1/Makefile
vendored
@ -639,7 +639,7 @@ t_x509.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
t_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
t_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
|
||||
t_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
|
||||
t_x509.o: ../cryptlib.h asn1_locl.h t_x509.c
|
||||
t_x509.o: ../cryptlib.h t_x509.c
|
||||
t_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
t_x509a.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||
t_x509a.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||
|
6
deps/openssl/openssl/crypto/asn1/a_digest.c
vendored
6
deps/openssl/openssl/crypto/asn1/a_digest.c
vendored
@ -87,8 +87,7 @@ int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
|
||||
p=str;
|
||||
i2d(data,&p);
|
||||
|
||||
if (!EVP_Digest(str, i, md, len, type, NULL))
|
||||
return 0;
|
||||
EVP_Digest(str, i, md, len, type, NULL);
|
||||
OPENSSL_free(str);
|
||||
return(1);
|
||||
}
|
||||
@ -105,8 +104,7 @@ int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
|
||||
i=ASN1_item_i2d(asn,&str, it);
|
||||
if (!str) return(0);
|
||||
|
||||
if (!EVP_Digest(str, i, md, len, type, NULL))
|
||||
return 0;
|
||||
EVP_Digest(str, i, md, len, type, NULL);
|
||||
OPENSSL_free(str);
|
||||
return(1);
|
||||
}
|
||||
|
4
deps/openssl/openssl/crypto/asn1/a_int.c
vendored
4
deps/openssl/openssl/crypto/asn1/a_int.c
vendored
@ -386,8 +386,8 @@ long ASN1_INTEGER_get(const ASN1_INTEGER *a)
|
||||
|
||||
if (a->length > (int)sizeof(long))
|
||||
{
|
||||
/* hmm... a bit ugly, return all ones */
|
||||
return -1;
|
||||
/* hmm... a bit ugly */
|
||||
return(0xffffffffL);
|
||||
}
|
||||
if (a->data == NULL)
|
||||
return 0;
|
||||
|
115
deps/openssl/openssl/crypto/asn1/a_sign.c
vendored
115
deps/openssl/openssl/crypto/asn1/a_sign.c
vendored
@ -184,9 +184,9 @@ int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2,
|
||||
p=buf_in;
|
||||
|
||||
i2d(data,&p);
|
||||
if (!EVP_SignInit_ex(&ctx,type, NULL)
|
||||
|| !EVP_SignUpdate(&ctx,(unsigned char *)buf_in,inl)
|
||||
|| !EVP_SignFinal(&ctx,(unsigned char *)buf_out,
|
||||
EVP_SignInit_ex(&ctx,type, NULL);
|
||||
EVP_SignUpdate(&ctx,(unsigned char *)buf_in,inl);
|
||||
if (!EVP_SignFinal(&ctx,(unsigned char *)buf_out,
|
||||
(unsigned int *)&outl,pkey))
|
||||
{
|
||||
outl=0;
|
||||
@ -218,100 +218,65 @@ int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
|
||||
const EVP_MD *type)
|
||||
{
|
||||
EVP_MD_CTX ctx;
|
||||
EVP_MD_CTX_init(&ctx);
|
||||
if (!EVP_DigestSignInit(&ctx, NULL, type, NULL, pkey))
|
||||
{
|
||||
EVP_MD_CTX_cleanup(&ctx);
|
||||
return 0;
|
||||
}
|
||||
return ASN1_item_sign_ctx(it, algor1, algor2, signature, asn, &ctx);
|
||||
}
|
||||
|
||||
|
||||
int ASN1_item_sign_ctx(const ASN1_ITEM *it,
|
||||
X509_ALGOR *algor1, X509_ALGOR *algor2,
|
||||
ASN1_BIT_STRING *signature, void *asn, EVP_MD_CTX *ctx)
|
||||
{
|
||||
const EVP_MD *type;
|
||||
EVP_PKEY *pkey;
|
||||
unsigned char *buf_in=NULL,*buf_out=NULL;
|
||||
size_t inl=0,outl=0,outll=0;
|
||||
int inl=0,outl=0,outll=0;
|
||||
int signid, paramtype;
|
||||
int rv;
|
||||
|
||||
type = EVP_MD_CTX_md(ctx);
|
||||
pkey = EVP_PKEY_CTX_get0_pkey(ctx->pctx);
|
||||
|
||||
if (!type || !pkey)
|
||||
if (type == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ASN1_R_CONTEXT_NOT_INITIALISED);
|
||||
int def_nid;
|
||||
if (EVP_PKEY_get_default_digest_nid(pkey, &def_nid) > 0)
|
||||
type = EVP_get_digestbynid(def_nid);
|
||||
}
|
||||
|
||||
if (type == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN, ASN1_R_NO_DEFAULT_DIGEST);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (pkey->ameth->item_sign)
|
||||
if (type->flags & EVP_MD_FLAG_PKEY_METHOD_SIGNATURE)
|
||||
{
|
||||
rv = pkey->ameth->item_sign(ctx, it, asn, algor1, algor2,
|
||||
signature);
|
||||
if (rv == 1)
|
||||
outl = signature->length;
|
||||
/* Return value meanings:
|
||||
* <=0: error.
|
||||
* 1: method does everything.
|
||||
* 2: carry on as normal.
|
||||
* 3: ASN1 method sets algorithm identifiers: just sign.
|
||||
*/
|
||||
if (rv <= 0)
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_EVP_LIB);
|
||||
if (rv <= 1)
|
||||
goto err;
|
||||
if (!pkey->ameth ||
|
||||
!OBJ_find_sigid_by_algs(&signid, EVP_MD_nid(type),
|
||||
pkey->ameth->pkey_id))
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN,
|
||||
ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
rv = 2;
|
||||
signid = type->pkey_type;
|
||||
|
||||
if (rv == 2)
|
||||
{
|
||||
if (type->flags & EVP_MD_FLAG_PKEY_METHOD_SIGNATURE)
|
||||
{
|
||||
if (!pkey->ameth ||
|
||||
!OBJ_find_sigid_by_algs(&signid,
|
||||
EVP_MD_nid(type),
|
||||
pkey->ameth->pkey_id))
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX,
|
||||
ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
signid = type->pkey_type;
|
||||
if (pkey->ameth->pkey_flags & ASN1_PKEY_SIGPARAM_NULL)
|
||||
paramtype = V_ASN1_NULL;
|
||||
else
|
||||
paramtype = V_ASN1_UNDEF;
|
||||
|
||||
if (pkey->ameth->pkey_flags & ASN1_PKEY_SIGPARAM_NULL)
|
||||
paramtype = V_ASN1_NULL;
|
||||
else
|
||||
paramtype = V_ASN1_UNDEF;
|
||||
|
||||
if (algor1)
|
||||
X509_ALGOR_set0(algor1, OBJ_nid2obj(signid), paramtype, NULL);
|
||||
if (algor2)
|
||||
X509_ALGOR_set0(algor2, OBJ_nid2obj(signid), paramtype, NULL);
|
||||
|
||||
}
|
||||
if (algor1)
|
||||
X509_ALGOR_set0(algor1, OBJ_nid2obj(signid), paramtype, NULL);
|
||||
if (algor2)
|
||||
X509_ALGOR_set0(algor2, OBJ_nid2obj(signid), paramtype, NULL);
|
||||
|
||||
EVP_MD_CTX_init(&ctx);
|
||||
inl=ASN1_item_i2d(asn,&buf_in, it);
|
||||
outll=outl=EVP_PKEY_size(pkey);
|
||||
buf_out=OPENSSL_malloc((unsigned int)outl);
|
||||
buf_out=(unsigned char *)OPENSSL_malloc((unsigned int)outl);
|
||||
if ((buf_in == NULL) || (buf_out == NULL))
|
||||
{
|
||||
outl=0;
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX,ERR_R_MALLOC_FAILURE);
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!EVP_DigestSignUpdate(ctx, buf_in, inl)
|
||||
|| !EVP_DigestSignFinal(ctx, buf_out, &outl))
|
||||
EVP_SignInit_ex(&ctx,type, NULL);
|
||||
EVP_SignUpdate(&ctx,(unsigned char *)buf_in,inl);
|
||||
if (!EVP_SignFinal(&ctx,(unsigned char *)buf_out,
|
||||
(unsigned int *)&outl,pkey))
|
||||
{
|
||||
outl=0;
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX,ERR_R_EVP_LIB);
|
||||
ASN1err(ASN1_F_ASN1_ITEM_SIGN,ERR_R_EVP_LIB);
|
||||
goto err;
|
||||
}
|
||||
if (signature->data != NULL) OPENSSL_free(signature->data);
|
||||
@ -324,7 +289,7 @@ int ASN1_item_sign_ctx(const ASN1_ITEM *it,
|
||||
signature->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07);
|
||||
signature->flags|=ASN1_STRING_FLAG_BITS_LEFT;
|
||||
err:
|
||||
EVP_MD_CTX_cleanup(ctx);
|
||||
EVP_MD_CTX_cleanup(&ctx);
|
||||
if (buf_in != NULL)
|
||||
{ OPENSSL_cleanse((char *)buf_in,(unsigned int)inl); OPENSSL_free(buf_in); }
|
||||
if (buf_out != NULL)
|
||||
|
1
deps/openssl/openssl/crypto/asn1/a_strex.c
vendored
1
deps/openssl/openssl/crypto/asn1/a_strex.c
vendored
@ -568,7 +568,6 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in)
|
||||
mbflag |= MBSTRING_FLAG;
|
||||
memset(&stmp, 0, sizeof(stmp));
|
||||
stmp.data = NULL;
|
||||
stmp.length = 0;
|
||||
ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING);
|
||||
if(ret < 0) return ret;
|
||||
*out = stmp.data;
|
||||
|
83
deps/openssl/openssl/crypto/asn1/a_verify.c
vendored
83
deps/openssl/openssl/crypto/asn1/a_verify.c
vendored
@ -101,13 +101,8 @@ int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature,
|
||||
p=buf_in;
|
||||
|
||||
i2d(data,&p);
|
||||
if (!EVP_VerifyInit_ex(&ctx,type, NULL)
|
||||
|| !EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl))
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB);
|
||||
ret=0;
|
||||
goto err;
|
||||
}
|
||||
EVP_VerifyInit_ex(&ctx,type, NULL);
|
||||
EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl);
|
||||
|
||||
OPENSSL_cleanse(buf_in,(unsigned int)inl);
|
||||
OPENSSL_free(buf_in);
|
||||
@ -131,21 +126,16 @@ err:
|
||||
#endif
|
||||
|
||||
|
||||
int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
|
||||
ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey)
|
||||
int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, ASN1_BIT_STRING *signature,
|
||||
void *asn, EVP_PKEY *pkey)
|
||||
{
|
||||
EVP_MD_CTX ctx;
|
||||
const EVP_MD *type = NULL;
|
||||
unsigned char *buf_in=NULL;
|
||||
int ret= -1,inl;
|
||||
|
||||
int mdnid, pknid;
|
||||
|
||||
if (!pkey)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY, ERR_R_PASSED_NULL_PARAMETER);
|
||||
return -1;
|
||||
}
|
||||
|
||||
EVP_MD_CTX_init(&ctx);
|
||||
|
||||
/* Convert signature OID into digest and public key OIDs */
|
||||
@ -154,47 +144,25 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM);
|
||||
goto err;
|
||||
}
|
||||
if (mdnid == NID_undef)
|
||||
type=EVP_get_digestbynid(mdnid);
|
||||
if (type == NULL)
|
||||
{
|
||||
if (!pkey->ameth || !pkey->ameth->item_verify)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM);
|
||||
goto err;
|
||||
}
|
||||
ret = pkey->ameth->item_verify(&ctx, it, asn, a,
|
||||
signature, pkey);
|
||||
/* Return value of 2 means carry on, anything else means we
|
||||
* exit straight away: either a fatal error of the underlying
|
||||
* verification routine handles all verification.
|
||||
*/
|
||||
if (ret != 2)
|
||||
goto err;
|
||||
ret = -1;
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM);
|
||||
goto err;
|
||||
}
|
||||
else
|
||||
|
||||
/* Check public key OID matches public key type */
|
||||
if (EVP_PKEY_type(pknid) != pkey->ameth->pkey_id)
|
||||
{
|
||||
const EVP_MD *type;
|
||||
type=EVP_get_digestbynid(mdnid);
|
||||
if (type == NULL)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM);
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Check public key OID matches public key type */
|
||||
if (EVP_PKEY_type(pknid) != pkey->ameth->pkey_id)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ASN1_R_WRONG_PUBLIC_KEY_TYPE);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!EVP_DigestVerifyInit(&ctx, NULL, type, NULL, pkey))
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ERR_R_EVP_LIB);
|
||||
ret=0;
|
||||
goto err;
|
||||
}
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ASN1_R_WRONG_PUBLIC_KEY_TYPE);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!EVP_VerifyInit_ex(&ctx,type, NULL))
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ERR_R_EVP_LIB);
|
||||
ret=0;
|
||||
goto err;
|
||||
}
|
||||
|
||||
inl = ASN1_item_i2d(asn, &buf_in, it);
|
||||
@ -205,18 +173,13 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!EVP_DigestVerifyUpdate(&ctx,buf_in,inl))
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ERR_R_EVP_LIB);
|
||||
ret=0;
|
||||
goto err;
|
||||
}
|
||||
EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl);
|
||||
|
||||
OPENSSL_cleanse(buf_in,(unsigned int)inl);
|
||||
OPENSSL_free(buf_in);
|
||||
|
||||
if (EVP_DigestVerifyFinal(&ctx,signature->data,
|
||||
(size_t)signature->length) <= 0)
|
||||
if (EVP_VerifyFinal(&ctx,(unsigned char *)signature->data,
|
||||
(unsigned int)signature->length,pkey) <= 0)
|
||||
{
|
||||
ASN1err(ASN1_F_ASN1_ITEM_VERIFY,ERR_R_EVP_LIB);
|
||||
ret=0;
|
||||
|
12
deps/openssl/openssl/crypto/asn1/ameth_lib.c
vendored
12
deps/openssl/openssl/crypto/asn1/ameth_lib.c
vendored
@ -69,7 +69,6 @@ extern const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[];
|
||||
extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth;
|
||||
extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth;
|
||||
extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth;
|
||||
extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth;
|
||||
|
||||
/* Keep this sorted in type order !! */
|
||||
static const EVP_PKEY_ASN1_METHOD *standard_methods[] =
|
||||
@ -91,8 +90,7 @@ static const EVP_PKEY_ASN1_METHOD *standard_methods[] =
|
||||
#ifndef OPENSSL_NO_EC
|
||||
&eckey_asn1_meth,
|
||||
#endif
|
||||
&hmac_asn1_meth,
|
||||
&cmac_asn1_meth
|
||||
&hmac_asn1_meth
|
||||
};
|
||||
|
||||
typedef int sk_cmp_fn_type(const char * const *a, const char * const *b);
|
||||
@ -293,8 +291,6 @@ EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id, int flags,
|
||||
if (!ameth)
|
||||
return NULL;
|
||||
|
||||
memset(ameth, 0, sizeof(EVP_PKEY_ASN1_METHOD));
|
||||
|
||||
ameth->pkey_id = id;
|
||||
ameth->pkey_base_id = id;
|
||||
ameth->pkey_flags = flags | ASN1_PKEY_DYNAMIC;
|
||||
@ -329,9 +325,6 @@ EVP_PKEY_ASN1_METHOD* EVP_PKEY_asn1_new(int id, int flags,
|
||||
ameth->old_priv_encode = 0;
|
||||
ameth->old_priv_decode = 0;
|
||||
|
||||
ameth->item_verify = 0;
|
||||
ameth->item_sign = 0;
|
||||
|
||||
ameth->pkey_size = 0;
|
||||
ameth->pkey_bits = 0;
|
||||
|
||||
@ -383,9 +376,6 @@ void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst,
|
||||
dst->pkey_free = src->pkey_free;
|
||||
dst->pkey_ctrl = src->pkey_ctrl;
|
||||
|
||||
dst->item_sign = src->item_sign;
|
||||
dst->item_verify = src->item_verify;
|
||||
|
||||
}
|
||||
|
||||
void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth)
|
||||
|
8
deps/openssl/openssl/crypto/asn1/asn1.h
vendored
8
deps/openssl/openssl/crypto/asn1/asn1.h
vendored
@ -235,7 +235,7 @@ typedef struct asn1_object_st
|
||||
*/
|
||||
#define ASN1_STRING_FLAG_MSTRING 0x040
|
||||
/* This is the base type that holds just about everything :-) */
|
||||
struct asn1_string_st
|
||||
typedef struct asn1_string_st
|
||||
{
|
||||
int length;
|
||||
int type;
|
||||
@ -245,7 +245,7 @@ struct asn1_string_st
|
||||
* input data has a non-zero 'unused bits' value, it will be
|
||||
* handled correctly */
|
||||
long flags;
|
||||
};
|
||||
} ASN1_STRING;
|
||||
|
||||
/* ASN1_ENCODING structure: this is used to save the received
|
||||
* encoding of an ASN1 type. This is useful to get round
|
||||
@ -293,6 +293,7 @@ DECLARE_STACK_OF(ASN1_STRING_TABLE)
|
||||
* see asn1t.h
|
||||
*/
|
||||
typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE;
|
||||
typedef struct ASN1_ITEM_st ASN1_ITEM;
|
||||
typedef struct ASN1_TLC_st ASN1_TLC;
|
||||
/* This is just an opaque pointer */
|
||||
typedef struct ASN1_VALUE_st ASN1_VALUE;
|
||||
@ -1193,7 +1194,6 @@ void ERR_load_ASN1_strings(void);
|
||||
#define ASN1_F_ASN1_ITEM_I2D_FP 193
|
||||
#define ASN1_F_ASN1_ITEM_PACK 198
|
||||
#define ASN1_F_ASN1_ITEM_SIGN 195
|
||||
#define ASN1_F_ASN1_ITEM_SIGN_CTX 220
|
||||
#define ASN1_F_ASN1_ITEM_UNPACK 199
|
||||
#define ASN1_F_ASN1_ITEM_VERIFY 197
|
||||
#define ASN1_F_ASN1_MBSTRING_NCOPY 122
|
||||
@ -1266,7 +1266,6 @@ void ERR_load_ASN1_strings(void);
|
||||
#define ASN1_F_PKCS5_PBE2_SET_IV 167
|
||||
#define ASN1_F_PKCS5_PBE_SET 202
|
||||
#define ASN1_F_PKCS5_PBE_SET0_ALGOR 215
|
||||
#define ASN1_F_PKCS5_PBKDF2_SET 219
|
||||
#define ASN1_F_SMIME_READ_ASN1 212
|
||||
#define ASN1_F_SMIME_TEXT 213
|
||||
#define ASN1_F_X509_CINF_NEW 168
|
||||
@ -1292,7 +1291,6 @@ void ERR_load_ASN1_strings(void);
|
||||
#define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106
|
||||
#define ASN1_R_BUFFER_TOO_SMALL 107
|
||||
#define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108
|
||||
#define ASN1_R_CONTEXT_NOT_INITIALISED 217
|
||||
#define ASN1_R_DATA_IS_WRONG 109
|
||||
#define ASN1_R_DECODE_ERROR 110
|
||||
#define ASN1_R_DECODING_ERROR 111
|
||||
|
5
deps/openssl/openssl/crypto/asn1/asn1_err.c
vendored
5
deps/openssl/openssl/crypto/asn1/asn1_err.c
vendored
@ -1,6 +1,6 @@
|
||||
/* crypto/asn1/asn1_err.c */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved.
|
||||
* Copyright (c) 1999-2009 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -107,7 +107,6 @@ static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{ERR_FUNC(ASN1_F_ASN1_ITEM_I2D_FP), "ASN1_item_i2d_fp"},
|
||||
{ERR_FUNC(ASN1_F_ASN1_ITEM_PACK), "ASN1_item_pack"},
|
||||
{ERR_FUNC(ASN1_F_ASN1_ITEM_SIGN), "ASN1_item_sign"},
|
||||
{ERR_FUNC(ASN1_F_ASN1_ITEM_SIGN_CTX), "ASN1_item_sign_ctx"},
|
||||
{ERR_FUNC(ASN1_F_ASN1_ITEM_UNPACK), "ASN1_item_unpack"},
|
||||
{ERR_FUNC(ASN1_F_ASN1_ITEM_VERIFY), "ASN1_item_verify"},
|
||||
{ERR_FUNC(ASN1_F_ASN1_MBSTRING_NCOPY), "ASN1_mbstring_ncopy"},
|
||||
@ -180,7 +179,6 @@ static ERR_STRING_DATA ASN1_str_functs[]=
|
||||
{ERR_FUNC(ASN1_F_PKCS5_PBE2_SET_IV), "PKCS5_pbe2_set_iv"},
|
||||
{ERR_FUNC(ASN1_F_PKCS5_PBE_SET), "PKCS5_pbe_set"},
|
||||
{ERR_FUNC(ASN1_F_PKCS5_PBE_SET0_ALGOR), "PKCS5_pbe_set0_algor"},
|
||||
{ERR_FUNC(ASN1_F_PKCS5_PBKDF2_SET), "PKCS5_pbkdf2_set"},
|
||||
{ERR_FUNC(ASN1_F_SMIME_READ_ASN1), "SMIME_read_ASN1"},
|
||||
{ERR_FUNC(ASN1_F_SMIME_TEXT), "SMIME_text"},
|
||||
{ERR_FUNC(ASN1_F_X509_CINF_NEW), "X509_CINF_NEW"},
|
||||
@ -209,7 +207,6 @@ static ERR_STRING_DATA ASN1_str_reasons[]=
|
||||
{ERR_REASON(ASN1_R_BOOLEAN_IS_WRONG_LENGTH),"boolean is wrong length"},
|
||||
{ERR_REASON(ASN1_R_BUFFER_TOO_SMALL) ,"buffer too small"},
|
||||
{ERR_REASON(ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER),"cipher has no object identifier"},
|
||||
{ERR_REASON(ASN1_R_CONTEXT_NOT_INITIALISED),"context not initialised"},
|
||||
{ERR_REASON(ASN1_R_DATA_IS_WRONG) ,"data is wrong"},
|
||||
{ERR_REASON(ASN1_R_DECODE_ERROR) ,"decode error"},
|
||||
{ERR_REASON(ASN1_R_DECODING_ERROR) ,"decoding error"},
|
||||
|
11
deps/openssl/openssl/crypto/asn1/asn1_locl.h
vendored
11
deps/openssl/openssl/crypto/asn1/asn1_locl.h
vendored
@ -102,10 +102,6 @@ struct evp_pkey_asn1_method_st
|
||||
int (*param_cmp)(const EVP_PKEY *a, const EVP_PKEY *b);
|
||||
int (*param_print)(BIO *out, const EVP_PKEY *pkey, int indent,
|
||||
ASN1_PCTX *pctx);
|
||||
int (*sig_print)(BIO *out,
|
||||
const X509_ALGOR *sigalg, const ASN1_STRING *sig,
|
||||
int indent, ASN1_PCTX *pctx);
|
||||
|
||||
|
||||
void (*pkey_free)(EVP_PKEY *pkey);
|
||||
int (*pkey_ctrl)(EVP_PKEY *pkey, int op, long arg1, void *arg2);
|
||||
@ -115,13 +111,6 @@ struct evp_pkey_asn1_method_st
|
||||
int (*old_priv_decode)(EVP_PKEY *pkey,
|
||||
const unsigned char **pder, int derlen);
|
||||
int (*old_priv_encode)(const EVP_PKEY *pkey, unsigned char **pder);
|
||||
/* Custom ASN1 signature verification */
|
||||
int (*item_verify)(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,
|
||||
X509_ALGOR *a, ASN1_BIT_STRING *sig,
|
||||
EVP_PKEY *pkey);
|
||||
int (*item_sign)(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,
|
||||
X509_ALGOR *alg1, X509_ALGOR *alg2,
|
||||
ASN1_BIT_STRING *sig);
|
||||
|
||||
} /* EVP_PKEY_ASN1_METHOD */;
|
||||
|
||||
|
23
deps/openssl/openssl/crypto/asn1/asn_mime.c
vendored
23
deps/openssl/openssl/crypto/asn1/asn_mime.c
vendored
@ -377,12 +377,8 @@ static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
|
||||
BIO *tmpbio;
|
||||
const ASN1_AUX *aux = it->funcs;
|
||||
ASN1_STREAM_ARG sarg;
|
||||
int rv = 1;
|
||||
|
||||
/* If data is not deteched or resigning then the output BIO is
|
||||
* already set up to finalise when it is written through.
|
||||
*/
|
||||
if (!(flags & SMIME_DETACHED) || (flags & PKCS7_REUSE_DIGEST))
|
||||
if (!(flags & SMIME_DETACHED))
|
||||
{
|
||||
SMIME_crlf_copy(data, out, flags);
|
||||
return 1;
|
||||
@ -409,7 +405,7 @@ static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
|
||||
|
||||
/* Finalize structure */
|
||||
if (aux->asn1_cb(ASN1_OP_DETACHED_POST, &val, it, &sarg) <= 0)
|
||||
rv = 0;
|
||||
return 0;
|
||||
|
||||
/* Now remove any digests prepended to the BIO */
|
||||
|
||||
@ -420,7 +416,7 @@ static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
|
||||
sarg.ndef_bio = tmpbio;
|
||||
}
|
||||
|
||||
return rv;
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
@ -490,9 +486,9 @@ ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it)
|
||||
|
||||
if(strcmp(hdr->value, "application/x-pkcs7-signature") &&
|
||||
strcmp(hdr->value, "application/pkcs7-signature")) {
|
||||
sk_MIME_HEADER_pop_free(headers, mime_hdr_free);
|
||||
ASN1err(ASN1_F_SMIME_READ_ASN1,ASN1_R_SIG_INVALID_MIME_TYPE);
|
||||
ERR_add_error_data(2, "type: ", hdr->value);
|
||||
sk_MIME_HEADER_pop_free(headers, mime_hdr_free);
|
||||
sk_BIO_pop_free(parts, BIO_vfree);
|
||||
return NULL;
|
||||
}
|
||||
@ -805,7 +801,7 @@ static MIME_HEADER *mime_hdr_new(char *name, char *value)
|
||||
if(name) {
|
||||
if(!(tmpname = BUF_strdup(name))) return NULL;
|
||||
for(p = tmpname ; *p; p++) {
|
||||
c = (unsigned char)*p;
|
||||
c = *p;
|
||||
if(isupper(c)) {
|
||||
c = tolower(c);
|
||||
*p = c;
|
||||
@ -815,7 +811,7 @@ static MIME_HEADER *mime_hdr_new(char *name, char *value)
|
||||
if(value) {
|
||||
if(!(tmpval = BUF_strdup(value))) return NULL;
|
||||
for(p = tmpval ; *p; p++) {
|
||||
c = (unsigned char)*p;
|
||||
c = *p;
|
||||
if(isupper(c)) {
|
||||
c = tolower(c);
|
||||
*p = c;
|
||||
@ -839,7 +835,7 @@ static int mime_hdr_addparam(MIME_HEADER *mhdr, char *name, char *value)
|
||||
tmpname = BUF_strdup(name);
|
||||
if(!tmpname) return 0;
|
||||
for(p = tmpname ; *p; p++) {
|
||||
c = (unsigned char)*p;
|
||||
c = *p;
|
||||
if(isupper(c)) {
|
||||
c = tolower(c);
|
||||
*p = c;
|
||||
@ -862,17 +858,12 @@ static int mime_hdr_addparam(MIME_HEADER *mhdr, char *name, char *value)
|
||||
static int mime_hdr_cmp(const MIME_HEADER * const *a,
|
||||
const MIME_HEADER * const *b)
|
||||
{
|
||||
if (!(*a)->name || !(*b)->name)
|
||||
return !!(*a)->name - !!(*b)->name;
|
||||
|
||||
return(strcmp((*a)->name, (*b)->name));
|
||||
}
|
||||
|
||||
static int mime_param_cmp(const MIME_PARAM * const *a,
|
||||
const MIME_PARAM * const *b)
|
||||
{
|
||||
if (!(*a)->param_name || !(*b)->param_name)
|
||||
return !!(*a)->param_name - !!(*b)->param_name;
|
||||
return(strcmp((*a)->param_name, (*b)->param_name));
|
||||
}
|
||||
|
||||
|
38
deps/openssl/openssl/crypto/asn1/n_pkey.c
vendored
38
deps/openssl/openssl/crypto/asn1/n_pkey.c
vendored
@ -129,7 +129,6 @@ int i2d_RSA_NET(const RSA *a, unsigned char **pp,
|
||||
unsigned char buf[256],*zz;
|
||||
unsigned char key[EVP_MAX_KEY_LENGTH];
|
||||
EVP_CIPHER_CTX ctx;
|
||||
EVP_CIPHER_CTX_init(&ctx);
|
||||
|
||||
if (a == NULL) return(0);
|
||||
|
||||
@ -207,28 +206,24 @@ int i2d_RSA_NET(const RSA *a, unsigned char **pp,
|
||||
i = strlen((char *)buf);
|
||||
/* If the key is used for SGC the algorithm is modified a little. */
|
||||
if(sgckey) {
|
||||
if (!EVP_Digest(buf, i, buf, NULL, EVP_md5(), NULL))
|
||||
goto err;
|
||||
EVP_Digest(buf, i, buf, NULL, EVP_md5(), NULL);
|
||||
memcpy(buf + 16, "SGCKEYSALT", 10);
|
||||
i = 26;
|
||||
}
|
||||
|
||||
if (!EVP_BytesToKey(EVP_rc4(),EVP_md5(),NULL,buf,i,1,key,NULL))
|
||||
goto err;
|
||||
EVP_BytesToKey(EVP_rc4(),EVP_md5(),NULL,buf,i,1,key,NULL);
|
||||
OPENSSL_cleanse(buf,256);
|
||||
|
||||
/* Encrypt private key in place */
|
||||
zz = enckey->enckey->digest->data;
|
||||
if (!EVP_EncryptInit_ex(&ctx,EVP_rc4(),NULL,key,NULL))
|
||||
goto err;
|
||||
if (!EVP_EncryptUpdate(&ctx,zz,&i,zz,pkeylen))
|
||||
goto err;
|
||||
if (!EVP_EncryptFinal_ex(&ctx,zz + i,&j))
|
||||
goto err;
|
||||
EVP_CIPHER_CTX_init(&ctx);
|
||||
EVP_EncryptInit_ex(&ctx,EVP_rc4(),NULL,key,NULL);
|
||||
EVP_EncryptUpdate(&ctx,zz,&i,zz,pkeylen);
|
||||
EVP_EncryptFinal_ex(&ctx,zz + i,&j);
|
||||
EVP_CIPHER_CTX_cleanup(&ctx);
|
||||
|
||||
ret = i2d_NETSCAPE_ENCRYPTED_PKEY(enckey, pp);
|
||||
err:
|
||||
EVP_CIPHER_CTX_cleanup(&ctx);
|
||||
NETSCAPE_ENCRYPTED_PKEY_free(enckey);
|
||||
NETSCAPE_PKEY_free(pkey);
|
||||
return(ret);
|
||||
@ -293,7 +288,6 @@ static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os,
|
||||
const unsigned char *zz;
|
||||
unsigned char key[EVP_MAX_KEY_LENGTH];
|
||||
EVP_CIPHER_CTX ctx;
|
||||
EVP_CIPHER_CTX_init(&ctx);
|
||||
|
||||
i=cb((char *)buf,256,"Enter Private Key password:",0);
|
||||
if (i != 0)
|
||||
@ -304,22 +298,19 @@ static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os,
|
||||
|
||||
i = strlen((char *)buf);
|
||||
if(sgckey){
|
||||
if (!EVP_Digest(buf, i, buf, NULL, EVP_md5(), NULL))
|
||||
goto err;
|
||||
EVP_Digest(buf, i, buf, NULL, EVP_md5(), NULL);
|
||||
memcpy(buf + 16, "SGCKEYSALT", 10);
|
||||
i = 26;
|
||||
}
|
||||
|
||||
if (!EVP_BytesToKey(EVP_rc4(),EVP_md5(),NULL,buf,i,1,key,NULL))
|
||||
goto err;
|
||||
EVP_BytesToKey(EVP_rc4(),EVP_md5(),NULL,buf,i,1,key,NULL);
|
||||
OPENSSL_cleanse(buf,256);
|
||||
|
||||
if (!EVP_DecryptInit_ex(&ctx,EVP_rc4(),NULL, key,NULL))
|
||||
goto err;
|
||||
if (!EVP_DecryptUpdate(&ctx,os->data,&i,os->data,os->length))
|
||||
goto err;
|
||||
if (!EVP_DecryptFinal_ex(&ctx,&(os->data[i]),&j))
|
||||
goto err;
|
||||
EVP_CIPHER_CTX_init(&ctx);
|
||||
EVP_DecryptInit_ex(&ctx,EVP_rc4(),NULL, key,NULL);
|
||||
EVP_DecryptUpdate(&ctx,os->data,&i,os->data,os->length);
|
||||
EVP_DecryptFinal_ex(&ctx,&(os->data[i]),&j);
|
||||
EVP_CIPHER_CTX_cleanup(&ctx);
|
||||
os->length=i+j;
|
||||
|
||||
zz=os->data;
|
||||
@ -337,7 +328,6 @@ static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os,
|
||||
goto err;
|
||||
}
|
||||
err:
|
||||
EVP_CIPHER_CTX_cleanup(&ctx);
|
||||
NETSCAPE_PKEY_free(pkey);
|
||||
return(ret);
|
||||
}
|
||||
|
143
deps/openssl/openssl/crypto/asn1/p5_pbev2.c
vendored
143
deps/openssl/openssl/crypto/asn1/p5_pbev2.c
vendored
@ -91,10 +91,12 @@ X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,
|
||||
unsigned char *aiv, int prf_nid)
|
||||
{
|
||||
X509_ALGOR *scheme = NULL, *kalg = NULL, *ret = NULL;
|
||||
int alg_nid, keylen;
|
||||
int alg_nid;
|
||||
EVP_CIPHER_CTX ctx;
|
||||
unsigned char iv[EVP_MAX_IV_LENGTH];
|
||||
PBKDF2PARAM *kdf = NULL;
|
||||
PBE2PARAM *pbe2 = NULL;
|
||||
ASN1_OCTET_STRING *osalt = NULL;
|
||||
ASN1_OBJECT *obj;
|
||||
|
||||
alg_nid = EVP_CIPHER_type(cipher);
|
||||
@ -125,8 +127,7 @@ X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,
|
||||
EVP_CIPHER_CTX_init(&ctx);
|
||||
|
||||
/* Dummy cipherinit to just setup the IV, and PRF */
|
||||
if (!EVP_CipherInit_ex(&ctx, cipher, NULL, NULL, iv, 0))
|
||||
goto err;
|
||||
EVP_CipherInit_ex(&ctx, cipher, NULL, NULL, iv, 0);
|
||||
if(EVP_CIPHER_param_to_asn1(&ctx, scheme->parameter) < 0) {
|
||||
ASN1err(ASN1_F_PKCS5_PBE2_SET_IV,
|
||||
ASN1_R_ERROR_SETTING_CIPHER_PARAMS);
|
||||
@ -144,21 +145,55 @@ X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,
|
||||
}
|
||||
EVP_CIPHER_CTX_cleanup(&ctx);
|
||||
|
||||
if(!(kdf = PBKDF2PARAM_new())) goto merr;
|
||||
if(!(osalt = M_ASN1_OCTET_STRING_new())) goto merr;
|
||||
|
||||
if (!saltlen) saltlen = PKCS5_SALT_LEN;
|
||||
if (!(osalt->data = OPENSSL_malloc (saltlen))) goto merr;
|
||||
osalt->length = saltlen;
|
||||
if (salt) memcpy (osalt->data, salt, saltlen);
|
||||
else if (RAND_pseudo_bytes (osalt->data, saltlen) < 0) goto merr;
|
||||
|
||||
if(iter <= 0) iter = PKCS5_DEFAULT_ITER;
|
||||
if(!ASN1_INTEGER_set(kdf->iter, iter)) goto merr;
|
||||
|
||||
/* Now include salt in kdf structure */
|
||||
kdf->salt->value.octet_string = osalt;
|
||||
kdf->salt->type = V_ASN1_OCTET_STRING;
|
||||
osalt = NULL;
|
||||
|
||||
/* If its RC2 then we'd better setup the key length */
|
||||
|
||||
if(alg_nid == NID_rc2_cbc)
|
||||
keylen = EVP_CIPHER_key_length(cipher);
|
||||
else
|
||||
keylen = -1;
|
||||
if(alg_nid == NID_rc2_cbc) {
|
||||
if(!(kdf->keylength = M_ASN1_INTEGER_new())) goto merr;
|
||||
if(!ASN1_INTEGER_set (kdf->keylength,
|
||||
EVP_CIPHER_key_length(cipher))) goto merr;
|
||||
}
|
||||
|
||||
/* Setup keyfunc */
|
||||
/* prf can stay NULL if we are using hmacWithSHA1 */
|
||||
if (prf_nid != NID_hmacWithSHA1)
|
||||
{
|
||||
kdf->prf = X509_ALGOR_new();
|
||||
if (!kdf->prf)
|
||||
goto merr;
|
||||
X509_ALGOR_set0(kdf->prf, OBJ_nid2obj(prf_nid),
|
||||
V_ASN1_NULL, NULL);
|
||||
}
|
||||
|
||||
X509_ALGOR_free(pbe2->keyfunc);
|
||||
/* Now setup the PBE2PARAM keyfunc structure */
|
||||
|
||||
pbe2->keyfunc = PKCS5_pbkdf2_set(iter, salt, saltlen, prf_nid, keylen);
|
||||
pbe2->keyfunc->algorithm = OBJ_nid2obj(NID_id_pbkdf2);
|
||||
|
||||
if (!pbe2->keyfunc)
|
||||
goto merr;
|
||||
/* Encode PBKDF2PARAM into parameter of pbe2 */
|
||||
|
||||
if(!(pbe2->keyfunc->parameter = ASN1_TYPE_new())) goto merr;
|
||||
|
||||
if(!ASN1_item_pack(kdf, ASN1_ITEM_rptr(PBKDF2PARAM),
|
||||
&pbe2->keyfunc->parameter->value.sequence)) goto merr;
|
||||
pbe2->keyfunc->parameter->type = V_ASN1_SEQUENCE;
|
||||
|
||||
PBKDF2PARAM_free(kdf);
|
||||
kdf = NULL;
|
||||
|
||||
/* Now set up top level AlgorithmIdentifier */
|
||||
|
||||
@ -184,6 +219,8 @@ X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,
|
||||
err:
|
||||
PBE2PARAM_free(pbe2);
|
||||
/* Note 'scheme' is freed as part of pbe2 */
|
||||
M_ASN1_OCTET_STRING_free(osalt);
|
||||
PBKDF2PARAM_free(kdf);
|
||||
X509_ALGOR_free(kalg);
|
||||
X509_ALGOR_free(ret);
|
||||
|
||||
@ -196,85 +233,3 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
|
||||
{
|
||||
return PKCS5_pbe2_set_iv(cipher, iter, salt, saltlen, NULL, -1);
|
||||
}
|
||||
|
||||
X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen,
|
||||
int prf_nid, int keylen)
|
||||
{
|
||||
X509_ALGOR *keyfunc = NULL;
|
||||
PBKDF2PARAM *kdf = NULL;
|
||||
ASN1_OCTET_STRING *osalt = NULL;
|
||||
|
||||
if(!(kdf = PBKDF2PARAM_new()))
|
||||
goto merr;
|
||||
if(!(osalt = M_ASN1_OCTET_STRING_new()))
|
||||
goto merr;
|
||||
|
||||
kdf->salt->value.octet_string = osalt;
|
||||
kdf->salt->type = V_ASN1_OCTET_STRING;
|
||||
|
||||
if (!saltlen)
|
||||
saltlen = PKCS5_SALT_LEN;
|
||||
if (!(osalt->data = OPENSSL_malloc (saltlen)))
|
||||
goto merr;
|
||||
|
||||
osalt->length = saltlen;
|
||||
|
||||
if (salt)
|
||||
memcpy (osalt->data, salt, saltlen);
|
||||
else if (RAND_pseudo_bytes (osalt->data, saltlen) < 0)
|
||||
goto merr;
|
||||
|
||||
if(iter <= 0)
|
||||
iter = PKCS5_DEFAULT_ITER;
|
||||
|
||||
if(!ASN1_INTEGER_set(kdf->iter, iter))
|
||||
goto merr;
|
||||
|
||||
/* If have a key len set it up */
|
||||
|
||||
if(keylen > 0)
|
||||
{
|
||||
if(!(kdf->keylength = M_ASN1_INTEGER_new()))
|
||||
goto merr;
|
||||
if(!ASN1_INTEGER_set (kdf->keylength, keylen))
|
||||
goto merr;
|
||||
}
|
||||
|
||||
/* prf can stay NULL if we are using hmacWithSHA1 */
|
||||
if (prf_nid > 0 && prf_nid != NID_hmacWithSHA1)
|
||||
{
|
||||
kdf->prf = X509_ALGOR_new();
|
||||
if (!kdf->prf)
|
||||
goto merr;
|
||||
X509_ALGOR_set0(kdf->prf, OBJ_nid2obj(prf_nid),
|
||||
V_ASN1_NULL, NULL);
|
||||
}
|
||||
|
||||
/* Finally setup the keyfunc structure */
|
||||
|
||||
keyfunc = X509_ALGOR_new();
|
||||
if (!keyfunc)
|
||||
goto merr;
|
||||
|
||||
keyfunc->algorithm = OBJ_nid2obj(NID_id_pbkdf2);
|
||||
|
||||
/* Encode PBKDF2PARAM into parameter of pbe2 */
|
||||
|
||||
if(!(keyfunc->parameter = ASN1_TYPE_new()))
|
||||
goto merr;
|
||||
|
||||
if(!ASN1_item_pack(kdf, ASN1_ITEM_rptr(PBKDF2PARAM),
|
||||
&keyfunc->parameter->value.sequence))
|
||||
goto merr;
|
||||
keyfunc->parameter->type = V_ASN1_SEQUENCE;
|
||||
|
||||
PBKDF2PARAM_free(kdf);
|
||||
return keyfunc;
|
||||
|
||||
merr:
|
||||
ASN1err(ASN1_F_PKCS5_PBKDF2_SET,ERR_R_MALLOC_FAILURE);
|
||||
PBKDF2PARAM_free(kdf);
|
||||
X509_ALGOR_free(keyfunc);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
3
deps/openssl/openssl/crypto/asn1/t_crl.c
vendored
3
deps/openssl/openssl/crypto/asn1/t_crl.c
vendored
@ -94,7 +94,8 @@ int X509_CRL_print(BIO *out, X509_CRL *x)
|
||||
l = X509_CRL_get_version(x);
|
||||
BIO_printf(out, "%8sVersion %lu (0x%lx)\n", "", l+1, l);
|
||||
i = OBJ_obj2nid(x->sig_alg->algorithm);
|
||||
X509_signature_print(out, x->sig_alg, NULL);
|
||||
BIO_printf(out, "%8sSignature Algorithm: %s\n", "",
|
||||
(i == NID_undef) ? "NONE" : OBJ_nid2ln(i));
|
||||
p=X509_NAME_oneline(X509_CRL_get_issuer(x),NULL,0);
|
||||
BIO_printf(out,"%8sIssuer: %s\n","",p);
|
||||
OPENSSL_free(p);
|
||||
|
55
deps/openssl/openssl/crypto/asn1/t_x509.c
vendored
55
deps/openssl/openssl/crypto/asn1/t_x509.c
vendored
@ -72,7 +72,6 @@
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/x509v3.h>
|
||||
#include "asn1_locl.h"
|
||||
|
||||
#ifndef OPENSSL_NO_FP_API
|
||||
int X509_print_fp(FILE *fp, X509 *x)
|
||||
@ -138,10 +137,10 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
|
||||
if (BIO_write(bp," Serial Number:",22) <= 0) goto err;
|
||||
|
||||
bs=X509_get_serialNumber(x);
|
||||
if (bs->length <= (int)sizeof(long))
|
||||
if (bs->length <= 4)
|
||||
{
|
||||
l=ASN1_INTEGER_get(bs);
|
||||
if (bs->type == V_ASN1_NEG_INTEGER)
|
||||
if (l < 0)
|
||||
{
|
||||
l= -l;
|
||||
neg="-";
|
||||
@ -168,16 +167,12 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
|
||||
|
||||
if(!(cflag & X509_FLAG_NO_SIGNAME))
|
||||
{
|
||||
if(X509_signature_print(bp, x->sig_alg, NULL) <= 0)
|
||||
goto err;
|
||||
#if 0
|
||||
if (BIO_printf(bp,"%8sSignature Algorithm: ","") <= 0)
|
||||
goto err;
|
||||
if (i2a_ASN1_OBJECT(bp, ci->signature->algorithm) <= 0)
|
||||
goto err;
|
||||
if (BIO_puts(bp, "\n") <= 0)
|
||||
goto err;
|
||||
#endif
|
||||
}
|
||||
|
||||
if(!(cflag & X509_FLAG_NO_ISSUER))
|
||||
@ -260,8 +255,7 @@ int X509_ocspid_print (BIO *bp, X509 *x)
|
||||
goto err;
|
||||
i2d_X509_NAME(x->cert_info->subject, &dertmp);
|
||||
|
||||
if (!EVP_Digest(der, derlen, SHA1md, NULL, EVP_sha1(), NULL))
|
||||
goto err;
|
||||
EVP_Digest(der, derlen, SHA1md, NULL, EVP_sha1(), NULL);
|
||||
for (i=0; i < SHA_DIGEST_LENGTH; i++)
|
||||
{
|
||||
if (BIO_printf(bp,"%02X",SHA1md[i]) <= 0) goto err;
|
||||
@ -274,10 +268,8 @@ int X509_ocspid_print (BIO *bp, X509 *x)
|
||||
if (BIO_printf(bp,"\n Public key OCSP hash: ") <= 0)
|
||||
goto err;
|
||||
|
||||
if (!EVP_Digest(x->cert_info->key->public_key->data,
|
||||
x->cert_info->key->public_key->length,
|
||||
SHA1md, NULL, EVP_sha1(), NULL))
|
||||
goto err;
|
||||
EVP_Digest(x->cert_info->key->public_key->data,
|
||||
x->cert_info->key->public_key->length, SHA1md, NULL, EVP_sha1(), NULL);
|
||||
for (i=0; i < SHA_DIGEST_LENGTH; i++)
|
||||
{
|
||||
if (BIO_printf(bp,"%02X",SHA1md[i]) <= 0)
|
||||
@ -291,50 +283,23 @@ err:
|
||||
return(0);
|
||||
}
|
||||
|
||||
int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent)
|
||||
int X509_signature_print(BIO *bp, X509_ALGOR *sigalg, ASN1_STRING *sig)
|
||||
{
|
||||
const unsigned char *s;
|
||||
unsigned char *s;
|
||||
int i, n;
|
||||
if (BIO_puts(bp," Signature Algorithm: ") <= 0) return 0;
|
||||
if (i2a_ASN1_OBJECT(bp, sigalg->algorithm) <= 0) return 0;
|
||||
|
||||
n=sig->length;
|
||||
s=sig->data;
|
||||
for (i=0; i<n; i++)
|
||||
{
|
||||
if ((i%18) == 0)
|
||||
{
|
||||
if (BIO_write(bp,"\n",1) <= 0) return 0;
|
||||
if (BIO_indent(bp, indent, indent) <= 0) return 0;
|
||||
}
|
||||
if (BIO_write(bp,"\n ",9) <= 0) return 0;
|
||||
if (BIO_printf(bp,"%02x%s",s[i],
|
||||
((i+1) == n)?"":":") <= 0) return 0;
|
||||
}
|
||||
if (BIO_write(bp,"\n",1) != 1) return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int X509_signature_print(BIO *bp, X509_ALGOR *sigalg, ASN1_STRING *sig)
|
||||
{
|
||||
int sig_nid;
|
||||
if (BIO_puts(bp," Signature Algorithm: ") <= 0) return 0;
|
||||
if (i2a_ASN1_OBJECT(bp, sigalg->algorithm) <= 0) return 0;
|
||||
|
||||
sig_nid = OBJ_obj2nid(sigalg->algorithm);
|
||||
if (sig_nid != NID_undef)
|
||||
{
|
||||
int pkey_nid, dig_nid;
|
||||
const EVP_PKEY_ASN1_METHOD *ameth;
|
||||
if (OBJ_find_sigid_algs(sig_nid, &dig_nid, &pkey_nid))
|
||||
{
|
||||
ameth = EVP_PKEY_asn1_find(NULL, pkey_nid);
|
||||
if (ameth && ameth->sig_print)
|
||||
return ameth->sig_print(bp, sigalg, sig, 9, 0);
|
||||
}
|
||||
}
|
||||
if (sig)
|
||||
return X509_signature_dump(bp, sig, 9);
|
||||
else if (BIO_puts(bp, "\n") <= 0)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user