deps: update openssl to 1.0.1g
authorFedor Indutny <fedor@indutny.com>
Mon, 7 Apr 2014 20:58:37 +0000 (00:58 +0400)
committerFedor Indutny <fedor@indutny.com>
Mon, 7 Apr 2014 20:58:37 +0000 (00:58 +0400)
256 files changed:
deps/openssl/asm/Makefile
deps/openssl/asm/x64-elf-gas/aes/aes-x86_64.s
deps/openssl/asm/x64-elf-gas/aes/bsaes-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-elf-gas/aes/vpaes-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-elf-gas/bn/x86_64-gf2m.s [new file with mode: 0644]
deps/openssl/asm/x64-elf-gas/bn/x86_64-mont5.s [new file with mode: 0644]
deps/openssl/asm/x64-elf-gas/modes/ghash-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-elf-gas/sha/sha256-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-elf-gas/sha/sha512-x86_64.s
deps/openssl/asm/x64-macosx-gas/aes/aes-x86_64.s
deps/openssl/asm/x64-macosx-gas/aes/bsaes-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-macosx-gas/aes/vpaes-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-macosx-gas/bn/x86_64-gf2m.s [new file with mode: 0644]
deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont5.s [new file with mode: 0644]
deps/openssl/asm/x64-macosx-gas/modes/ghash-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-macosx-gas/sha/sha256-x86_64.s [new file with mode: 0644]
deps/openssl/asm/x64-macosx-gas/sha/sha512-x86_64.s
deps/openssl/asm/x64-win32-masm/aes/aes-x86_64.asm
deps/openssl/asm/x64-win32-masm/aes/bsaes-x86_64.asm [new file with mode: 0644]
deps/openssl/asm/x64-win32-masm/aes/vpaes-x86_64.asm [new file with mode: 0644]
deps/openssl/asm/x64-win32-masm/aes/vpaesni-x86_64.asm [new file with mode: 0644]
deps/openssl/asm/x64-win32-masm/bn/x86_64-gf2m.asm [new file with mode: 0644]
deps/openssl/asm/x64-win32-masm/bn/x86_64-mont5.asm [new file with mode: 0644]
deps/openssl/asm/x64-win32-masm/modes/ghash-x86_64.asm [new file with mode: 0644]
deps/openssl/asm/x64-win32-masm/sha/sha256-x86_64.asm [new file with mode: 0644]
deps/openssl/asm/x64-win32-masm/sha/sha512-x86_64.asm
deps/openssl/asm/x86-elf-gas/aes/aes-586.s
deps/openssl/asm/x86-elf-gas/aes/vpaes-x86.s [new file with mode: 0644]
deps/openssl/asm/x86-elf-gas/modes/ghash-x86.s [new file with mode: 0644]
deps/openssl/asm/x86-elf-gas/x86cpuid.s
deps/openssl/asm/x86-macosx-gas/aes/aes-586.s
deps/openssl/asm/x86-macosx-gas/aes/vpaes-x86.s [new file with mode: 0644]
deps/openssl/asm/x86-macosx-gas/modes/ghash-x86.s [new file with mode: 0644]
deps/openssl/asm/x86-macosx-gas/x86cpuid.s
deps/openssl/asm/x86-win32-masm/aes/aes-586.asm
deps/openssl/asm/x86-win32-masm/aes/vpaes-x86.asm [new file with mode: 0644]
deps/openssl/asm/x86-win32-masm/modes/ghash-x86.asm [new file with mode: 0644]
deps/openssl/asm/x86-win32-masm/x86cpuid.asm
deps/openssl/config/opensslconf.h
deps/openssl/openssl.gyp
deps/openssl/openssl/CHANGES
deps/openssl/openssl/Configure
deps/openssl/openssl/FAQ
deps/openssl/openssl/Makefile
deps/openssl/openssl/Makefile.bak [new file with mode: 0644]
deps/openssl/openssl/Makefile.org
deps/openssl/openssl/NEWS
deps/openssl/openssl/README
deps/openssl/openssl/apps/Makefile
deps/openssl/openssl/apps/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/apps/apps.c
deps/openssl/openssl/apps/apps.h
deps/openssl/openssl/apps/crl.c
deps/openssl/openssl/apps/dgst.c
deps/openssl/openssl/apps/ecparam.c
deps/openssl/openssl/apps/openssl.c
deps/openssl/openssl/apps/pkcs12.c
deps/openssl/openssl/apps/req.c
deps/openssl/openssl/config
deps/openssl/openssl/crypto/Makefile
deps/openssl/openssl/crypto/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/aes/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/aes/asm/aes-586.pl
deps/openssl/openssl/crypto/aes/asm/aes-parisc.pl
deps/openssl/openssl/crypto/aes/asm/aes-x86_64.pl
deps/openssl/openssl/crypto/aes/asm/bsaes-x86_64.pl
deps/openssl/openssl/crypto/aes/asm/vpaes-x86_64.pl
deps/openssl/openssl/crypto/armcap.c
deps/openssl/openssl/crypto/asn1/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/asn1/a_int.c
deps/openssl/openssl/crypto/asn1/a_strex.c
deps/openssl/openssl/crypto/asn1/asn1_err.c
deps/openssl/openssl/crypto/bf/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/bio/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/bio/bss_dgram.c
deps/openssl/openssl/crypto/bio/bss_log.c
deps/openssl/openssl/crypto/bn/Makefile
deps/openssl/openssl/crypto/bn/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/bn/asm/mips-mont.pl
deps/openssl/openssl/crypto/bn/asm/mips.pl
deps/openssl/openssl/crypto/bn/asm/parisc-mont.pl
deps/openssl/openssl/crypto/bn/asm/x86_64-gf2m.pl
deps/openssl/openssl/crypto/bn/asm/x86_64-mont5.pl
deps/openssl/openssl/crypto/bn/bn.h
deps/openssl/openssl/crypto/bn/bn_lib.c
deps/openssl/openssl/crypto/bn/bn_nist.c
deps/openssl/openssl/crypto/buffer/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/buffer/buffer.c
deps/openssl/openssl/crypto/buffer/buffer.h
deps/openssl/openssl/crypto/camellia/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/cast/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/cmac/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/cms/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/cms/cms_lib.c
deps/openssl/openssl/crypto/comp/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/conf/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/cryptlib.c
deps/openssl/openssl/crypto/des/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/dh/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/dsa/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/dso/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/ec/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/ec/ec2_mult.c
deps/openssl/openssl/crypto/ec/ec_ameth.c
deps/openssl/openssl/crypto/ec/ec_asn1.c
deps/openssl/openssl/crypto/ec/ec_lib.c
deps/openssl/openssl/crypto/ecdh/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/ecdsa/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/engine/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/engine/eng_list.c
deps/openssl/openssl/crypto/engine/eng_rdrand.c
deps/openssl/openssl/crypto/err/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/evp/Makefile
deps/openssl/openssl/crypto/evp/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/evp/bio_b64.c
deps/openssl/openssl/crypto/evp/digest.c
deps/openssl/openssl/crypto/evp/e_aes.c
deps/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
deps/openssl/openssl/crypto/evp/e_des3.c
deps/openssl/openssl/crypto/evp/p5_crpt2.c
deps/openssl/openssl/crypto/hmac/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/idea/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/krb5/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/lhash/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/md4/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/md5/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/mdc2/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/modes/Makefile
deps/openssl/openssl/crypto/modes/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/modes/asm/ghash-alpha.pl
deps/openssl/openssl/crypto/modes/asm/ghash-parisc.pl
deps/openssl/openssl/crypto/modes/cbc128.c
deps/openssl/openssl/crypto/modes/ccm128.c
deps/openssl/openssl/crypto/modes/cts128.c
deps/openssl/openssl/crypto/modes/gcm128.c
deps/openssl/openssl/crypto/modes/modes_lcl.h
deps/openssl/openssl/crypto/objects/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/ocsp/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/opensslv.h
deps/openssl/openssl/crypto/pariscid.pl
deps/openssl/openssl/crypto/pem/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/pem/pem_info.c
deps/openssl/openssl/crypto/pkcs12/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/pkcs12/p12_crt.c
deps/openssl/openssl/crypto/pkcs7/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/pqueue/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/rand/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/rand/md_rand.c
deps/openssl/openssl/crypto/rand/rand.h
deps/openssl/openssl/crypto/rand/rand_err.c
deps/openssl/openssl/crypto/rand/rand_lib.c
deps/openssl/openssl/crypto/rand/rand_win.c
deps/openssl/openssl/crypto/rc2/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/rc4/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/rc4/asm/rc4-parisc.pl
deps/openssl/openssl/crypto/ripemd/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/rsa/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/rsa/rsa_ameth.c
deps/openssl/openssl/crypto/rsa/rsa_chk.c
deps/openssl/openssl/crypto/rsa/rsa_pmeth.c
deps/openssl/openssl/crypto/seed/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/sha/Makefile
deps/openssl/openssl/crypto/sha/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/sha/asm/sha1-parisc.pl
deps/openssl/openssl/crypto/sha/asm/sha1-x86_64.pl
deps/openssl/openssl/crypto/sha/asm/sha256-x86_64.pl [new file with mode: 0755]
deps/openssl/openssl/crypto/sha/asm/sha512-mips.pl
deps/openssl/openssl/crypto/sha/asm/sha512-parisc.pl
deps/openssl/openssl/crypto/sha/asm/sha512-x86_64.pl
deps/openssl/openssl/crypto/sha/sha512.c
deps/openssl/openssl/crypto/srp/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/srp/srp_grps.h
deps/openssl/openssl/crypto/srp/srp_lib.c
deps/openssl/openssl/crypto/stack/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/symhacks.h
deps/openssl/openssl/crypto/ts/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/txt_db/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/ui/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/whrlpool/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/x509/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/x509/by_dir.c
deps/openssl/openssl/crypto/x509/x509_vfy.c
deps/openssl/openssl/crypto/x509/x_all.c
deps/openssl/openssl/crypto/x509v3/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/crypto/x86cpuid.pl
deps/openssl/openssl/demos/cms/cms_comp.c
deps/openssl/openssl/demos/cms/cms_dec.c
deps/openssl/openssl/demos/cms/cms_sign.c
deps/openssl/openssl/demos/x509/mkreq.c
deps/openssl/openssl/doc/apps/config.pod
deps/openssl/openssl/doc/apps/crl.pod
deps/openssl/openssl/doc/apps/ec.pod
deps/openssl/openssl/doc/apps/pkcs12.pod
deps/openssl/openssl/doc/apps/req.pod
deps/openssl/openssl/doc/apps/rsa.pod
deps/openssl/openssl/doc/apps/s_client.pod
deps/openssl/openssl/doc/apps/s_server.pod
deps/openssl/openssl/doc/apps/ts.pod
deps/openssl/openssl/doc/apps/tsget.pod
deps/openssl/openssl/doc/crypto/BN_BLINDING_new.pod
deps/openssl/openssl/doc/crypto/ERR_get_error.pod
deps/openssl/openssl/doc/crypto/EVP_BytesToKey.pod
deps/openssl/openssl/doc/crypto/EVP_EncryptInit.pod
deps/openssl/openssl/doc/crypto/EVP_PKEY_verifyrecover.pod [deleted file]
deps/openssl/openssl/doc/crypto/X509_STORE_CTX_get_error.pod
deps/openssl/openssl/doc/crypto/X509_VERIFY_PARAM_set_flags.pod
deps/openssl/openssl/doc/crypto/ecdsa.pod
deps/openssl/openssl/doc/crypto/pem.pod
deps/openssl/openssl/doc/ssl/SSL_CTX_set_client_CA_list.pod
deps/openssl/openssl/doc/ssl/SSL_CTX_set_options.pod
deps/openssl/openssl/doc/ssl/SSL_CTX_set_verify.pod
deps/openssl/openssl/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
deps/openssl/openssl/doc/ssl/SSL_accept.pod
deps/openssl/openssl/doc/ssl/SSL_connect.pod
deps/openssl/openssl/doc/ssl/SSL_do_handshake.pod
deps/openssl/openssl/doc/ssl/SSL_set_shutdown.pod
deps/openssl/openssl/doc/ssl/SSL_shutdown.pod
deps/openssl/openssl/e_os.h
deps/openssl/openssl/engines/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/engines/ccgost/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/engines/ccgost/gost89.h
deps/openssl/openssl/engines/ccgost/gosthash.c
deps/openssl/openssl/include/openssl/md2.h [deleted file]
deps/openssl/openssl/include/openssl/store.h [deleted file]
deps/openssl/openssl/ms/do_win64a.bat
deps/openssl/openssl/openssl.spec
deps/openssl/openssl/ssl/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/ssl/d1_both.c
deps/openssl/openssl/ssl/d1_clnt.c
deps/openssl/openssl/ssl/d1_lib.c
deps/openssl/openssl/ssl/d1_pkt.c
deps/openssl/openssl/ssl/d1_srvr.c
deps/openssl/openssl/ssl/kssl.h
deps/openssl/openssl/ssl/s23_clnt.c
deps/openssl/openssl/ssl/s3_both.c
deps/openssl/openssl/ssl/s3_cbc.c
deps/openssl/openssl/ssl/s3_clnt.c
deps/openssl/openssl/ssl/s3_lib.c
deps/openssl/openssl/ssl/s3_pkt.c
deps/openssl/openssl/ssl/s3_srvr.c
deps/openssl/openssl/ssl/ssl-lib.com
deps/openssl/openssl/ssl/ssl.h
deps/openssl/openssl/ssl/ssl3.h
deps/openssl/openssl/ssl/ssl_lib.c
deps/openssl/openssl/ssl/ssl_locl.h
deps/openssl/openssl/ssl/ssltest.c
deps/openssl/openssl/ssl/t1_enc.c
deps/openssl/openssl/ssl/t1_lib.c
deps/openssl/openssl/ssl/tls1.h
deps/openssl/openssl/test/Makefile.save [new file with mode: 0644]
deps/openssl/openssl/test/cms-test.pl
deps/openssl/openssl/test/ssltest.c
deps/openssl/openssl/util/libeay.num
deps/openssl/openssl/util/pl/BC-32.pl
deps/openssl/openssl/util/pl/VC-32.pl
deps/openssl/openssl/util/shlib_wrap.sh

index 9f54785..2218859 100644 (file)
@@ -1,9 +1,11 @@
+SED    ?= sed
 PERL   ?= perl
 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/aes/vpaes-x86.s \
        x86-elf-gas/bf/bf-686.s \
        x86-elf-gas/bn/x86-mont.s \
        x86-elf-gas/bn/x86.s \
@@ -19,22 +21,30 @@ OUTPUTS     = \
        x86-elf-gas/sha/sha256-586.s \
        x86-elf-gas/sha/sha512-586.s \
        x86-elf-gas/whrlpool/wp-mmx.s \
+       x86-elf-gas/modes/ghash-x86.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/vpaes-x86_64.s \
+       x64-elf-gas/aes/bsaes-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/bn/x86_64-mont5.s \
+       x64-elf-gas/bn/x86_64-gf2m.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/sha256-x86_64.s \
        x64-elf-gas/sha/sha512-x86_64.s \
        x64-elf-gas/whrlpool/wp-x86_64.s \
+       x64-elf-gas/modes/ghash-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/aes/vpaes-x86.s \
        x86-macosx-gas/bf/bf-686.s \
        x86-macosx-gas/bn/x86-mont.s \
        x86-macosx-gas/bn/x86.s \
@@ -50,22 +60,30 @@ OUTPUTS     = \
        x86-macosx-gas/sha/sha256-586.s \
        x86-macosx-gas/sha/sha512-586.s \
        x86-macosx-gas/whrlpool/wp-mmx.s \
+       x86-macosx-gas/modes/ghash-x86.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/vpaes-x86_64.s \
+       x64-macosx-gas/aes/bsaes-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/bn/x86_64-mont5.s \
+       x64-macosx-gas/bn/x86_64-gf2m.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/sha256-x86_64.s \
        x64-macosx-gas/sha/sha512-x86_64.s \
        x64-macosx-gas/whrlpool/wp-x86_64.s \
+       x64-macosx-gas/modes/ghash-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/aes/vpaes-x86.asm \
        x86-win32-masm/bf/bf-686.asm \
        x86-win32-masm/bn/x86-mont.asm \
        x86-win32-masm/bn/x86.asm \
@@ -81,19 +99,26 @@ OUTPUTS     = \
        x86-win32-masm/sha/sha256-586.asm \
        x86-win32-masm/sha/sha512-586.asm \
        x86-win32-masm/whrlpool/wp-mmx.asm \
+       x86-win32-masm/modes/ghash-x86.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/vpaes-x86_64.asm \
+       x64-win32-masm/aes/bsaes-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/bn/x86_64-mont5.asm \
+       x64-win32-masm/bn/x86_64-gf2m.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/sha256-x86_64.asm \
        x64-win32-masm/sha/sha512-x86_64.asm \
        x64-win32-masm/whrlpool/wp-x86_64.asm \
+       x64-win32-masm/modes/ghash-x86_64.asm \
        x64-win32-masm/x86_64cpuid.asm \
 
 x64-elf-gas/%.s x86-elf-gas/%.s:
@@ -102,6 +127,9 @@ x64-elf-gas/%.s x86-elf-gas/%.s:
 x64-macosx-gas/%.s x86-macosx-gas/%.s:
        $(PERL) $< macosx > $@
 
+x64-macosx-gas/%.s x86-macosx-gas/%.s:
+       $(PERL) $< macosx > $@
+
 x64-win32-masm/%.asm:
        $(PERL) $< masm > $@
 
@@ -111,7 +139,7 @@ x86-win32-masm/%.asm:
 .PHONY:        all
 all:   $(OUTPUTS)
        # strip trailing whitespace and final blank newline
-       sed -sri -e 's/\s+$$/\n/' -e '$$ { /^$$/d }' $^
+       $(SED) -sri -e 's/\s+$$/\n/' -e '$$ { /^$$/d }' $^
 
 clean:
        find . -iname '*.asm' -exec rm "{}" \;
@@ -119,45 +147,64 @@ clean:
 
 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/vpaes-x86_64.s: ../openssl/crypto/aes/asm/vpaes-x86_64.pl
+x64-elf-gas/aes/bsaes-x86_64.s: ../openssl/crypto/aes/asm/bsaes-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/bn/x86_64-mont5.s: ../openssl/crypto/bn/asm/x86_64-mont5.pl
+x64-elf-gas/bn/x86_64-gf2m.s: ../openssl/crypto/bn/asm/x86_64-gf2m.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/sha/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha256-x86_64.pl
 x64-elf-gas/whrlpool/wp-x86_64.s: ../openssl/crypto/whrlpool/asm/wp-x86_64.pl
+x64-elf-gas/modes/ghash-x86_64.s: ../openssl/crypto/modes/asm/ghash-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/vpaes-x86_64.s: ../openssl/crypto/aes/asm/vpaes-x86_64.pl
+x64-macosx-gas/aes/bsaes-x86_64.s: ../openssl/crypto/aes/asm/bsaes-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/bn/x86_64-mont5.s: ../openssl/crypto/bn/asm/x86_64-mont5.pl
+x64-macosx-gas/bn/x86_64-gf2m.s: ../openssl/crypto/bn/asm/x86_64-gf2m.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/sha256-x86_64.s: ../openssl/crypto/sha/asm/sha256-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/modes/ghash-x86_64.s: ../openssl/crypto/modes/asm/ghash-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/vpaes-x86_64.asm: ../openssl/crypto/aes/asm/vpaes-x86_64.pl
+x64-win32-masm/aes/bsaes-x86_64.asm: ../openssl/crypto/aes/asm/bsaes-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/bn/x86_64-mont5.asm: ../openssl/crypto/bn/asm/x86_64-mont5.pl
+x64-win32-masm/bn/x86_64-gf2m.asm: ../openssl/crypto/bn/asm/x86_64-gf2m.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/sha256-x86_64.asm: ../openssl/crypto/sha/asm/sha256-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/modes/ghash-x86_64.asm: ../openssl/crypto/modes/asm/ghash-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/aes/vpaes-x86.s: ../openssl/crypto/aes/asm/vpaes-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
@@ -173,9 +220,11 @@ x86-elf-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl
 x86-elf-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl
 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/modes/ghash-x86.s: ../openssl/crypto/modes/asm/ghash-x86.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/aes/vpaes-x86.s: ../openssl/crypto/aes/asm/vpaes-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
@@ -191,9 +240,11 @@ x86-macosx-gas/sha/sha1-586.s: ../openssl/crypto/sha/asm/sha1-586.pl
 x86-macosx-gas/sha/sha256-586.s: ../openssl/crypto/sha/asm/sha256-586.pl
 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/modes/ghash-x86.s: ../openssl/crypto/modes/asm/ghash-x86.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/aes/vpaes-x86.asm: ../openssl/crypto/aes/asm/vpaes-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
@@ -209,4 +260,5 @@ x86-win32-masm/sha/sha1-586.asm: ../openssl/crypto/sha/asm/sha1-586.pl
 x86-win32-masm/sha/sha256-586.asm: ../openssl/crypto/sha/asm/sha256-586.pl
 x86-win32-masm/sha/sha512-586.asm: ../openssl/crypto/sha/asm/sha512-586.pl
 x86-win32-masm/whrlpool/wp-mmx.asm: ../openssl/crypto/whrlpool/asm/wp-mmx.pl
+x86-win32-masm/modes/ghash-x86.asm: ../openssl/crypto/modes/asm/ghash-x86.pl
 x86-win32-masm/x86cpuid.asm: ../openssl/crypto/x86cpuid.pl
index e7c261f..49bf32e 100644 (file)
@@ -1335,8 +1335,8 @@ AES_cbc_encrypt:
        jb      .Lcbc_slow_prologue
        testq   $15,%rdx
        jnz     .Lcbc_slow_prologue
-
-
+       btl     $28,%r10d
+       jc      .Lcbc_slow_prologue
 
 
        leaq    -88-248(%rsp),%r15
diff --git a/deps/openssl/asm/x64-elf-gas/aes/bsaes-x86_64.s b/deps/openssl/asm/x64-elf-gas/aes/bsaes-x86_64.s
new file mode 100644 (file)
index 0000000..77754a3
--- /dev/null
@@ -0,0 +1,2507 @@
+.text
+
+
+
+
+
+.type  _bsaes_encrypt8,@function
+.align 64
+_bsaes_encrypt8:
+       leaq    .LBS0(%rip),%r11
+
+       movdqa  (%rax),%xmm8
+       leaq    16(%rax),%rax
+       movdqa  80(%r11),%xmm7
+       pxor    %xmm8,%xmm15
+       pxor    %xmm8,%xmm0
+.byte  102,68,15,56,0,255
+       pxor    %xmm8,%xmm1
+.byte  102,15,56,0,199
+       pxor    %xmm8,%xmm2
+.byte  102,15,56,0,207
+       pxor    %xmm8,%xmm3
+.byte  102,15,56,0,215
+       pxor    %xmm8,%xmm4
+.byte  102,15,56,0,223
+       pxor    %xmm8,%xmm5
+.byte  102,15,56,0,231
+       pxor    %xmm8,%xmm6
+.byte  102,15,56,0,239
+.byte  102,15,56,0,247
+_bsaes_encrypt8_bitslice:
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm5,%xmm9
+       psrlq   $1,%xmm5
+       movdqa  %xmm3,%xmm10
+       psrlq   $1,%xmm3
+       pxor    %xmm6,%xmm5
+       pxor    %xmm4,%xmm3
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm3
+       pxor    %xmm5,%xmm6
+       psllq   $1,%xmm5
+       pxor    %xmm3,%xmm4
+       psllq   $1,%xmm3
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm1,%xmm9
+       psrlq   $1,%xmm1
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm2,%xmm1
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm1
+       pand    %xmm7,%xmm15
+       pxor    %xmm1,%xmm2
+       psllq   $1,%xmm1
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm1
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm4,%xmm9
+       psrlq   $2,%xmm4
+       movdqa  %xmm3,%xmm10
+       psrlq   $2,%xmm3
+       pxor    %xmm6,%xmm4
+       pxor    %xmm5,%xmm3
+       pand    %xmm8,%xmm4
+       pand    %xmm8,%xmm3
+       pxor    %xmm4,%xmm6
+       psllq   $2,%xmm4
+       pxor    %xmm3,%xmm5
+       psllq   $2,%xmm3
+       pxor    %xmm9,%xmm4
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm2,%xmm0
+       pxor    %xmm1,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm2
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm1
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm2,%xmm9
+       psrlq   $4,%xmm2
+       movdqa  %xmm1,%xmm10
+       psrlq   $4,%xmm1
+       pxor    %xmm6,%xmm2
+       pxor    %xmm5,%xmm1
+       pand    %xmm7,%xmm2
+       pand    %xmm7,%xmm1
+       pxor    %xmm2,%xmm6
+       psllq   $4,%xmm2
+       pxor    %xmm1,%xmm5
+       psllq   $4,%xmm1
+       pxor    %xmm9,%xmm2
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm4,%xmm0
+       pxor    %xmm3,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm4
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm3
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       decl    %r10d
+       jmp     .Lenc_sbox
+.align 16
+.Lenc_loop:
+       pxor    0(%rax),%xmm15
+       pxor    16(%rax),%xmm0
+.byte  102,68,15,56,0,255
+       pxor    32(%rax),%xmm1
+.byte  102,15,56,0,199
+       pxor    48(%rax),%xmm2
+.byte  102,15,56,0,207
+       pxor    64(%rax),%xmm3
+.byte  102,15,56,0,215
+       pxor    80(%rax),%xmm4
+.byte  102,15,56,0,223
+       pxor    96(%rax),%xmm5
+.byte  102,15,56,0,231
+       pxor    112(%rax),%xmm6
+.byte  102,15,56,0,239
+       leaq    128(%rax),%rax
+.byte  102,15,56,0,247
+.Lenc_sbox:
+       pxor    %xmm5,%xmm4
+       pxor    %xmm0,%xmm1
+       pxor    %xmm15,%xmm2
+       pxor    %xmm1,%xmm5
+       pxor    %xmm15,%xmm4
+
+       pxor    %xmm2,%xmm5
+       pxor    %xmm6,%xmm2
+       pxor    %xmm4,%xmm6
+       pxor    %xmm3,%xmm2
+       pxor    %xmm4,%xmm3
+       pxor    %xmm0,%xmm2
+
+       pxor    %xmm6,%xmm1
+       pxor    %xmm4,%xmm0
+       movdqa  %xmm6,%xmm10
+       movdqa  %xmm0,%xmm9
+       movdqa  %xmm4,%xmm8
+       movdqa  %xmm1,%xmm12
+       movdqa  %xmm5,%xmm11
+
+       pxor    %xmm3,%xmm10
+       pxor    %xmm1,%xmm9
+       pxor    %xmm2,%xmm8
+       movdqa  %xmm10,%xmm13
+       pxor    %xmm3,%xmm12
+       movdqa  %xmm9,%xmm7
+       pxor    %xmm15,%xmm11
+       movdqa  %xmm10,%xmm14
+
+       por     %xmm8,%xmm9
+       por     %xmm11,%xmm10
+       pxor    %xmm7,%xmm14
+       pand    %xmm11,%xmm13
+       pxor    %xmm8,%xmm11
+       pand    %xmm8,%xmm7
+       pand    %xmm11,%xmm14
+       movdqa  %xmm2,%xmm11
+       pxor    %xmm15,%xmm11
+       pand    %xmm11,%xmm12
+       pxor    %xmm12,%xmm10
+       pxor    %xmm12,%xmm9
+       movdqa  %xmm6,%xmm12
+       movdqa  %xmm4,%xmm11
+       pxor    %xmm0,%xmm12
+       pxor    %xmm5,%xmm11
+       movdqa  %xmm12,%xmm8
+       pand    %xmm11,%xmm12
+       por     %xmm11,%xmm8
+       pxor    %xmm12,%xmm7
+       pxor    %xmm14,%xmm10
+       pxor    %xmm13,%xmm9
+       pxor    %xmm14,%xmm8
+       movdqa  %xmm1,%xmm11
+       pxor    %xmm13,%xmm7
+       movdqa  %xmm3,%xmm12
+       pxor    %xmm13,%xmm8
+       movdqa  %xmm0,%xmm13
+       pand    %xmm2,%xmm11
+       movdqa  %xmm6,%xmm14
+       pand    %xmm15,%xmm12
+       pand    %xmm4,%xmm13
+       por     %xmm5,%xmm14
+       pxor    %xmm11,%xmm10
+       pxor    %xmm12,%xmm9
+       pxor    %xmm13,%xmm8
+       pxor    %xmm14,%xmm7
+
+
+
+
+
+       movdqa  %xmm10,%xmm11
+       pand    %xmm8,%xmm10
+       pxor    %xmm9,%xmm11
+
+       movdqa  %xmm7,%xmm13
+       movdqa  %xmm11,%xmm14
+       pxor    %xmm10,%xmm13
+       pand    %xmm13,%xmm14
+
+       movdqa  %xmm8,%xmm12
+       pxor    %xmm9,%xmm14
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm9,%xmm10
+
+       pand    %xmm10,%xmm12
+
+       movdqa  %xmm13,%xmm9
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm12,%xmm9
+       pxor    %xmm12,%xmm8
+
+       pand    %xmm7,%xmm9
+
+       pxor    %xmm9,%xmm13
+       pxor    %xmm9,%xmm8
+
+       pand    %xmm14,%xmm13
+
+       pxor    %xmm11,%xmm13
+       movdqa  %xmm5,%xmm11
+       movdqa  %xmm4,%xmm7
+       movdqa  %xmm14,%xmm9
+       pxor    %xmm13,%xmm9
+       pand    %xmm5,%xmm9
+       pxor    %xmm4,%xmm5
+       pand    %xmm14,%xmm4
+       pand    %xmm13,%xmm5
+       pxor    %xmm4,%xmm5
+       pxor    %xmm9,%xmm4
+       pxor    %xmm15,%xmm11
+       pxor    %xmm2,%xmm7
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm15,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm2,%xmm15
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm2
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm15
+       pxor    %xmm11,%xmm7
+       pxor    %xmm2,%xmm15
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm2
+       pxor    %xmm11,%xmm5
+       pxor    %xmm11,%xmm15
+       pxor    %xmm7,%xmm4
+       pxor    %xmm7,%xmm2
+
+       movdqa  %xmm6,%xmm11
+       movdqa  %xmm0,%xmm7
+       pxor    %xmm3,%xmm11
+       pxor    %xmm1,%xmm7
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm3,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm1,%xmm3
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm1
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm3
+       pxor    %xmm11,%xmm7
+       pxor    %xmm1,%xmm3
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm1
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       pxor    %xmm13,%xmm10
+       pand    %xmm6,%xmm10
+       pxor    %xmm0,%xmm6
+       pand    %xmm14,%xmm0
+       pand    %xmm13,%xmm6
+       pxor    %xmm0,%xmm6
+       pxor    %xmm10,%xmm0
+       pxor    %xmm11,%xmm6
+       pxor    %xmm11,%xmm3
+       pxor    %xmm7,%xmm0
+       pxor    %xmm7,%xmm1
+       pxor    %xmm15,%xmm6
+       pxor    %xmm5,%xmm0
+       pxor    %xmm6,%xmm3
+       pxor    %xmm15,%xmm5
+       pxor    %xmm0,%xmm15
+
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       pxor    %xmm2,%xmm1
+       pxor    %xmm4,%xmm2
+       pxor    %xmm4,%xmm3
+
+       pxor    %xmm2,%xmm5
+       decl    %r10d
+       jl      .Lenc_done
+       pshufd  $147,%xmm15,%xmm7
+       pshufd  $147,%xmm0,%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $147,%xmm3,%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $147,%xmm5,%xmm10
+       pxor    %xmm9,%xmm3
+       pshufd  $147,%xmm2,%xmm11
+       pxor    %xmm10,%xmm5
+       pshufd  $147,%xmm6,%xmm12
+       pxor    %xmm11,%xmm2
+       pshufd  $147,%xmm1,%xmm13
+       pxor    %xmm12,%xmm6
+       pshufd  $147,%xmm4,%xmm14
+       pxor    %xmm13,%xmm1
+       pxor    %xmm14,%xmm4
+
+       pxor    %xmm15,%xmm8
+       pxor    %xmm4,%xmm7
+       pxor    %xmm4,%xmm8
+       pshufd  $78,%xmm15,%xmm15
+       pxor    %xmm0,%xmm9
+       pshufd  $78,%xmm0,%xmm0
+       pxor    %xmm2,%xmm12
+       pxor    %xmm7,%xmm15
+       pxor    %xmm6,%xmm13
+       pxor    %xmm8,%xmm0
+       pxor    %xmm5,%xmm11
+       pshufd  $78,%xmm2,%xmm7
+       pxor    %xmm1,%xmm14
+       pshufd  $78,%xmm6,%xmm8
+       pxor    %xmm3,%xmm10
+       pshufd  $78,%xmm5,%xmm2
+       pxor    %xmm4,%xmm10
+       pshufd  $78,%xmm4,%xmm6
+       pxor    %xmm4,%xmm11
+       pshufd  $78,%xmm1,%xmm5
+       pxor    %xmm11,%xmm7
+       pshufd  $78,%xmm3,%xmm1
+       pxor    %xmm12,%xmm8
+       pxor    %xmm10,%xmm2
+       pxor    %xmm14,%xmm6
+       pxor    %xmm13,%xmm5
+       movdqa  %xmm7,%xmm3
+       pxor    %xmm9,%xmm1
+       movdqa  %xmm8,%xmm4
+       movdqa  48(%r11),%xmm7
+       jnz     .Lenc_loop
+       movdqa  64(%r11),%xmm7
+       jmp     .Lenc_loop
+.align 16
+.Lenc_done:
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm1,%xmm9
+       psrlq   $1,%xmm1
+       movdqa  %xmm2,%xmm10
+       psrlq   $1,%xmm2
+       pxor    %xmm4,%xmm1
+       pxor    %xmm6,%xmm2
+       pand    %xmm7,%xmm1
+       pand    %xmm7,%xmm2
+       pxor    %xmm1,%xmm4
+       psllq   $1,%xmm1
+       pxor    %xmm2,%xmm6
+       psllq   $1,%xmm2
+       pxor    %xmm9,%xmm1
+       pxor    %xmm10,%xmm2
+       movdqa  %xmm3,%xmm9
+       psrlq   $1,%xmm3
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm5,%xmm3
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm3
+       pand    %xmm7,%xmm15
+       pxor    %xmm3,%xmm5
+       psllq   $1,%xmm3
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm3
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm6,%xmm9
+       psrlq   $2,%xmm6
+       movdqa  %xmm2,%xmm10
+       psrlq   $2,%xmm2
+       pxor    %xmm4,%xmm6
+       pxor    %xmm1,%xmm2
+       pand    %xmm8,%xmm6
+       pand    %xmm8,%xmm2
+       pxor    %xmm6,%xmm4
+       psllq   $2,%xmm6
+       pxor    %xmm2,%xmm1
+       psllq   $2,%xmm2
+       pxor    %xmm9,%xmm6
+       pxor    %xmm10,%xmm2
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm5,%xmm0
+       pxor    %xmm3,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm5
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm3
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm5,%xmm9
+       psrlq   $4,%xmm5
+       movdqa  %xmm3,%xmm10
+       psrlq   $4,%xmm3
+       pxor    %xmm4,%xmm5
+       pxor    %xmm1,%xmm3
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm3
+       pxor    %xmm5,%xmm4
+       psllq   $4,%xmm5
+       pxor    %xmm3,%xmm1
+       psllq   $4,%xmm3
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm6,%xmm0
+       pxor    %xmm2,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm6
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm2
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  (%rax),%xmm7
+       pxor    %xmm7,%xmm3
+       pxor    %xmm7,%xmm5
+       pxor    %xmm7,%xmm2
+       pxor    %xmm7,%xmm6
+       pxor    %xmm7,%xmm1
+       pxor    %xmm7,%xmm4
+       pxor    %xmm7,%xmm15
+       pxor    %xmm7,%xmm0
+       .byte   0xf3,0xc3
+.size  _bsaes_encrypt8,.-_bsaes_encrypt8
+
+.type  _bsaes_decrypt8,@function
+.align 64
+_bsaes_decrypt8:
+       leaq    .LBS0(%rip),%r11
+
+       movdqa  (%rax),%xmm8
+       leaq    16(%rax),%rax
+       movdqa  -48(%r11),%xmm7
+       pxor    %xmm8,%xmm15
+       pxor    %xmm8,%xmm0
+.byte  102,68,15,56,0,255
+       pxor    %xmm8,%xmm1
+.byte  102,15,56,0,199
+       pxor    %xmm8,%xmm2
+.byte  102,15,56,0,207
+       pxor    %xmm8,%xmm3
+.byte  102,15,56,0,215
+       pxor    %xmm8,%xmm4
+.byte  102,15,56,0,223
+       pxor    %xmm8,%xmm5
+.byte  102,15,56,0,231
+       pxor    %xmm8,%xmm6
+.byte  102,15,56,0,239
+.byte  102,15,56,0,247
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm5,%xmm9
+       psrlq   $1,%xmm5
+       movdqa  %xmm3,%xmm10
+       psrlq   $1,%xmm3
+       pxor    %xmm6,%xmm5
+       pxor    %xmm4,%xmm3
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm3
+       pxor    %xmm5,%xmm6
+       psllq   $1,%xmm5
+       pxor    %xmm3,%xmm4
+       psllq   $1,%xmm3
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm1,%xmm9
+       psrlq   $1,%xmm1
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm2,%xmm1
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm1
+       pand    %xmm7,%xmm15
+       pxor    %xmm1,%xmm2
+       psllq   $1,%xmm1
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm1
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm4,%xmm9
+       psrlq   $2,%xmm4
+       movdqa  %xmm3,%xmm10
+       psrlq   $2,%xmm3
+       pxor    %xmm6,%xmm4
+       pxor    %xmm5,%xmm3
+       pand    %xmm8,%xmm4
+       pand    %xmm8,%xmm3
+       pxor    %xmm4,%xmm6
+       psllq   $2,%xmm4
+       pxor    %xmm3,%xmm5
+       psllq   $2,%xmm3
+       pxor    %xmm9,%xmm4
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm2,%xmm0
+       pxor    %xmm1,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm2
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm1
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm2,%xmm9
+       psrlq   $4,%xmm2
+       movdqa  %xmm1,%xmm10
+       psrlq   $4,%xmm1
+       pxor    %xmm6,%xmm2
+       pxor    %xmm5,%xmm1
+       pand    %xmm7,%xmm2
+       pand    %xmm7,%xmm1
+       pxor    %xmm2,%xmm6
+       psllq   $4,%xmm2
+       pxor    %xmm1,%xmm5
+       psllq   $4,%xmm1
+       pxor    %xmm9,%xmm2
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm4,%xmm0
+       pxor    %xmm3,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm4
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm3
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       decl    %r10d
+       jmp     .Ldec_sbox
+.align 16
+.Ldec_loop:
+       pxor    0(%rax),%xmm15
+       pxor    16(%rax),%xmm0
+.byte  102,68,15,56,0,255
+       pxor    32(%rax),%xmm1
+.byte  102,15,56,0,199
+       pxor    48(%rax),%xmm2
+.byte  102,15,56,0,207
+       pxor    64(%rax),%xmm3
+.byte  102,15,56,0,215
+       pxor    80(%rax),%xmm4
+.byte  102,15,56,0,223
+       pxor    96(%rax),%xmm5
+.byte  102,15,56,0,231
+       pxor    112(%rax),%xmm6
+.byte  102,15,56,0,239
+       leaq    128(%rax),%rax
+.byte  102,15,56,0,247
+.Ldec_sbox:
+       pxor    %xmm3,%xmm2
+
+       pxor    %xmm6,%xmm3
+       pxor    %xmm6,%xmm1
+       pxor    %xmm3,%xmm5
+       pxor    %xmm5,%xmm6
+       pxor    %xmm6,%xmm0
+
+       pxor    %xmm0,%xmm15
+       pxor    %xmm4,%xmm1
+       pxor    %xmm15,%xmm2
+       pxor    %xmm15,%xmm4
+       pxor    %xmm2,%xmm0
+       movdqa  %xmm2,%xmm10
+       movdqa  %xmm6,%xmm9
+       movdqa  %xmm0,%xmm8
+       movdqa  %xmm3,%xmm12
+       movdqa  %xmm4,%xmm11
+
+       pxor    %xmm15,%xmm10
+       pxor    %xmm3,%xmm9
+       pxor    %xmm5,%xmm8
+       movdqa  %xmm10,%xmm13
+       pxor    %xmm15,%xmm12
+       movdqa  %xmm9,%xmm7
+       pxor    %xmm1,%xmm11
+       movdqa  %xmm10,%xmm14
+
+       por     %xmm8,%xmm9
+       por     %xmm11,%xmm10
+       pxor    %xmm7,%xmm14
+       pand    %xmm11,%xmm13
+       pxor    %xmm8,%xmm11
+       pand    %xmm8,%xmm7
+       pand    %xmm11,%xmm14
+       movdqa  %xmm5,%xmm11
+       pxor    %xmm1,%xmm11
+       pand    %xmm11,%xmm12
+       pxor    %xmm12,%xmm10
+       pxor    %xmm12,%xmm9
+       movdqa  %xmm2,%xmm12
+       movdqa  %xmm0,%xmm11
+       pxor    %xmm6,%xmm12
+       pxor    %xmm4,%xmm11
+       movdqa  %xmm12,%xmm8
+       pand    %xmm11,%xmm12
+       por     %xmm11,%xmm8
+       pxor    %xmm12,%xmm7
+       pxor    %xmm14,%xmm10
+       pxor    %xmm13,%xmm9
+       pxor    %xmm14,%xmm8
+       movdqa  %xmm3,%xmm11
+       pxor    %xmm13,%xmm7
+       movdqa  %xmm15,%xmm12
+       pxor    %xmm13,%xmm8
+       movdqa  %xmm6,%xmm13
+       pand    %xmm5,%xmm11
+       movdqa  %xmm2,%xmm14
+       pand    %xmm1,%xmm12
+       pand    %xmm0,%xmm13
+       por     %xmm4,%xmm14
+       pxor    %xmm11,%xmm10
+       pxor    %xmm12,%xmm9
+       pxor    %xmm13,%xmm8
+       pxor    %xmm14,%xmm7
+
+
+
+
+
+       movdqa  %xmm10,%xmm11
+       pand    %xmm8,%xmm10
+       pxor    %xmm9,%xmm11
+
+       movdqa  %xmm7,%xmm13
+       movdqa  %xmm11,%xmm14
+       pxor    %xmm10,%xmm13
+       pand    %xmm13,%xmm14
+
+       movdqa  %xmm8,%xmm12
+       pxor    %xmm9,%xmm14
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm9,%xmm10
+
+       pand    %xmm10,%xmm12
+
+       movdqa  %xmm13,%xmm9
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm12,%xmm9
+       pxor    %xmm12,%xmm8
+
+       pand    %xmm7,%xmm9
+
+       pxor    %xmm9,%xmm13
+       pxor    %xmm9,%xmm8
+
+       pand    %xmm14,%xmm13
+
+       pxor    %xmm11,%xmm13
+       movdqa  %xmm4,%xmm11
+       movdqa  %xmm0,%xmm7
+       movdqa  %xmm14,%xmm9
+       pxor    %xmm13,%xmm9
+       pand    %xmm4,%xmm9
+       pxor    %xmm0,%xmm4
+       pand    %xmm14,%xmm0
+       pand    %xmm13,%xmm4
+       pxor    %xmm0,%xmm4
+       pxor    %xmm9,%xmm0
+       pxor    %xmm1,%xmm11
+       pxor    %xmm5,%xmm7
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm1,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm5,%xmm1
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm5
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm1
+       pxor    %xmm11,%xmm7
+       pxor    %xmm5,%xmm1
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm5
+       pxor    %xmm11,%xmm4
+       pxor    %xmm11,%xmm1
+       pxor    %xmm7,%xmm0
+       pxor    %xmm7,%xmm5
+
+       movdqa  %xmm2,%xmm11
+       movdqa  %xmm6,%xmm7
+       pxor    %xmm15,%xmm11
+       pxor    %xmm3,%xmm7
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm15,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm3,%xmm15
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm3
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm15
+       pxor    %xmm11,%xmm7
+       pxor    %xmm3,%xmm15
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm3
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       pxor    %xmm13,%xmm10
+       pand    %xmm2,%xmm10
+       pxor    %xmm6,%xmm2
+       pand    %xmm14,%xmm6
+       pand    %xmm13,%xmm2
+       pxor    %xmm6,%xmm2
+       pxor    %xmm10,%xmm6
+       pxor    %xmm11,%xmm2
+       pxor    %xmm11,%xmm15
+       pxor    %xmm7,%xmm6
+       pxor    %xmm7,%xmm3
+       pxor    %xmm6,%xmm0
+       pxor    %xmm4,%xmm5
+
+       pxor    %xmm0,%xmm3
+       pxor    %xmm6,%xmm1
+       pxor    %xmm6,%xmm4
+       pxor    %xmm1,%xmm3
+       pxor    %xmm15,%xmm6
+       pxor    %xmm4,%xmm3
+       pxor    %xmm5,%xmm2
+       pxor    %xmm0,%xmm5
+       pxor    %xmm3,%xmm2
+
+       pxor    %xmm15,%xmm3
+       pxor    %xmm2,%xmm6
+       decl    %r10d
+       jl      .Ldec_done
+
+       pshufd  $78,%xmm15,%xmm7
+       pshufd  $78,%xmm2,%xmm13
+       pxor    %xmm15,%xmm7
+       pshufd  $78,%xmm4,%xmm14
+       pxor    %xmm2,%xmm13
+       pshufd  $78,%xmm0,%xmm8
+       pxor    %xmm4,%xmm14
+       pshufd  $78,%xmm5,%xmm9
+       pxor    %xmm0,%xmm8
+       pshufd  $78,%xmm3,%xmm10
+       pxor    %xmm5,%xmm9
+       pxor    %xmm13,%xmm15
+       pxor    %xmm13,%xmm0
+       pshufd  $78,%xmm1,%xmm11
+       pxor    %xmm3,%xmm10
+       pxor    %xmm7,%xmm5
+       pxor    %xmm8,%xmm3
+       pshufd  $78,%xmm6,%xmm12
+       pxor    %xmm1,%xmm11
+       pxor    %xmm14,%xmm0
+       pxor    %xmm9,%xmm1
+       pxor    %xmm6,%xmm12
+
+       pxor    %xmm14,%xmm5
+       pxor    %xmm13,%xmm3
+       pxor    %xmm13,%xmm1
+       pxor    %xmm10,%xmm6
+       pxor    %xmm11,%xmm2
+       pxor    %xmm14,%xmm1
+       pxor    %xmm14,%xmm6
+       pxor    %xmm12,%xmm4
+       pshufd  $147,%xmm15,%xmm7
+       pshufd  $147,%xmm0,%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $147,%xmm5,%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $147,%xmm3,%xmm10
+       pxor    %xmm9,%xmm5
+       pshufd  $147,%xmm1,%xmm11
+       pxor    %xmm10,%xmm3
+       pshufd  $147,%xmm6,%xmm12
+       pxor    %xmm11,%xmm1
+       pshufd  $147,%xmm2,%xmm13
+       pxor    %xmm12,%xmm6
+       pshufd  $147,%xmm4,%xmm14
+       pxor    %xmm13,%xmm2
+       pxor    %xmm14,%xmm4
+
+       pxor    %xmm15,%xmm8
+       pxor    %xmm4,%xmm7
+       pxor    %xmm4,%xmm8
+       pshufd  $78,%xmm15,%xmm15
+       pxor    %xmm0,%xmm9
+       pshufd  $78,%xmm0,%xmm0
+       pxor    %xmm1,%xmm12
+       pxor    %xmm7,%xmm15
+       pxor    %xmm6,%xmm13
+       pxor    %xmm8,%xmm0
+       pxor    %xmm3,%xmm11
+       pshufd  $78,%xmm1,%xmm7
+       pxor    %xmm2,%xmm14
+       pshufd  $78,%xmm6,%xmm8
+       pxor    %xmm5,%xmm10
+       pshufd  $78,%xmm3,%xmm1
+       pxor    %xmm4,%xmm10
+       pshufd  $78,%xmm4,%xmm6
+       pxor    %xmm4,%xmm11
+       pshufd  $78,%xmm2,%xmm3
+       pxor    %xmm11,%xmm7
+       pshufd  $78,%xmm5,%xmm2
+       pxor    %xmm12,%xmm8
+       pxor    %xmm1,%xmm10
+       pxor    %xmm14,%xmm6
+       pxor    %xmm3,%xmm13
+       movdqa  %xmm7,%xmm3
+       pxor    %xmm9,%xmm2
+       movdqa  %xmm13,%xmm5
+       movdqa  %xmm8,%xmm4
+       movdqa  %xmm2,%xmm1
+       movdqa  %xmm10,%xmm2
+       movdqa  -16(%r11),%xmm7
+       jnz     .Ldec_loop
+       movdqa  -32(%r11),%xmm7
+       jmp     .Ldec_loop
+.align 16
+.Ldec_done:
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm2,%xmm9
+       psrlq   $1,%xmm2
+       movdqa  %xmm1,%xmm10
+       psrlq   $1,%xmm1
+       pxor    %xmm4,%xmm2
+       pxor    %xmm6,%xmm1
+       pand    %xmm7,%xmm2
+       pand    %xmm7,%xmm1
+       pxor    %xmm2,%xmm4
+       psllq   $1,%xmm2
+       pxor    %xmm1,%xmm6
+       psllq   $1,%xmm1
+       pxor    %xmm9,%xmm2
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm5,%xmm9
+       psrlq   $1,%xmm5
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm3,%xmm5
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm15
+       pxor    %xmm5,%xmm3
+       psllq   $1,%xmm5
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm6,%xmm9
+       psrlq   $2,%xmm6
+       movdqa  %xmm1,%xmm10
+       psrlq   $2,%xmm1
+       pxor    %xmm4,%xmm6
+       pxor    %xmm2,%xmm1
+       pand    %xmm8,%xmm6
+       pand    %xmm8,%xmm1
+       pxor    %xmm6,%xmm4
+       psllq   $2,%xmm6
+       pxor    %xmm1,%xmm2
+       psllq   $2,%xmm1
+       pxor    %xmm9,%xmm6
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm3,%xmm0
+       pxor    %xmm5,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm3
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm5
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm3,%xmm9
+       psrlq   $4,%xmm3
+       movdqa  %xmm5,%xmm10
+       psrlq   $4,%xmm5
+       pxor    %xmm4,%xmm3
+       pxor    %xmm2,%xmm5
+       pand    %xmm7,%xmm3
+       pand    %xmm7,%xmm5
+       pxor    %xmm3,%xmm4
+       psllq   $4,%xmm3
+       pxor    %xmm5,%xmm2
+       psllq   $4,%xmm5
+       pxor    %xmm9,%xmm3
+       pxor    %xmm10,%xmm5
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm6,%xmm0
+       pxor    %xmm1,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm6
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm1
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  (%rax),%xmm7
+       pxor    %xmm7,%xmm5
+       pxor    %xmm7,%xmm3
+       pxor    %xmm7,%xmm1
+       pxor    %xmm7,%xmm6
+       pxor    %xmm7,%xmm2
+       pxor    %xmm7,%xmm4
+       pxor    %xmm7,%xmm15
+       pxor    %xmm7,%xmm0
+       .byte   0xf3,0xc3
+.size  _bsaes_decrypt8,.-_bsaes_decrypt8
+.type  _bsaes_key_convert,@function
+.align 16
+_bsaes_key_convert:
+       leaq    .Lmasks(%rip),%r11
+       movdqu  (%rcx),%xmm7
+       leaq    16(%rcx),%rcx
+       movdqa  0(%r11),%xmm0
+       movdqa  16(%r11),%xmm1
+       movdqa  32(%r11),%xmm2
+       movdqa  48(%r11),%xmm3
+       movdqa  64(%r11),%xmm4
+       pcmpeqd %xmm5,%xmm5
+
+       movdqu  (%rcx),%xmm6
+       movdqa  %xmm7,(%rax)
+       leaq    16(%rax),%rax
+       decl    %r10d
+       jmp     .Lkey_loop
+.align 16
+.Lkey_loop:
+.byte  102,15,56,0,244
+
+       movdqa  %xmm0,%xmm8
+       movdqa  %xmm1,%xmm9
+
+       pand    %xmm6,%xmm8
+       pand    %xmm6,%xmm9
+       movdqa  %xmm2,%xmm10
+       pcmpeqb %xmm0,%xmm8
+       psllq   $4,%xmm0
+       movdqa  %xmm3,%xmm11
+       pcmpeqb %xmm1,%xmm9
+       psllq   $4,%xmm1
+
+       pand    %xmm6,%xmm10
+       pand    %xmm6,%xmm11
+       movdqa  %xmm0,%xmm12
+       pcmpeqb %xmm2,%xmm10
+       psllq   $4,%xmm2
+       movdqa  %xmm1,%xmm13
+       pcmpeqb %xmm3,%xmm11
+       psllq   $4,%xmm3
+
+       movdqa  %xmm2,%xmm14
+       movdqa  %xmm3,%xmm15
+       pxor    %xmm5,%xmm8
+       pxor    %xmm5,%xmm9
+
+       pand    %xmm6,%xmm12
+       pand    %xmm6,%xmm13
+       movdqa  %xmm8,0(%rax)
+       pcmpeqb %xmm0,%xmm12
+       psrlq   $4,%xmm0
+       movdqa  %xmm9,16(%rax)
+       pcmpeqb %xmm1,%xmm13
+       psrlq   $4,%xmm1
+       leaq    16(%rcx),%rcx
+
+       pand    %xmm6,%xmm14
+       pand    %xmm6,%xmm15
+       movdqa  %xmm10,32(%rax)
+       pcmpeqb %xmm2,%xmm14
+       psrlq   $4,%xmm2
+       movdqa  %xmm11,48(%rax)
+       pcmpeqb %xmm3,%xmm15
+       psrlq   $4,%xmm3
+       movdqu  (%rcx),%xmm6
+
+       pxor    %xmm5,%xmm13
+       pxor    %xmm5,%xmm14
+       movdqa  %xmm12,64(%rax)
+       movdqa  %xmm13,80(%rax)
+       movdqa  %xmm14,96(%rax)
+       movdqa  %xmm15,112(%rax)
+       leaq    128(%rax),%rax
+       decl    %r10d
+       jnz     .Lkey_loop
+
+       movdqa  80(%r11),%xmm7
+
+       .byte   0xf3,0xc3
+.size  _bsaes_key_convert,.-_bsaes_key_convert
+
+.globl bsaes_cbc_encrypt
+.type  bsaes_cbc_encrypt,@function
+.align 16
+bsaes_cbc_encrypt:
+       cmpl    $0,%r9d
+       jne     asm_AES_cbc_encrypt
+       cmpq    $128,%rdx
+       jb      asm_AES_cbc_encrypt
+
+       movq    %rsp,%rax
+.Lcbc_dec_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movl    240(%rcx),%eax
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+       movq    %r8,%rbx
+       shrq    $4,%r14
+
+       movl    %eax,%edx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %edx,%r10d
+       call    _bsaes_key_convert
+       pxor    (%rsp),%xmm7
+       movdqa  %xmm6,(%rax)
+       movdqa  %xmm7,(%rsp)
+
+       movdqu  (%rbx),%xmm14
+       subq    $8,%r14
+.Lcbc_dec_loop:
+       movdqu  0(%r12),%xmm15
+       movdqu  16(%r12),%xmm0
+       movdqu  32(%r12),%xmm1
+       movdqu  48(%r12),%xmm2
+       movdqu  64(%r12),%xmm3
+       movdqu  80(%r12),%xmm4
+       movq    %rsp,%rax
+       movdqu  96(%r12),%xmm5
+       movl    %edx,%r10d
+       movdqu  112(%r12),%xmm6
+       movdqa  %xmm14,32(%rbp)
+
+       call    _bsaes_decrypt8
+
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm1
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm6
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm2
+       movdqu  112(%r12),%xmm14
+       pxor    %xmm13,%xmm4
+       movdqu  %xmm15,0(%r13)
+       leaq    128(%r12),%r12
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm2,96(%r13)
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+       subq    $8,%r14
+       jnc     .Lcbc_dec_loop
+
+       addq    $8,%r14
+       jz      .Lcbc_dec_done
+
+       movdqu  0(%r12),%xmm15
+       movq    %rsp,%rax
+       movl    %edx,%r10d
+       cmpq    $2,%r14
+       jb      .Lcbc_dec_one
+       movdqu  16(%r12),%xmm0
+       je      .Lcbc_dec_two
+       movdqu  32(%r12),%xmm1
+       cmpq    $4,%r14
+       jb      .Lcbc_dec_three
+       movdqu  48(%r12),%xmm2
+       je      .Lcbc_dec_four
+       movdqu  64(%r12),%xmm3
+       cmpq    $6,%r14
+       jb      .Lcbc_dec_five
+       movdqu  80(%r12),%xmm4
+       je      .Lcbc_dec_six
+       movdqu  96(%r12),%xmm5
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm1
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm6
+       movdqu  96(%r12),%xmm14
+       pxor    %xmm12,%xmm2
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm2,96(%r13)
+       jmp     .Lcbc_dec_done
+.align 16
+.Lcbc_dec_six:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm1
+       movdqu  80(%r12),%xmm14
+       pxor    %xmm11,%xmm6
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       jmp     .Lcbc_dec_done
+.align 16
+.Lcbc_dec_five:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm14
+       pxor    %xmm10,%xmm1
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       jmp     .Lcbc_dec_done
+.align 16
+.Lcbc_dec_four:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm14
+       pxor    %xmm9,%xmm3
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       jmp     .Lcbc_dec_done
+.align 16
+.Lcbc_dec_three:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm14
+       pxor    %xmm8,%xmm5
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       jmp     .Lcbc_dec_done
+.align 16
+.Lcbc_dec_two:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm14
+       pxor    %xmm7,%xmm0
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       jmp     .Lcbc_dec_done
+.align 16
+.Lcbc_dec_one:
+       leaq    (%r12),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm14
+       movdqu  %xmm14,(%r13)
+       movdqa  %xmm15,%xmm14
+
+.Lcbc_dec_done:
+       movdqu  %xmm14,(%rbx)
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+.Lcbc_dec_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      .Lcbc_dec_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+.Lcbc_dec_epilogue:
+       .byte   0xf3,0xc3
+.size  bsaes_cbc_encrypt,.-bsaes_cbc_encrypt
+
+.globl bsaes_ctr32_encrypt_blocks
+.type  bsaes_ctr32_encrypt_blocks,@function
+.align 16
+bsaes_ctr32_encrypt_blocks:
+       movq    %rsp,%rax
+.Lctr_enc_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movdqu  (%r8),%xmm0
+       movl    240(%rcx),%eax
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+       movdqa  %xmm0,32(%rbp)
+       cmpq    $8,%rdx
+       jb      .Lctr_enc_short
+
+       movl    %eax,%ebx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %ebx,%r10d
+       call    _bsaes_key_convert
+       pxor    %xmm6,%xmm7
+       movdqa  %xmm7,(%rax)
+
+       movdqa  (%rsp),%xmm8
+       leaq    .LADD1(%rip),%r11
+       movdqa  32(%rbp),%xmm15
+       movdqa  -32(%r11),%xmm7
+.byte  102,68,15,56,0,199
+.byte  102,68,15,56,0,255
+       movdqa  %xmm8,(%rsp)
+       jmp     .Lctr_enc_loop
+.align 16
+.Lctr_enc_loop:
+       movdqa  %xmm15,32(%rbp)
+       movdqa  %xmm15,%xmm0
+       movdqa  %xmm15,%xmm1
+       paddd   0(%r11),%xmm0
+       movdqa  %xmm15,%xmm2
+       paddd   16(%r11),%xmm1
+       movdqa  %xmm15,%xmm3
+       paddd   32(%r11),%xmm2
+       movdqa  %xmm15,%xmm4
+       paddd   48(%r11),%xmm3
+       movdqa  %xmm15,%xmm5
+       paddd   64(%r11),%xmm4
+       movdqa  %xmm15,%xmm6
+       paddd   80(%r11),%xmm5
+       paddd   96(%r11),%xmm6
+
+
+
+       movdqa  (%rsp),%xmm8
+       leaq    16(%rsp),%rax
+       movdqa  -16(%r11),%xmm7
+       pxor    %xmm8,%xmm15
+       pxor    %xmm8,%xmm0
+.byte  102,68,15,56,0,255
+       pxor    %xmm8,%xmm1
+.byte  102,15,56,0,199
+       pxor    %xmm8,%xmm2
+.byte  102,15,56,0,207
+       pxor    %xmm8,%xmm3
+.byte  102,15,56,0,215
+       pxor    %xmm8,%xmm4
+.byte  102,15,56,0,223
+       pxor    %xmm8,%xmm5
+.byte  102,15,56,0,231
+       pxor    %xmm8,%xmm6
+.byte  102,15,56,0,239
+       leaq    .LBS0(%rip),%r11
+.byte  102,15,56,0,247
+       movl    %ebx,%r10d
+
+       call    _bsaes_encrypt8_bitslice
+
+       subq    $8,%r14
+       jc      .Lctr_enc_loop_done
+
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       movdqu  32(%r12),%xmm9
+       movdqu  48(%r12),%xmm10
+       movdqu  64(%r12),%xmm11
+       movdqu  80(%r12),%xmm12
+       movdqu  96(%r12),%xmm13
+       movdqu  112(%r12),%xmm14
+       leaq    128(%r12),%r12
+       pxor    %xmm15,%xmm7
+       movdqa  32(%rbp),%xmm15
+       pxor    %xmm8,%xmm0
+       movdqu  %xmm7,0(%r13)
+       pxor    %xmm9,%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    %xmm10,%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    %xmm11,%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    %xmm12,%xmm6
+       movdqu  %xmm2,64(%r13)
+       pxor    %xmm13,%xmm1
+       movdqu  %xmm6,80(%r13)
+       pxor    %xmm14,%xmm4
+       movdqu  %xmm1,96(%r13)
+       leaq    .LADD1(%rip),%r11
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+       paddd   112(%r11),%xmm15
+       jnz     .Lctr_enc_loop
+
+       jmp     .Lctr_enc_done
+.align 16
+.Lctr_enc_loop_done:
+       addq    $8,%r14
+       movdqu  0(%r12),%xmm7
+       pxor    %xmm7,%xmm15
+       movdqu  %xmm15,0(%r13)
+       cmpq    $2,%r14
+       jb      .Lctr_enc_done
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm8,%xmm0
+       movdqu  %xmm0,16(%r13)
+       je      .Lctr_enc_done
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm9,%xmm3
+       movdqu  %xmm3,32(%r13)
+       cmpq    $4,%r14
+       jb      .Lctr_enc_done
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm10,%xmm5
+       movdqu  %xmm5,48(%r13)
+       je      .Lctr_enc_done
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm11,%xmm2
+       movdqu  %xmm2,64(%r13)
+       cmpq    $6,%r14
+       jb      .Lctr_enc_done
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm12,%xmm6
+       movdqu  %xmm6,80(%r13)
+       je      .Lctr_enc_done
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm13,%xmm1
+       movdqu  %xmm1,96(%r13)
+       jmp     .Lctr_enc_done
+
+.align 16
+.Lctr_enc_short:
+       leaq    32(%rbp),%rdi
+       leaq    48(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    asm_AES_encrypt
+       movdqu  (%r12),%xmm0
+       leaq    16(%r12),%r12
+       movl    44(%rbp),%eax
+       bswapl  %eax
+       pxor    48(%rbp),%xmm0
+       incl    %eax
+       movdqu  %xmm0,(%r13)
+       bswapl  %eax
+       leaq    16(%r13),%r13
+       movl    %eax,44(%rsp)
+       decq    %r14
+       jnz     .Lctr_enc_short
+
+.Lctr_enc_done:
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+.Lctr_enc_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      .Lctr_enc_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+.Lctr_enc_epilogue:
+       .byte   0xf3,0xc3
+.size  bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
+.globl bsaes_xts_encrypt
+.type  bsaes_xts_encrypt,@function
+.align 16
+bsaes_xts_encrypt:
+       movq    %rsp,%rax
+.Lxts_enc_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+
+       leaq    (%r9),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r8),%rdx
+       call    asm_AES_encrypt
+
+
+       movl    240(%r15),%eax
+       movq    %r14,%rbx
+
+       movl    %eax,%edx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %edx,%r10d
+       call    _bsaes_key_convert
+       pxor    %xmm6,%xmm7
+       movdqa  %xmm7,(%rax)
+
+       andq    $-16,%r14
+       subq    $128,%rsp
+       movdqa  32(%rbp),%xmm6
+
+       pxor    %xmm14,%xmm14
+       movdqa  .Lxts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+
+       subq    $128,%r14
+       jc      .Lxts_enc_short
+       jmp     .Lxts_enc_loop
+
+.align 16
+.Lxts_enc_loop:
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqu  112(%r12),%xmm14
+       leaq    128(%r12),%r12
+       movdqa  %xmm6,112(%rsp)
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       pxor    %xmm14,%xmm6
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm2,64(%r13)
+       pxor    96(%rsp),%xmm1
+       movdqu  %xmm6,80(%r13)
+       pxor    112(%rsp),%xmm4
+       movdqu  %xmm1,96(%r13)
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       pxor    %xmm14,%xmm14
+       movdqa  .Lxts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+
+       subq    $128,%r14
+       jnc     .Lxts_enc_loop
+
+.Lxts_enc_short:
+       addq    $128,%r14
+       jz      .Lxts_enc_done
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       cmpq    $16,%r14
+       je      .Lxts_enc_1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       cmpq    $32,%r14
+       je      .Lxts_enc_2
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       cmpq    $48,%r14
+       je      .Lxts_enc_3
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       cmpq    $64,%r14
+       je      .Lxts_enc_4
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       cmpq    $80,%r14
+       je      .Lxts_enc_5
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       cmpq    $96,%r14
+       je      .Lxts_enc_6
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqa  %xmm6,112(%rsp)
+       leaq    112(%r12),%r12
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm2,64(%r13)
+       pxor    96(%rsp),%xmm1
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm1,96(%r13)
+       leaq    112(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       jmp     .Lxts_enc_done
+.align 16
+.Lxts_enc_6:
+       pxor    %xmm11,%xmm3
+       leaq    96(%r12),%r12
+       pxor    %xmm12,%xmm4
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm2,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       leaq    96(%r13),%r13
+
+       movdqa  96(%rsp),%xmm6
+       jmp     .Lxts_enc_done
+.align 16
+.Lxts_enc_5:
+       pxor    %xmm10,%xmm2
+       leaq    80(%r12),%r12
+       pxor    %xmm11,%xmm3
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       movdqu  %xmm2,64(%r13)
+       leaq    80(%r13),%r13
+
+       movdqa  80(%rsp),%xmm6
+       jmp     .Lxts_enc_done
+.align 16
+.Lxts_enc_4:
+       pxor    %xmm9,%xmm1
+       leaq    64(%r12),%r12
+       pxor    %xmm10,%xmm2
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       movdqu  %xmm5,48(%r13)
+       leaq    64(%r13),%r13
+
+       movdqa  64(%rsp),%xmm6
+       jmp     .Lxts_enc_done
+.align 16
+.Lxts_enc_3:
+       pxor    %xmm8,%xmm0
+       leaq    48(%r12),%r12
+       pxor    %xmm9,%xmm1
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm3,32(%r13)
+       leaq    48(%r13),%r13
+
+       movdqa  48(%rsp),%xmm6
+       jmp     .Lxts_enc_done
+.align 16
+.Lxts_enc_2:
+       pxor    %xmm7,%xmm15
+       leaq    32(%r12),%r12
+       pxor    %xmm8,%xmm0
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       leaq    32(%r13),%r13
+
+       movdqa  32(%rsp),%xmm6
+       jmp     .Lxts_enc_done
+.align 16
+.Lxts_enc_1:
+       pxor    %xmm15,%xmm7
+       leaq    16(%r12),%r12
+       movdqa  %xmm7,32(%rbp)
+       leaq    32(%rbp),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    asm_AES_encrypt
+
+       pxor    32(%rbp),%xmm15
+
+
+
+
+
+       movdqu  %xmm15,0(%r13)
+       leaq    16(%r13),%r13
+
+       movdqa  16(%rsp),%xmm6
+
+.Lxts_enc_done:
+       andl    $15,%ebx
+       jz      .Lxts_enc_ret
+       movq    %r13,%rdx
+
+.Lxts_enc_steal:
+       movzbl  (%r12),%eax
+       movzbl  -16(%rdx),%ecx
+       leaq    1(%r12),%r12
+       movb    %al,-16(%rdx)
+       movb    %cl,0(%rdx)
+       leaq    1(%rdx),%rdx
+       subl    $1,%ebx
+       jnz     .Lxts_enc_steal
+
+       movdqu  -16(%r13),%xmm15
+       leaq    32(%rbp),%rdi
+       pxor    %xmm6,%xmm15
+       leaq    32(%rbp),%rsi
+       movdqa  %xmm15,32(%rbp)
+       leaq    (%r15),%rdx
+       call    asm_AES_encrypt
+
+       pxor    32(%rbp),%xmm6
+       movdqu  %xmm6,-16(%r13)
+
+.Lxts_enc_ret:
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+.Lxts_enc_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      .Lxts_enc_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+.Lxts_enc_epilogue:
+       .byte   0xf3,0xc3
+.size  bsaes_xts_encrypt,.-bsaes_xts_encrypt
+
+.globl bsaes_xts_decrypt
+.type  bsaes_xts_decrypt,@function
+.align 16
+bsaes_xts_decrypt:
+       movq    %rsp,%rax
+.Lxts_dec_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+
+       leaq    (%r9),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r8),%rdx
+       call    asm_AES_encrypt
+
+
+       movl    240(%r15),%eax
+       movq    %r14,%rbx
+
+       movl    %eax,%edx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %edx,%r10d
+       call    _bsaes_key_convert
+       pxor    (%rsp),%xmm7
+       movdqa  %xmm6,(%rax)
+       movdqa  %xmm7,(%rsp)
+
+       xorl    %eax,%eax
+       andq    $-16,%r14
+       testl   $15,%ebx
+       setnz   %al
+       shlq    $4,%rax
+       subq    %rax,%r14
+
+       subq    $128,%rsp
+       movdqa  32(%rbp),%xmm6
+
+       pxor    %xmm14,%xmm14
+       movdqa  .Lxts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+
+       subq    $128,%r14
+       jc      .Lxts_dec_short
+       jmp     .Lxts_dec_loop
+
+.align 16
+.Lxts_dec_loop:
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqu  112(%r12),%xmm14
+       leaq    128(%r12),%r12
+       movdqa  %xmm6,112(%rsp)
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       pxor    %xmm14,%xmm6
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm1,64(%r13)
+       pxor    96(%rsp),%xmm2
+       movdqu  %xmm6,80(%r13)
+       pxor    112(%rsp),%xmm4
+       movdqu  %xmm2,96(%r13)
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       pxor    %xmm14,%xmm14
+       movdqa  .Lxts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+
+       subq    $128,%r14
+       jnc     .Lxts_dec_loop
+
+.Lxts_dec_short:
+       addq    $128,%r14
+       jz      .Lxts_dec_done
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       cmpq    $16,%r14
+       je      .Lxts_dec_1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       cmpq    $32,%r14
+       je      .Lxts_dec_2
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       cmpq    $48,%r14
+       je      .Lxts_dec_3
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       cmpq    $64,%r14
+       je      .Lxts_dec_4
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       cmpq    $80,%r14
+       je      .Lxts_dec_5
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       cmpq    $96,%r14
+       je      .Lxts_dec_6
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqa  %xmm6,112(%rsp)
+       leaq    112(%r12),%r12
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm1,64(%r13)
+       pxor    96(%rsp),%xmm2
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm2,96(%r13)
+       leaq    112(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       jmp     .Lxts_dec_done
+.align 16
+.Lxts_dec_6:
+       pxor    %xmm11,%xmm3
+       leaq    96(%r12),%r12
+       pxor    %xmm12,%xmm4
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       leaq    96(%r13),%r13
+
+       movdqa  96(%rsp),%xmm6
+       jmp     .Lxts_dec_done
+.align 16
+.Lxts_dec_5:
+       pxor    %xmm10,%xmm2
+       leaq    80(%r12),%r12
+       pxor    %xmm11,%xmm3
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       leaq    80(%r13),%r13
+
+       movdqa  80(%rsp),%xmm6
+       jmp     .Lxts_dec_done
+.align 16
+.Lxts_dec_4:
+       pxor    %xmm9,%xmm1
+       leaq    64(%r12),%r12
+       pxor    %xmm10,%xmm2
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       leaq    64(%r13),%r13
+
+       movdqa  64(%rsp),%xmm6
+       jmp     .Lxts_dec_done
+.align 16
+.Lxts_dec_3:
+       pxor    %xmm8,%xmm0
+       leaq    48(%r12),%r12
+       pxor    %xmm9,%xmm1
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       leaq    48(%r13),%r13
+
+       movdqa  48(%rsp),%xmm6
+       jmp     .Lxts_dec_done
+.align 16
+.Lxts_dec_2:
+       pxor    %xmm7,%xmm15
+       leaq    32(%r12),%r12
+       pxor    %xmm8,%xmm0
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       leaq    32(%r13),%r13
+
+       movdqa  32(%rsp),%xmm6
+       jmp     .Lxts_dec_done
+.align 16
+.Lxts_dec_1:
+       pxor    %xmm15,%xmm7
+       leaq    16(%r12),%r12
+       movdqa  %xmm7,32(%rbp)
+       leaq    32(%rbp),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm15
+
+
+
+
+
+       movdqu  %xmm15,0(%r13)
+       leaq    16(%r13),%r13
+
+       movdqa  16(%rsp),%xmm6
+
+.Lxts_dec_done:
+       andl    $15,%ebx
+       jz      .Lxts_dec_ret
+
+       pxor    %xmm14,%xmm14
+       movdqa  .Lxts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+       pshufd  $19,%xmm14,%xmm13
+       movdqa  %xmm6,%xmm5
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       movdqu  (%r12),%xmm15
+       pxor    %xmm13,%xmm6
+
+       leaq    32(%rbp),%rdi
+       pxor    %xmm6,%xmm15
+       leaq    32(%rbp),%rsi
+       movdqa  %xmm15,32(%rbp)
+       leaq    (%r15),%rdx
+       call    asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm6
+       movq    %r13,%rdx
+       movdqu  %xmm6,(%r13)
+
+.Lxts_dec_steal:
+       movzbl  16(%r12),%eax
+       movzbl  (%rdx),%ecx
+       leaq    1(%r12),%r12
+       movb    %al,(%rdx)
+       movb    %cl,16(%rdx)
+       leaq    1(%rdx),%rdx
+       subl    $1,%ebx
+       jnz     .Lxts_dec_steal
+
+       movdqu  (%r13),%xmm15
+       leaq    32(%rbp),%rdi
+       pxor    %xmm5,%xmm15
+       leaq    32(%rbp),%rsi
+       movdqa  %xmm15,32(%rbp)
+       leaq    (%r15),%rdx
+       call    asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm5
+       movdqu  %xmm5,(%r13)
+
+.Lxts_dec_ret:
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+.Lxts_dec_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      .Lxts_dec_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+.Lxts_dec_epilogue:
+       .byte   0xf3,0xc3
+.size  bsaes_xts_decrypt,.-bsaes_xts_decrypt
+.type  _bsaes_const,@object
+.align 64
+_bsaes_const:
+.LM0ISR:
+.quad  0x0a0e0206070b0f03, 0x0004080c0d010509
+.LISRM0:
+.quad  0x01040b0e0205080f, 0x0306090c00070a0d
+.LISR:
+.quad  0x0504070602010003, 0x0f0e0d0c080b0a09
+.LBS0:
+.quad  0x5555555555555555, 0x5555555555555555
+.LBS1:
+.quad  0x3333333333333333, 0x3333333333333333
+.LBS2:
+.quad  0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
+.LSR:
+.quad  0x0504070600030201, 0x0f0e0d0c0a09080b
+.LSRM0:
+.quad  0x0304090e00050a0f, 0x01060b0c0207080d
+.LM0SR:
+.quad  0x0a0e02060f03070b, 0x0004080c05090d01
+.LSWPUP:
+.quad  0x0706050403020100, 0x0c0d0e0f0b0a0908
+.LSWPUPM0SR:
+.quad  0x0a0d02060c03070b, 0x0004080f05090e01
+.LADD1:
+.quad  0x0000000000000000, 0x0000000100000000
+.LADD2:
+.quad  0x0000000000000000, 0x0000000200000000
+.LADD3:
+.quad  0x0000000000000000, 0x0000000300000000
+.LADD4:
+.quad  0x0000000000000000, 0x0000000400000000
+.LADD5:
+.quad  0x0000000000000000, 0x0000000500000000
+.LADD6:
+.quad  0x0000000000000000, 0x0000000600000000
+.LADD7:
+.quad  0x0000000000000000, 0x0000000700000000
+.LADD8:
+.quad  0x0000000000000000, 0x0000000800000000
+.Lxts_magic:
+.long  0x87,0,1,0
+.Lmasks:
+.quad  0x0101010101010101, 0x0101010101010101
+.quad  0x0202020202020202, 0x0202020202020202
+.quad  0x0404040404040404, 0x0404040404040404
+.quad  0x0808080808080808, 0x0808080808080808
+.LM0:
+.quad  0x02060a0e03070b0f, 0x0004080c0105090d
+.L63:
+.quad  0x6363636363636363, 0x6363636363636363
+.byte  66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0
+.align 64
+.size  _bsaes_const,.-_bsaes_const
diff --git a/deps/openssl/asm/x64-elf-gas/aes/vpaes-x86_64.s b/deps/openssl/asm/x64-elf-gas/aes/vpaes-x86_64.s
new file mode 100644 (file)
index 0000000..fb201b6
--- /dev/null
@@ -0,0 +1,839 @@
+.text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.type  _vpaes_encrypt_core,@function
+.align 16
+_vpaes_encrypt_core:
+       movq    %rdx,%r9
+       movq    $16,%r11
+       movl    240(%rdx),%eax
+       movdqa  %xmm9,%xmm1
+       movdqa  .Lk_ipt(%rip),%xmm2
+       pandn   %xmm0,%xmm1
+       movdqu  (%r9),%xmm5
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+.byte  102,15,56,0,208
+       movdqa  .Lk_ipt+16(%rip),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm5,%xmm2
+       pxor    %xmm2,%xmm0
+       addq    $16,%r9
+       leaq    .Lk_mc_backward(%rip),%r10
+       jmp     .Lenc_entry
+
+.align 16
+.Lenc_loop:
+
+       movdqa  %xmm13,%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+       movdqa  %xmm12,%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       movdqa  %xmm15,%xmm5
+.byte  102,15,56,0,234
+       movdqa  -64(%r11,%r10,1),%xmm1
+       movdqa  %xmm14,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm5,%xmm2
+       movdqa  (%r11,%r10,1),%xmm4
+       movdqa  %xmm0,%xmm3
+.byte  102,15,56,0,193
+       addq    $16,%r9
+       pxor    %xmm2,%xmm0
+.byte  102,15,56,0,220
+       addq    $16,%r11
+       pxor    %xmm0,%xmm3
+.byte  102,15,56,0,193
+       andq    $48,%r11
+       pxor    %xmm3,%xmm0
+       subq    $1,%rax
+
+.Lenc_entry:
+
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  %xmm11,%xmm5
+.byte  102,15,56,0,232
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm5,%xmm3
+       movdqa  %xmm10,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm5,%xmm4
+       movdqa  %xmm10,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm10,%xmm3
+       movdqu  (%r9),%xmm5
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       jnz     .Lenc_loop
+
+
+       movdqa  -96(%r10),%xmm4
+       movdqa  -80(%r10),%xmm0
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+.byte  102,15,56,0,195
+       movdqa  64(%r11,%r10,1),%xmm1
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,193
+       .byte   0xf3,0xc3
+.size  _vpaes_encrypt_core,.-_vpaes_encrypt_core
+
+
+
+
+
+
+.type  _vpaes_decrypt_core,@function
+.align 16
+_vpaes_decrypt_core:
+       movq    %rdx,%r9
+       movl    240(%rdx),%eax
+       movdqa  %xmm9,%xmm1
+       movdqa  .Lk_dipt(%rip),%xmm2
+       pandn   %xmm0,%xmm1
+       movq    %rax,%r11
+       psrld   $4,%xmm1
+       movdqu  (%r9),%xmm5
+       shlq    $4,%r11
+       pand    %xmm9,%xmm0
+.byte  102,15,56,0,208
+       movdqa  .Lk_dipt+16(%rip),%xmm0
+       xorq    $48,%r11
+       leaq    .Lk_dsbd(%rip),%r10
+.byte  102,15,56,0,193
+       andq    $48,%r11
+       pxor    %xmm5,%xmm2
+       movdqa  .Lk_mc_forward+48(%rip),%xmm5
+       pxor    %xmm2,%xmm0
+       addq    $16,%r9
+       addq    %r10,%r11
+       jmp     .Ldec_entry
+
+.align 16
+.Ldec_loop:
+
+
+
+       movdqa  -32(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  -16(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       addq    $16,%r9
+
+.byte  102,15,56,0,197
+       movdqa  0(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  16(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       subq    $1,%rax
+
+.byte  102,15,56,0,197
+       movdqa  32(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  48(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+
+.byte  102,15,56,0,197
+       movdqa  64(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  80(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+
+.byte  102,15,58,15,237,12
+
+.Ldec_entry:
+
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  %xmm11,%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm10,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm10,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqu  (%r9),%xmm0
+       jnz     .Ldec_loop
+
+
+       movdqa  96(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  112(%r10),%xmm0
+       movdqa  -352(%r11),%xmm2
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,194
+       .byte   0xf3,0xc3
+.size  _vpaes_decrypt_core,.-_vpaes_decrypt_core
+
+
+
+
+
+
+.type  _vpaes_schedule_core,@function
+.align 16
+_vpaes_schedule_core:
+
+
+
+
+
+       call    _vpaes_preheat
+
+       movdqa  .Lk_rcon(%rip),%xmm8
+       movdqu  (%rdi),%xmm0
+
+
+       movdqa  %xmm0,%xmm3
+       leaq    .Lk_ipt(%rip),%r11
+       call    _vpaes_schedule_transform
+       movdqa  %xmm0,%xmm7
+
+       leaq    .Lk_sr(%rip),%r10
+       testq   %rcx,%rcx
+       jnz     .Lschedule_am_decrypting
+
+
+       movdqu  %xmm0,(%rdx)
+       jmp     .Lschedule_go
+
+.Lschedule_am_decrypting:
+
+       movdqa  (%r8,%r10,1),%xmm1
+.byte  102,15,56,0,217
+       movdqu  %xmm3,(%rdx)
+       xorq    $48,%r8
+
+.Lschedule_go:
+       cmpl    $192,%esi
+       ja      .Lschedule_256
+       je      .Lschedule_192
+
+
+
+
+
+
+
+
+
+
+.Lschedule_128:
+       movl    $10,%esi
+
+.Loop_schedule_128:
+       call    _vpaes_schedule_round
+       decq    %rsi
+       jz      .Lschedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+       jmp     .Loop_schedule_128
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.align 16
+.Lschedule_192:
+       movdqu  8(%rdi),%xmm0
+       call    _vpaes_schedule_transform
+
+       movdqa  %xmm0,%xmm6
+       pxor    %xmm4,%xmm4
+       movhlps %xmm4,%xmm6
+       movl    $4,%esi
+
+.Loop_schedule_192:
+       call    _vpaes_schedule_round
+.byte  102,15,58,15,198,8
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_192_smear
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_round
+       decq    %rsi
+       jz      .Lschedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_192_smear
+       jmp     .Loop_schedule_192
+
+
+
+
+
+
+
+
+
+
+
+.align 16
+.Lschedule_256:
+       movdqu  16(%rdi),%xmm0
+       call    _vpaes_schedule_transform
+
+       movl    $7,%esi
+
+.Loop_schedule_256:
+       call    _vpaes_schedule_mangle
+
+       movdqa  %xmm0,%xmm6
+
+
+       call    _vpaes_schedule_round
+       decq    %rsi
+       jz      .Lschedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+
+
+       pshufd  $255,%xmm0,%xmm0
+       movdqa  %xmm7,%xmm5
+       movdqa  %xmm6,%xmm7
+       call    _vpaes_schedule_low_round
+       movdqa  %xmm5,%xmm7
+
+       jmp     .Loop_schedule_256
+
+
+
+
+
+
+
+
+
+
+
+
+.align 16
+.Lschedule_mangle_last:
+
+       leaq    .Lk_deskew(%rip),%r11
+       testq   %rcx,%rcx
+       jnz     .Lschedule_mangle_last_dec
+
+
+       movdqa  (%r8,%r10,1),%xmm1
+.byte  102,15,56,0,193
+       leaq    .Lk_opt(%rip),%r11
+       addq    $32,%rdx
+
+.Lschedule_mangle_last_dec:
+       addq    $-16,%rdx
+       pxor    .Lk_s63(%rip),%xmm0
+       call    _vpaes_schedule_transform
+
+       movdqu  %xmm0,(%rdx)
+
+
+       pxor    %xmm0,%xmm0
+       pxor    %xmm1,%xmm1
+       pxor    %xmm2,%xmm2
+       pxor    %xmm3,%xmm3
+       pxor    %xmm4,%xmm4
+       pxor    %xmm5,%xmm5
+       pxor    %xmm6,%xmm6
+       pxor    %xmm7,%xmm7
+       .byte   0xf3,0xc3
+.size  _vpaes_schedule_core,.-_vpaes_schedule_core
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.type  _vpaes_schedule_192_smear,@function
+.align 16
+_vpaes_schedule_192_smear:
+       pshufd  $128,%xmm6,%xmm0
+       pxor    %xmm0,%xmm6
+       pshufd  $254,%xmm7,%xmm0
+       pxor    %xmm0,%xmm6
+       movdqa  %xmm6,%xmm0
+       pxor    %xmm1,%xmm1
+       movhlps %xmm1,%xmm6
+       .byte   0xf3,0xc3
+.size  _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.type  _vpaes_schedule_round,@function
+.align 16
+_vpaes_schedule_round:
+
+       pxor    %xmm1,%xmm1
+.byte  102,65,15,58,15,200,15
+.byte  102,69,15,58,15,192,15
+       pxor    %xmm1,%xmm7
+
+
+       pshufd  $255,%xmm0,%xmm0
+.byte  102,15,58,15,192,1
+
+
+
+
+_vpaes_schedule_low_round:
+
+       movdqa  %xmm7,%xmm1
+       pslldq  $4,%xmm7
+       pxor    %xmm1,%xmm7
+       movdqa  %xmm7,%xmm1
+       pslldq  $8,%xmm7
+       pxor    %xmm1,%xmm7
+       pxor    .Lk_s63(%rip),%xmm7
+
+
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  %xmm11,%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm10,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm10,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqa  %xmm13,%xmm4
+.byte  102,15,56,0,226
+       movdqa  %xmm12,%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+
+
+       pxor    %xmm7,%xmm0
+       movdqa  %xmm0,%xmm7
+       .byte   0xf3,0xc3
+.size  _vpaes_schedule_round,.-_vpaes_schedule_round
+
+
+
+
+
+
+
+
+
+
+.type  _vpaes_schedule_transform,@function
+.align 16
+_vpaes_schedule_transform:
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  (%r11),%xmm2
+.byte  102,15,56,0,208
+       movdqa  16(%r11),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm2,%xmm0
+       .byte   0xf3,0xc3
+.size  _vpaes_schedule_transform,.-_vpaes_schedule_transform
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.type  _vpaes_schedule_mangle,@function
+.align 16
+_vpaes_schedule_mangle:
+       movdqa  %xmm0,%xmm4
+       movdqa  .Lk_mc_forward(%rip),%xmm5
+       testq   %rcx,%rcx
+       jnz     .Lschedule_mangle_dec
+
+
+       addq    $16,%rdx
+       pxor    .Lk_s63(%rip),%xmm4
+.byte  102,15,56,0,229
+       movdqa  %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+
+       jmp     .Lschedule_mangle_both
+.align 16
+.Lschedule_mangle_dec:
+
+       leaq    .Lk_dksd(%rip),%r11
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm4,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm4
+
+       movdqa  0(%r11),%xmm2
+.byte  102,15,56,0,212
+       movdqa  16(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+
+       movdqa  32(%r11),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  48(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+
+       movdqa  64(%r11),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  80(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+
+       movdqa  96(%r11),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  112(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+
+       addq    $-16,%rdx
+
+.Lschedule_mangle_both:
+       movdqa  (%r8,%r10,1),%xmm1
+.byte  102,15,56,0,217
+       addq    $-16,%r8
+       andq    $48,%r8
+       movdqu  %xmm3,(%rdx)
+       .byte   0xf3,0xc3
+.size  _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
+
+
+
+
+.globl vpaes_set_encrypt_key
+.type  vpaes_set_encrypt_key,@function
+.align 16
+vpaes_set_encrypt_key:
+       movl    %esi,%eax
+       shrl    $5,%eax
+       addl    $5,%eax
+       movl    %eax,240(%rdx)
+
+       movl    $0,%ecx
+       movl    $48,%r8d
+       call    _vpaes_schedule_core
+       xorl    %eax,%eax
+       .byte   0xf3,0xc3
+.size  vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
+
+.globl vpaes_set_decrypt_key
+.type  vpaes_set_decrypt_key,@function
+.align 16
+vpaes_set_decrypt_key:
+       movl    %esi,%eax
+       shrl    $5,%eax
+       addl    $5,%eax
+       movl    %eax,240(%rdx)
+       shll    $4,%eax
+       leaq    16(%rdx,%rax,1),%rdx
+
+       movl    $1,%ecx
+       movl    %esi,%r8d
+       shrl    $1,%r8d
+       andl    $32,%r8d
+       xorl    $32,%r8d
+       call    _vpaes_schedule_core
+       xorl    %eax,%eax
+       .byte   0xf3,0xc3
+.size  vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
+
+.globl vpaes_encrypt
+.type  vpaes_encrypt,@function
+.align 16
+vpaes_encrypt:
+       movdqu  (%rdi),%xmm0
+       call    _vpaes_preheat
+       call    _vpaes_encrypt_core
+       movdqu  %xmm0,(%rsi)
+       .byte   0xf3,0xc3
+.size  vpaes_encrypt,.-vpaes_encrypt
+
+.globl vpaes_decrypt
+.type  vpaes_decrypt,@function
+.align 16
+vpaes_decrypt:
+       movdqu  (%rdi),%xmm0
+       call    _vpaes_preheat
+       call    _vpaes_decrypt_core
+       movdqu  %xmm0,(%rsi)
+       .byte   0xf3,0xc3
+.size  vpaes_decrypt,.-vpaes_decrypt
+.globl vpaes_cbc_encrypt
+.type  vpaes_cbc_encrypt,@function
+.align 16
+vpaes_cbc_encrypt:
+       xchgq   %rcx,%rdx
+       subq    $16,%rcx
+       jc      .Lcbc_abort
+       movdqu  (%r8),%xmm6
+       subq    %rdi,%rsi
+       call    _vpaes_preheat
+       cmpl    $0,%r9d
+       je      .Lcbc_dec_loop
+       jmp     .Lcbc_enc_loop
+.align 16
+.Lcbc_enc_loop:
+       movdqu  (%rdi),%xmm0
+       pxor    %xmm6,%xmm0
+       call    _vpaes_encrypt_core
+       movdqa  %xmm0,%xmm6
+       movdqu  %xmm0,(%rsi,%rdi,1)
+       leaq    16(%rdi),%rdi
+       subq    $16,%rcx
+       jnc     .Lcbc_enc_loop
+       jmp     .Lcbc_done
+.align 16
+.Lcbc_dec_loop:
+       movdqu  (%rdi),%xmm0
+       movdqa  %xmm0,%xmm7
+       call    _vpaes_decrypt_core
+       pxor    %xmm6,%xmm0
+       movdqa  %xmm7,%xmm6
+       movdqu  %xmm0,(%rsi,%rdi,1)
+       leaq    16(%rdi),%rdi
+       subq    $16,%rcx
+       jnc     .Lcbc_dec_loop
+.Lcbc_done:
+       movdqu  %xmm6,(%r8)
+.Lcbc_abort:
+       .byte   0xf3,0xc3
+.size  vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
+
+
+
+
+
+
+.type  _vpaes_preheat,@function
+.align 16
+_vpaes_preheat:
+       leaq    .Lk_s0F(%rip),%r10
+       movdqa  -32(%r10),%xmm10
+       movdqa  -16(%r10),%xmm11
+       movdqa  0(%r10),%xmm9
+       movdqa  48(%r10),%xmm13
+       movdqa  64(%r10),%xmm12
+       movdqa  80(%r10),%xmm15
+       movdqa  96(%r10),%xmm14
+       .byte   0xf3,0xc3
+.size  _vpaes_preheat,.-_vpaes_preheat
+
+
+
+
+
+.type  _vpaes_consts,@object
+.align 64
+_vpaes_consts:
+.Lk_inv:
+.quad  0x0E05060F0D080180, 0x040703090A0B0C02
+.quad  0x01040A060F0B0780, 0x030D0E0C02050809
+
+.Lk_s0F:
+.quad  0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
+
+.Lk_ipt:
+.quad  0xC2B2E8985A2A7000, 0xCABAE09052227808
+.quad  0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
+
+.Lk_sb1:
+.quad  0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
+.quad  0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
+.Lk_sb2:
+.quad  0xE27A93C60B712400, 0x5EB7E955BC982FCD
+.quad  0x69EB88400AE12900, 0xC2A163C8AB82234A
+.Lk_sbo:
+.quad  0xD0D26D176FBDC700, 0x15AABF7AC502A878
+.quad  0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
+
+.Lk_mc_forward:
+.quad  0x0407060500030201, 0x0C0F0E0D080B0A09
+.quad  0x080B0A0904070605, 0x000302010C0F0E0D
+.quad  0x0C0F0E0D080B0A09, 0x0407060500030201
+.quad  0x000302010C0F0E0D, 0x080B0A0904070605
+
+.Lk_mc_backward:
+.quad  0x0605040702010003, 0x0E0D0C0F0A09080B
+.quad  0x020100030E0D0C0F, 0x0A09080B06050407
+.quad  0x0E0D0C0F0A09080B, 0x0605040702010003
+.quad  0x0A09080B06050407, 0x020100030E0D0C0F
+
+.Lk_sr:
+.quad  0x0706050403020100, 0x0F0E0D0C0B0A0908
+.quad  0x030E09040F0A0500, 0x0B06010C07020D08
+.quad  0x0F060D040B020900, 0x070E050C030A0108
+.quad  0x0B0E0104070A0D00, 0x0306090C0F020508
+
+.Lk_rcon:
+.quad  0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
+
+.Lk_s63:
+.quad  0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
+
+.Lk_opt:
+.quad  0xFF9F4929D6B66000, 0xF7974121DEBE6808
+.quad  0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
+
+.Lk_deskew:
+.quad  0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
+.quad  0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
+
+
+
+
+
+.Lk_dksd:
+.quad  0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
+.quad  0x41C277F4B5368300, 0x5FDC69EAAB289D1E
+.Lk_dksb:
+.quad  0x9A4FCA1F8550D500, 0x03D653861CC94C99
+.quad  0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
+.Lk_dkse:
+.quad  0xD5031CCA1FC9D600, 0x53859A4C994F5086
+.quad  0xA23196054FDC7BE8, 0xCD5EF96A20B31487
+.Lk_dks9:
+.quad  0xB6116FC87ED9A700, 0x4AED933482255BFC
+.quad  0x4576516227143300, 0x8BB89FACE9DAFDCE
+
+
+
+
+
+.Lk_dipt:
+.quad  0x0F505B040B545F00, 0x154A411E114E451A
+.quad  0x86E383E660056500, 0x12771772F491F194
+
+.Lk_dsb9:
+.quad  0x851C03539A86D600, 0xCAD51F504F994CC9
+.quad  0xC03B1789ECD74900, 0x725E2C9EB2FBA565
+.Lk_dsbd:
+.quad  0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
+.quad  0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
+.Lk_dsbb:
+.quad  0xD022649296B44200, 0x602646F6B0F2D404
+.quad  0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
+.Lk_dsbe:
+.quad  0x46F2929626D4D000, 0x2242600464B4F6B0
+.quad  0x0C55A6CDFFAAC100, 0x9467F36B98593E32
+.Lk_dsbo:
+.quad  0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
+.quad  0x12D7560F93441D00, 0xCA4B8159D8C58E9C
+.byte  86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
+.align 64
+.size  _vpaes_consts,.-_vpaes_consts
diff --git a/deps/openssl/asm/x64-elf-gas/bn/x86_64-gf2m.s b/deps/openssl/asm/x64-elf-gas/bn/x86_64-gf2m.s
new file mode 100644 (file)
index 0000000..4f84013
--- /dev/null
@@ -0,0 +1,295 @@
+.text
+
+
+.type  _mul_1x1,@function
+.align 16
+_mul_1x1:
+       subq    $128+8,%rsp
+       movq    $-1,%r9
+       leaq    (%rax,%rax,1),%rsi
+       shrq    $3,%r9
+       leaq    (,%rax,4),%rdi
+       andq    %rax,%r9
+       leaq    (,%rax,8),%r12
+       sarq    $63,%rax
+       leaq    (%r9,%r9,1),%r10
+       sarq    $63,%rsi
+       leaq    (,%r9,4),%r11
+       andq    %rbp,%rax
+       sarq    $63,%rdi
+       movq    %rax,%rdx
+       shlq    $63,%rax
+       andq    %rbp,%rsi
+       shrq    $1,%rdx
+       movq    %rsi,%rcx
+       shlq    $62,%rsi
+       andq    %rbp,%rdi
+       shrq    $2,%rcx
+       xorq    %rsi,%rax
+       movq    %rdi,%rbx
+       shlq    $61,%rdi
+       xorq    %rcx,%rdx
+       shrq    $3,%rbx
+       xorq    %rdi,%rax
+       xorq    %rbx,%rdx
+
+       movq    %r9,%r13
+       movq    $0,0(%rsp)
+       xorq    %r10,%r13
+       movq    %r9,8(%rsp)
+       movq    %r11,%r14
+       movq    %r10,16(%rsp)
+       xorq    %r12,%r14
+       movq    %r13,24(%rsp)
+
+       xorq    %r11,%r9
+       movq    %r11,32(%rsp)
+       xorq    %r11,%r10
+       movq    %r9,40(%rsp)
+       xorq    %r11,%r13
+       movq    %r10,48(%rsp)
+       xorq    %r14,%r9
+       movq    %r13,56(%rsp)
+       xorq    %r14,%r10
+
+       movq    %r12,64(%rsp)
+       xorq    %r14,%r13
+       movq    %r9,72(%rsp)
+       xorq    %r11,%r9
+       movq    %r10,80(%rsp)
+       xorq    %r11,%r10
+       movq    %r13,88(%rsp)
+
+       xorq    %r11,%r13
+       movq    %r14,96(%rsp)
+       movq    %r8,%rsi
+       movq    %r9,104(%rsp)
+       andq    %rbp,%rsi
+       movq    %r10,112(%rsp)
+       shrq    $4,%rbp
+       movq    %r13,120(%rsp)
+       movq    %r8,%rdi
+       andq    %rbp,%rdi
+       shrq    $4,%rbp
+
+       movq    (%rsp,%rsi,8),%xmm0
+       movq    %r8,%rsi
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $4,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $60,%rbx
+       xorq    %rcx,%rax
+       pslldq  $1,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $12,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $52,%rbx
+       xorq    %rcx,%rax
+       pslldq  $2,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $20,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $44,%rbx
+       xorq    %rcx,%rax
+       pslldq  $3,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $28,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $36,%rbx
+       xorq    %rcx,%rax
+       pslldq  $4,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $36,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $28,%rbx
+       xorq    %rcx,%rax
+       pslldq  $5,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $44,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $20,%rbx
+       xorq    %rcx,%rax
+       pslldq  $6,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $52,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $12,%rbx
+       xorq    %rcx,%rax
+       pslldq  $7,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %rcx,%rbx
+       shlq    $60,%rcx
+.byte  102,72,15,126,198
+       shrq    $4,%rbx
+       xorq    %rcx,%rax
+       psrldq  $8,%xmm0
+       xorq    %rbx,%rdx
+.byte  102,72,15,126,199
+       xorq    %rsi,%rax
+       xorq    %rdi,%rdx
+
+       addq    $128+8,%rsp
+       .byte   0xf3,0xc3
+.Lend_mul_1x1:
+.size  _mul_1x1,.-_mul_1x1
+
+.globl bn_GF2m_mul_2x2
+.type  bn_GF2m_mul_2x2,@function
+.align 16
+bn_GF2m_mul_2x2:
+       movq    OPENSSL_ia32cap_P(%rip),%rax
+       btq     $33,%rax
+       jnc     .Lvanilla_mul_2x2
+
+.byte  102,72,15,110,198
+.byte  102,72,15,110,201
+.byte  102,72,15,110,210
+.byte  102,73,15,110,216
+       movdqa  %xmm0,%xmm4
+       movdqa  %xmm1,%xmm5
+.byte  102,15,58,68,193,0
+       pxor    %xmm2,%xmm4
+       pxor    %xmm3,%xmm5
+.byte  102,15,58,68,211,0
+.byte  102,15,58,68,229,0
+       xorps   %xmm0,%xmm4
+       xorps   %xmm2,%xmm4
+       movdqa  %xmm4,%xmm5
+       pslldq  $8,%xmm4
+       psrldq  $8,%xmm5
+       pxor    %xmm4,%xmm2
+       pxor    %xmm5,%xmm0
+       movdqu  %xmm2,0(%rdi)
+       movdqu  %xmm0,16(%rdi)
+       .byte   0xf3,0xc3
+
+.align 16
+.Lvanilla_mul_2x2:
+       leaq    -136(%rsp),%rsp
+       movq    %r14,80(%rsp)
+       movq    %r13,88(%rsp)
+       movq    %r12,96(%rsp)
+       movq    %rbp,104(%rsp)
+       movq    %rbx,112(%rsp)
+.Lbody_mul_2x2:
+       movq    %rdi,32(%rsp)
+       movq    %rsi,40(%rsp)
+       movq    %rdx,48(%rsp)
+       movq    %rcx,56(%rsp)
+       movq    %r8,64(%rsp)
+
+       movq    $15,%r8
+       movq    %rsi,%rax
+       movq    %rcx,%rbp
+       call    _mul_1x1
+
+       movq    %rax,16(%rsp)
+       movq    %rdx,24(%rsp)
+
+       movq    48(%rsp),%rax
+       movq    64(%rsp),%rbp
+       call    _mul_1x1
+
+       movq    %rax,0(%rsp)
+       movq    %rdx,8(%rsp)
+
+       movq    40(%rsp),%rax
+       movq    56(%rsp),%rbp
+       xorq    48(%rsp),%rax
+       xorq    64(%rsp),%rbp
+       call    _mul_1x1
+
+       movq    0(%rsp),%rbx
+       movq    8(%rsp),%rcx
+       movq    16(%rsp),%rdi
+       movq    24(%rsp),%rsi
+       movq    32(%rsp),%rbp
+
+       xorq    %rdx,%rax
+       xorq    %rcx,%rdx
+       xorq    %rbx,%rax
+       movq    %rbx,0(%rbp)
+       xorq    %rdi,%rdx
+       movq    %rsi,24(%rbp)
+       xorq    %rsi,%rax
+       xorq    %rsi,%rdx
+       xorq    %rdx,%rax
+       movq    %rdx,16(%rbp)
+       movq    %rax,8(%rbp)
+
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbp
+       movq    112(%rsp),%rbx
+       leaq    136(%rsp),%rsp
+       .byte   0xf3,0xc3
+.Lend_mul_2x2:
+.size  bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2
+.byte  71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,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 16
diff --git a/deps/openssl/asm/x64-elf-gas/bn/x86_64-mont5.s b/deps/openssl/asm/x64-elf-gas/bn/x86_64-mont5.s
new file mode 100644 (file)
index 0000000..875911c
--- /dev/null
@@ -0,0 +1,785 @@
+.text
+
+
+.globl bn_mul_mont_gather5
+.type  bn_mul_mont_gather5,@function
+.align 64
+bn_mul_mont_gather5:
+       testl   $3,%r9d
+       jnz     .Lmul_enter
+       cmpl    $8,%r9d
+       jb      .Lmul_enter
+       jmp     .Lmul4x_enter
+
+.align 16
+.Lmul_enter:
+       movl    %r9d,%r9d
+       movl    8(%rsp),%r10d
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       movq    %rsp,%rax
+       leaq    2(%r9),%r11
+       negq    %r11
+       leaq    (%rsp,%r11,8),%rsp
+       andq    $-1024,%rsp
+
+       movq    %rax,8(%rsp,%r9,8)
+.Lmul_body:
+       movq    %rdx,%r12
+       movq    %r10,%r11
+       shrq    $3,%r10
+       andq    $7,%r11
+       notq    %r10
+       leaq    .Lmagic_masks(%rip),%rax
+       andq    $3,%r10
+       leaq    96(%r12,%r11,8),%r12
+       movq    0(%rax,%r10,8),%xmm4
+       movq    8(%rax,%r10,8),%xmm5
+       movq    16(%rax,%r10,8),%xmm6
+       movq    24(%rax,%r10,8),%xmm7
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+.byte  102,72,15,126,195
+
+       movq    (%r8),%r8
+       movq    (%rsi),%rax
+
+       xorq    %r14,%r14
+       xorq    %r15,%r15
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       movq    %r8,%rbp
+       mulq    %rbx
+       movq    %rax,%r10
+       movq    (%rcx),%rax
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r13
+
+       leaq    1(%r15),%r15
+       jmp     .L1st_enter
+
+.align 16
+.L1st:
+       addq    %rax,%r13
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%r13
+       movq    %r10,%r11
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+.L1st_enter:
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       leaq    1(%r15),%r15
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       cmpq    %r9,%r15
+       jne     .L1st
+
+.byte  102,72,15,126,195
+
+       addq    %rax,%r13
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%r13
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+       movq    %r10,%r11
+
+       xorq    %rdx,%rdx
+       addq    %r11,%r13
+       adcq    $0,%rdx
+       movq    %r13,-8(%rsp,%r9,8)
+       movq    %rdx,(%rsp,%r9,8)
+
+       leaq    1(%r14),%r14
+       jmp     .Louter
+.align 16
+.Louter:
+       xorq    %r15,%r15
+       movq    %r8,%rbp
+       movq    (%rsp),%r10
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx),%rax
+       adcq    $0,%rdx
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    8(%rsp),%r10
+       movq    %rdx,%r13
+
+       leaq    1(%r15),%r15
+       jmp     .Linner_enter
+
+.align 16
+.Linner:
+       addq    %rax,%r13
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       movq    (%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+.Linner_enter:
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%r10
+       movq    %rdx,%r11
+       adcq    $0,%r11
+       leaq    1(%r15),%r15
+
+       mulq    %rbp
+       cmpq    %r9,%r15
+       jne     .Linner
+
+.byte  102,72,15,126,195
+
+       addq    %rax,%r13
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       movq    (%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+       xorq    %rdx,%rdx
+       addq    %r11,%r13
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-8(%rsp,%r9,8)
+       movq    %rdx,(%rsp,%r9,8)
+
+       leaq    1(%r14),%r14
+       cmpq    %r9,%r14
+       jl      .Louter
+
+       xorq    %r14,%r14
+       movq    (%rsp),%rax
+       leaq    (%rsp),%rsi
+       movq    %r9,%r15
+       jmp     .Lsub
+.align 16
+.Lsub: sbbq    (%rcx,%r14,8),%rax
+       movq    %rax,(%rdi,%r14,8)
+       movq    8(%rsi,%r14,8),%rax
+       leaq    1(%r14),%r14
+       decq    %r15
+       jnz     .Lsub
+
+       sbbq    $0,%rax
+       xorq    %r14,%r14
+       andq    %rax,%rsi
+       notq    %rax
+       movq    %rdi,%rcx
+       andq    %rax,%rcx
+       movq    %r9,%r15
+       orq     %rcx,%rsi
+.align 16
+.Lcopy:
+       movq    (%rsi,%r14,8),%rax
+       movq    %r14,(%rsp,%r14,8)
+       movq    %rax,(%rdi,%r14,8)
+       leaq    1(%r14),%r14
+       subq    $1,%r15
+       jnz     .Lcopy
+
+       movq    8(%rsp,%r9,8),%rsi
+       movq    $1,%rax
+       movq    (%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+.Lmul_epilogue:
+       .byte   0xf3,0xc3
+.size  bn_mul_mont_gather5,.-bn_mul_mont_gather5
+.type  bn_mul4x_mont_gather5,@function
+.align 16
+bn_mul4x_mont_gather5:
+.Lmul4x_enter:
+       movl    %r9d,%r9d
+       movl    8(%rsp),%r10d
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       movq    %rsp,%rax
+       leaq    4(%r9),%r11
+       negq    %r11
+       leaq    (%rsp,%r11,8),%rsp
+       andq    $-1024,%rsp
+
+       movq    %rax,8(%rsp,%r9,8)
+.Lmul4x_body:
+       movq    %rdi,16(%rsp,%r9,8)
+       movq    %rdx,%r12
+       movq    %r10,%r11
+       shrq    $3,%r10
+       andq    $7,%r11
+       notq    %r10
+       leaq    .Lmagic_masks(%rip),%rax
+       andq    $3,%r10
+       leaq    96(%r12,%r11,8),%r12
+       movq    0(%rax,%r10,8),%xmm4
+       movq    8(%rax,%r10,8),%xmm5
+       movq    16(%rax,%r10,8),%xmm6
+       movq    24(%rax,%r10,8),%xmm7
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+.byte  102,72,15,126,195
+       movq    (%r8),%r8
+       movq    (%rsi),%rax
+
+       xorq    %r14,%r14
+       xorq    %r15,%r15
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       movq    %r8,%rbp
+       mulq    %rbx
+       movq    %rax,%r10
+       movq    (%rcx),%rax
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    16(%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       leaq    4(%r15),%r15
+       adcq    $0,%rdx
+       movq    %rdi,(%rsp)
+       movq    %rdx,%r13
+       jmp     .L1st4x
+.align 16
+.L1st4x:
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %rdi,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-8(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       leaq    4(%r15),%r15
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    -16(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %rdi,-32(%rsp,%r15,8)
+       movq    %rdx,%r13
+       cmpq    %r9,%r15
+       jl      .L1st4x
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %rdi,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+.byte  102,72,15,126,195
+
+       xorq    %rdi,%rdi
+       addq    %r10,%r13
+       adcq    $0,%rdi
+       movq    %r13,-8(%rsp,%r15,8)
+       movq    %rdi,(%rsp,%r15,8)
+
+       leaq    1(%r14),%r14
+.align 4
+.Louter4x:
+       xorq    %r15,%r15
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       movq    (%rsp),%r10
+       movq    %r8,%rbp
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx),%rax
+       adcq    $0,%rdx
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx),%rax
+       adcq    $0,%rdx
+       addq    8(%rsp),%r11
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    16(%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       leaq    4(%r15),%r15
+       adcq    $0,%rdx
+       movq    %rdx,%r13
+       jmp     .Linner4x
+.align 16
+.Linner4x:
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -16(%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %rdi,-32(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -8(%rsp,%r15,8),%r11
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    (%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %rdi,-16(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    8(%rsp,%r15,8),%r11
+       adcq    $0,%rdx
+       leaq    4(%r15),%r15
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    -16(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %r13,-40(%rsp,%r15,8)
+       movq    %rdx,%r13
+       cmpq    %r9,%r15
+       jl      .Linner4x
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -16(%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %rdi,-32(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -8(%rsp,%r15,8),%r11
+       adcq    $0,%rdx
+       leaq    1(%r14),%r14
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+.byte  102,72,15,126,195
+       movq    %rdi,-16(%rsp,%r15,8)
+
+       xorq    %rdi,%rdi
+       addq    %r10,%r13
+       adcq    $0,%rdi
+       addq    (%rsp,%r9,8),%r13
+       adcq    $0,%rdi
+       movq    %r13,-8(%rsp,%r15,8)
+       movq    %rdi,(%rsp,%r15,8)
+
+       cmpq    %r9,%r14
+       jl      .Louter4x
+       movq    16(%rsp,%r9,8),%rdi
+       movq    0(%rsp),%rax
+       pxor    %xmm0,%xmm0
+       movq    8(%rsp),%rdx
+       shrq    $2,%r9
+       leaq    (%rsp),%rsi
+       xorq    %r14,%r14
+
+       subq    0(%rcx),%rax
+       movq    16(%rsi),%rbx
+       movq    24(%rsi),%rbp
+       sbbq    8(%rcx),%rdx
+       leaq    -1(%r9),%r15
+       jmp     .Lsub4x
+.align 16
+.Lsub4x:
+       movq    %rax,0(%rdi,%r14,8)
+       movq    %rdx,8(%rdi,%r14,8)
+       sbbq    16(%rcx,%r14,8),%rbx
+       movq    32(%rsi,%r14,8),%rax
+       movq    40(%rsi,%r14,8),%rdx
+       sbbq    24(%rcx,%r14,8),%rbp
+       movq    %rbx,16(%rdi,%r14,8)
+       movq    %rbp,24(%rdi,%r14,8)
+       sbbq    32(%rcx,%r14,8),%rax
+       movq    48(%rsi,%r14,8),%rbx
+       movq    56(%rsi,%r14,8),%rbp
+       sbbq    40(%rcx,%r14,8),%rdx
+       leaq    4(%r14),%r14
+       decq    %r15
+       jnz     .Lsub4x
+
+       movq    %rax,0(%rdi,%r14,8)
+       movq    32(%rsi,%r14,8),%rax
+       sbbq    16(%rcx,%r14,8),%rbx
+       movq    %rdx,8(%rdi,%r14,8)
+       sbbq    24(%rcx,%r14,8),%rbp
+       movq    %rbx,16(%rdi,%r14,8)
+
+       sbbq    $0,%rax
+       movq    %rbp,24(%rdi,%r14,8)
+       xorq    %r14,%r14
+       andq    %rax,%rsi
+       notq    %rax
+       movq    %rdi,%rcx
+       andq    %rax,%rcx
+       leaq    -1(%r9),%r15
+       orq     %rcx,%rsi
+
+       movdqu  (%rsi),%xmm1
+       movdqa  %xmm0,(%rsp)
+       movdqu  %xmm1,(%rdi)
+       jmp     .Lcopy4x
+.align 16
+.Lcopy4x:
+       movdqu  16(%rsi,%r14,1),%xmm2
+       movdqu  32(%rsi,%r14,1),%xmm1
+       movdqa  %xmm0,16(%rsp,%r14,1)
+       movdqu  %xmm2,16(%rdi,%r14,1)
+       movdqa  %xmm0,32(%rsp,%r14,1)
+       movdqu  %xmm1,32(%rdi,%r14,1)
+       leaq    32(%r14),%r14
+       decq    %r15
+       jnz     .Lcopy4x
+
+       shlq    $2,%r9
+       movdqu  16(%rsi,%r14,1),%xmm2
+       movdqa  %xmm0,16(%rsp,%r14,1)
+       movdqu  %xmm2,16(%rdi,%r14,1)
+       movq    8(%rsp,%r9,8),%rsi
+       movq    $1,%rax
+       movq    (%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+.Lmul4x_epilogue:
+       .byte   0xf3,0xc3
+.size  bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5
+.globl bn_scatter5
+.type  bn_scatter5,@function
+.align 16
+bn_scatter5:
+       cmpq    $0,%rsi
+       jz      .Lscatter_epilogue
+       leaq    (%rdx,%rcx,8),%rdx
+.Lscatter:
+       movq    (%rdi),%rax
+       leaq    8(%rdi),%rdi
+       movq    %rax,(%rdx)
+       leaq    256(%rdx),%rdx
+       subq    $1,%rsi
+       jnz     .Lscatter
+.Lscatter_epilogue:
+       .byte   0xf3,0xc3
+.size  bn_scatter5,.-bn_scatter5
+
+.globl bn_gather5
+.type  bn_gather5,@function
+.align 16
+bn_gather5:
+       movq    %rcx,%r11
+       shrq    $3,%rcx
+       andq    $7,%r11
+       notq    %rcx
+       leaq    .Lmagic_masks(%rip),%rax
+       andq    $3,%rcx
+       leaq    96(%rdx,%r11,8),%rdx
+       movq    0(%rax,%rcx,8),%xmm4
+       movq    8(%rax,%rcx,8),%xmm5
+       movq    16(%rax,%rcx,8),%xmm6
+       movq    24(%rax,%rcx,8),%xmm7
+       jmp     .Lgather
+.align 16
+.Lgather:
+       movq    -96(%rdx),%xmm0
+       movq    -32(%rdx),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%rdx),%xmm2
+       pand    %xmm5,%xmm1
+       movq    96(%rdx),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+       por     %xmm2,%xmm0
+       leaq    256(%rdx),%rdx
+       por     %xmm3,%xmm0
+
+       movq    %xmm0,(%rdi)
+       leaq    8(%rdi),%rdi
+       subq    $1,%rsi
+       jnz     .Lgather
+       .byte   0xf3,0xc3
+.LSEH_end_bn_gather5:
+.size  bn_gather5,.-bn_gather5
+.align 64
+.Lmagic_masks:
+.long  0,0, 0,0, 0,0, -1,-1
+.long  0,0, 0,0, 0,0,  0,0
+.byte  77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,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
diff --git a/deps/openssl/asm/x64-elf-gas/modes/ghash-x86_64.s b/deps/openssl/asm/x64-elf-gas/modes/ghash-x86_64.s
new file mode 100644 (file)
index 0000000..f5411f3
--- /dev/null
@@ -0,0 +1,1027 @@
+.text
+
+
+.globl gcm_gmult_4bit
+.type  gcm_gmult_4bit,@function
+.align 16
+gcm_gmult_4bit:
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+.Lgmult_prologue:
+
+       movzbq  15(%rdi),%r8
+       leaq    .Lrem_4bit(%rip),%r11
+       xorq    %rax,%rax
+       xorq    %rbx,%rbx
+       movb    %r8b,%al
+       movb    %r8b,%bl
+       shlb    $4,%al
+       movq    $14,%rcx
+       movq    8(%rsi,%rax,1),%r8
+       movq    (%rsi,%rax,1),%r9
+       andb    $240,%bl
+       movq    %r8,%rdx
+       jmp     .Loop1
+
+.align 16
+.Loop1:
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       movb    (%rdi,%rcx,1),%al
+       shrq    $4,%r9
+       xorq    8(%rsi,%rbx,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rbx,1),%r9
+       movb    %al,%bl
+       xorq    (%r11,%rdx,8),%r9
+       movq    %r8,%rdx
+       shlb    $4,%al
+       xorq    %r10,%r8
+       decq    %rcx
+       js      .Lbreak1
+
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       xorq    8(%rsi,%rax,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rax,1),%r9
+       andb    $240,%bl
+       xorq    (%r11,%rdx,8),%r9
+       movq    %r8,%rdx
+       xorq    %r10,%r8
+       jmp     .Loop1
+
+.align 16
+.Lbreak1:
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       xorq    8(%rsi,%rax,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rax,1),%r9
+       andb    $240,%bl
+       xorq    (%r11,%rdx,8),%r9
+       movq    %r8,%rdx
+       xorq    %r10,%r8
+
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       xorq    8(%rsi,%rbx,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rbx,1),%r9
+       xorq    %r10,%r8
+       xorq    (%r11,%rdx,8),%r9
+
+       bswapq  %r8
+       bswapq  %r9
+       movq    %r8,8(%rdi)
+       movq    %r9,(%rdi)
+
+       movq    16(%rsp),%rbx
+       leaq    24(%rsp),%rsp
+.Lgmult_epilogue:
+       .byte   0xf3,0xc3
+.size  gcm_gmult_4bit,.-gcm_gmult_4bit
+.globl gcm_ghash_4bit
+.type  gcm_ghash_4bit,@function
+.align 16
+gcm_ghash_4bit:
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       subq    $280,%rsp
+.Lghash_prologue:
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+       subq    $-128,%rsi
+       leaq    16+128(%rsp),%rbp
+       xorl    %edx,%edx
+       movq    0+0-128(%rsi),%r8
+       movq    0+8-128(%rsi),%rax
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    16+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    16+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,0(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,0(%rbp)
+       movq    32+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,0-128(%rbp)
+       movq    32+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,1(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,8(%rbp)
+       movq    48+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,8-128(%rbp)
+       movq    48+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,2(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,16(%rbp)
+       movq    64+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,16-128(%rbp)
+       movq    64+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,3(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,24(%rbp)
+       movq    80+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,24-128(%rbp)
+       movq    80+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,4(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,32(%rbp)
+       movq    96+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,32-128(%rbp)
+       movq    96+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,5(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,40(%rbp)
+       movq    112+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,40-128(%rbp)
+       movq    112+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,6(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,48(%rbp)
+       movq    128+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,48-128(%rbp)
+       movq    128+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,7(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,56(%rbp)
+       movq    144+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,56-128(%rbp)
+       movq    144+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,8(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,64(%rbp)
+       movq    160+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,64-128(%rbp)
+       movq    160+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,9(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,72(%rbp)
+       movq    176+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,72-128(%rbp)
+       movq    176+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,10(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,80(%rbp)
+       movq    192+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,80-128(%rbp)
+       movq    192+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,11(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,88(%rbp)
+       movq    208+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,88-128(%rbp)
+       movq    208+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,12(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,96(%rbp)
+       movq    224+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,96-128(%rbp)
+       movq    224+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,13(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,104(%rbp)
+       movq    240+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,104-128(%rbp)
+       movq    240+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,14(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,112(%rbp)
+       shlb    $4,%dl
+       movq    %rax,112-128(%rbp)
+       shlq    $60,%r10
+       movb    %dl,15(%rsp)
+       orq     %r10,%rbx
+       movq    %r9,120(%rbp)
+       movq    %rbx,120-128(%rbp)
+       addq    $-128,%rsi
+       movq    8(%rdi),%r8
+       movq    0(%rdi),%r9
+       addq    %r14,%r15
+       leaq    .Lrem_8bit(%rip),%r11
+       jmp     .Louter_loop
+.align 16
+.Louter_loop:
+       xorq    (%r14),%r9
+       movq    8(%r14),%rdx
+       leaq    16(%r14),%r14
+       xorq    %r8,%rdx
+       movq    %r9,(%rdi)
+       movq    %rdx,8(%rdi)
+       shrq    $32,%rdx
+       xorq    %rax,%rax
+       roll    $8,%edx
+       movb    %dl,%al
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       shrl    $4,%ebx
+       roll    $8,%edx
+       movq    8(%rsi,%rax,1),%r8
+       movq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    8(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    4(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    0(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       andl    $240,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    -4(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       movzwq  (%r11,%r12,2),%r12
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       shlq    $48,%r12
+       xorq    %r10,%r8
+       xorq    %r12,%r9
+       movzbq  %r8b,%r13
+       shrq    $4,%r8
+       movq    %r9,%r10
+       shlb    $4,%r13b
+       shrq    $4,%r9
+       xorq    8(%rsi,%rcx,1),%r8
+       movzwq  (%r11,%r13,2),%r13
+       shlq    $60,%r10
+       xorq    (%rsi,%rcx,1),%r9
+       xorq    %r10,%r8
+       shlq    $48,%r13
+       bswapq  %r8
+       xorq    %r13,%r9
+       bswapq  %r9
+       cmpq    %r15,%r14
+       jb      .Louter_loop
+       movq    %r8,8(%rdi)
+       movq    %r9,(%rdi)
+
+       leaq    280(%rsp),%rsi
+       movq    0(%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+.Lghash_epilogue:
+       .byte   0xf3,0xc3
+.size  gcm_ghash_4bit,.-gcm_ghash_4bit
+.globl gcm_init_clmul
+.type  gcm_init_clmul,@function
+.align 16
+gcm_init_clmul:
+       movdqu  (%rsi),%xmm2
+       pshufd  $78,%xmm2,%xmm2
+
+
+       pshufd  $255,%xmm2,%xmm4
+       movdqa  %xmm2,%xmm3
+       psllq   $1,%xmm2
+       pxor    %xmm5,%xmm5
+       psrlq   $63,%xmm3
+       pcmpgtd %xmm4,%xmm5
+       pslldq  $8,%xmm3
+       por     %xmm3,%xmm2
+
+
+       pand    .L0x1c2_polynomial(%rip),%xmm5
+       pxor    %xmm5,%xmm2
+
+
+       movdqa  %xmm2,%xmm0
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,194,0
+.byte  102,15,58,68,202,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       movdqu  %xmm2,(%rdi)
+       movdqu  %xmm0,16(%rdi)
+       .byte   0xf3,0xc3
+.size  gcm_init_clmul,.-gcm_init_clmul
+.globl gcm_gmult_clmul
+.type  gcm_gmult_clmul,@function
+.align 16
+gcm_gmult_clmul:
+       movdqu  (%rdi),%xmm0
+       movdqa  .Lbswap_mask(%rip),%xmm5
+       movdqu  (%rsi),%xmm2
+.byte  102,15,56,0,197
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,194,0
+.byte  102,15,58,68,202,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,197
+       movdqu  %xmm0,(%rdi)
+       .byte   0xf3,0xc3
+.size  gcm_gmult_clmul,.-gcm_gmult_clmul
+.globl gcm_ghash_clmul
+.type  gcm_ghash_clmul,@function
+.align 16
+gcm_ghash_clmul:
+       movdqa  .Lbswap_mask(%rip),%xmm5
+
+       movdqu  (%rdi),%xmm0
+       movdqu  (%rsi),%xmm2
+.byte  102,15,56,0,197
+
+       subq    $16,%rcx
+       jz      .Lodd_tail
+
+       movdqu  16(%rsi),%xmm8
+
+
+
+
+
+       movdqu  (%rdx),%xmm3
+       movdqu  16(%rdx),%xmm6
+.byte  102,15,56,0,221
+.byte  102,15,56,0,245
+       pxor    %xmm3,%xmm0
+       movdqa  %xmm6,%xmm7
+       pshufd  $78,%xmm6,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm6,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,242,0
+.byte  102,15,58,68,250,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm6,%xmm3
+       pxor    %xmm7,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm7
+       pxor    %xmm4,%xmm6
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm8,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm8,%xmm4
+
+       leaq    32(%rdx),%rdx
+       subq    $32,%rcx
+       jbe     .Leven_tail
+
+.Lmod_loop:
+.byte  102,65,15,58,68,192,0
+.byte  102,65,15,58,68,200,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+       movdqu  (%rdx),%xmm3
+       pxor    %xmm6,%xmm0
+       pxor    %xmm7,%xmm1
+
+       movdqu  16(%rdx),%xmm6
+.byte  102,15,56,0,221
+.byte  102,15,56,0,245
+
+       movdqa  %xmm6,%xmm7
+       pshufd  $78,%xmm6,%xmm9
+       pshufd  $78,%xmm2,%xmm10
+       pxor    %xmm6,%xmm9
+       pxor    %xmm2,%xmm10
+       pxor    %xmm3,%xmm1
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+.byte  102,15,58,68,242,0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+.byte  102,15,58,68,250,17
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+
+.byte  102,69,15,58,68,202,0
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm8,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm8,%xmm4
+
+       pxor    %xmm6,%xmm9
+       pxor    %xmm7,%xmm9
+       movdqa  %xmm9,%xmm10
+       psrldq  $8,%xmm9
+       pslldq  $8,%xmm10
+       pxor    %xmm9,%xmm7
+       pxor    %xmm10,%xmm6
+
+       leaq    32(%rdx),%rdx
+       subq    $32,%rcx
+       ja      .Lmod_loop
+
+.Leven_tail:
+.byte  102,65,15,58,68,192,0
+.byte  102,65,15,58,68,200,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+       pxor    %xmm6,%xmm0
+       pxor    %xmm7,%xmm1
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       testq   %rcx,%rcx
+       jnz     .Ldone
+
+.Lodd_tail:
+       movdqu  (%rdx),%xmm3
+.byte  102,15,56,0,221
+       pxor    %xmm3,%xmm0
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,194,0
+.byte  102,15,58,68,202,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+.Ldone:
+.byte  102,15,56,0,197
+       movdqu  %xmm0,(%rdi)
+       .byte   0xf3,0xc3
+.LSEH_end_gcm_ghash_clmul:
+.size  gcm_ghash_clmul,.-gcm_ghash_clmul
+.align 64
+.Lbswap_mask:
+.byte  15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
+.L0x1c2_polynomial:
+.byte  1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
+.align 64
+.type  .Lrem_4bit,@object
+.Lrem_4bit:
+.long  0,0,0,471859200,0,943718400,0,610271232
+.long  0,1887436800,0,1822425088,0,1220542464,0,1423966208
+.long  0,3774873600,0,4246732800,0,3644850176,0,3311403008
+.long  0,2441084928,0,2376073216,0,2847932416,0,3051356160
+.type  .Lrem_8bit,@object
+.Lrem_8bit:
+.value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
+.value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
+.value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
+.value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
+.value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
+.value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
+.value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
+.value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
+.value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
+.value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
+.value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
+.value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
+.value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
+.value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
+.value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
+.value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
+.value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
+.value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
+.value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
+.value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
+.value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
+.value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
+.value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
+.value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
+.value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
+.value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
+.value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
+.value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
+.value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
+.value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
+.value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
+.value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
+
+.byte  71,72,65,83,72,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
diff --git a/deps/openssl/asm/x64-elf-gas/sha/sha256-x86_64.s b/deps/openssl/asm/x64-elf-gas/sha/sha256-x86_64.s
new file mode 100644 (file)
index 0000000..576d7d8
--- /dev/null
@@ -0,0 +1,1779 @@
+.text
+
+
+.globl sha256_block_data_order
+.type  sha256_block_data_order,@function
+.align 16
+sha256_block_data_order:
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       movq    %rsp,%r11
+       shlq    $4,%rdx
+       subq    $64+32,%rsp
+       leaq    (%rsi,%rdx,4),%rdx
+       andq    $-64,%rsp
+       movq    %rdi,64+0(%rsp)
+       movq    %rsi,64+8(%rsp)
+       movq    %rdx,64+16(%rsp)
+       movq    %r11,64+24(%rsp)
+.Lprologue:
+
+       leaq    K256(%rip),%rbp
+
+       movl    0(%rdi),%eax
+       movl    4(%rdi),%ebx
+       movl    8(%rdi),%ecx
+       movl    12(%rdi),%edx
+       movl    16(%rdi),%r8d
+       movl    20(%rdi),%r9d
+       movl    24(%rdi),%r10d
+       movl    28(%rdi),%r11d
+       jmp     .Lloop
+
+.align 16
+.Lloop:
+       xorq    %rdi,%rdi
+       movl    0(%rsi),%r12d
+       movl    %r8d,%r13d
+       movl    %eax,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,0(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    4(%rsi),%r12d
+       movl    %edx,%r13d
+       movl    %r11d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,4(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    8(%rsi),%r12d
+       movl    %ecx,%r13d
+       movl    %r10d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,8(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    12(%rsi),%r12d
+       movl    %ebx,%r13d
+       movl    %r9d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,12(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    16(%rsi),%r12d
+       movl    %eax,%r13d
+       movl    %r8d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,16(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    20(%rsi),%r12d
+       movl    %r11d,%r13d
+       movl    %edx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,20(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    24(%rsi),%r12d
+       movl    %r10d,%r13d
+       movl    %ecx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,24(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    28(%rsi),%r12d
+       movl    %r9d,%r13d
+       movl    %ebx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,28(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       movl    32(%rsi),%r12d
+       movl    %r8d,%r13d
+       movl    %eax,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,32(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    36(%rsi),%r12d
+       movl    %edx,%r13d
+       movl    %r11d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,36(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    40(%rsi),%r12d
+       movl    %ecx,%r13d
+       movl    %r10d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,40(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    44(%rsi),%r12d
+       movl    %ebx,%r13d
+       movl    %r9d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,44(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    48(%rsi),%r12d
+       movl    %eax,%r13d
+       movl    %r8d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,48(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    52(%rsi),%r12d
+       movl    %r11d,%r13d
+       movl    %edx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,52(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    56(%rsi),%r12d
+       movl    %r10d,%r13d
+       movl    %ecx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,56(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    60(%rsi),%r12d
+       movl    %r9d,%r13d
+       movl    %ebx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,60(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       jmp     .Lrounds_16_xx
+.align 16
+.Lrounds_16_xx:
+       movl    4(%rsp),%r13d
+       movl    56(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    36(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    0(%rsp),%r12d
+       movl    %r8d,%r13d
+       addl    %r14d,%r12d
+       movl    %eax,%r14d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,0(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    8(%rsp),%r13d
+       movl    60(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    40(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    4(%rsp),%r12d
+       movl    %edx,%r13d
+       addl    %r14d,%r12d
+       movl    %r11d,%r14d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,4(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    12(%rsp),%r13d
+       movl    0(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    44(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    8(%rsp),%r12d
+       movl    %ecx,%r13d
+       addl    %r14d,%r12d
+       movl    %r10d,%r14d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,8(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    16(%rsp),%r13d
+       movl    4(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    48(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    12(%rsp),%r12d
+       movl    %ebx,%r13d
+       addl    %r14d,%r12d
+       movl    %r9d,%r14d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,12(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    20(%rsp),%r13d
+       movl    8(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    52(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    16(%rsp),%r12d
+       movl    %eax,%r13d
+       addl    %r14d,%r12d
+       movl    %r8d,%r14d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,16(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    24(%rsp),%r13d
+       movl    12(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    56(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    20(%rsp),%r12d
+       movl    %r11d,%r13d
+       addl    %r14d,%r12d
+       movl    %edx,%r14d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,20(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    28(%rsp),%r13d
+       movl    16(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    60(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    24(%rsp),%r12d
+       movl    %r10d,%r13d
+       addl    %r14d,%r12d
+       movl    %ecx,%r14d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,24(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    32(%rsp),%r13d
+       movl    20(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    0(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    28(%rsp),%r12d
+       movl    %r9d,%r13d
+       addl    %r14d,%r12d
+       movl    %ebx,%r14d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,28(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       movl    36(%rsp),%r13d
+       movl    24(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    4(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    32(%rsp),%r12d
+       movl    %r8d,%r13d
+       addl    %r14d,%r12d
+       movl    %eax,%r14d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,32(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    40(%rsp),%r13d
+       movl    28(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    8(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    36(%rsp),%r12d
+       movl    %edx,%r13d
+       addl    %r14d,%r12d
+       movl    %r11d,%r14d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,36(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    44(%rsp),%r13d
+       movl    32(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    12(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    40(%rsp),%r12d
+       movl    %ecx,%r13d
+       addl    %r14d,%r12d
+       movl    %r10d,%r14d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,40(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    48(%rsp),%r13d
+       movl    36(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    16(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    44(%rsp),%r12d
+       movl    %ebx,%r13d
+       addl    %r14d,%r12d
+       movl    %r9d,%r14d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,44(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    52(%rsp),%r13d
+       movl    40(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    20(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    48(%rsp),%r12d
+       movl    %eax,%r13d
+       addl    %r14d,%r12d
+       movl    %r8d,%r14d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,48(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    56(%rsp),%r13d
+       movl    44(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    24(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    52(%rsp),%r12d
+       movl    %r11d,%r13d
+       addl    %r14d,%r12d
+       movl    %edx,%r14d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,52(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    60(%rsp),%r13d
+       movl    48(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    28(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    56(%rsp),%r12d
+       movl    %r10d,%r13d
+       addl    %r14d,%r12d
+       movl    %ecx,%r14d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,56(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    0(%rsp),%r13d
+       movl    52(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    32(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    60(%rsp),%r12d
+       movl    %r9d,%r13d
+       addl    %r14d,%r12d
+       movl    %ebx,%r14d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,60(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       cmpq    $64,%rdi
+       jb      .Lrounds_16_xx
+
+       movq    64+0(%rsp),%rdi
+       leaq    64(%rsi),%rsi
+
+       addl    0(%rdi),%eax
+       addl    4(%rdi),%ebx
+       addl    8(%rdi),%ecx
+       addl    12(%rdi),%edx
+       addl    16(%rdi),%r8d
+       addl    20(%rdi),%r9d
+       addl    24(%rdi),%r10d
+       addl    28(%rdi),%r11d
+
+       cmpq    64+16(%rsp),%rsi
+
+       movl    %eax,0(%rdi)
+       movl    %ebx,4(%rdi)
+       movl    %ecx,8(%rdi)
+       movl    %edx,12(%rdi)
+       movl    %r8d,16(%rdi)
+       movl    %r9d,20(%rdi)
+       movl    %r10d,24(%rdi)
+       movl    %r11d,28(%rdi)
+       jb      .Lloop
+
+       movq    64+24(%rsp),%rsi
+       movq    (%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+.Lepilogue:
+       .byte   0xf3,0xc3
+.size  sha256_block_data_order,.-sha256_block_data_order
+.align 64
+.type  K256,@object
+K256:
+.long  0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+.long  0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+.long  0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+.long  0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+.long  0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+.long  0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+.long  0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+.long  0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+.long  0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+.long  0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+.long  0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+.long  0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+.long  0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+.long  0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+.long  0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+.long  0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
index 576d7d8..7e57854 100644 (file)
@@ -1,10 +1,10 @@
 .text
 
 
-.globl sha256_block_data_order
-.type  sha256_block_data_order,@function
+.globl sha512_block_data_order
+.type  sha512_block_data_order,@function
 .align 16
-sha256_block_data_order:
+sha512_block_data_order:
        pushq   %rbx
        pushq   %rbp
        pushq   %r12
@@ -13,1741 +13,1741 @@ sha256_block_data_order:
        pushq   %r15
        movq    %rsp,%r11
        shlq    $4,%rdx
-       subq    $64+32,%rsp
-       leaq    (%rsi,%rdx,4),%rdx
+       subq    $128+32,%rsp
+       leaq    (%rsi,%rdx,8),%rdx
        andq    $-64,%rsp
-       movq    %rdi,64+0(%rsp)
-       movq    %rsi,64+8(%rsp)
-       movq    %rdx,64+16(%rsp)
-       movq    %r11,64+24(%rsp)
+       movq    %rdi,128+0(%rsp)
+       movq    %rsi,128+8(%rsp)
+       movq    %rdx,128+16(%rsp)
+       movq    %r11,128+24(%rsp)
 .Lprologue:
 
-       leaq    K256(%rip),%rbp
+       leaq    K512(%rip),%rbp
 
-       movl    0(%rdi),%eax
-       movl    4(%rdi),%ebx
-       movl    8(%rdi),%ecx
-       movl    12(%rdi),%edx
-       movl    16(%rdi),%r8d
-       movl    20(%rdi),%r9d
-       movl    24(%rdi),%r10d
-       movl    28(%rdi),%r11d
+       movq    0(%rdi),%rax
+       movq    8(%rdi),%rbx
+       movq    16(%rdi),%rcx
+       movq    24(%rdi),%rdx
+       movq    32(%rdi),%r8
+       movq    40(%rdi),%r9
+       movq    48(%rdi),%r10
+       movq    56(%rdi),%r11
        jmp     .Lloop
 
 .align 16
 .Lloop:
        xorq    %rdi,%rdi
-       movl    0(%rsi),%r12d
-       movl    %r8d,%r13d
-       movl    %eax,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,0(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       movq    0(%rsi),%r12
+       movq    %r8,%r13
+       movq    %rax,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,0(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    4(%rsi),%r12d
-       movl    %edx,%r13d
-       movl    %r11d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,4(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    8(%rsi),%r12
+       movq    %rdx,%r13
+       movq    %r11,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,8(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    8(%rsi),%r12d
-       movl    %ecx,%r13d
-       movl    %r10d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,8(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    16(%rsi),%r12
+       movq    %rcx,%r13
+       movq    %r10,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,16(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    12(%rsi),%r12d
-       movl    %ebx,%r13d
-       movl    %r9d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,12(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    24(%rsi),%r12
+       movq    %rbx,%r13
+       movq    %r9,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,24(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    16(%rsi),%r12d
-       movl    %eax,%r13d
-       movl    %r8d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,16(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    32(%rsi),%r12
+       movq    %rax,%r13
+       movq    %r8,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,32(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    20(%rsi),%r12d
-       movl    %r11d,%r13d
-       movl    %edx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,20(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    40(%rsi),%r12
+       movq    %r11,%r13
+       movq    %rdx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,40(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    24(%rsi),%r12d
-       movl    %r10d,%r13d
-       movl    %ecx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,24(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    48(%rsi),%r12
+       movq    %r10,%r13
+       movq    %rcx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,48(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    28(%rsi),%r12d
-       movl    %r9d,%r13d
-       movl    %ebx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,28(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    56(%rsi),%r12
+       movq    %r9,%r13
+       movq    %rbx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,56(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
-
-       movl    32(%rsi),%r12d
-       movl    %r8d,%r13d
-       movl    %eax,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,32(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       addq    %r14,%rax
+
+       movq    64(%rsi),%r12
+       movq    %r8,%r13
+       movq    %rax,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,64(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    36(%rsi),%r12d
-       movl    %edx,%r13d
-       movl    %r11d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,36(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    72(%rsi),%r12
+       movq    %rdx,%r13
+       movq    %r11,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,72(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    40(%rsi),%r12d
-       movl    %ecx,%r13d
-       movl    %r10d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,40(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    80(%rsi),%r12
+       movq    %rcx,%r13
+       movq    %r10,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,80(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    44(%rsi),%r12d
-       movl    %ebx,%r13d
-       movl    %r9d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,44(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    88(%rsi),%r12
+       movq    %rbx,%r13
+       movq    %r9,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,88(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    48(%rsi),%r12d
-       movl    %eax,%r13d
-       movl    %r8d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,48(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    96(%rsi),%r12
+       movq    %rax,%r13
+       movq    %r8,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,96(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    52(%rsi),%r12d
-       movl    %r11d,%r13d
-       movl    %edx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,52(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    104(%rsi),%r12
+       movq    %r11,%r13
+       movq    %rdx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,104(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    56(%rsi),%r12d
-       movl    %r10d,%r13d
-       movl    %ecx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,56(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    112(%rsi),%r12
+       movq    %r10,%r13
+       movq    %rcx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,112(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    60(%rsi),%r12d
-       movl    %r9d,%r13d
-       movl    %ebx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,60(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    120(%rsi),%r12
+       movq    %r9,%r13
+       movq    %rbx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,120(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
+       addq    %r14,%rax
 
        jmp     .Lrounds_16_xx
 .align 16
 .Lrounds_16_xx:
-       movl    4(%rsp),%r13d
-       movl    56(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    36(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    0(%rsp),%r12d
-       movl    %r8d,%r13d
-       addl    %r14d,%r12d
-       movl    %eax,%r14d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,0(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       movq    8(%rsp),%r13
+       movq    112(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    72(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    0(%rsp),%r12
+       movq    %r8,%r13
+       addq    %r14,%r12
+       movq    %rax,%r14
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,0(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    8(%rsp),%r13d
-       movl    60(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    40(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    4(%rsp),%r12d
-       movl    %edx,%r13d
-       addl    %r14d,%r12d
-       movl    %r11d,%r14d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,4(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    16(%rsp),%r13
+       movq    120(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    80(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    8(%rsp),%r12
+       movq    %rdx,%r13
+       addq    %r14,%r12
+       movq    %r11,%r14
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,8(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    12(%rsp),%r13d
-       movl    0(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    44(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    8(%rsp),%r12d
-       movl    %ecx,%r13d
-       addl    %r14d,%r12d
-       movl    %r10d,%r14d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,8(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    24(%rsp),%r13
+       movq    0(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    88(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    16(%rsp),%r12
+       movq    %rcx,%r13
+       addq    %r14,%r12
+       movq    %r10,%r14
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,16(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    16(%rsp),%r13d
-       movl    4(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    48(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    12(%rsp),%r12d
-       movl    %ebx,%r13d
-       addl    %r14d,%r12d
-       movl    %r9d,%r14d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,12(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    32(%rsp),%r13
+       movq    8(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    96(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    24(%rsp),%r12
+       movq    %rbx,%r13
+       addq    %r14,%r12
+       movq    %r9,%r14
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,24(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    20(%rsp),%r13d
-       movl    8(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    52(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    16(%rsp),%r12d
-       movl    %eax,%r13d
-       addl    %r14d,%r12d
-       movl    %r8d,%r14d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,16(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    40(%rsp),%r13
+       movq    16(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    104(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    32(%rsp),%r12
+       movq    %rax,%r13
+       addq    %r14,%r12
+       movq    %r8,%r14
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,32(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    24(%rsp),%r13d
-       movl    12(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    56(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    20(%rsp),%r12d
-       movl    %r11d,%r13d
-       addl    %r14d,%r12d
-       movl    %edx,%r14d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,20(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    48(%rsp),%r13
+       movq    24(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    112(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    40(%rsp),%r12
+       movq    %r11,%r13
+       addq    %r14,%r12
+       movq    %rdx,%r14
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,40(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    28(%rsp),%r13d
-       movl    16(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    60(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    24(%rsp),%r12d
-       movl    %r10d,%r13d
-       addl    %r14d,%r12d
-       movl    %ecx,%r14d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,24(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    56(%rsp),%r13
+       movq    32(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    120(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    48(%rsp),%r12
+       movq    %r10,%r13
+       addq    %r14,%r12
+       movq    %rcx,%r14
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,48(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    32(%rsp),%r13d
-       movl    20(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    0(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    28(%rsp),%r12d
-       movl    %r9d,%r13d
-       addl    %r14d,%r12d
-       movl    %ebx,%r14d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,28(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    64(%rsp),%r13
+       movq    40(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    0(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    56(%rsp),%r12
+       movq    %r9,%r13
+       addq    %r14,%r12
+       movq    %rbx,%r14
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,56(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
-
-       movl    36(%rsp),%r13d
-       movl    24(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    4(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    32(%rsp),%r12d
-       movl    %r8d,%r13d
-       addl    %r14d,%r12d
-       movl    %eax,%r14d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,32(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       addq    %r14,%rax
+
+       movq    72(%rsp),%r13
+       movq    48(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    8(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    64(%rsp),%r12
+       movq    %r8,%r13
+       addq    %r14,%r12
+       movq    %rax,%r14
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,64(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    40(%rsp),%r13d
-       movl    28(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    8(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    36(%rsp),%r12d
-       movl    %edx,%r13d
-       addl    %r14d,%r12d
-       movl    %r11d,%r14d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,36(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    80(%rsp),%r13
+       movq    56(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    16(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    72(%rsp),%r12
+       movq    %rdx,%r13
+       addq    %r14,%r12
+       movq    %r11,%r14
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,72(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    44(%rsp),%r13d
-       movl    32(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    12(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    40(%rsp),%r12d
-       movl    %ecx,%r13d
-       addl    %r14d,%r12d
-       movl    %r10d,%r14d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,40(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    88(%rsp),%r13
+       movq    64(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    24(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    80(%rsp),%r12
+       movq    %rcx,%r13
+       addq    %r14,%r12
+       movq    %r10,%r14
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,80(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    48(%rsp),%r13d
-       movl    36(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    16(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    44(%rsp),%r12d
-       movl    %ebx,%r13d
-       addl    %r14d,%r12d
-       movl    %r9d,%r14d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,44(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    96(%rsp),%r13
+       movq    72(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    32(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    88(%rsp),%r12
+       movq    %rbx,%r13
+       addq    %r14,%r12
+       movq    %r9,%r14
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,88(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    52(%rsp),%r13d
-       movl    40(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    20(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    48(%rsp),%r12d
-       movl    %eax,%r13d
-       addl    %r14d,%r12d
-       movl    %r8d,%r14d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,48(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    104(%rsp),%r13
+       movq    80(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    40(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    96(%rsp),%r12
+       movq    %rax,%r13
+       addq    %r14,%r12
+       movq    %r8,%r14
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,96(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    56(%rsp),%r13d
-       movl    44(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    24(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    52(%rsp),%r12d
-       movl    %r11d,%r13d
-       addl    %r14d,%r12d
-       movl    %edx,%r14d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,52(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    112(%rsp),%r13
+       movq    88(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    48(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    104(%rsp),%r12
+       movq    %r11,%r13
+       addq    %r14,%r12
+       movq    %rdx,%r14
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,104(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    60(%rsp),%r13d
-       movl    48(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    28(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    56(%rsp),%r12d
-       movl    %r10d,%r13d
-       addl    %r14d,%r12d
-       movl    %ecx,%r14d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,56(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    120(%rsp),%r13
+       movq    96(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    56(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    112(%rsp),%r12
+       movq    %r10,%r13
+       addq    %r14,%r12
+       movq    %rcx,%r14
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,112(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    0(%rsp),%r13d
-       movl    52(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    32(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    60(%rsp),%r12d
-       movl    %r9d,%r13d
-       addl    %r14d,%r12d
-       movl    %ebx,%r14d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,60(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    0(%rsp),%r13
+       movq    104(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    64(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    120(%rsp),%r12
+       movq    %r9,%r13
+       addq    %r14,%r12
+       movq    %rbx,%r14
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,120(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
+       addq    %r14,%rax
 
-       cmpq    $64,%rdi
+       cmpq    $80,%rdi
        jb      .Lrounds_16_xx
 
-       movq    64+0(%rsp),%rdi
-       leaq    64(%rsi),%rsi
-
-       addl    0(%rdi),%eax
-       addl    4(%rdi),%ebx
-       addl    8(%rdi),%ecx
-       addl    12(%rdi),%edx
-       addl    16(%rdi),%r8d
-       addl    20(%rdi),%r9d
-       addl    24(%rdi),%r10d
-       addl    28(%rdi),%r11d
-
-       cmpq    64+16(%rsp),%rsi
-
-       movl    %eax,0(%rdi)
-       movl    %ebx,4(%rdi)
-       movl    %ecx,8(%rdi)
-       movl    %edx,12(%rdi)
-       movl    %r8d,16(%rdi)
-       movl    %r9d,20(%rdi)
-       movl    %r10d,24(%rdi)
-       movl    %r11d,28(%rdi)
+       movq    128+0(%rsp),%rdi
+       leaq    128(%rsi),%rsi
+
+       addq    0(%rdi),%rax
+       addq    8(%rdi),%rbx
+       addq    16(%rdi),%rcx
+       addq    24(%rdi),%rdx
+       addq    32(%rdi),%r8
+       addq    40(%rdi),%r9
+       addq    48(%rdi),%r10
+       addq    56(%rdi),%r11
+
+       cmpq    128+16(%rsp),%rsi
+
+       movq    %rax,0(%rdi)
+       movq    %rbx,8(%rdi)
+       movq    %rcx,16(%rdi)
+       movq    %rdx,24(%rdi)
+       movq    %r8,32(%rdi)
+       movq    %r9,40(%rdi)
+       movq    %r10,48(%rdi)
+       movq    %r11,56(%rdi)
        jb      .Lloop
 
-       movq    64+24(%rsp),%rsi
+       movq    128+24(%rsp),%rsi
        movq    (%rsi),%r15
        movq    8(%rsi),%r14
        movq    16(%rsi),%r13
@@ -1757,23 +1757,47 @@ sha256_block_data_order:
        leaq    48(%rsi),%rsp
 .Lepilogue:
        .byte   0xf3,0xc3
-.size  sha256_block_data_order,.-sha256_block_data_order
+.size  sha512_block_data_order,.-sha512_block_data_order
 .align 64
-.type  K256,@object
-K256:
-.long  0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-.long  0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-.long  0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-.long  0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-.long  0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-.long  0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-.long  0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-.long  0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-.long  0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-.long  0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-.long  0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-.long  0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-.long  0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-.long  0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-.long  0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-.long  0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+.type  K512,@object
+K512:
+.quad  0x428a2f98d728ae22,0x7137449123ef65cd
+.quad  0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+.quad  0x3956c25bf348b538,0x59f111f1b605d019
+.quad  0x923f82a4af194f9b,0xab1c5ed5da6d8118
+.quad  0xd807aa98a3030242,0x12835b0145706fbe
+.quad  0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+.quad  0x72be5d74f27b896f,0x80deb1fe3b1696b1
+.quad  0x9bdc06a725c71235,0xc19bf174cf692694
+.quad  0xe49b69c19ef14ad2,0xefbe4786384f25e3
+.quad  0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+.quad  0x2de92c6f592b0275,0x4a7484aa6ea6e483
+.quad  0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+.quad  0x983e5152ee66dfab,0xa831c66d2db43210
+.quad  0xb00327c898fb213f,0xbf597fc7beef0ee4
+.quad  0xc6e00bf33da88fc2,0xd5a79147930aa725
+.quad  0x06ca6351e003826f,0x142929670a0e6e70
+.quad  0x27b70a8546d22ffc,0x2e1b21385c26c926
+.quad  0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+.quad  0x650a73548baf63de,0x766a0abb3c77b2a8
+.quad  0x81c2c92e47edaee6,0x92722c851482353b
+.quad  0xa2bfe8a14cf10364,0xa81a664bbc423001
+.quad  0xc24b8b70d0f89791,0xc76c51a30654be30
+.quad  0xd192e819d6ef5218,0xd69906245565a910
+.quad  0xf40e35855771202a,0x106aa07032bbd1b8
+.quad  0x19a4c116b8d2d0c8,0x1e376c085141ab53
+.quad  0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+.quad  0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+.quad  0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+.quad  0x748f82ee5defb2fc,0x78a5636f43172f60
+.quad  0x84c87814a1f0ab72,0x8cc702081a6439ec
+.quad  0x90befffa23631e28,0xa4506cebde82bde9
+.quad  0xbef9a3f7b2c67915,0xc67178f2e372532b
+.quad  0xca273eceea26619c,0xd186b8c721c0c207
+.quad  0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+.quad  0x06f067aa72176fba,0x0a637dc5a2c898a6
+.quad  0x113f9804bef90dae,0x1b710b35131c471b
+.quad  0x28db77f523047d84,0x32caab7b40c72493
+.quad  0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+.quad  0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+.quad  0x5fcb6fab3ad6faec,0x6c44198c4a475817
index 88120a1..ebe9bc1 100644 (file)
@@ -1335,8 +1335,8 @@ L$cbc_picked_te:
        jb      L$cbc_slow_prologue
        testq   $15,%rdx
        jnz     L$cbc_slow_prologue
-
-
+       btl     $28,%r10d
+       jc      L$cbc_slow_prologue
 
 
        leaq    -88-248(%rsp),%r15
diff --git a/deps/openssl/asm/x64-macosx-gas/aes/bsaes-x86_64.s b/deps/openssl/asm/x64-macosx-gas/aes/bsaes-x86_64.s
new file mode 100644 (file)
index 0000000..c337107
--- /dev/null
@@ -0,0 +1,2506 @@
+.text
+
+
+
+
+
+
+.p2align       6
+_bsaes_encrypt8:
+       leaq    L$BS0(%rip),%r11
+
+       movdqa  (%rax),%xmm8
+       leaq    16(%rax),%rax
+       movdqa  80(%r11),%xmm7
+       pxor    %xmm8,%xmm15
+       pxor    %xmm8,%xmm0
+.byte  102,68,15,56,0,255
+       pxor    %xmm8,%xmm1
+.byte  102,15,56,0,199
+       pxor    %xmm8,%xmm2
+.byte  102,15,56,0,207
+       pxor    %xmm8,%xmm3
+.byte  102,15,56,0,215
+       pxor    %xmm8,%xmm4
+.byte  102,15,56,0,223
+       pxor    %xmm8,%xmm5
+.byte  102,15,56,0,231
+       pxor    %xmm8,%xmm6
+.byte  102,15,56,0,239
+.byte  102,15,56,0,247
+_bsaes_encrypt8_bitslice:
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm5,%xmm9
+       psrlq   $1,%xmm5
+       movdqa  %xmm3,%xmm10
+       psrlq   $1,%xmm3
+       pxor    %xmm6,%xmm5
+       pxor    %xmm4,%xmm3
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm3
+       pxor    %xmm5,%xmm6
+       psllq   $1,%xmm5
+       pxor    %xmm3,%xmm4
+       psllq   $1,%xmm3
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm1,%xmm9
+       psrlq   $1,%xmm1
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm2,%xmm1
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm1
+       pand    %xmm7,%xmm15
+       pxor    %xmm1,%xmm2
+       psllq   $1,%xmm1
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm1
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm4,%xmm9
+       psrlq   $2,%xmm4
+       movdqa  %xmm3,%xmm10
+       psrlq   $2,%xmm3
+       pxor    %xmm6,%xmm4
+       pxor    %xmm5,%xmm3
+       pand    %xmm8,%xmm4
+       pand    %xmm8,%xmm3
+       pxor    %xmm4,%xmm6
+       psllq   $2,%xmm4
+       pxor    %xmm3,%xmm5
+       psllq   $2,%xmm3
+       pxor    %xmm9,%xmm4
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm2,%xmm0
+       pxor    %xmm1,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm2
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm1
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm2,%xmm9
+       psrlq   $4,%xmm2
+       movdqa  %xmm1,%xmm10
+       psrlq   $4,%xmm1
+       pxor    %xmm6,%xmm2
+       pxor    %xmm5,%xmm1
+       pand    %xmm7,%xmm2
+       pand    %xmm7,%xmm1
+       pxor    %xmm2,%xmm6
+       psllq   $4,%xmm2
+       pxor    %xmm1,%xmm5
+       psllq   $4,%xmm1
+       pxor    %xmm9,%xmm2
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm4,%xmm0
+       pxor    %xmm3,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm4
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm3
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       decl    %r10d
+       jmp     L$enc_sbox
+.p2align       4
+L$enc_loop:
+       pxor    0(%rax),%xmm15
+       pxor    16(%rax),%xmm0
+.byte  102,68,15,56,0,255
+       pxor    32(%rax),%xmm1
+.byte  102,15,56,0,199
+       pxor    48(%rax),%xmm2
+.byte  102,15,56,0,207
+       pxor    64(%rax),%xmm3
+.byte  102,15,56,0,215
+       pxor    80(%rax),%xmm4
+.byte  102,15,56,0,223
+       pxor    96(%rax),%xmm5
+.byte  102,15,56,0,231
+       pxor    112(%rax),%xmm6
+.byte  102,15,56,0,239
+       leaq    128(%rax),%rax
+.byte  102,15,56,0,247
+L$enc_sbox:
+       pxor    %xmm5,%xmm4
+       pxor    %xmm0,%xmm1
+       pxor    %xmm15,%xmm2
+       pxor    %xmm1,%xmm5
+       pxor    %xmm15,%xmm4
+
+       pxor    %xmm2,%xmm5
+       pxor    %xmm6,%xmm2
+       pxor    %xmm4,%xmm6
+       pxor    %xmm3,%xmm2
+       pxor    %xmm4,%xmm3
+       pxor    %xmm0,%xmm2
+
+       pxor    %xmm6,%xmm1
+       pxor    %xmm4,%xmm0
+       movdqa  %xmm6,%xmm10
+       movdqa  %xmm0,%xmm9
+       movdqa  %xmm4,%xmm8
+       movdqa  %xmm1,%xmm12
+       movdqa  %xmm5,%xmm11
+
+       pxor    %xmm3,%xmm10
+       pxor    %xmm1,%xmm9
+       pxor    %xmm2,%xmm8
+       movdqa  %xmm10,%xmm13
+       pxor    %xmm3,%xmm12
+       movdqa  %xmm9,%xmm7
+       pxor    %xmm15,%xmm11
+       movdqa  %xmm10,%xmm14
+
+       por     %xmm8,%xmm9
+       por     %xmm11,%xmm10
+       pxor    %xmm7,%xmm14
+       pand    %xmm11,%xmm13
+       pxor    %xmm8,%xmm11
+       pand    %xmm8,%xmm7
+       pand    %xmm11,%xmm14
+       movdqa  %xmm2,%xmm11
+       pxor    %xmm15,%xmm11
+       pand    %xmm11,%xmm12
+       pxor    %xmm12,%xmm10
+       pxor    %xmm12,%xmm9
+       movdqa  %xmm6,%xmm12
+       movdqa  %xmm4,%xmm11
+       pxor    %xmm0,%xmm12
+       pxor    %xmm5,%xmm11
+       movdqa  %xmm12,%xmm8
+       pand    %xmm11,%xmm12
+       por     %xmm11,%xmm8
+       pxor    %xmm12,%xmm7
+       pxor    %xmm14,%xmm10
+       pxor    %xmm13,%xmm9
+       pxor    %xmm14,%xmm8
+       movdqa  %xmm1,%xmm11
+       pxor    %xmm13,%xmm7
+       movdqa  %xmm3,%xmm12
+       pxor    %xmm13,%xmm8
+       movdqa  %xmm0,%xmm13
+       pand    %xmm2,%xmm11
+       movdqa  %xmm6,%xmm14
+       pand    %xmm15,%xmm12
+       pand    %xmm4,%xmm13
+       por     %xmm5,%xmm14
+       pxor    %xmm11,%xmm10
+       pxor    %xmm12,%xmm9
+       pxor    %xmm13,%xmm8
+       pxor    %xmm14,%xmm7
+
+
+
+
+
+       movdqa  %xmm10,%xmm11
+       pand    %xmm8,%xmm10
+       pxor    %xmm9,%xmm11
+
+       movdqa  %xmm7,%xmm13
+       movdqa  %xmm11,%xmm14
+       pxor    %xmm10,%xmm13
+       pand    %xmm13,%xmm14
+
+       movdqa  %xmm8,%xmm12
+       pxor    %xmm9,%xmm14
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm9,%xmm10
+
+       pand    %xmm10,%xmm12
+
+       movdqa  %xmm13,%xmm9
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm12,%xmm9
+       pxor    %xmm12,%xmm8
+
+       pand    %xmm7,%xmm9
+
+       pxor    %xmm9,%xmm13
+       pxor    %xmm9,%xmm8
+
+       pand    %xmm14,%xmm13
+
+       pxor    %xmm11,%xmm13
+       movdqa  %xmm5,%xmm11
+       movdqa  %xmm4,%xmm7
+       movdqa  %xmm14,%xmm9
+       pxor    %xmm13,%xmm9
+       pand    %xmm5,%xmm9
+       pxor    %xmm4,%xmm5
+       pand    %xmm14,%xmm4
+       pand    %xmm13,%xmm5
+       pxor    %xmm4,%xmm5
+       pxor    %xmm9,%xmm4
+       pxor    %xmm15,%xmm11
+       pxor    %xmm2,%xmm7
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm15,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm2,%xmm15
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm2
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm15
+       pxor    %xmm11,%xmm7
+       pxor    %xmm2,%xmm15
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm2
+       pxor    %xmm11,%xmm5
+       pxor    %xmm11,%xmm15
+       pxor    %xmm7,%xmm4
+       pxor    %xmm7,%xmm2
+
+       movdqa  %xmm6,%xmm11
+       movdqa  %xmm0,%xmm7
+       pxor    %xmm3,%xmm11
+       pxor    %xmm1,%xmm7
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm3,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm1,%xmm3
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm1
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm3
+       pxor    %xmm11,%xmm7
+       pxor    %xmm1,%xmm3
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm1
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       pxor    %xmm13,%xmm10
+       pand    %xmm6,%xmm10
+       pxor    %xmm0,%xmm6
+       pand    %xmm14,%xmm0
+       pand    %xmm13,%xmm6
+       pxor    %xmm0,%xmm6
+       pxor    %xmm10,%xmm0
+       pxor    %xmm11,%xmm6
+       pxor    %xmm11,%xmm3
+       pxor    %xmm7,%xmm0
+       pxor    %xmm7,%xmm1
+       pxor    %xmm15,%xmm6
+       pxor    %xmm5,%xmm0
+       pxor    %xmm6,%xmm3
+       pxor    %xmm15,%xmm5
+       pxor    %xmm0,%xmm15
+
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       pxor    %xmm2,%xmm1
+       pxor    %xmm4,%xmm2
+       pxor    %xmm4,%xmm3
+
+       pxor    %xmm2,%xmm5
+       decl    %r10d
+       jl      L$enc_done
+       pshufd  $147,%xmm15,%xmm7
+       pshufd  $147,%xmm0,%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $147,%xmm3,%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $147,%xmm5,%xmm10
+       pxor    %xmm9,%xmm3
+       pshufd  $147,%xmm2,%xmm11
+       pxor    %xmm10,%xmm5
+       pshufd  $147,%xmm6,%xmm12
+       pxor    %xmm11,%xmm2
+       pshufd  $147,%xmm1,%xmm13
+       pxor    %xmm12,%xmm6
+       pshufd  $147,%xmm4,%xmm14
+       pxor    %xmm13,%xmm1
+       pxor    %xmm14,%xmm4
+
+       pxor    %xmm15,%xmm8
+       pxor    %xmm4,%xmm7
+       pxor    %xmm4,%xmm8
+       pshufd  $78,%xmm15,%xmm15
+       pxor    %xmm0,%xmm9
+       pshufd  $78,%xmm0,%xmm0
+       pxor    %xmm2,%xmm12
+       pxor    %xmm7,%xmm15
+       pxor    %xmm6,%xmm13
+       pxor    %xmm8,%xmm0
+       pxor    %xmm5,%xmm11
+       pshufd  $78,%xmm2,%xmm7
+       pxor    %xmm1,%xmm14
+       pshufd  $78,%xmm6,%xmm8
+       pxor    %xmm3,%xmm10
+       pshufd  $78,%xmm5,%xmm2
+       pxor    %xmm4,%xmm10
+       pshufd  $78,%xmm4,%xmm6
+       pxor    %xmm4,%xmm11
+       pshufd  $78,%xmm1,%xmm5
+       pxor    %xmm11,%xmm7
+       pshufd  $78,%xmm3,%xmm1
+       pxor    %xmm12,%xmm8
+       pxor    %xmm10,%xmm2
+       pxor    %xmm14,%xmm6
+       pxor    %xmm13,%xmm5
+       movdqa  %xmm7,%xmm3
+       pxor    %xmm9,%xmm1
+       movdqa  %xmm8,%xmm4
+       movdqa  48(%r11),%xmm7
+       jnz     L$enc_loop
+       movdqa  64(%r11),%xmm7
+       jmp     L$enc_loop
+.p2align       4
+L$enc_done:
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm1,%xmm9
+       psrlq   $1,%xmm1
+       movdqa  %xmm2,%xmm10
+       psrlq   $1,%xmm2
+       pxor    %xmm4,%xmm1
+       pxor    %xmm6,%xmm2
+       pand    %xmm7,%xmm1
+       pand    %xmm7,%xmm2
+       pxor    %xmm1,%xmm4
+       psllq   $1,%xmm1
+       pxor    %xmm2,%xmm6
+       psllq   $1,%xmm2
+       pxor    %xmm9,%xmm1
+       pxor    %xmm10,%xmm2
+       movdqa  %xmm3,%xmm9
+       psrlq   $1,%xmm3
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm5,%xmm3
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm3
+       pand    %xmm7,%xmm15
+       pxor    %xmm3,%xmm5
+       psllq   $1,%xmm3
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm3
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm6,%xmm9
+       psrlq   $2,%xmm6
+       movdqa  %xmm2,%xmm10
+       psrlq   $2,%xmm2
+       pxor    %xmm4,%xmm6
+       pxor    %xmm1,%xmm2
+       pand    %xmm8,%xmm6
+       pand    %xmm8,%xmm2
+       pxor    %xmm6,%xmm4
+       psllq   $2,%xmm6
+       pxor    %xmm2,%xmm1
+       psllq   $2,%xmm2
+       pxor    %xmm9,%xmm6
+       pxor    %xmm10,%xmm2
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm5,%xmm0
+       pxor    %xmm3,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm5
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm3
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm5,%xmm9
+       psrlq   $4,%xmm5
+       movdqa  %xmm3,%xmm10
+       psrlq   $4,%xmm3
+       pxor    %xmm4,%xmm5
+       pxor    %xmm1,%xmm3
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm3
+       pxor    %xmm5,%xmm4
+       psllq   $4,%xmm5
+       pxor    %xmm3,%xmm1
+       psllq   $4,%xmm3
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm6,%xmm0
+       pxor    %xmm2,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm6
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm2
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  (%rax),%xmm7
+       pxor    %xmm7,%xmm3
+       pxor    %xmm7,%xmm5
+       pxor    %xmm7,%xmm2
+       pxor    %xmm7,%xmm6
+       pxor    %xmm7,%xmm1
+       pxor    %xmm7,%xmm4
+       pxor    %xmm7,%xmm15
+       pxor    %xmm7,%xmm0
+       .byte   0xf3,0xc3
+
+
+
+.p2align       6
+_bsaes_decrypt8:
+       leaq    L$BS0(%rip),%r11
+
+       movdqa  (%rax),%xmm8
+       leaq    16(%rax),%rax
+       movdqa  -48(%r11),%xmm7
+       pxor    %xmm8,%xmm15
+       pxor    %xmm8,%xmm0
+.byte  102,68,15,56,0,255
+       pxor    %xmm8,%xmm1
+.byte  102,15,56,0,199
+       pxor    %xmm8,%xmm2
+.byte  102,15,56,0,207
+       pxor    %xmm8,%xmm3
+.byte  102,15,56,0,215
+       pxor    %xmm8,%xmm4
+.byte  102,15,56,0,223
+       pxor    %xmm8,%xmm5
+.byte  102,15,56,0,231
+       pxor    %xmm8,%xmm6
+.byte  102,15,56,0,239
+.byte  102,15,56,0,247
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm5,%xmm9
+       psrlq   $1,%xmm5
+       movdqa  %xmm3,%xmm10
+       psrlq   $1,%xmm3
+       pxor    %xmm6,%xmm5
+       pxor    %xmm4,%xmm3
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm3
+       pxor    %xmm5,%xmm6
+       psllq   $1,%xmm5
+       pxor    %xmm3,%xmm4
+       psllq   $1,%xmm3
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm1,%xmm9
+       psrlq   $1,%xmm1
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm2,%xmm1
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm1
+       pand    %xmm7,%xmm15
+       pxor    %xmm1,%xmm2
+       psllq   $1,%xmm1
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm1
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm4,%xmm9
+       psrlq   $2,%xmm4
+       movdqa  %xmm3,%xmm10
+       psrlq   $2,%xmm3
+       pxor    %xmm6,%xmm4
+       pxor    %xmm5,%xmm3
+       pand    %xmm8,%xmm4
+       pand    %xmm8,%xmm3
+       pxor    %xmm4,%xmm6
+       psllq   $2,%xmm4
+       pxor    %xmm3,%xmm5
+       psllq   $2,%xmm3
+       pxor    %xmm9,%xmm4
+       pxor    %xmm10,%xmm3
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm2,%xmm0
+       pxor    %xmm1,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm2
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm1
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm2,%xmm9
+       psrlq   $4,%xmm2
+       movdqa  %xmm1,%xmm10
+       psrlq   $4,%xmm1
+       pxor    %xmm6,%xmm2
+       pxor    %xmm5,%xmm1
+       pand    %xmm7,%xmm2
+       pand    %xmm7,%xmm1
+       pxor    %xmm2,%xmm6
+       psllq   $4,%xmm2
+       pxor    %xmm1,%xmm5
+       psllq   $4,%xmm1
+       pxor    %xmm9,%xmm2
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm4,%xmm0
+       pxor    %xmm3,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm4
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm3
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       decl    %r10d
+       jmp     L$dec_sbox
+.p2align       4
+L$dec_loop:
+       pxor    0(%rax),%xmm15
+       pxor    16(%rax),%xmm0
+.byte  102,68,15,56,0,255
+       pxor    32(%rax),%xmm1
+.byte  102,15,56,0,199
+       pxor    48(%rax),%xmm2
+.byte  102,15,56,0,207
+       pxor    64(%rax),%xmm3
+.byte  102,15,56,0,215
+       pxor    80(%rax),%xmm4
+.byte  102,15,56,0,223
+       pxor    96(%rax),%xmm5
+.byte  102,15,56,0,231
+       pxor    112(%rax),%xmm6
+.byte  102,15,56,0,239
+       leaq    128(%rax),%rax
+.byte  102,15,56,0,247
+L$dec_sbox:
+       pxor    %xmm3,%xmm2
+
+       pxor    %xmm6,%xmm3
+       pxor    %xmm6,%xmm1
+       pxor    %xmm3,%xmm5
+       pxor    %xmm5,%xmm6
+       pxor    %xmm6,%xmm0
+
+       pxor    %xmm0,%xmm15
+       pxor    %xmm4,%xmm1
+       pxor    %xmm15,%xmm2
+       pxor    %xmm15,%xmm4
+       pxor    %xmm2,%xmm0
+       movdqa  %xmm2,%xmm10
+       movdqa  %xmm6,%xmm9
+       movdqa  %xmm0,%xmm8
+       movdqa  %xmm3,%xmm12
+       movdqa  %xmm4,%xmm11
+
+       pxor    %xmm15,%xmm10
+       pxor    %xmm3,%xmm9
+       pxor    %xmm5,%xmm8
+       movdqa  %xmm10,%xmm13
+       pxor    %xmm15,%xmm12
+       movdqa  %xmm9,%xmm7
+       pxor    %xmm1,%xmm11
+       movdqa  %xmm10,%xmm14
+
+       por     %xmm8,%xmm9
+       por     %xmm11,%xmm10
+       pxor    %xmm7,%xmm14
+       pand    %xmm11,%xmm13
+       pxor    %xmm8,%xmm11
+       pand    %xmm8,%xmm7
+       pand    %xmm11,%xmm14
+       movdqa  %xmm5,%xmm11
+       pxor    %xmm1,%xmm11
+       pand    %xmm11,%xmm12
+       pxor    %xmm12,%xmm10
+       pxor    %xmm12,%xmm9
+       movdqa  %xmm2,%xmm12
+       movdqa  %xmm0,%xmm11
+       pxor    %xmm6,%xmm12
+       pxor    %xmm4,%xmm11
+       movdqa  %xmm12,%xmm8
+       pand    %xmm11,%xmm12
+       por     %xmm11,%xmm8
+       pxor    %xmm12,%xmm7
+       pxor    %xmm14,%xmm10
+       pxor    %xmm13,%xmm9
+       pxor    %xmm14,%xmm8
+       movdqa  %xmm3,%xmm11
+       pxor    %xmm13,%xmm7
+       movdqa  %xmm15,%xmm12
+       pxor    %xmm13,%xmm8
+       movdqa  %xmm6,%xmm13
+       pand    %xmm5,%xmm11
+       movdqa  %xmm2,%xmm14
+       pand    %xmm1,%xmm12
+       pand    %xmm0,%xmm13
+       por     %xmm4,%xmm14
+       pxor    %xmm11,%xmm10
+       pxor    %xmm12,%xmm9
+       pxor    %xmm13,%xmm8
+       pxor    %xmm14,%xmm7
+
+
+
+
+
+       movdqa  %xmm10,%xmm11
+       pand    %xmm8,%xmm10
+       pxor    %xmm9,%xmm11
+
+       movdqa  %xmm7,%xmm13
+       movdqa  %xmm11,%xmm14
+       pxor    %xmm10,%xmm13
+       pand    %xmm13,%xmm14
+
+       movdqa  %xmm8,%xmm12
+       pxor    %xmm9,%xmm14
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm9,%xmm10
+
+       pand    %xmm10,%xmm12
+
+       movdqa  %xmm13,%xmm9
+       pxor    %xmm7,%xmm12
+
+       pxor    %xmm12,%xmm9
+       pxor    %xmm12,%xmm8
+
+       pand    %xmm7,%xmm9
+
+       pxor    %xmm9,%xmm13
+       pxor    %xmm9,%xmm8
+
+       pand    %xmm14,%xmm13
+
+       pxor    %xmm11,%xmm13
+       movdqa  %xmm4,%xmm11
+       movdqa  %xmm0,%xmm7
+       movdqa  %xmm14,%xmm9
+       pxor    %xmm13,%xmm9
+       pand    %xmm4,%xmm9
+       pxor    %xmm0,%xmm4
+       pand    %xmm14,%xmm0
+       pand    %xmm13,%xmm4
+       pxor    %xmm0,%xmm4
+       pxor    %xmm9,%xmm0
+       pxor    %xmm1,%xmm11
+       pxor    %xmm5,%xmm7
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm1,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm5,%xmm1
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm5
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm1
+       pxor    %xmm11,%xmm7
+       pxor    %xmm5,%xmm1
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm5
+       pxor    %xmm11,%xmm4
+       pxor    %xmm11,%xmm1
+       pxor    %xmm7,%xmm0
+       pxor    %xmm7,%xmm5
+
+       movdqa  %xmm2,%xmm11
+       movdqa  %xmm6,%xmm7
+       pxor    %xmm15,%xmm11
+       pxor    %xmm3,%xmm7
+       movdqa  %xmm14,%xmm10
+       movdqa  %xmm12,%xmm9
+       pxor    %xmm13,%xmm10
+       pxor    %xmm8,%xmm9
+       pand    %xmm11,%xmm10
+       pand    %xmm15,%xmm9
+       pxor    %xmm7,%xmm11
+       pxor    %xmm3,%xmm15
+       pand    %xmm14,%xmm7
+       pand    %xmm12,%xmm3
+       pand    %xmm13,%xmm11
+       pand    %xmm8,%xmm15
+       pxor    %xmm11,%xmm7
+       pxor    %xmm3,%xmm15
+       pxor    %xmm10,%xmm11
+       pxor    %xmm9,%xmm3
+       pxor    %xmm12,%xmm14
+       pxor    %xmm8,%xmm13
+       movdqa  %xmm14,%xmm10
+       pxor    %xmm13,%xmm10
+       pand    %xmm2,%xmm10
+       pxor    %xmm6,%xmm2
+       pand    %xmm14,%xmm6
+       pand    %xmm13,%xmm2
+       pxor    %xmm6,%xmm2
+       pxor    %xmm10,%xmm6
+       pxor    %xmm11,%xmm2
+       pxor    %xmm11,%xmm15
+       pxor    %xmm7,%xmm6
+       pxor    %xmm7,%xmm3
+       pxor    %xmm6,%xmm0
+       pxor    %xmm4,%xmm5
+
+       pxor    %xmm0,%xmm3
+       pxor    %xmm6,%xmm1
+       pxor    %xmm6,%xmm4
+       pxor    %xmm1,%xmm3
+       pxor    %xmm15,%xmm6
+       pxor    %xmm4,%xmm3
+       pxor    %xmm5,%xmm2
+       pxor    %xmm0,%xmm5
+       pxor    %xmm3,%xmm2
+
+       pxor    %xmm15,%xmm3
+       pxor    %xmm2,%xmm6
+       decl    %r10d
+       jl      L$dec_done
+
+       pshufd  $78,%xmm15,%xmm7
+       pshufd  $78,%xmm2,%xmm13
+       pxor    %xmm15,%xmm7
+       pshufd  $78,%xmm4,%xmm14
+       pxor    %xmm2,%xmm13
+       pshufd  $78,%xmm0,%xmm8
+       pxor    %xmm4,%xmm14
+       pshufd  $78,%xmm5,%xmm9
+       pxor    %xmm0,%xmm8
+       pshufd  $78,%xmm3,%xmm10
+       pxor    %xmm5,%xmm9
+       pxor    %xmm13,%xmm15
+       pxor    %xmm13,%xmm0
+       pshufd  $78,%xmm1,%xmm11
+       pxor    %xmm3,%xmm10
+       pxor    %xmm7,%xmm5
+       pxor    %xmm8,%xmm3
+       pshufd  $78,%xmm6,%xmm12
+       pxor    %xmm1,%xmm11
+       pxor    %xmm14,%xmm0
+       pxor    %xmm9,%xmm1
+       pxor    %xmm6,%xmm12
+
+       pxor    %xmm14,%xmm5
+       pxor    %xmm13,%xmm3
+       pxor    %xmm13,%xmm1
+       pxor    %xmm10,%xmm6
+       pxor    %xmm11,%xmm2
+       pxor    %xmm14,%xmm1
+       pxor    %xmm14,%xmm6
+       pxor    %xmm12,%xmm4
+       pshufd  $147,%xmm15,%xmm7
+       pshufd  $147,%xmm0,%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $147,%xmm5,%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $147,%xmm3,%xmm10
+       pxor    %xmm9,%xmm5
+       pshufd  $147,%xmm1,%xmm11
+       pxor    %xmm10,%xmm3
+       pshufd  $147,%xmm6,%xmm12
+       pxor    %xmm11,%xmm1
+       pshufd  $147,%xmm2,%xmm13
+       pxor    %xmm12,%xmm6
+       pshufd  $147,%xmm4,%xmm14
+       pxor    %xmm13,%xmm2
+       pxor    %xmm14,%xmm4
+
+       pxor    %xmm15,%xmm8
+       pxor    %xmm4,%xmm7
+       pxor    %xmm4,%xmm8
+       pshufd  $78,%xmm15,%xmm15
+       pxor    %xmm0,%xmm9
+       pshufd  $78,%xmm0,%xmm0
+       pxor    %xmm1,%xmm12
+       pxor    %xmm7,%xmm15
+       pxor    %xmm6,%xmm13
+       pxor    %xmm8,%xmm0
+       pxor    %xmm3,%xmm11
+       pshufd  $78,%xmm1,%xmm7
+       pxor    %xmm2,%xmm14
+       pshufd  $78,%xmm6,%xmm8
+       pxor    %xmm5,%xmm10
+       pshufd  $78,%xmm3,%xmm1
+       pxor    %xmm4,%xmm10
+       pshufd  $78,%xmm4,%xmm6
+       pxor    %xmm4,%xmm11
+       pshufd  $78,%xmm2,%xmm3
+       pxor    %xmm11,%xmm7
+       pshufd  $78,%xmm5,%xmm2
+       pxor    %xmm12,%xmm8
+       pxor    %xmm1,%xmm10
+       pxor    %xmm14,%xmm6
+       pxor    %xmm3,%xmm13
+       movdqa  %xmm7,%xmm3
+       pxor    %xmm9,%xmm2
+       movdqa  %xmm13,%xmm5
+       movdqa  %xmm8,%xmm4
+       movdqa  %xmm2,%xmm1
+       movdqa  %xmm10,%xmm2
+       movdqa  -16(%r11),%xmm7
+       jnz     L$dec_loop
+       movdqa  -32(%r11),%xmm7
+       jmp     L$dec_loop
+.p2align       4
+L$dec_done:
+       movdqa  0(%r11),%xmm7
+       movdqa  16(%r11),%xmm8
+       movdqa  %xmm2,%xmm9
+       psrlq   $1,%xmm2
+       movdqa  %xmm1,%xmm10
+       psrlq   $1,%xmm1
+       pxor    %xmm4,%xmm2
+       pxor    %xmm6,%xmm1
+       pand    %xmm7,%xmm2
+       pand    %xmm7,%xmm1
+       pxor    %xmm2,%xmm4
+       psllq   $1,%xmm2
+       pxor    %xmm1,%xmm6
+       psllq   $1,%xmm1
+       pxor    %xmm9,%xmm2
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm5,%xmm9
+       psrlq   $1,%xmm5
+       movdqa  %xmm15,%xmm10
+       psrlq   $1,%xmm15
+       pxor    %xmm3,%xmm5
+       pxor    %xmm0,%xmm15
+       pand    %xmm7,%xmm5
+       pand    %xmm7,%xmm15
+       pxor    %xmm5,%xmm3
+       psllq   $1,%xmm5
+       pxor    %xmm15,%xmm0
+       psllq   $1,%xmm15
+       pxor    %xmm9,%xmm5
+       pxor    %xmm10,%xmm15
+       movdqa  32(%r11),%xmm7
+       movdqa  %xmm6,%xmm9
+       psrlq   $2,%xmm6
+       movdqa  %xmm1,%xmm10
+       psrlq   $2,%xmm1
+       pxor    %xmm4,%xmm6
+       pxor    %xmm2,%xmm1
+       pand    %xmm8,%xmm6
+       pand    %xmm8,%xmm1
+       pxor    %xmm6,%xmm4
+       psllq   $2,%xmm6
+       pxor    %xmm1,%xmm2
+       psllq   $2,%xmm1
+       pxor    %xmm9,%xmm6
+       pxor    %xmm10,%xmm1
+       movdqa  %xmm0,%xmm9
+       psrlq   $2,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $2,%xmm15
+       pxor    %xmm3,%xmm0
+       pxor    %xmm5,%xmm15
+       pand    %xmm8,%xmm0
+       pand    %xmm8,%xmm15
+       pxor    %xmm0,%xmm3
+       psllq   $2,%xmm0
+       pxor    %xmm15,%xmm5
+       psllq   $2,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  %xmm3,%xmm9
+       psrlq   $4,%xmm3
+       movdqa  %xmm5,%xmm10
+       psrlq   $4,%xmm5
+       pxor    %xmm4,%xmm3
+       pxor    %xmm2,%xmm5
+       pand    %xmm7,%xmm3
+       pand    %xmm7,%xmm5
+       pxor    %xmm3,%xmm4
+       psllq   $4,%xmm3
+       pxor    %xmm5,%xmm2
+       psllq   $4,%xmm5
+       pxor    %xmm9,%xmm3
+       pxor    %xmm10,%xmm5
+       movdqa  %xmm0,%xmm9
+       psrlq   $4,%xmm0
+       movdqa  %xmm15,%xmm10
+       psrlq   $4,%xmm15
+       pxor    %xmm6,%xmm0
+       pxor    %xmm1,%xmm15
+       pand    %xmm7,%xmm0
+       pand    %xmm7,%xmm15
+       pxor    %xmm0,%xmm6
+       psllq   $4,%xmm0
+       pxor    %xmm15,%xmm1
+       psllq   $4,%xmm15
+       pxor    %xmm9,%xmm0
+       pxor    %xmm10,%xmm15
+       movdqa  (%rax),%xmm7
+       pxor    %xmm7,%xmm5
+       pxor    %xmm7,%xmm3
+       pxor    %xmm7,%xmm1
+       pxor    %xmm7,%xmm6
+       pxor    %xmm7,%xmm2
+       pxor    %xmm7,%xmm4
+       pxor    %xmm7,%xmm15
+       pxor    %xmm7,%xmm0
+       .byte   0xf3,0xc3
+
+
+.p2align       4
+_bsaes_key_convert:
+       leaq    L$masks(%rip),%r11
+       movdqu  (%rcx),%xmm7
+       leaq    16(%rcx),%rcx
+       movdqa  0(%r11),%xmm0
+       movdqa  16(%r11),%xmm1
+       movdqa  32(%r11),%xmm2
+       movdqa  48(%r11),%xmm3
+       movdqa  64(%r11),%xmm4
+       pcmpeqd %xmm5,%xmm5
+
+       movdqu  (%rcx),%xmm6
+       movdqa  %xmm7,(%rax)
+       leaq    16(%rax),%rax
+       decl    %r10d
+       jmp     L$key_loop
+.p2align       4
+L$key_loop:
+.byte  102,15,56,0,244
+
+       movdqa  %xmm0,%xmm8
+       movdqa  %xmm1,%xmm9
+
+       pand    %xmm6,%xmm8
+       pand    %xmm6,%xmm9
+       movdqa  %xmm2,%xmm10
+       pcmpeqb %xmm0,%xmm8
+       psllq   $4,%xmm0
+       movdqa  %xmm3,%xmm11
+       pcmpeqb %xmm1,%xmm9
+       psllq   $4,%xmm1
+
+       pand    %xmm6,%xmm10
+       pand    %xmm6,%xmm11
+       movdqa  %xmm0,%xmm12
+       pcmpeqb %xmm2,%xmm10
+       psllq   $4,%xmm2
+       movdqa  %xmm1,%xmm13
+       pcmpeqb %xmm3,%xmm11
+       psllq   $4,%xmm3
+
+       movdqa  %xmm2,%xmm14
+       movdqa  %xmm3,%xmm15
+       pxor    %xmm5,%xmm8
+       pxor    %xmm5,%xmm9
+
+       pand    %xmm6,%xmm12
+       pand    %xmm6,%xmm13
+       movdqa  %xmm8,0(%rax)
+       pcmpeqb %xmm0,%xmm12
+       psrlq   $4,%xmm0
+       movdqa  %xmm9,16(%rax)
+       pcmpeqb %xmm1,%xmm13
+       psrlq   $4,%xmm1
+       leaq    16(%rcx),%rcx
+
+       pand    %xmm6,%xmm14
+       pand    %xmm6,%xmm15
+       movdqa  %xmm10,32(%rax)
+       pcmpeqb %xmm2,%xmm14
+       psrlq   $4,%xmm2
+       movdqa  %xmm11,48(%rax)
+       pcmpeqb %xmm3,%xmm15
+       psrlq   $4,%xmm3
+       movdqu  (%rcx),%xmm6
+
+       pxor    %xmm5,%xmm13
+       pxor    %xmm5,%xmm14
+       movdqa  %xmm12,64(%rax)
+       movdqa  %xmm13,80(%rax)
+       movdqa  %xmm14,96(%rax)
+       movdqa  %xmm15,112(%rax)
+       leaq    128(%rax),%rax
+       decl    %r10d
+       jnz     L$key_loop
+
+       movdqa  80(%r11),%xmm7
+
+       .byte   0xf3,0xc3
+
+
+.globl _bsaes_cbc_encrypt
+
+.p2align       4
+_bsaes_cbc_encrypt:
+       cmpl    $0,%r9d
+       jne     _asm_AES_cbc_encrypt
+       cmpq    $128,%rdx
+       jb      _asm_AES_cbc_encrypt
+
+       movq    %rsp,%rax
+L$cbc_dec_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movl    240(%rcx),%eax
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+       movq    %r8,%rbx
+       shrq    $4,%r14
+
+       movl    %eax,%edx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %edx,%r10d
+       call    _bsaes_key_convert
+       pxor    (%rsp),%xmm7
+       movdqa  %xmm6,(%rax)
+       movdqa  %xmm7,(%rsp)
+
+       movdqu  (%rbx),%xmm14
+       subq    $8,%r14
+L$cbc_dec_loop:
+       movdqu  0(%r12),%xmm15
+       movdqu  16(%r12),%xmm0
+       movdqu  32(%r12),%xmm1
+       movdqu  48(%r12),%xmm2
+       movdqu  64(%r12),%xmm3
+       movdqu  80(%r12),%xmm4
+       movq    %rsp,%rax
+       movdqu  96(%r12),%xmm5
+       movl    %edx,%r10d
+       movdqu  112(%r12),%xmm6
+       movdqa  %xmm14,32(%rbp)
+
+       call    _bsaes_decrypt8
+
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm1
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm6
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm2
+       movdqu  112(%r12),%xmm14
+       pxor    %xmm13,%xmm4
+       movdqu  %xmm15,0(%r13)
+       leaq    128(%r12),%r12
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm2,96(%r13)
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+       subq    $8,%r14
+       jnc     L$cbc_dec_loop
+
+       addq    $8,%r14
+       jz      L$cbc_dec_done
+
+       movdqu  0(%r12),%xmm15
+       movq    %rsp,%rax
+       movl    %edx,%r10d
+       cmpq    $2,%r14
+       jb      L$cbc_dec_one
+       movdqu  16(%r12),%xmm0
+       je      L$cbc_dec_two
+       movdqu  32(%r12),%xmm1
+       cmpq    $4,%r14
+       jb      L$cbc_dec_three
+       movdqu  48(%r12),%xmm2
+       je      L$cbc_dec_four
+       movdqu  64(%r12),%xmm3
+       cmpq    $6,%r14
+       jb      L$cbc_dec_five
+       movdqu  80(%r12),%xmm4
+       je      L$cbc_dec_six
+       movdqu  96(%r12),%xmm5
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm1
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm6
+       movdqu  96(%r12),%xmm14
+       pxor    %xmm12,%xmm2
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm2,96(%r13)
+       jmp     L$cbc_dec_done
+.p2align       4
+L$cbc_dec_six:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm1
+       movdqu  80(%r12),%xmm14
+       pxor    %xmm11,%xmm6
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       jmp     L$cbc_dec_done
+.p2align       4
+L$cbc_dec_five:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm3
+       movdqu  64(%r12),%xmm14
+       pxor    %xmm10,%xmm1
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       jmp     L$cbc_dec_done
+.p2align       4
+L$cbc_dec_four:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm5
+       movdqu  48(%r12),%xmm14
+       pxor    %xmm9,%xmm3
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       jmp     L$cbc_dec_done
+.p2align       4
+L$cbc_dec_three:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm0
+       movdqu  32(%r12),%xmm14
+       pxor    %xmm8,%xmm5
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       jmp     L$cbc_dec_done
+.p2align       4
+L$cbc_dec_two:
+       movdqa  %xmm14,32(%rbp)
+       call    _bsaes_decrypt8
+       pxor    32(%rbp),%xmm15
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm14
+       pxor    %xmm7,%xmm0
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       jmp     L$cbc_dec_done
+.p2align       4
+L$cbc_dec_one:
+       leaq    (%r12),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    _asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm14
+       movdqu  %xmm14,(%r13)
+       movdqa  %xmm15,%xmm14
+
+L$cbc_dec_done:
+       movdqu  %xmm14,(%rbx)
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+L$cbc_dec_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      L$cbc_dec_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+L$cbc_dec_epilogue:
+       .byte   0xf3,0xc3
+
+
+.globl _bsaes_ctr32_encrypt_blocks
+
+.p2align       4
+_bsaes_ctr32_encrypt_blocks:
+       movq    %rsp,%rax
+L$ctr_enc_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movdqu  (%r8),%xmm0
+       movl    240(%rcx),%eax
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+       movdqa  %xmm0,32(%rbp)
+       cmpq    $8,%rdx
+       jb      L$ctr_enc_short
+
+       movl    %eax,%ebx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %ebx,%r10d
+       call    _bsaes_key_convert
+       pxor    %xmm6,%xmm7
+       movdqa  %xmm7,(%rax)
+
+       movdqa  (%rsp),%xmm8
+       leaq    L$ADD1(%rip),%r11
+       movdqa  32(%rbp),%xmm15
+       movdqa  -32(%r11),%xmm7
+.byte  102,68,15,56,0,199
+.byte  102,68,15,56,0,255
+       movdqa  %xmm8,(%rsp)
+       jmp     L$ctr_enc_loop
+.p2align       4
+L$ctr_enc_loop:
+       movdqa  %xmm15,32(%rbp)
+       movdqa  %xmm15,%xmm0
+       movdqa  %xmm15,%xmm1
+       paddd   0(%r11),%xmm0
+       movdqa  %xmm15,%xmm2
+       paddd   16(%r11),%xmm1
+       movdqa  %xmm15,%xmm3
+       paddd   32(%r11),%xmm2
+       movdqa  %xmm15,%xmm4
+       paddd   48(%r11),%xmm3
+       movdqa  %xmm15,%xmm5
+       paddd   64(%r11),%xmm4
+       movdqa  %xmm15,%xmm6
+       paddd   80(%r11),%xmm5
+       paddd   96(%r11),%xmm6
+
+
+
+       movdqa  (%rsp),%xmm8
+       leaq    16(%rsp),%rax
+       movdqa  -16(%r11),%xmm7
+       pxor    %xmm8,%xmm15
+       pxor    %xmm8,%xmm0
+.byte  102,68,15,56,0,255
+       pxor    %xmm8,%xmm1
+.byte  102,15,56,0,199
+       pxor    %xmm8,%xmm2
+.byte  102,15,56,0,207
+       pxor    %xmm8,%xmm3
+.byte  102,15,56,0,215
+       pxor    %xmm8,%xmm4
+.byte  102,15,56,0,223
+       pxor    %xmm8,%xmm5
+.byte  102,15,56,0,231
+       pxor    %xmm8,%xmm6
+.byte  102,15,56,0,239
+       leaq    L$BS0(%rip),%r11
+.byte  102,15,56,0,247
+       movl    %ebx,%r10d
+
+       call    _bsaes_encrypt8_bitslice
+
+       subq    $8,%r14
+       jc      L$ctr_enc_loop_done
+
+       movdqu  0(%r12),%xmm7
+       movdqu  16(%r12),%xmm8
+       movdqu  32(%r12),%xmm9
+       movdqu  48(%r12),%xmm10
+       movdqu  64(%r12),%xmm11
+       movdqu  80(%r12),%xmm12
+       movdqu  96(%r12),%xmm13
+       movdqu  112(%r12),%xmm14
+       leaq    128(%r12),%r12
+       pxor    %xmm15,%xmm7
+       movdqa  32(%rbp),%xmm15
+       pxor    %xmm8,%xmm0
+       movdqu  %xmm7,0(%r13)
+       pxor    %xmm9,%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    %xmm10,%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    %xmm11,%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    %xmm12,%xmm6
+       movdqu  %xmm2,64(%r13)
+       pxor    %xmm13,%xmm1
+       movdqu  %xmm6,80(%r13)
+       pxor    %xmm14,%xmm4
+       movdqu  %xmm1,96(%r13)
+       leaq    L$ADD1(%rip),%r11
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+       paddd   112(%r11),%xmm15
+       jnz     L$ctr_enc_loop
+
+       jmp     L$ctr_enc_done
+.p2align       4
+L$ctr_enc_loop_done:
+       addq    $8,%r14
+       movdqu  0(%r12),%xmm7
+       pxor    %xmm7,%xmm15
+       movdqu  %xmm15,0(%r13)
+       cmpq    $2,%r14
+       jb      L$ctr_enc_done
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm8,%xmm0
+       movdqu  %xmm0,16(%r13)
+       je      L$ctr_enc_done
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm9,%xmm3
+       movdqu  %xmm3,32(%r13)
+       cmpq    $4,%r14
+       jb      L$ctr_enc_done
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm10,%xmm5
+       movdqu  %xmm5,48(%r13)
+       je      L$ctr_enc_done
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm11,%xmm2
+       movdqu  %xmm2,64(%r13)
+       cmpq    $6,%r14
+       jb      L$ctr_enc_done
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm12,%xmm6
+       movdqu  %xmm6,80(%r13)
+       je      L$ctr_enc_done
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm13,%xmm1
+       movdqu  %xmm1,96(%r13)
+       jmp     L$ctr_enc_done
+
+.p2align       4
+L$ctr_enc_short:
+       leaq    32(%rbp),%rdi
+       leaq    48(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    _asm_AES_encrypt
+       movdqu  (%r12),%xmm0
+       leaq    16(%r12),%r12
+       movl    44(%rbp),%eax
+       bswapl  %eax
+       pxor    48(%rbp),%xmm0
+       incl    %eax
+       movdqu  %xmm0,(%r13)
+       bswapl  %eax
+       leaq    16(%r13),%r13
+       movl    %eax,44(%rsp)
+       decq    %r14
+       jnz     L$ctr_enc_short
+
+L$ctr_enc_done:
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+L$ctr_enc_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      L$ctr_enc_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+L$ctr_enc_epilogue:
+       .byte   0xf3,0xc3
+
+.globl _bsaes_xts_encrypt
+
+.p2align       4
+_bsaes_xts_encrypt:
+       movq    %rsp,%rax
+L$xts_enc_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+
+       leaq    (%r9),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r8),%rdx
+       call    _asm_AES_encrypt
+
+
+       movl    240(%r15),%eax
+       movq    %r14,%rbx
+
+       movl    %eax,%edx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %edx,%r10d
+       call    _bsaes_key_convert
+       pxor    %xmm6,%xmm7
+       movdqa  %xmm7,(%rax)
+
+       andq    $-16,%r14
+       subq    $128,%rsp
+       movdqa  32(%rbp),%xmm6
+
+       pxor    %xmm14,%xmm14
+       movdqa  L$xts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+
+       subq    $128,%r14
+       jc      L$xts_enc_short
+       jmp     L$xts_enc_loop
+
+.p2align       4
+L$xts_enc_loop:
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqu  112(%r12),%xmm14
+       leaq    128(%r12),%r12
+       movdqa  %xmm6,112(%rsp)
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       pxor    %xmm14,%xmm6
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm2,64(%r13)
+       pxor    96(%rsp),%xmm1
+       movdqu  %xmm6,80(%r13)
+       pxor    112(%rsp),%xmm4
+       movdqu  %xmm1,96(%r13)
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       pxor    %xmm14,%xmm14
+       movdqa  L$xts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+
+       subq    $128,%r14
+       jnc     L$xts_enc_loop
+
+L$xts_enc_short:
+       addq    $128,%r14
+       jz      L$xts_enc_done
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       cmpq    $16,%r14
+       je      L$xts_enc_1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       cmpq    $32,%r14
+       je      L$xts_enc_2
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       cmpq    $48,%r14
+       je      L$xts_enc_3
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       cmpq    $64,%r14
+       je      L$xts_enc_4
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       cmpq    $80,%r14
+       je      L$xts_enc_5
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       cmpq    $96,%r14
+       je      L$xts_enc_6
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqa  %xmm6,112(%rsp)
+       leaq    112(%r12),%r12
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm2,64(%r13)
+       pxor    96(%rsp),%xmm1
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm1,96(%r13)
+       leaq    112(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       jmp     L$xts_enc_done
+.p2align       4
+L$xts_enc_6:
+       pxor    %xmm11,%xmm3
+       leaq    96(%r12),%r12
+       pxor    %xmm12,%xmm4
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm2,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       leaq    96(%r13),%r13
+
+       movdqa  96(%rsp),%xmm6
+       jmp     L$xts_enc_done
+.p2align       4
+L$xts_enc_5:
+       pxor    %xmm10,%xmm2
+       leaq    80(%r12),%r12
+       pxor    %xmm11,%xmm3
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       pxor    64(%rsp),%xmm2
+       movdqu  %xmm5,48(%r13)
+       movdqu  %xmm2,64(%r13)
+       leaq    80(%r13),%r13
+
+       movdqa  80(%rsp),%xmm6
+       jmp     L$xts_enc_done
+.p2align       4
+L$xts_enc_4:
+       pxor    %xmm9,%xmm1
+       leaq    64(%r12),%r12
+       pxor    %xmm10,%xmm2
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm5
+       movdqu  %xmm3,32(%r13)
+       movdqu  %xmm5,48(%r13)
+       leaq    64(%r13),%r13
+
+       movdqa  64(%rsp),%xmm6
+       jmp     L$xts_enc_done
+.p2align       4
+L$xts_enc_3:
+       pxor    %xmm8,%xmm0
+       leaq    48(%r12),%r12
+       pxor    %xmm9,%xmm1
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm3
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm3,32(%r13)
+       leaq    48(%r13),%r13
+
+       movdqa  48(%rsp),%xmm6
+       jmp     L$xts_enc_done
+.p2align       4
+L$xts_enc_2:
+       pxor    %xmm7,%xmm15
+       leaq    32(%r12),%r12
+       pxor    %xmm8,%xmm0
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_encrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       leaq    32(%r13),%r13
+
+       movdqa  32(%rsp),%xmm6
+       jmp     L$xts_enc_done
+.p2align       4
+L$xts_enc_1:
+       pxor    %xmm15,%xmm7
+       leaq    16(%r12),%r12
+       movdqa  %xmm7,32(%rbp)
+       leaq    32(%rbp),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    _asm_AES_encrypt
+
+       pxor    32(%rbp),%xmm15
+
+
+
+
+
+       movdqu  %xmm15,0(%r13)
+       leaq    16(%r13),%r13
+
+       movdqa  16(%rsp),%xmm6
+
+L$xts_enc_done:
+       andl    $15,%ebx
+       jz      L$xts_enc_ret
+       movq    %r13,%rdx
+
+L$xts_enc_steal:
+       movzbl  (%r12),%eax
+       movzbl  -16(%rdx),%ecx
+       leaq    1(%r12),%r12
+       movb    %al,-16(%rdx)
+       movb    %cl,0(%rdx)
+       leaq    1(%rdx),%rdx
+       subl    $1,%ebx
+       jnz     L$xts_enc_steal
+
+       movdqu  -16(%r13),%xmm15
+       leaq    32(%rbp),%rdi
+       pxor    %xmm6,%xmm15
+       leaq    32(%rbp),%rsi
+       movdqa  %xmm15,32(%rbp)
+       leaq    (%r15),%rdx
+       call    _asm_AES_encrypt
+
+       pxor    32(%rbp),%xmm6
+       movdqu  %xmm6,-16(%r13)
+
+L$xts_enc_ret:
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+L$xts_enc_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      L$xts_enc_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+L$xts_enc_epilogue:
+       .byte   0xf3,0xc3
+
+
+.globl _bsaes_xts_decrypt
+
+.p2align       4
+_bsaes_xts_decrypt:
+       movq    %rsp,%rax
+L$xts_dec_prologue:
+       pushq   %rbp
+       pushq   %rbx
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       leaq    -72(%rsp),%rsp
+       movq    %rsp,%rbp
+       movq    %rdi,%r12
+       movq    %rsi,%r13
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+
+       leaq    (%r9),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r8),%rdx
+       call    _asm_AES_encrypt
+
+
+       movl    240(%r15),%eax
+       movq    %r14,%rbx
+
+       movl    %eax,%edx
+       shlq    $7,%rax
+       subq    $96,%rax
+       subq    %rax,%rsp
+
+       movq    %rsp,%rax
+       movq    %r15,%rcx
+       movl    %edx,%r10d
+       call    _bsaes_key_convert
+       pxor    (%rsp),%xmm7
+       movdqa  %xmm6,(%rax)
+       movdqa  %xmm7,(%rsp)
+
+       xorl    %eax,%eax
+       andq    $-16,%r14
+       testl   $15,%ebx
+       setnz   %al
+       shlq    $4,%rax
+       subq    %rax,%r14
+
+       subq    $128,%rsp
+       movdqa  32(%rbp),%xmm6
+
+       pxor    %xmm14,%xmm14
+       movdqa  L$xts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+
+       subq    $128,%r14
+       jc      L$xts_dec_short
+       jmp     L$xts_dec_loop
+
+.p2align       4
+L$xts_dec_loop:
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqu  112(%r12),%xmm14
+       leaq    128(%r12),%r12
+       movdqa  %xmm6,112(%rsp)
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       pxor    %xmm14,%xmm6
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm1,64(%r13)
+       pxor    96(%rsp),%xmm2
+       movdqu  %xmm6,80(%r13)
+       pxor    112(%rsp),%xmm4
+       movdqu  %xmm2,96(%r13)
+       movdqu  %xmm4,112(%r13)
+       leaq    128(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       pxor    %xmm14,%xmm14
+       movdqa  L$xts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+
+       subq    $128,%r14
+       jnc     L$xts_dec_loop
+
+L$xts_dec_short:
+       addq    $128,%r14
+       jz      L$xts_dec_done
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm15
+       movdqa  %xmm6,0(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm0
+       movdqa  %xmm6,16(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  0(%r12),%xmm7
+       cmpq    $16,%r14
+       je      L$xts_dec_1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm1
+       movdqa  %xmm6,32(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  16(%r12),%xmm8
+       cmpq    $32,%r14
+       je      L$xts_dec_2
+       pxor    %xmm7,%xmm15
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm2
+       movdqa  %xmm6,48(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  32(%r12),%xmm9
+       cmpq    $48,%r14
+       je      L$xts_dec_3
+       pxor    %xmm8,%xmm0
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm3
+       movdqa  %xmm6,64(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  48(%r12),%xmm10
+       cmpq    $64,%r14
+       je      L$xts_dec_4
+       pxor    %xmm9,%xmm1
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm4
+       movdqa  %xmm6,80(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  64(%r12),%xmm11
+       cmpq    $80,%r14
+       je      L$xts_dec_5
+       pxor    %xmm10,%xmm2
+       pshufd  $19,%xmm14,%xmm13
+       pxor    %xmm14,%xmm14
+       movdqa  %xmm6,%xmm5
+       movdqa  %xmm6,96(%rsp)
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       pcmpgtd %xmm6,%xmm14
+       pxor    %xmm13,%xmm6
+       movdqu  80(%r12),%xmm12
+       cmpq    $96,%r14
+       je      L$xts_dec_6
+       pxor    %xmm11,%xmm3
+       movdqu  96(%r12),%xmm13
+       pxor    %xmm12,%xmm4
+       movdqa  %xmm6,112(%rsp)
+       leaq    112(%r12),%r12
+       pxor    %xmm13,%xmm5
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm1,64(%r13)
+       pxor    96(%rsp),%xmm2
+       movdqu  %xmm6,80(%r13)
+       movdqu  %xmm2,96(%r13)
+       leaq    112(%r13),%r13
+
+       movdqa  112(%rsp),%xmm6
+       jmp     L$xts_dec_done
+.p2align       4
+L$xts_dec_6:
+       pxor    %xmm11,%xmm3
+       leaq    96(%r12),%r12
+       pxor    %xmm12,%xmm4
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       pxor    80(%rsp),%xmm6
+       movdqu  %xmm1,64(%r13)
+       movdqu  %xmm6,80(%r13)
+       leaq    96(%r13),%r13
+
+       movdqa  96(%rsp),%xmm6
+       jmp     L$xts_dec_done
+.p2align       4
+L$xts_dec_5:
+       pxor    %xmm10,%xmm2
+       leaq    80(%r12),%r12
+       pxor    %xmm11,%xmm3
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       pxor    64(%rsp),%xmm1
+       movdqu  %xmm3,48(%r13)
+       movdqu  %xmm1,64(%r13)
+       leaq    80(%r13),%r13
+
+       movdqa  80(%rsp),%xmm6
+       jmp     L$xts_dec_done
+.p2align       4
+L$xts_dec_4:
+       pxor    %xmm9,%xmm1
+       leaq    64(%r12),%r12
+       pxor    %xmm10,%xmm2
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       pxor    48(%rsp),%xmm3
+       movdqu  %xmm5,32(%r13)
+       movdqu  %xmm3,48(%r13)
+       leaq    64(%r13),%r13
+
+       movdqa  64(%rsp),%xmm6
+       jmp     L$xts_dec_done
+.p2align       4
+L$xts_dec_3:
+       pxor    %xmm8,%xmm0
+       leaq    48(%r12),%r12
+       pxor    %xmm9,%xmm1
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       pxor    32(%rsp),%xmm5
+       movdqu  %xmm0,16(%r13)
+       movdqu  %xmm5,32(%r13)
+       leaq    48(%r13),%r13
+
+       movdqa  48(%rsp),%xmm6
+       jmp     L$xts_dec_done
+.p2align       4
+L$xts_dec_2:
+       pxor    %xmm7,%xmm15
+       leaq    32(%r12),%r12
+       pxor    %xmm8,%xmm0
+       leaq    128(%rsp),%rax
+       movl    %edx,%r10d
+
+       call    _bsaes_decrypt8
+
+       pxor    0(%rsp),%xmm15
+       pxor    16(%rsp),%xmm0
+       movdqu  %xmm15,0(%r13)
+       movdqu  %xmm0,16(%r13)
+       leaq    32(%r13),%r13
+
+       movdqa  32(%rsp),%xmm6
+       jmp     L$xts_dec_done
+.p2align       4
+L$xts_dec_1:
+       pxor    %xmm15,%xmm7
+       leaq    16(%r12),%r12
+       movdqa  %xmm7,32(%rbp)
+       leaq    32(%rbp),%rdi
+       leaq    32(%rbp),%rsi
+       leaq    (%r15),%rdx
+       call    _asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm15
+
+
+
+
+
+       movdqu  %xmm15,0(%r13)
+       leaq    16(%r13),%r13
+
+       movdqa  16(%rsp),%xmm6
+
+L$xts_dec_done:
+       andl    $15,%ebx
+       jz      L$xts_dec_ret
+
+       pxor    %xmm14,%xmm14
+       movdqa  L$xts_magic(%rip),%xmm12
+       pcmpgtd %xmm6,%xmm14
+       pshufd  $19,%xmm14,%xmm13
+       movdqa  %xmm6,%xmm5
+       paddq   %xmm6,%xmm6
+       pand    %xmm12,%xmm13
+       movdqu  (%r12),%xmm15
+       pxor    %xmm13,%xmm6
+
+       leaq    32(%rbp),%rdi
+       pxor    %xmm6,%xmm15
+       leaq    32(%rbp),%rsi
+       movdqa  %xmm15,32(%rbp)
+       leaq    (%r15),%rdx
+       call    _asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm6
+       movq    %r13,%rdx
+       movdqu  %xmm6,(%r13)
+
+L$xts_dec_steal:
+       movzbl  16(%r12),%eax
+       movzbl  (%rdx),%ecx
+       leaq    1(%r12),%r12
+       movb    %al,(%rdx)
+       movb    %cl,16(%rdx)
+       leaq    1(%rdx),%rdx
+       subl    $1,%ebx
+       jnz     L$xts_dec_steal
+
+       movdqu  (%r13),%xmm15
+       leaq    32(%rbp),%rdi
+       pxor    %xmm5,%xmm15
+       leaq    32(%rbp),%rsi
+       movdqa  %xmm15,32(%rbp)
+       leaq    (%r15),%rdx
+       call    _asm_AES_decrypt
+
+       pxor    32(%rbp),%xmm5
+       movdqu  %xmm5,(%r13)
+
+L$xts_dec_ret:
+       leaq    (%rsp),%rax
+       pxor    %xmm0,%xmm0
+L$xts_dec_bzero:
+       movdqa  %xmm0,0(%rax)
+       movdqa  %xmm0,16(%rax)
+       leaq    32(%rax),%rax
+       cmpq    %rax,%rbp
+       ja      L$xts_dec_bzero
+
+       leaq    (%rbp),%rsp
+       movq    72(%rsp),%r15
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbx
+       movq    112(%rsp),%rax
+       leaq    120(%rsp),%rsp
+       movq    %rax,%rbp
+L$xts_dec_epilogue:
+       .byte   0xf3,0xc3
+
+
+.p2align       6
+_bsaes_const:
+L$M0ISR:
+.quad  0x0a0e0206070b0f03, 0x0004080c0d010509
+L$ISRM0:
+.quad  0x01040b0e0205080f, 0x0306090c00070a0d
+L$ISR:
+.quad  0x0504070602010003, 0x0f0e0d0c080b0a09
+L$BS0:
+.quad  0x5555555555555555, 0x5555555555555555
+L$BS1:
+.quad  0x3333333333333333, 0x3333333333333333
+L$BS2:
+.quad  0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
+L$SR:
+.quad  0x0504070600030201, 0x0f0e0d0c0a09080b
+L$SRM0:
+.quad  0x0304090e00050a0f, 0x01060b0c0207080d
+L$M0SR:
+.quad  0x0a0e02060f03070b, 0x0004080c05090d01
+L$SWPUP:
+.quad  0x0706050403020100, 0x0c0d0e0f0b0a0908
+L$SWPUPM0SR:
+.quad  0x0a0d02060c03070b, 0x0004080f05090e01
+L$ADD1:
+.quad  0x0000000000000000, 0x0000000100000000
+L$ADD2:
+.quad  0x0000000000000000, 0x0000000200000000
+L$ADD3:
+.quad  0x0000000000000000, 0x0000000300000000
+L$ADD4:
+.quad  0x0000000000000000, 0x0000000400000000
+L$ADD5:
+.quad  0x0000000000000000, 0x0000000500000000
+L$ADD6:
+.quad  0x0000000000000000, 0x0000000600000000
+L$ADD7:
+.quad  0x0000000000000000, 0x0000000700000000
+L$ADD8:
+.quad  0x0000000000000000, 0x0000000800000000
+L$xts_magic:
+.long  0x87,0,1,0
+L$masks:
+.quad  0x0101010101010101, 0x0101010101010101
+.quad  0x0202020202020202, 0x0202020202020202
+.quad  0x0404040404040404, 0x0404040404040404
+.quad  0x0808080808080808, 0x0808080808080808
+L$M0:
+.quad  0x02060a0e03070b0f, 0x0004080c0105090d
+L$63:
+.quad  0x6363636363636363, 0x6363636363636363
+.byte  66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0
+.p2align       6
diff --git a/deps/openssl/asm/x64-macosx-gas/aes/vpaes-x86_64.s b/deps/openssl/asm/x64-macosx-gas/aes/vpaes-x86_64.s
new file mode 100644 (file)
index 0000000..803ab41
--- /dev/null
@@ -0,0 +1,838 @@
+.text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_encrypt_core:
+       movq    %rdx,%r9
+       movq    $16,%r11
+       movl    240(%rdx),%eax
+       movdqa  %xmm9,%xmm1
+       movdqa  L$k_ipt(%rip),%xmm2
+       pandn   %xmm0,%xmm1
+       movdqu  (%r9),%xmm5
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+.byte  102,15,56,0,208
+       movdqa  L$k_ipt+16(%rip),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm5,%xmm2
+       pxor    %xmm2,%xmm0
+       addq    $16,%r9
+       leaq    L$k_mc_backward(%rip),%r10
+       jmp     L$enc_entry
+
+.p2align       4
+L$enc_loop:
+
+       movdqa  %xmm13,%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+       movdqa  %xmm12,%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       movdqa  %xmm15,%xmm5
+.byte  102,15,56,0,234
+       movdqa  -64(%r11,%r10,1),%xmm1
+       movdqa  %xmm14,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm5,%xmm2
+       movdqa  (%r11,%r10,1),%xmm4
+       movdqa  %xmm0,%xmm3
+.byte  102,15,56,0,193
+       addq    $16,%r9
+       pxor    %xmm2,%xmm0
+.byte  102,15,56,0,220
+       addq    $16,%r11
+       pxor    %xmm0,%xmm3
+.byte  102,15,56,0,193
+       andq    $48,%r11
+       pxor    %xmm3,%xmm0
+       subq    $1,%rax
+
+L$enc_entry:
+
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  %xmm11,%xmm5
+.byte  102,15,56,0,232
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm5,%xmm3
+       movdqa  %xmm10,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm5,%xmm4
+       movdqa  %xmm10,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm10,%xmm3
+       movdqu  (%r9),%xmm5
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       jnz     L$enc_loop
+
+
+       movdqa  -96(%r10),%xmm4
+       movdqa  -80(%r10),%xmm0
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+.byte  102,15,56,0,195
+       movdqa  64(%r11,%r10,1),%xmm1
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,193
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_decrypt_core:
+       movq    %rdx,%r9
+       movl    240(%rdx),%eax
+       movdqa  %xmm9,%xmm1
+       movdqa  L$k_dipt(%rip),%xmm2
+       pandn   %xmm0,%xmm1
+       movq    %rax,%r11
+       psrld   $4,%xmm1
+       movdqu  (%r9),%xmm5
+       shlq    $4,%r11
+       pand    %xmm9,%xmm0
+.byte  102,15,56,0,208
+       movdqa  L$k_dipt+16(%rip),%xmm0
+       xorq    $48,%r11
+       leaq    L$k_dsbd(%rip),%r10
+.byte  102,15,56,0,193
+       andq    $48,%r11
+       pxor    %xmm5,%xmm2
+       movdqa  L$k_mc_forward+48(%rip),%xmm5
+       pxor    %xmm2,%xmm0
+       addq    $16,%r9
+       addq    %r10,%r11
+       jmp     L$dec_entry
+
+.p2align       4
+L$dec_loop:
+
+
+
+       movdqa  -32(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  -16(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       addq    $16,%r9
+
+.byte  102,15,56,0,197
+       movdqa  0(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  16(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       subq    $1,%rax
+
+.byte  102,15,56,0,197
+       movdqa  32(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  48(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+
+.byte  102,15,56,0,197
+       movdqa  64(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  80(%r10),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+
+.byte  102,15,58,15,237,12
+
+L$dec_entry:
+
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  %xmm11,%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm10,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm10,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqu  (%r9),%xmm0
+       jnz     L$dec_loop
+
+
+       movdqa  96(%r10),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  112(%r10),%xmm0
+       movdqa  -352(%r11),%xmm2
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,194
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_schedule_core:
+
+
+
+
+
+       call    _vpaes_preheat
+
+       movdqa  L$k_rcon(%rip),%xmm8
+       movdqu  (%rdi),%xmm0
+
+
+       movdqa  %xmm0,%xmm3
+       leaq    L$k_ipt(%rip),%r11
+       call    _vpaes_schedule_transform
+       movdqa  %xmm0,%xmm7
+
+       leaq    L$k_sr(%rip),%r10
+       testq   %rcx,%rcx
+       jnz     L$schedule_am_decrypting
+
+
+       movdqu  %xmm0,(%rdx)
+       jmp     L$schedule_go
+
+L$schedule_am_decrypting:
+
+       movdqa  (%r8,%r10,1),%xmm1
+.byte  102,15,56,0,217
+       movdqu  %xmm3,(%rdx)
+       xorq    $48,%r8
+
+L$schedule_go:
+       cmpl    $192,%esi
+       ja      L$schedule_256
+       je      L$schedule_192
+
+
+
+
+
+
+
+
+
+
+L$schedule_128:
+       movl    $10,%esi
+
+L$oop_schedule_128:
+       call    _vpaes_schedule_round
+       decq    %rsi
+       jz      L$schedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+       jmp     L$oop_schedule_128
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+L$schedule_192:
+       movdqu  8(%rdi),%xmm0
+       call    _vpaes_schedule_transform
+
+       movdqa  %xmm0,%xmm6
+       pxor    %xmm4,%xmm4
+       movhlps %xmm4,%xmm6
+       movl    $4,%esi
+
+L$oop_schedule_192:
+       call    _vpaes_schedule_round
+.byte  102,15,58,15,198,8
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_192_smear
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_round
+       decq    %rsi
+       jz      L$schedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_192_smear
+       jmp     L$oop_schedule_192
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+L$schedule_256:
+       movdqu  16(%rdi),%xmm0
+       call    _vpaes_schedule_transform
+
+       movl    $7,%esi
+
+L$oop_schedule_256:
+       call    _vpaes_schedule_mangle
+
+       movdqa  %xmm0,%xmm6
+
+
+       call    _vpaes_schedule_round
+       decq    %rsi
+       jz      L$schedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+
+
+       pshufd  $255,%xmm0,%xmm0
+       movdqa  %xmm7,%xmm5
+       movdqa  %xmm6,%xmm7
+       call    _vpaes_schedule_low_round
+       movdqa  %xmm5,%xmm7
+
+       jmp     L$oop_schedule_256
+
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+L$schedule_mangle_last:
+
+       leaq    L$k_deskew(%rip),%r11
+       testq   %rcx,%rcx
+       jnz     L$schedule_mangle_last_dec
+
+
+       movdqa  (%r8,%r10,1),%xmm1
+.byte  102,15,56,0,193
+       leaq    L$k_opt(%rip),%r11
+       addq    $32,%rdx
+
+L$schedule_mangle_last_dec:
+       addq    $-16,%rdx
+       pxor    L$k_s63(%rip),%xmm0
+       call    _vpaes_schedule_transform
+
+       movdqu  %xmm0,(%rdx)
+
+
+       pxor    %xmm0,%xmm0
+       pxor    %xmm1,%xmm1
+       pxor    %xmm2,%xmm2
+       pxor    %xmm3,%xmm3
+       pxor    %xmm4,%xmm4
+       pxor    %xmm5,%xmm5
+       pxor    %xmm6,%xmm6
+       pxor    %xmm7,%xmm7
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_schedule_192_smear:
+       pshufd  $128,%xmm6,%xmm0
+       pxor    %xmm0,%xmm6
+       pshufd  $254,%xmm7,%xmm0
+       pxor    %xmm0,%xmm6
+       movdqa  %xmm6,%xmm0
+       pxor    %xmm1,%xmm1
+       movhlps %xmm1,%xmm6
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_schedule_round:
+
+       pxor    %xmm1,%xmm1
+.byte  102,65,15,58,15,200,15
+.byte  102,69,15,58,15,192,15
+       pxor    %xmm1,%xmm7
+
+
+       pshufd  $255,%xmm0,%xmm0
+.byte  102,15,58,15,192,1
+
+
+
+
+_vpaes_schedule_low_round:
+
+       movdqa  %xmm7,%xmm1
+       pslldq  $4,%xmm7
+       pxor    %xmm1,%xmm7
+       movdqa  %xmm7,%xmm1
+       pslldq  $8,%xmm7
+       pxor    %xmm1,%xmm7
+       pxor    L$k_s63(%rip),%xmm7
+
+
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  %xmm11,%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm10,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm10,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm10,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqa  %xmm13,%xmm4
+.byte  102,15,56,0,226
+       movdqa  %xmm12,%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+
+
+       pxor    %xmm7,%xmm0
+       movdqa  %xmm0,%xmm7
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_schedule_transform:
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm0
+       movdqa  (%r11),%xmm2
+.byte  102,15,56,0,208
+       movdqa  16(%r11),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm2,%xmm0
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_schedule_mangle:
+       movdqa  %xmm0,%xmm4
+       movdqa  L$k_mc_forward(%rip),%xmm5
+       testq   %rcx,%rcx
+       jnz     L$schedule_mangle_dec
+
+
+       addq    $16,%rdx
+       pxor    L$k_s63(%rip),%xmm4
+.byte  102,15,56,0,229
+       movdqa  %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+
+       jmp     L$schedule_mangle_both
+.p2align       4
+L$schedule_mangle_dec:
+
+       leaq    L$k_dksd(%rip),%r11
+       movdqa  %xmm9,%xmm1
+       pandn   %xmm4,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm9,%xmm4
+
+       movdqa  0(%r11),%xmm2
+.byte  102,15,56,0,212
+       movdqa  16(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+
+       movdqa  32(%r11),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  48(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+
+       movdqa  64(%r11),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  80(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+
+       movdqa  96(%r11),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  112(%r11),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+
+       addq    $-16,%rdx
+
+L$schedule_mangle_both:
+       movdqa  (%r8,%r10,1),%xmm1
+.byte  102,15,56,0,217
+       addq    $-16,%r8
+       andq    $48,%r8
+       movdqu  %xmm3,(%rdx)
+       .byte   0xf3,0xc3
+
+
+
+
+
+.globl _vpaes_set_encrypt_key
+
+.p2align       4
+_vpaes_set_encrypt_key:
+       movl    %esi,%eax
+       shrl    $5,%eax
+       addl    $5,%eax
+       movl    %eax,240(%rdx)
+
+       movl    $0,%ecx
+       movl    $48,%r8d
+       call    _vpaes_schedule_core
+       xorl    %eax,%eax
+       .byte   0xf3,0xc3
+
+
+.globl _vpaes_set_decrypt_key
+
+.p2align       4
+_vpaes_set_decrypt_key:
+       movl    %esi,%eax
+       shrl    $5,%eax
+       addl    $5,%eax
+       movl    %eax,240(%rdx)
+       shll    $4,%eax
+       leaq    16(%rdx,%rax,1),%rdx
+
+       movl    $1,%ecx
+       movl    %esi,%r8d
+       shrl    $1,%r8d
+       andl    $32,%r8d
+       xorl    $32,%r8d
+       call    _vpaes_schedule_core
+       xorl    %eax,%eax
+       .byte   0xf3,0xc3
+
+
+.globl _vpaes_encrypt
+
+.p2align       4
+_vpaes_encrypt:
+       movdqu  (%rdi),%xmm0
+       call    _vpaes_preheat
+       call    _vpaes_encrypt_core
+       movdqu  %xmm0,(%rsi)
+       .byte   0xf3,0xc3
+
+
+.globl _vpaes_decrypt
+
+.p2align       4
+_vpaes_decrypt:
+       movdqu  (%rdi),%xmm0
+       call    _vpaes_preheat
+       call    _vpaes_decrypt_core
+       movdqu  %xmm0,(%rsi)
+       .byte   0xf3,0xc3
+
+.globl _vpaes_cbc_encrypt
+
+.p2align       4
+_vpaes_cbc_encrypt:
+       xchgq   %rcx,%rdx
+       subq    $16,%rcx
+       jc      L$cbc_abort
+       movdqu  (%r8),%xmm6
+       subq    %rdi,%rsi
+       call    _vpaes_preheat
+       cmpl    $0,%r9d
+       je      L$cbc_dec_loop
+       jmp     L$cbc_enc_loop
+.p2align       4
+L$cbc_enc_loop:
+       movdqu  (%rdi),%xmm0
+       pxor    %xmm6,%xmm0
+       call    _vpaes_encrypt_core
+       movdqa  %xmm0,%xmm6
+       movdqu  %xmm0,(%rsi,%rdi,1)
+       leaq    16(%rdi),%rdi
+       subq    $16,%rcx
+       jnc     L$cbc_enc_loop
+       jmp     L$cbc_done
+.p2align       4
+L$cbc_dec_loop:
+       movdqu  (%rdi),%xmm0
+       movdqa  %xmm0,%xmm7
+       call    _vpaes_decrypt_core
+       pxor    %xmm6,%xmm0
+       movdqa  %xmm7,%xmm6
+       movdqu  %xmm0,(%rsi,%rdi,1)
+       leaq    16(%rdi),%rdi
+       subq    $16,%rcx
+       jnc     L$cbc_dec_loop
+L$cbc_done:
+       movdqu  %xmm6,(%r8)
+L$cbc_abort:
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+
+.p2align       4
+_vpaes_preheat:
+       leaq    L$k_s0F(%rip),%r10
+       movdqa  -32(%r10),%xmm10
+       movdqa  -16(%r10),%xmm11
+       movdqa  0(%r10),%xmm9
+       movdqa  48(%r10),%xmm13
+       movdqa  64(%r10),%xmm12
+       movdqa  80(%r10),%xmm15
+       movdqa  96(%r10),%xmm14
+       .byte   0xf3,0xc3
+
+
+
+
+
+
+
+.p2align       6
+_vpaes_consts:
+L$k_inv:
+.quad  0x0E05060F0D080180, 0x040703090A0B0C02
+.quad  0x01040A060F0B0780, 0x030D0E0C02050809
+
+L$k_s0F:
+.quad  0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
+
+L$k_ipt:
+.quad  0xC2B2E8985A2A7000, 0xCABAE09052227808
+.quad  0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
+
+L$k_sb1:
+.quad  0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
+.quad  0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
+L$k_sb2:
+.quad  0xE27A93C60B712400, 0x5EB7E955BC982FCD
+.quad  0x69EB88400AE12900, 0xC2A163C8AB82234A
+L$k_sbo:
+.quad  0xD0D26D176FBDC700, 0x15AABF7AC502A878
+.quad  0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
+
+L$k_mc_forward:
+.quad  0x0407060500030201, 0x0C0F0E0D080B0A09
+.quad  0x080B0A0904070605, 0x000302010C0F0E0D
+.quad  0x0C0F0E0D080B0A09, 0x0407060500030201
+.quad  0x000302010C0F0E0D, 0x080B0A0904070605
+
+L$k_mc_backward:
+.quad  0x0605040702010003, 0x0E0D0C0F0A09080B
+.quad  0x020100030E0D0C0F, 0x0A09080B06050407
+.quad  0x0E0D0C0F0A09080B, 0x0605040702010003
+.quad  0x0A09080B06050407, 0x020100030E0D0C0F
+
+L$k_sr:
+.quad  0x0706050403020100, 0x0F0E0D0C0B0A0908
+.quad  0x030E09040F0A0500, 0x0B06010C07020D08
+.quad  0x0F060D040B020900, 0x070E050C030A0108
+.quad  0x0B0E0104070A0D00, 0x0306090C0F020508
+
+L$k_rcon:
+.quad  0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
+
+L$k_s63:
+.quad  0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
+
+L$k_opt:
+.quad  0xFF9F4929D6B66000, 0xF7974121DEBE6808
+.quad  0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
+
+L$k_deskew:
+.quad  0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
+.quad  0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
+
+
+
+
+
+L$k_dksd:
+.quad  0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
+.quad  0x41C277F4B5368300, 0x5FDC69EAAB289D1E
+L$k_dksb:
+.quad  0x9A4FCA1F8550D500, 0x03D653861CC94C99
+.quad  0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
+L$k_dkse:
+.quad  0xD5031CCA1FC9D600, 0x53859A4C994F5086
+.quad  0xA23196054FDC7BE8, 0xCD5EF96A20B31487
+L$k_dks9:
+.quad  0xB6116FC87ED9A700, 0x4AED933482255BFC
+.quad  0x4576516227143300, 0x8BB89FACE9DAFDCE
+
+
+
+
+
+L$k_dipt:
+.quad  0x0F505B040B545F00, 0x154A411E114E451A
+.quad  0x86E383E660056500, 0x12771772F491F194
+
+L$k_dsb9:
+.quad  0x851C03539A86D600, 0xCAD51F504F994CC9
+.quad  0xC03B1789ECD74900, 0x725E2C9EB2FBA565
+L$k_dsbd:
+.quad  0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
+.quad  0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
+L$k_dsbb:
+.quad  0xD022649296B44200, 0x602646F6B0F2D404
+.quad  0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
+L$k_dsbe:
+.quad  0x46F2929626D4D000, 0x2242600464B4F6B0
+.quad  0x0C55A6CDFFAAC100, 0x9467F36B98593E32
+L$k_dsbo:
+.quad  0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
+.quad  0x12D7560F93441D00, 0xCA4B8159D8C58E9C
+.byte  86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
+.p2align       6
diff --git a/deps/openssl/asm/x64-macosx-gas/bn/x86_64-gf2m.s b/deps/openssl/asm/x64-macosx-gas/bn/x86_64-gf2m.s
new file mode 100644 (file)
index 0000000..5926801
--- /dev/null
@@ -0,0 +1,295 @@
+.text
+
+
+
+.p2align       4
+_mul_1x1:
+       subq    $128+8,%rsp
+       movq    $-1,%r9
+       leaq    (%rax,%rax,1),%rsi
+       shrq    $3,%r9
+       leaq    (,%rax,4),%rdi
+       andq    %rax,%r9
+       leaq    (,%rax,8),%r12
+       sarq    $63,%rax
+       leaq    (%r9,%r9,1),%r10
+       sarq    $63,%rsi
+       leaq    (,%r9,4),%r11
+       andq    %rbp,%rax
+       sarq    $63,%rdi
+       movq    %rax,%rdx
+       shlq    $63,%rax
+       andq    %rbp,%rsi
+       shrq    $1,%rdx
+       movq    %rsi,%rcx
+       shlq    $62,%rsi
+       andq    %rbp,%rdi
+       shrq    $2,%rcx
+       xorq    %rsi,%rax
+       movq    %rdi,%rbx
+       shlq    $61,%rdi
+       xorq    %rcx,%rdx
+       shrq    $3,%rbx
+       xorq    %rdi,%rax
+       xorq    %rbx,%rdx
+
+       movq    %r9,%r13
+       movq    $0,0(%rsp)
+       xorq    %r10,%r13
+       movq    %r9,8(%rsp)
+       movq    %r11,%r14
+       movq    %r10,16(%rsp)
+       xorq    %r12,%r14
+       movq    %r13,24(%rsp)
+
+       xorq    %r11,%r9
+       movq    %r11,32(%rsp)
+       xorq    %r11,%r10
+       movq    %r9,40(%rsp)
+       xorq    %r11,%r13
+       movq    %r10,48(%rsp)
+       xorq    %r14,%r9
+       movq    %r13,56(%rsp)
+       xorq    %r14,%r10
+
+       movq    %r12,64(%rsp)
+       xorq    %r14,%r13
+       movq    %r9,72(%rsp)
+       xorq    %r11,%r9
+       movq    %r10,80(%rsp)
+       xorq    %r11,%r10
+       movq    %r13,88(%rsp)
+
+       xorq    %r11,%r13
+       movq    %r14,96(%rsp)
+       movq    %r8,%rsi
+       movq    %r9,104(%rsp)
+       andq    %rbp,%rsi
+       movq    %r10,112(%rsp)
+       shrq    $4,%rbp
+       movq    %r13,120(%rsp)
+       movq    %r8,%rdi
+       andq    %rbp,%rdi
+       shrq    $4,%rbp
+
+       movq    (%rsp,%rsi,8),%xmm0
+       movq    %r8,%rsi
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $4,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $60,%rbx
+       xorq    %rcx,%rax
+       pslldq  $1,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $12,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $52,%rbx
+       xorq    %rcx,%rax
+       pslldq  $2,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $20,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $44,%rbx
+       xorq    %rcx,%rax
+       pslldq  $3,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $28,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $36,%rbx
+       xorq    %rcx,%rax
+       pslldq  $4,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $36,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $28,%rbx
+       xorq    %rcx,%rax
+       pslldq  $5,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $44,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $20,%rbx
+       xorq    %rcx,%rax
+       pslldq  $6,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %r8,%rdi
+       movq    %rcx,%rbx
+       shlq    $52,%rcx
+       andq    %rbp,%rdi
+       movq    (%rsp,%rsi,8),%xmm1
+       shrq    $12,%rbx
+       xorq    %rcx,%rax
+       pslldq  $7,%xmm1
+       movq    %r8,%rsi
+       shrq    $4,%rbp
+       xorq    %rbx,%rdx
+       andq    %rbp,%rsi
+       shrq    $4,%rbp
+       pxor    %xmm1,%xmm0
+       movq    (%rsp,%rdi,8),%rcx
+       movq    %rcx,%rbx
+       shlq    $60,%rcx
+.byte  102,72,15,126,198
+       shrq    $4,%rbx
+       xorq    %rcx,%rax
+       psrldq  $8,%xmm0
+       xorq    %rbx,%rdx
+.byte  102,72,15,126,199
+       xorq    %rsi,%rax
+       xorq    %rdi,%rdx
+
+       addq    $128+8,%rsp
+       .byte   0xf3,0xc3
+L$end_mul_1x1:
+
+
+.globl _bn_GF2m_mul_2x2
+
+.p2align       4
+_bn_GF2m_mul_2x2:
+       movq    _OPENSSL_ia32cap_P(%rip),%rax
+       btq     $33,%rax
+       jnc     L$vanilla_mul_2x2
+
+.byte  102,72,15,110,198
+.byte  102,72,15,110,201
+.byte  102,72,15,110,210
+.byte  102,73,15,110,216
+       movdqa  %xmm0,%xmm4
+       movdqa  %xmm1,%xmm5
+.byte  102,15,58,68,193,0
+       pxor    %xmm2,%xmm4
+       pxor    %xmm3,%xmm5
+.byte  102,15,58,68,211,0
+.byte  102,15,58,68,229,0
+       xorps   %xmm0,%xmm4
+       xorps   %xmm2,%xmm4
+       movdqa  %xmm4,%xmm5
+       pslldq  $8,%xmm4
+       psrldq  $8,%xmm5
+       pxor    %xmm4,%xmm2
+       pxor    %xmm5,%xmm0
+       movdqu  %xmm2,0(%rdi)
+       movdqu  %xmm0,16(%rdi)
+       .byte   0xf3,0xc3
+
+.p2align       4
+L$vanilla_mul_2x2:
+       leaq    -136(%rsp),%rsp
+       movq    %r14,80(%rsp)
+       movq    %r13,88(%rsp)
+       movq    %r12,96(%rsp)
+       movq    %rbp,104(%rsp)
+       movq    %rbx,112(%rsp)
+L$body_mul_2x2:
+       movq    %rdi,32(%rsp)
+       movq    %rsi,40(%rsp)
+       movq    %rdx,48(%rsp)
+       movq    %rcx,56(%rsp)
+       movq    %r8,64(%rsp)
+
+       movq    $15,%r8
+       movq    %rsi,%rax
+       movq    %rcx,%rbp
+       call    _mul_1x1
+
+       movq    %rax,16(%rsp)
+       movq    %rdx,24(%rsp)
+
+       movq    48(%rsp),%rax
+       movq    64(%rsp),%rbp
+       call    _mul_1x1
+
+       movq    %rax,0(%rsp)
+       movq    %rdx,8(%rsp)
+
+       movq    40(%rsp),%rax
+       movq    56(%rsp),%rbp
+       xorq    48(%rsp),%rax
+       xorq    64(%rsp),%rbp
+       call    _mul_1x1
+
+       movq    0(%rsp),%rbx
+       movq    8(%rsp),%rcx
+       movq    16(%rsp),%rdi
+       movq    24(%rsp),%rsi
+       movq    32(%rsp),%rbp
+
+       xorq    %rdx,%rax
+       xorq    %rcx,%rdx
+       xorq    %rbx,%rax
+       movq    %rbx,0(%rbp)
+       xorq    %rdi,%rdx
+       movq    %rsi,24(%rbp)
+       xorq    %rsi,%rax
+       xorq    %rsi,%rdx
+       xorq    %rdx,%rax
+       movq    %rdx,16(%rbp)
+       movq    %rax,8(%rbp)
+
+       movq    80(%rsp),%r14
+       movq    88(%rsp),%r13
+       movq    96(%rsp),%r12
+       movq    104(%rsp),%rbp
+       movq    112(%rsp),%rbx
+       leaq    136(%rsp),%rsp
+       .byte   0xf3,0xc3
+L$end_mul_2x2:
+
+.byte  71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,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       4
diff --git a/deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont5.s b/deps/openssl/asm/x64-macosx-gas/bn/x86_64-mont5.s
new file mode 100644 (file)
index 0000000..f3bfb04
--- /dev/null
@@ -0,0 +1,785 @@
+.text
+
+
+.globl _bn_mul_mont_gather5
+
+.p2align       6
+_bn_mul_mont_gather5:
+       testl   $3,%r9d
+       jnz     L$mul_enter
+       cmpl    $8,%r9d
+       jb      L$mul_enter
+       jmp     L$mul4x_enter
+
+.p2align       4
+L$mul_enter:
+       movl    %r9d,%r9d
+       movl    8(%rsp),%r10d
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       movq    %rsp,%rax
+       leaq    2(%r9),%r11
+       negq    %r11
+       leaq    (%rsp,%r11,8),%rsp
+       andq    $-1024,%rsp
+
+       movq    %rax,8(%rsp,%r9,8)
+L$mul_body:
+       movq    %rdx,%r12
+       movq    %r10,%r11
+       shrq    $3,%r10
+       andq    $7,%r11
+       notq    %r10
+       leaq    L$magic_masks(%rip),%rax
+       andq    $3,%r10
+       leaq    96(%r12,%r11,8),%r12
+       movq    0(%rax,%r10,8),%xmm4
+       movq    8(%rax,%r10,8),%xmm5
+       movq    16(%rax,%r10,8),%xmm6
+       movq    24(%rax,%r10,8),%xmm7
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+.byte  102,72,15,126,195
+
+       movq    (%r8),%r8
+       movq    (%rsi),%rax
+
+       xorq    %r14,%r14
+       xorq    %r15,%r15
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       movq    %r8,%rbp
+       mulq    %rbx
+       movq    %rax,%r10
+       movq    (%rcx),%rax
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r13
+
+       leaq    1(%r15),%r15
+       jmp     L$1st_enter
+
+.p2align       4
+L$1st:
+       addq    %rax,%r13
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%r13
+       movq    %r10,%r11
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+L$1st_enter:
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       leaq    1(%r15),%r15
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       cmpq    %r9,%r15
+       jne     L$1st
+
+.byte  102,72,15,126,195
+
+       addq    %rax,%r13
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%r13
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+       movq    %r10,%r11
+
+       xorq    %rdx,%rdx
+       addq    %r11,%r13
+       adcq    $0,%rdx
+       movq    %r13,-8(%rsp,%r9,8)
+       movq    %rdx,(%rsp,%r9,8)
+
+       leaq    1(%r14),%r14
+       jmp     L$outer
+.p2align       4
+L$outer:
+       xorq    %r15,%r15
+       movq    %r8,%rbp
+       movq    (%rsp),%r10
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx),%rax
+       adcq    $0,%rdx
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    8(%rsp),%r10
+       movq    %rdx,%r13
+
+       leaq    1(%r15),%r15
+       jmp     L$inner_enter
+
+.p2align       4
+L$inner:
+       addq    %rax,%r13
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       movq    (%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+L$inner_enter:
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%r10
+       movq    %rdx,%r11
+       adcq    $0,%r11
+       leaq    1(%r15),%r15
+
+       mulq    %rbp
+       cmpq    %r9,%r15
+       jne     L$inner
+
+.byte  102,72,15,126,195
+
+       addq    %rax,%r13
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       movq    (%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %r13,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+       xorq    %rdx,%rdx
+       addq    %r11,%r13
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-8(%rsp,%r9,8)
+       movq    %rdx,(%rsp,%r9,8)
+
+       leaq    1(%r14),%r14
+       cmpq    %r9,%r14
+       jl      L$outer
+
+       xorq    %r14,%r14
+       movq    (%rsp),%rax
+       leaq    (%rsp),%rsi
+       movq    %r9,%r15
+       jmp     L$sub
+.p2align       4
+L$sub: sbbq    (%rcx,%r14,8),%rax
+       movq    %rax,(%rdi,%r14,8)
+       movq    8(%rsi,%r14,8),%rax
+       leaq    1(%r14),%r14
+       decq    %r15
+       jnz     L$sub
+
+       sbbq    $0,%rax
+       xorq    %r14,%r14
+       andq    %rax,%rsi
+       notq    %rax
+       movq    %rdi,%rcx
+       andq    %rax,%rcx
+       movq    %r9,%r15
+       orq     %rcx,%rsi
+.p2align       4
+L$copy:
+       movq    (%rsi,%r14,8),%rax
+       movq    %r14,(%rsp,%r14,8)
+       movq    %rax,(%rdi,%r14,8)
+       leaq    1(%r14),%r14
+       subq    $1,%r15
+       jnz     L$copy
+
+       movq    8(%rsp,%r9,8),%rsi
+       movq    $1,%rax
+       movq    (%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+L$mul_epilogue:
+       .byte   0xf3,0xc3
+
+
+.p2align       4
+bn_mul4x_mont_gather5:
+L$mul4x_enter:
+       movl    %r9d,%r9d
+       movl    8(%rsp),%r10d
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       movq    %rsp,%rax
+       leaq    4(%r9),%r11
+       negq    %r11
+       leaq    (%rsp,%r11,8),%rsp
+       andq    $-1024,%rsp
+
+       movq    %rax,8(%rsp,%r9,8)
+L$mul4x_body:
+       movq    %rdi,16(%rsp,%r9,8)
+       movq    %rdx,%r12
+       movq    %r10,%r11
+       shrq    $3,%r10
+       andq    $7,%r11
+       notq    %r10
+       leaq    L$magic_masks(%rip),%rax
+       andq    $3,%r10
+       leaq    96(%r12,%r11,8),%r12
+       movq    0(%rax,%r10,8),%xmm4
+       movq    8(%rax,%r10,8),%xmm5
+       movq    16(%rax,%r10,8),%xmm6
+       movq    24(%rax,%r10,8),%xmm7
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+.byte  102,72,15,126,195
+       movq    (%r8),%r8
+       movq    (%rsi),%rax
+
+       xorq    %r14,%r14
+       xorq    %r15,%r15
+
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       movq    %r8,%rbp
+       mulq    %rbx
+       movq    %rax,%r10
+       movq    (%rcx),%rax
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    16(%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       leaq    4(%r15),%r15
+       adcq    $0,%rdx
+       movq    %rdi,(%rsp)
+       movq    %rdx,%r13
+       jmp     L$1st4x
+.p2align       4
+L$1st4x:
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %rdi,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-8(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       leaq    4(%r15),%r15
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    -16(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %rdi,-32(%rsp,%r15,8)
+       movq    %rdx,%r13
+       cmpq    %r9,%r15
+       jl      L$1st4x
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %rdi,-16(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+.byte  102,72,15,126,195
+
+       xorq    %rdi,%rdi
+       addq    %r10,%r13
+       adcq    $0,%rdi
+       movq    %r13,-8(%rsp,%r15,8)
+       movq    %rdi,(%rsp,%r15,8)
+
+       leaq    1(%r14),%r14
+.p2align       2
+L$outer4x:
+       xorq    %r15,%r15
+       movq    -96(%r12),%xmm0
+       movq    -32(%r12),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%r12),%xmm2
+       pand    %xmm5,%xmm1
+
+       movq    (%rsp),%r10
+       movq    %r8,%rbp
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx),%rax
+       adcq    $0,%rdx
+
+       movq    96(%r12),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+
+       imulq   %r10,%rbp
+       movq    %rdx,%r11
+
+       por     %xmm2,%xmm0
+       leaq    256(%r12),%r12
+       por     %xmm3,%xmm0
+
+       mulq    %rbp
+       addq    %rax,%r10
+       movq    8(%rsi),%rax
+       adcq    $0,%rdx
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx),%rax
+       adcq    $0,%rdx
+       addq    8(%rsp),%r11
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    16(%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       leaq    4(%r15),%r15
+       adcq    $0,%rdx
+       movq    %rdx,%r13
+       jmp     L$inner4x
+.p2align       4
+L$inner4x:
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -16(%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %rdi,-32(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -8(%rsp,%r15,8),%r11
+       adcq    $0,%rdx
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    (%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    (%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %rdi,-16(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    8(%rsp,%r15,8),%r11
+       adcq    $0,%rdx
+       leaq    4(%r15),%r15
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    -16(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %r13,-40(%rsp,%r15,8)
+       movq    %rdx,%r13
+       cmpq    %r9,%r15
+       jl      L$inner4x
+
+       mulq    %rbx
+       addq    %rax,%r10
+       movq    -16(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -16(%rsp,%r15,8),%r10
+       adcq    $0,%rdx
+       movq    %rdx,%r11
+
+       mulq    %rbp
+       addq    %rax,%r13
+       movq    -8(%rsi,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    %r10,%r13
+       adcq    $0,%rdx
+       movq    %rdi,-32(%rsp,%r15,8)
+       movq    %rdx,%rdi
+
+       mulq    %rbx
+       addq    %rax,%r11
+       movq    -8(%rcx,%r15,8),%rax
+       adcq    $0,%rdx
+       addq    -8(%rsp,%r15,8),%r11
+       adcq    $0,%rdx
+       leaq    1(%r14),%r14
+       movq    %rdx,%r10
+
+       mulq    %rbp
+       addq    %rax,%rdi
+       movq    (%rsi),%rax
+       adcq    $0,%rdx
+       addq    %r11,%rdi
+       adcq    $0,%rdx
+       movq    %r13,-24(%rsp,%r15,8)
+       movq    %rdx,%r13
+
+.byte  102,72,15,126,195
+       movq    %rdi,-16(%rsp,%r15,8)
+
+       xorq    %rdi,%rdi
+       addq    %r10,%r13
+       adcq    $0,%rdi
+       addq    (%rsp,%r9,8),%r13
+       adcq    $0,%rdi
+       movq    %r13,-8(%rsp,%r15,8)
+       movq    %rdi,(%rsp,%r15,8)
+
+       cmpq    %r9,%r14
+       jl      L$outer4x
+       movq    16(%rsp,%r9,8),%rdi
+       movq    0(%rsp),%rax
+       pxor    %xmm0,%xmm0
+       movq    8(%rsp),%rdx
+       shrq    $2,%r9
+       leaq    (%rsp),%rsi
+       xorq    %r14,%r14
+
+       subq    0(%rcx),%rax
+       movq    16(%rsi),%rbx
+       movq    24(%rsi),%rbp
+       sbbq    8(%rcx),%rdx
+       leaq    -1(%r9),%r15
+       jmp     L$sub4x
+.p2align       4
+L$sub4x:
+       movq    %rax,0(%rdi,%r14,8)
+       movq    %rdx,8(%rdi,%r14,8)
+       sbbq    16(%rcx,%r14,8),%rbx
+       movq    32(%rsi,%r14,8),%rax
+       movq    40(%rsi,%r14,8),%rdx
+       sbbq    24(%rcx,%r14,8),%rbp
+       movq    %rbx,16(%rdi,%r14,8)
+       movq    %rbp,24(%rdi,%r14,8)
+       sbbq    32(%rcx,%r14,8),%rax
+       movq    48(%rsi,%r14,8),%rbx
+       movq    56(%rsi,%r14,8),%rbp
+       sbbq    40(%rcx,%r14,8),%rdx
+       leaq    4(%r14),%r14
+       decq    %r15
+       jnz     L$sub4x
+
+       movq    %rax,0(%rdi,%r14,8)
+       movq    32(%rsi,%r14,8),%rax
+       sbbq    16(%rcx,%r14,8),%rbx
+       movq    %rdx,8(%rdi,%r14,8)
+       sbbq    24(%rcx,%r14,8),%rbp
+       movq    %rbx,16(%rdi,%r14,8)
+
+       sbbq    $0,%rax
+       movq    %rbp,24(%rdi,%r14,8)
+       xorq    %r14,%r14
+       andq    %rax,%rsi
+       notq    %rax
+       movq    %rdi,%rcx
+       andq    %rax,%rcx
+       leaq    -1(%r9),%r15
+       orq     %rcx,%rsi
+
+       movdqu  (%rsi),%xmm1
+       movdqa  %xmm0,(%rsp)
+       movdqu  %xmm1,(%rdi)
+       jmp     L$copy4x
+.p2align       4
+L$copy4x:
+       movdqu  16(%rsi,%r14,1),%xmm2
+       movdqu  32(%rsi,%r14,1),%xmm1
+       movdqa  %xmm0,16(%rsp,%r14,1)
+       movdqu  %xmm2,16(%rdi,%r14,1)
+       movdqa  %xmm0,32(%rsp,%r14,1)
+       movdqu  %xmm1,32(%rdi,%r14,1)
+       leaq    32(%r14),%r14
+       decq    %r15
+       jnz     L$copy4x
+
+       shlq    $2,%r9
+       movdqu  16(%rsi,%r14,1),%xmm2
+       movdqa  %xmm0,16(%rsp,%r14,1)
+       movdqu  %xmm2,16(%rdi,%r14,1)
+       movq    8(%rsp,%r9,8),%rsi
+       movq    $1,%rax
+       movq    (%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+L$mul4x_epilogue:
+       .byte   0xf3,0xc3
+
+.globl _bn_scatter5
+
+.p2align       4
+_bn_scatter5:
+       cmpq    $0,%rsi
+       jz      L$scatter_epilogue
+       leaq    (%rdx,%rcx,8),%rdx
+L$scatter:
+       movq    (%rdi),%rax
+       leaq    8(%rdi),%rdi
+       movq    %rax,(%rdx)
+       leaq    256(%rdx),%rdx
+       subq    $1,%rsi
+       jnz     L$scatter
+L$scatter_epilogue:
+       .byte   0xf3,0xc3
+
+
+.globl _bn_gather5
+
+.p2align       4
+_bn_gather5:
+       movq    %rcx,%r11
+       shrq    $3,%rcx
+       andq    $7,%r11
+       notq    %rcx
+       leaq    L$magic_masks(%rip),%rax
+       andq    $3,%rcx
+       leaq    96(%rdx,%r11,8),%rdx
+       movq    0(%rax,%rcx,8),%xmm4
+       movq    8(%rax,%rcx,8),%xmm5
+       movq    16(%rax,%rcx,8),%xmm6
+       movq    24(%rax,%rcx,8),%xmm7
+       jmp     L$gather
+.p2align       4
+L$gather:
+       movq    -96(%rdx),%xmm0
+       movq    -32(%rdx),%xmm1
+       pand    %xmm4,%xmm0
+       movq    32(%rdx),%xmm2
+       pand    %xmm5,%xmm1
+       movq    96(%rdx),%xmm3
+       pand    %xmm6,%xmm2
+       por     %xmm1,%xmm0
+       pand    %xmm7,%xmm3
+       por     %xmm2,%xmm0
+       leaq    256(%rdx),%rdx
+       por     %xmm3,%xmm0
+
+       movq    %xmm0,(%rdi)
+       leaq    8(%rdi),%rdi
+       subq    $1,%rsi
+       jnz     L$gather
+       .byte   0xf3,0xc3
+L$SEH_end_bn_gather5:
+
+.p2align       6
+L$magic_masks:
+.long  0,0, 0,0, 0,0, -1,-1
+.long  0,0, 0,0, 0,0,  0,0
+.byte  77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,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
diff --git a/deps/openssl/asm/x64-macosx-gas/modes/ghash-x86_64.s b/deps/openssl/asm/x64-macosx-gas/modes/ghash-x86_64.s
new file mode 100644 (file)
index 0000000..189f17f
--- /dev/null
@@ -0,0 +1,1027 @@
+.text
+
+
+.globl _gcm_gmult_4bit
+
+.p2align       4
+_gcm_gmult_4bit:
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+L$gmult_prologue:
+
+       movzbq  15(%rdi),%r8
+       leaq    L$rem_4bit(%rip),%r11
+       xorq    %rax,%rax
+       xorq    %rbx,%rbx
+       movb    %r8b,%al
+       movb    %r8b,%bl
+       shlb    $4,%al
+       movq    $14,%rcx
+       movq    8(%rsi,%rax,1),%r8
+       movq    (%rsi,%rax,1),%r9
+       andb    $240,%bl
+       movq    %r8,%rdx
+       jmp     L$oop1
+
+.p2align       4
+L$oop1:
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       movb    (%rdi,%rcx,1),%al
+       shrq    $4,%r9
+       xorq    8(%rsi,%rbx,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rbx,1),%r9
+       movb    %al,%bl
+       xorq    (%r11,%rdx,8),%r9
+       movq    %r8,%rdx
+       shlb    $4,%al
+       xorq    %r10,%r8
+       decq    %rcx
+       js      L$break1
+
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       xorq    8(%rsi,%rax,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rax,1),%r9
+       andb    $240,%bl
+       xorq    (%r11,%rdx,8),%r9
+       movq    %r8,%rdx
+       xorq    %r10,%r8
+       jmp     L$oop1
+
+.p2align       4
+L$break1:
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       xorq    8(%rsi,%rax,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rax,1),%r9
+       andb    $240,%bl
+       xorq    (%r11,%rdx,8),%r9
+       movq    %r8,%rdx
+       xorq    %r10,%r8
+
+       shrq    $4,%r8
+       andq    $15,%rdx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       xorq    8(%rsi,%rbx,1),%r8
+       shlq    $60,%r10
+       xorq    (%rsi,%rbx,1),%r9
+       xorq    %r10,%r8
+       xorq    (%r11,%rdx,8),%r9
+
+       bswapq  %r8
+       bswapq  %r9
+       movq    %r8,8(%rdi)
+       movq    %r9,(%rdi)
+
+       movq    16(%rsp),%rbx
+       leaq    24(%rsp),%rsp
+L$gmult_epilogue:
+       .byte   0xf3,0xc3
+
+.globl _gcm_ghash_4bit
+
+.p2align       4
+_gcm_ghash_4bit:
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       subq    $280,%rsp
+L$ghash_prologue:
+       movq    %rdx,%r14
+       movq    %rcx,%r15
+       subq    $-128,%rsi
+       leaq    16+128(%rsp),%rbp
+       xorl    %edx,%edx
+       movq    0+0-128(%rsi),%r8
+       movq    0+8-128(%rsi),%rax
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    16+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    16+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,0(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,0(%rbp)
+       movq    32+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,0-128(%rbp)
+       movq    32+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,1(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,8(%rbp)
+       movq    48+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,8-128(%rbp)
+       movq    48+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,2(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,16(%rbp)
+       movq    64+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,16-128(%rbp)
+       movq    64+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,3(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,24(%rbp)
+       movq    80+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,24-128(%rbp)
+       movq    80+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,4(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,32(%rbp)
+       movq    96+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,32-128(%rbp)
+       movq    96+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,5(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,40(%rbp)
+       movq    112+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,40-128(%rbp)
+       movq    112+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,6(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,48(%rbp)
+       movq    128+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,48-128(%rbp)
+       movq    128+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,7(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,56(%rbp)
+       movq    144+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,56-128(%rbp)
+       movq    144+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,8(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,64(%rbp)
+       movq    160+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,64-128(%rbp)
+       movq    160+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,9(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,72(%rbp)
+       movq    176+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,72-128(%rbp)
+       movq    176+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,10(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,80(%rbp)
+       movq    192+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,80-128(%rbp)
+       movq    192+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,11(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,88(%rbp)
+       movq    208+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,88-128(%rbp)
+       movq    208+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,12(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,96(%rbp)
+       movq    224+0-128(%rsi),%r8
+       shlb    $4,%dl
+       movq    %rax,96-128(%rbp)
+       movq    224+8-128(%rsi),%rax
+       shlq    $60,%r10
+       movb    %dl,13(%rsp)
+       orq     %r10,%rbx
+       movb    %al,%dl
+       shrq    $4,%rax
+       movq    %r8,%r10
+       shrq    $4,%r8
+       movq    %r9,104(%rbp)
+       movq    240+0-128(%rsi),%r9
+       shlb    $4,%dl
+       movq    %rbx,104-128(%rbp)
+       movq    240+8-128(%rsi),%rbx
+       shlq    $60,%r10
+       movb    %dl,14(%rsp)
+       orq     %r10,%rax
+       movb    %bl,%dl
+       shrq    $4,%rbx
+       movq    %r9,%r10
+       shrq    $4,%r9
+       movq    %r8,112(%rbp)
+       shlb    $4,%dl
+       movq    %rax,112-128(%rbp)
+       shlq    $60,%r10
+       movb    %dl,15(%rsp)
+       orq     %r10,%rbx
+       movq    %r9,120(%rbp)
+       movq    %rbx,120-128(%rbp)
+       addq    $-128,%rsi
+       movq    8(%rdi),%r8
+       movq    0(%rdi),%r9
+       addq    %r14,%r15
+       leaq    L$rem_8bit(%rip),%r11
+       jmp     L$outer_loop
+.p2align       4
+L$outer_loop:
+       xorq    (%r14),%r9
+       movq    8(%r14),%rdx
+       leaq    16(%r14),%r14
+       xorq    %r8,%rdx
+       movq    %r9,(%rdi)
+       movq    %rdx,8(%rdi)
+       shrq    $32,%rdx
+       xorq    %rax,%rax
+       roll    $8,%edx
+       movb    %dl,%al
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       shrl    $4,%ebx
+       roll    $8,%edx
+       movq    8(%rsi,%rax,1),%r8
+       movq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    8(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    4(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    0(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       shrl    $4,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r12,2),%r12
+       movzbl  %dl,%ebx
+       shlb    $4,%al
+       movzbq  (%rsp,%rcx,1),%r13
+       shrl    $4,%ebx
+       shlq    $48,%r12
+       xorq    %r8,%r13
+       movq    %r9,%r10
+       xorq    %r12,%r9
+       shrq    $8,%r8
+       movzbq  %r13b,%r13
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rcx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rcx,8),%r9
+       roll    $8,%edx
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       movb    %dl,%al
+       xorq    %r10,%r8
+       movzwq  (%r11,%r13,2),%r13
+       movzbl  %dl,%ecx
+       shlb    $4,%al
+       movzbq  (%rsp,%rbx,1),%r12
+       andl    $240,%ecx
+       shlq    $48,%r13
+       xorq    %r8,%r12
+       movq    %r9,%r10
+       xorq    %r13,%r9
+       shrq    $8,%r8
+       movzbq  %r12b,%r12
+       movl    -4(%rdi),%edx
+       shrq    $8,%r9
+       xorq    -128(%rbp,%rbx,8),%r8
+       shlq    $56,%r10
+       xorq    (%rbp,%rbx,8),%r9
+       movzwq  (%r11,%r12,2),%r12
+       xorq    8(%rsi,%rax,1),%r8
+       xorq    (%rsi,%rax,1),%r9
+       shlq    $48,%r12
+       xorq    %r10,%r8
+       xorq    %r12,%r9
+       movzbq  %r8b,%r13
+       shrq    $4,%r8
+       movq    %r9,%r10
+       shlb    $4,%r13b
+       shrq    $4,%r9
+       xorq    8(%rsi,%rcx,1),%r8
+       movzwq  (%r11,%r13,2),%r13
+       shlq    $60,%r10
+       xorq    (%rsi,%rcx,1),%r9
+       xorq    %r10,%r8
+       shlq    $48,%r13
+       bswapq  %r8
+       xorq    %r13,%r9
+       bswapq  %r9
+       cmpq    %r15,%r14
+       jb      L$outer_loop
+       movq    %r8,8(%rdi)
+       movq    %r9,(%rdi)
+
+       leaq    280(%rsp),%rsi
+       movq    0(%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+L$ghash_epilogue:
+       .byte   0xf3,0xc3
+
+.globl _gcm_init_clmul
+
+.p2align       4
+_gcm_init_clmul:
+       movdqu  (%rsi),%xmm2
+       pshufd  $78,%xmm2,%xmm2
+
+
+       pshufd  $255,%xmm2,%xmm4
+       movdqa  %xmm2,%xmm3
+       psllq   $1,%xmm2
+       pxor    %xmm5,%xmm5
+       psrlq   $63,%xmm3
+       pcmpgtd %xmm4,%xmm5
+       pslldq  $8,%xmm3
+       por     %xmm3,%xmm2
+
+
+       pand    L$0x1c2_polynomial(%rip),%xmm5
+       pxor    %xmm5,%xmm2
+
+
+       movdqa  %xmm2,%xmm0
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,194,0
+.byte  102,15,58,68,202,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       movdqu  %xmm2,(%rdi)
+       movdqu  %xmm0,16(%rdi)
+       .byte   0xf3,0xc3
+
+.globl _gcm_gmult_clmul
+
+.p2align       4
+_gcm_gmult_clmul:
+       movdqu  (%rdi),%xmm0
+       movdqa  L$bswap_mask(%rip),%xmm5
+       movdqu  (%rsi),%xmm2
+.byte  102,15,56,0,197
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,194,0
+.byte  102,15,58,68,202,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,197
+       movdqu  %xmm0,(%rdi)
+       .byte   0xf3,0xc3
+
+.globl _gcm_ghash_clmul
+
+.p2align       4
+_gcm_ghash_clmul:
+       movdqa  L$bswap_mask(%rip),%xmm5
+
+       movdqu  (%rdi),%xmm0
+       movdqu  (%rsi),%xmm2
+.byte  102,15,56,0,197
+
+       subq    $16,%rcx
+       jz      L$odd_tail
+
+       movdqu  16(%rsi),%xmm8
+
+
+
+
+
+       movdqu  (%rdx),%xmm3
+       movdqu  16(%rdx),%xmm6
+.byte  102,15,56,0,221
+.byte  102,15,56,0,245
+       pxor    %xmm3,%xmm0
+       movdqa  %xmm6,%xmm7
+       pshufd  $78,%xmm6,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm6,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,242,0
+.byte  102,15,58,68,250,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm6,%xmm3
+       pxor    %xmm7,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm7
+       pxor    %xmm4,%xmm6
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm8,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm8,%xmm4
+
+       leaq    32(%rdx),%rdx
+       subq    $32,%rcx
+       jbe     L$even_tail
+
+L$mod_loop:
+.byte  102,65,15,58,68,192,0
+.byte  102,65,15,58,68,200,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+       movdqu  (%rdx),%xmm3
+       pxor    %xmm6,%xmm0
+       pxor    %xmm7,%xmm1
+
+       movdqu  16(%rdx),%xmm6
+.byte  102,15,56,0,221
+.byte  102,15,56,0,245
+
+       movdqa  %xmm6,%xmm7
+       pshufd  $78,%xmm6,%xmm9
+       pshufd  $78,%xmm2,%xmm10
+       pxor    %xmm6,%xmm9
+       pxor    %xmm2,%xmm10
+       pxor    %xmm3,%xmm1
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+.byte  102,15,58,68,242,0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+.byte  102,15,58,68,250,17
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+
+.byte  102,69,15,58,68,202,0
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm8,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm8,%xmm4
+
+       pxor    %xmm6,%xmm9
+       pxor    %xmm7,%xmm9
+       movdqa  %xmm9,%xmm10
+       psrldq  $8,%xmm9
+       pslldq  $8,%xmm10
+       pxor    %xmm9,%xmm7
+       pxor    %xmm10,%xmm6
+
+       leaq    32(%rdx),%rdx
+       subq    $32,%rcx
+       ja      L$mod_loop
+
+L$even_tail:
+.byte  102,65,15,58,68,192,0
+.byte  102,65,15,58,68,200,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+       pxor    %xmm6,%xmm0
+       pxor    %xmm7,%xmm1
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       testq   %rcx,%rcx
+       jnz     L$done
+
+L$odd_tail:
+       movdqu  (%rdx),%xmm3
+.byte  102,15,56,0,221
+       pxor    %xmm3,%xmm0
+       movdqa  %xmm0,%xmm1
+       pshufd  $78,%xmm0,%xmm3
+       pshufd  $78,%xmm2,%xmm4
+       pxor    %xmm0,%xmm3
+       pxor    %xmm2,%xmm4
+.byte  102,15,58,68,194,0
+.byte  102,15,58,68,202,17
+.byte  102,15,58,68,220,0
+       pxor    %xmm0,%xmm3
+       pxor    %xmm1,%xmm3
+
+       movdqa  %xmm3,%xmm4
+       psrldq  $8,%xmm3
+       pslldq  $8,%xmm4
+       pxor    %xmm3,%xmm1
+       pxor    %xmm4,%xmm0
+
+       movdqa  %xmm0,%xmm3
+       psllq   $1,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $5,%xmm0
+       pxor    %xmm3,%xmm0
+       psllq   $57,%xmm0
+       movdqa  %xmm0,%xmm4
+       pslldq  $8,%xmm0
+       psrldq  $8,%xmm4
+       pxor    %xmm3,%xmm0
+       pxor    %xmm4,%xmm1
+
+
+       movdqa  %xmm0,%xmm4
+       psrlq   $5,%xmm0
+       pxor    %xmm4,%xmm0
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+       pxor    %xmm1,%xmm4
+       psrlq   $1,%xmm0
+       pxor    %xmm4,%xmm0
+L$done:
+.byte  102,15,56,0,197
+       movdqu  %xmm0,(%rdi)
+       .byte   0xf3,0xc3
+L$SEH_end_gcm_ghash_clmul:
+
+.p2align       6
+L$bswap_mask:
+.byte  15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
+L$0x1c2_polynomial:
+.byte  1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
+.p2align       6
+
+L$rem_4bit:
+.long  0,0,0,471859200,0,943718400,0,610271232
+.long  0,1887436800,0,1822425088,0,1220542464,0,1423966208
+.long  0,3774873600,0,4246732800,0,3644850176,0,3311403008
+.long  0,2441084928,0,2376073216,0,2847932416,0,3051356160
+
+L$rem_8bit:
+.value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
+.value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
+.value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
+.value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
+.value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
+.value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
+.value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
+.value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
+.value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
+.value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
+.value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
+.value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
+.value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
+.value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
+.value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
+.value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
+.value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
+.value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
+.value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
+.value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
+.value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
+.value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
+.value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
+.value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
+.value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
+.value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
+.value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
+.value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
+.value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
+.value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
+.value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
+.value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
+
+.byte  71,72,65,83,72,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
diff --git a/deps/openssl/asm/x64-macosx-gas/sha/sha256-x86_64.s b/deps/openssl/asm/x64-macosx-gas/sha/sha256-x86_64.s
new file mode 100644 (file)
index 0000000..dda5a96
--- /dev/null
@@ -0,0 +1,1779 @@
+.text
+
+
+.globl _sha256_block_data_order
+
+.p2align       4
+_sha256_block_data_order:
+       pushq   %rbx
+       pushq   %rbp
+       pushq   %r12
+       pushq   %r13
+       pushq   %r14
+       pushq   %r15
+       movq    %rsp,%r11
+       shlq    $4,%rdx
+       subq    $64+32,%rsp
+       leaq    (%rsi,%rdx,4),%rdx
+       andq    $-64,%rsp
+       movq    %rdi,64+0(%rsp)
+       movq    %rsi,64+8(%rsp)
+       movq    %rdx,64+16(%rsp)
+       movq    %r11,64+24(%rsp)
+L$prologue:
+
+       leaq    K256(%rip),%rbp
+
+       movl    0(%rdi),%eax
+       movl    4(%rdi),%ebx
+       movl    8(%rdi),%ecx
+       movl    12(%rdi),%edx
+       movl    16(%rdi),%r8d
+       movl    20(%rdi),%r9d
+       movl    24(%rdi),%r10d
+       movl    28(%rdi),%r11d
+       jmp     L$loop
+
+.p2align       4
+L$loop:
+       xorq    %rdi,%rdi
+       movl    0(%rsi),%r12d
+       movl    %r8d,%r13d
+       movl    %eax,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,0(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    4(%rsi),%r12d
+       movl    %edx,%r13d
+       movl    %r11d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,4(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    8(%rsi),%r12d
+       movl    %ecx,%r13d
+       movl    %r10d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,8(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    12(%rsi),%r12d
+       movl    %ebx,%r13d
+       movl    %r9d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,12(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    16(%rsi),%r12d
+       movl    %eax,%r13d
+       movl    %r8d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,16(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    20(%rsi),%r12d
+       movl    %r11d,%r13d
+       movl    %edx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,20(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    24(%rsi),%r12d
+       movl    %r10d,%r13d
+       movl    %ecx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,24(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    28(%rsi),%r12d
+       movl    %r9d,%r13d
+       movl    %ebx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,28(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       movl    32(%rsi),%r12d
+       movl    %r8d,%r13d
+       movl    %eax,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,32(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    36(%rsi),%r12d
+       movl    %edx,%r13d
+       movl    %r11d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,36(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    40(%rsi),%r12d
+       movl    %ecx,%r13d
+       movl    %r10d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,40(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    44(%rsi),%r12d
+       movl    %ebx,%r13d
+       movl    %r9d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,44(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    48(%rsi),%r12d
+       movl    %eax,%r13d
+       movl    %r8d,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,48(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    52(%rsi),%r12d
+       movl    %r11d,%r13d
+       movl    %edx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,52(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    56(%rsi),%r12d
+       movl    %r10d,%r13d
+       movl    %ecx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,56(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    60(%rsi),%r12d
+       movl    %r9d,%r13d
+       movl    %ebx,%r14d
+       bswapl  %r12d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,60(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       jmp     L$rounds_16_xx
+.p2align       4
+L$rounds_16_xx:
+       movl    4(%rsp),%r13d
+       movl    56(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    36(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    0(%rsp),%r12d
+       movl    %r8d,%r13d
+       addl    %r14d,%r12d
+       movl    %eax,%r14d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,0(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    8(%rsp),%r13d
+       movl    60(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    40(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    4(%rsp),%r12d
+       movl    %edx,%r13d
+       addl    %r14d,%r12d
+       movl    %r11d,%r14d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,4(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    12(%rsp),%r13d
+       movl    0(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    44(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    8(%rsp),%r12d
+       movl    %ecx,%r13d
+       addl    %r14d,%r12d
+       movl    %r10d,%r14d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,8(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    16(%rsp),%r13d
+       movl    4(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    48(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    12(%rsp),%r12d
+       movl    %ebx,%r13d
+       addl    %r14d,%r12d
+       movl    %r9d,%r14d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,12(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    20(%rsp),%r13d
+       movl    8(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    52(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    16(%rsp),%r12d
+       movl    %eax,%r13d
+       addl    %r14d,%r12d
+       movl    %r8d,%r14d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,16(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    24(%rsp),%r13d
+       movl    12(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    56(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    20(%rsp),%r12d
+       movl    %r11d,%r13d
+       addl    %r14d,%r12d
+       movl    %edx,%r14d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,20(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    28(%rsp),%r13d
+       movl    16(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    60(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    24(%rsp),%r12d
+       movl    %r10d,%r13d
+       addl    %r14d,%r12d
+       movl    %ecx,%r14d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,24(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    32(%rsp),%r13d
+       movl    20(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    0(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    28(%rsp),%r12d
+       movl    %r9d,%r13d
+       addl    %r14d,%r12d
+       movl    %ebx,%r14d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,28(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       movl    36(%rsp),%r13d
+       movl    24(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    4(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    32(%rsp),%r12d
+       movl    %r8d,%r13d
+       addl    %r14d,%r12d
+       movl    %eax,%r14d
+       rorl    $14,%r13d
+       movl    %r9d,%r15d
+       movl    %r12d,32(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r11d,%r12d
+       xorl    %eax,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r8d,%r15d
+       movl    %ebx,%r11d
+
+       rorl    $11,%r14d
+       xorl    %r8d,%r13d
+       xorl    %r10d,%r15d
+
+       xorl    %ecx,%r11d
+       xorl    %eax,%r14d
+       addl    %r15d,%r12d
+       movl    %ebx,%r15d
+
+       rorl    $6,%r13d
+       andl    %eax,%r11d
+       andl    %ecx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r11d
+
+       addl    %r12d,%edx
+       addl    %r12d,%r11d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r11d
+
+       movl    40(%rsp),%r13d
+       movl    28(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    8(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    36(%rsp),%r12d
+       movl    %edx,%r13d
+       addl    %r14d,%r12d
+       movl    %r11d,%r14d
+       rorl    $14,%r13d
+       movl    %r8d,%r15d
+       movl    %r12d,36(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r10d,%r12d
+       xorl    %r11d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %edx,%r15d
+       movl    %eax,%r10d
+
+       rorl    $11,%r14d
+       xorl    %edx,%r13d
+       xorl    %r9d,%r15d
+
+       xorl    %ebx,%r10d
+       xorl    %r11d,%r14d
+       addl    %r15d,%r12d
+       movl    %eax,%r15d
+
+       rorl    $6,%r13d
+       andl    %r11d,%r10d
+       andl    %ebx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r10d
+
+       addl    %r12d,%ecx
+       addl    %r12d,%r10d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r10d
+
+       movl    44(%rsp),%r13d
+       movl    32(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    12(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    40(%rsp),%r12d
+       movl    %ecx,%r13d
+       addl    %r14d,%r12d
+       movl    %r10d,%r14d
+       rorl    $14,%r13d
+       movl    %edx,%r15d
+       movl    %r12d,40(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       rorl    $5,%r13d
+       addl    %r9d,%r12d
+       xorl    %r10d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ecx,%r15d
+       movl    %r11d,%r9d
+
+       rorl    $11,%r14d
+       xorl    %ecx,%r13d
+       xorl    %r8d,%r15d
+
+       xorl    %eax,%r9d
+       xorl    %r10d,%r14d
+       addl    %r15d,%r12d
+       movl    %r11d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r10d,%r9d
+       andl    %eax,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r9d
+
+       addl    %r12d,%ebx
+       addl    %r12d,%r9d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r9d
+
+       movl    48(%rsp),%r13d
+       movl    36(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    16(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    44(%rsp),%r12d
+       movl    %ebx,%r13d
+       addl    %r14d,%r12d
+       movl    %r9d,%r14d
+       rorl    $14,%r13d
+       movl    %ecx,%r15d
+       movl    %r12d,44(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       rorl    $5,%r13d
+       addl    %r8d,%r12d
+       xorl    %r9d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %ebx,%r15d
+       movl    %r10d,%r8d
+
+       rorl    $11,%r14d
+       xorl    %ebx,%r13d
+       xorl    %edx,%r15d
+
+       xorl    %r11d,%r8d
+       xorl    %r9d,%r14d
+       addl    %r15d,%r12d
+       movl    %r10d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r9d,%r8d
+       andl    %r11d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%r8d
+
+       addl    %r12d,%eax
+       addl    %r12d,%r8d
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%r8d
+
+       movl    52(%rsp),%r13d
+       movl    40(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    20(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    48(%rsp),%r12d
+       movl    %eax,%r13d
+       addl    %r14d,%r12d
+       movl    %r8d,%r14d
+       rorl    $14,%r13d
+       movl    %ebx,%r15d
+       movl    %r12d,48(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       rorl    $5,%r13d
+       addl    %edx,%r12d
+       xorl    %r8d,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %eax,%r15d
+       movl    %r9d,%edx
+
+       rorl    $11,%r14d
+       xorl    %eax,%r13d
+       xorl    %ecx,%r15d
+
+       xorl    %r10d,%edx
+       xorl    %r8d,%r14d
+       addl    %r15d,%r12d
+       movl    %r9d,%r15d
+
+       rorl    $6,%r13d
+       andl    %r8d,%edx
+       andl    %r10d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%edx
+
+       addl    %r12d,%r11d
+       addl    %r12d,%edx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%edx
+
+       movl    56(%rsp),%r13d
+       movl    44(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    24(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    52(%rsp),%r12d
+       movl    %r11d,%r13d
+       addl    %r14d,%r12d
+       movl    %edx,%r14d
+       rorl    $14,%r13d
+       movl    %eax,%r15d
+       movl    %r12d,52(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       rorl    $5,%r13d
+       addl    %ecx,%r12d
+       xorl    %edx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r11d,%r15d
+       movl    %r8d,%ecx
+
+       rorl    $11,%r14d
+       xorl    %r11d,%r13d
+       xorl    %ebx,%r15d
+
+       xorl    %r9d,%ecx
+       xorl    %edx,%r14d
+       addl    %r15d,%r12d
+       movl    %r8d,%r15d
+
+       rorl    $6,%r13d
+       andl    %edx,%ecx
+       andl    %r9d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ecx
+
+       addl    %r12d,%r10d
+       addl    %r12d,%ecx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ecx
+
+       movl    60(%rsp),%r13d
+       movl    48(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    28(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    56(%rsp),%r12d
+       movl    %r10d,%r13d
+       addl    %r14d,%r12d
+       movl    %ecx,%r14d
+       rorl    $14,%r13d
+       movl    %r11d,%r15d
+       movl    %r12d,56(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       rorl    $5,%r13d
+       addl    %ebx,%r12d
+       xorl    %ecx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r10d,%r15d
+       movl    %edx,%ebx
+
+       rorl    $11,%r14d
+       xorl    %r10d,%r13d
+       xorl    %eax,%r15d
+
+       xorl    %r8d,%ebx
+       xorl    %ecx,%r14d
+       addl    %r15d,%r12d
+       movl    %edx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ecx,%ebx
+       andl    %r8d,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%ebx
+
+       addl    %r12d,%r9d
+       addl    %r12d,%ebx
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%ebx
+
+       movl    0(%rsp),%r13d
+       movl    52(%rsp),%r14d
+       movl    %r13d,%r12d
+       movl    %r14d,%r15d
+
+       rorl    $11,%r12d
+       xorl    %r13d,%r12d
+       shrl    $3,%r13d
+
+       rorl    $7,%r12d
+       xorl    %r12d,%r13d
+       movl    32(%rsp),%r12d
+
+       rorl    $2,%r15d
+       xorl    %r14d,%r15d
+       shrl    $10,%r14d
+
+       rorl    $17,%r15d
+       addl    %r13d,%r12d
+       xorl    %r15d,%r14d
+
+       addl    60(%rsp),%r12d
+       movl    %r9d,%r13d
+       addl    %r14d,%r12d
+       movl    %ebx,%r14d
+       rorl    $14,%r13d
+       movl    %r10d,%r15d
+       movl    %r12d,60(%rsp)
+
+       rorl    $9,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       rorl    $5,%r13d
+       addl    %eax,%r12d
+       xorl    %ebx,%r14d
+
+       addl    (%rbp,%rdi,4),%r12d
+       andl    %r9d,%r15d
+       movl    %ecx,%eax
+
+       rorl    $11,%r14d
+       xorl    %r9d,%r13d
+       xorl    %r11d,%r15d
+
+       xorl    %edx,%eax
+       xorl    %ebx,%r14d
+       addl    %r15d,%r12d
+       movl    %ecx,%r15d
+
+       rorl    $6,%r13d
+       andl    %ebx,%eax
+       andl    %edx,%r15d
+
+       rorl    $2,%r14d
+       addl    %r13d,%r12d
+       addl    %r15d,%eax
+
+       addl    %r12d,%r8d
+       addl    %r12d,%eax
+       leaq    1(%rdi),%rdi
+       addl    %r14d,%eax
+
+       cmpq    $64,%rdi
+       jb      L$rounds_16_xx
+
+       movq    64+0(%rsp),%rdi
+       leaq    64(%rsi),%rsi
+
+       addl    0(%rdi),%eax
+       addl    4(%rdi),%ebx
+       addl    8(%rdi),%ecx
+       addl    12(%rdi),%edx
+       addl    16(%rdi),%r8d
+       addl    20(%rdi),%r9d
+       addl    24(%rdi),%r10d
+       addl    28(%rdi),%r11d
+
+       cmpq    64+16(%rsp),%rsi
+
+       movl    %eax,0(%rdi)
+       movl    %ebx,4(%rdi)
+       movl    %ecx,8(%rdi)
+       movl    %edx,12(%rdi)
+       movl    %r8d,16(%rdi)
+       movl    %r9d,20(%rdi)
+       movl    %r10d,24(%rdi)
+       movl    %r11d,28(%rdi)
+       jb      L$loop
+
+       movq    64+24(%rsp),%rsi
+       movq    (%rsi),%r15
+       movq    8(%rsi),%r14
+       movq    16(%rsi),%r13
+       movq    24(%rsi),%r12
+       movq    32(%rsi),%rbp
+       movq    40(%rsi),%rbx
+       leaq    48(%rsi),%rsp
+L$epilogue:
+       .byte   0xf3,0xc3
+
+.p2align       6
+
+K256:
+.long  0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+.long  0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+.long  0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+.long  0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+.long  0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+.long  0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+.long  0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+.long  0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+.long  0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+.long  0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+.long  0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+.long  0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+.long  0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+.long  0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+.long  0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+.long  0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
index dda5a96..b5882ea 100644 (file)
@@ -1,10 +1,10 @@
 .text
 
 
-.globl _sha256_block_data_order
+.globl _sha512_block_data_order
 
 .p2align       4
-_sha256_block_data_order:
+_sha512_block_data_order:
        pushq   %rbx
        pushq   %rbp
        pushq   %r12
@@ -13,1741 +13,1741 @@ _sha256_block_data_order:
        pushq   %r15
        movq    %rsp,%r11
        shlq    $4,%rdx
-       subq    $64+32,%rsp
-       leaq    (%rsi,%rdx,4),%rdx
+       subq    $128+32,%rsp
+       leaq    (%rsi,%rdx,8),%rdx
        andq    $-64,%rsp
-       movq    %rdi,64+0(%rsp)
-       movq    %rsi,64+8(%rsp)
-       movq    %rdx,64+16(%rsp)
-       movq    %r11,64+24(%rsp)
+       movq    %rdi,128+0(%rsp)
+       movq    %rsi,128+8(%rsp)
+       movq    %rdx,128+16(%rsp)
+       movq    %r11,128+24(%rsp)
 L$prologue:
 
-       leaq    K256(%rip),%rbp
+       leaq    K512(%rip),%rbp
 
-       movl    0(%rdi),%eax
-       movl    4(%rdi),%ebx
-       movl    8(%rdi),%ecx
-       movl    12(%rdi),%edx
-       movl    16(%rdi),%r8d
-       movl    20(%rdi),%r9d
-       movl    24(%rdi),%r10d
-       movl    28(%rdi),%r11d
+       movq    0(%rdi),%rax
+       movq    8(%rdi),%rbx
+       movq    16(%rdi),%rcx
+       movq    24(%rdi),%rdx
+       movq    32(%rdi),%r8
+       movq    40(%rdi),%r9
+       movq    48(%rdi),%r10
+       movq    56(%rdi),%r11
        jmp     L$loop
 
 .p2align       4
 L$loop:
        xorq    %rdi,%rdi
-       movl    0(%rsi),%r12d
-       movl    %r8d,%r13d
-       movl    %eax,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,0(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       movq    0(%rsi),%r12
+       movq    %r8,%r13
+       movq    %rax,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,0(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    4(%rsi),%r12d
-       movl    %edx,%r13d
-       movl    %r11d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,4(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    8(%rsi),%r12
+       movq    %rdx,%r13
+       movq    %r11,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,8(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    8(%rsi),%r12d
-       movl    %ecx,%r13d
-       movl    %r10d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,8(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    16(%rsi),%r12
+       movq    %rcx,%r13
+       movq    %r10,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,16(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    12(%rsi),%r12d
-       movl    %ebx,%r13d
-       movl    %r9d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,12(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    24(%rsi),%r12
+       movq    %rbx,%r13
+       movq    %r9,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,24(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    16(%rsi),%r12d
-       movl    %eax,%r13d
-       movl    %r8d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,16(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    32(%rsi),%r12
+       movq    %rax,%r13
+       movq    %r8,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,32(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    20(%rsi),%r12d
-       movl    %r11d,%r13d
-       movl    %edx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,20(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    40(%rsi),%r12
+       movq    %r11,%r13
+       movq    %rdx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,40(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    24(%rsi),%r12d
-       movl    %r10d,%r13d
-       movl    %ecx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,24(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    48(%rsi),%r12
+       movq    %r10,%r13
+       movq    %rcx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,48(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    28(%rsi),%r12d
-       movl    %r9d,%r13d
-       movl    %ebx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,28(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    56(%rsi),%r12
+       movq    %r9,%r13
+       movq    %rbx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,56(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
-
-       movl    32(%rsi),%r12d
-       movl    %r8d,%r13d
-       movl    %eax,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,32(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       addq    %r14,%rax
+
+       movq    64(%rsi),%r12
+       movq    %r8,%r13
+       movq    %rax,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,64(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    36(%rsi),%r12d
-       movl    %edx,%r13d
-       movl    %r11d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,36(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    72(%rsi),%r12
+       movq    %rdx,%r13
+       movq    %r11,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,72(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    40(%rsi),%r12d
-       movl    %ecx,%r13d
-       movl    %r10d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,40(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    80(%rsi),%r12
+       movq    %rcx,%r13
+       movq    %r10,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,80(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    44(%rsi),%r12d
-       movl    %ebx,%r13d
-       movl    %r9d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,44(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    88(%rsi),%r12
+       movq    %rbx,%r13
+       movq    %r9,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,88(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    48(%rsi),%r12d
-       movl    %eax,%r13d
-       movl    %r8d,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,48(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    96(%rsi),%r12
+       movq    %rax,%r13
+       movq    %r8,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,96(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    52(%rsi),%r12d
-       movl    %r11d,%r13d
-       movl    %edx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,52(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    104(%rsi),%r12
+       movq    %r11,%r13
+       movq    %rdx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,104(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    56(%rsi),%r12d
-       movl    %r10d,%r13d
-       movl    %ecx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,56(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    112(%rsi),%r12
+       movq    %r10,%r13
+       movq    %rcx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,112(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    60(%rsi),%r12d
-       movl    %r9d,%r13d
-       movl    %ebx,%r14d
-       bswapl  %r12d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,60(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    120(%rsi),%r12
+       movq    %r9,%r13
+       movq    %rbx,%r14
+       bswapq  %r12
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,120(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
+       addq    %r14,%rax
 
        jmp     L$rounds_16_xx
 .p2align       4
 L$rounds_16_xx:
-       movl    4(%rsp),%r13d
-       movl    56(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    36(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    0(%rsp),%r12d
-       movl    %r8d,%r13d
-       addl    %r14d,%r12d
-       movl    %eax,%r14d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,0(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       movq    8(%rsp),%r13
+       movq    112(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    72(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    0(%rsp),%r12
+       movq    %r8,%r13
+       addq    %r14,%r12
+       movq    %rax,%r14
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,0(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    8(%rsp),%r13d
-       movl    60(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    40(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    4(%rsp),%r12d
-       movl    %edx,%r13d
-       addl    %r14d,%r12d
-       movl    %r11d,%r14d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,4(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    16(%rsp),%r13
+       movq    120(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    80(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    8(%rsp),%r12
+       movq    %rdx,%r13
+       addq    %r14,%r12
+       movq    %r11,%r14
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,8(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    12(%rsp),%r13d
-       movl    0(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    44(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    8(%rsp),%r12d
-       movl    %ecx,%r13d
-       addl    %r14d,%r12d
-       movl    %r10d,%r14d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,8(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    24(%rsp),%r13
+       movq    0(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    88(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    16(%rsp),%r12
+       movq    %rcx,%r13
+       addq    %r14,%r12
+       movq    %r10,%r14
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,16(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    16(%rsp),%r13d
-       movl    4(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    48(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    12(%rsp),%r12d
-       movl    %ebx,%r13d
-       addl    %r14d,%r12d
-       movl    %r9d,%r14d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,12(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    32(%rsp),%r13
+       movq    8(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    96(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    24(%rsp),%r12
+       movq    %rbx,%r13
+       addq    %r14,%r12
+       movq    %r9,%r14
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,24(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    20(%rsp),%r13d
-       movl    8(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    52(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    16(%rsp),%r12d
-       movl    %eax,%r13d
-       addl    %r14d,%r12d
-       movl    %r8d,%r14d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,16(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    40(%rsp),%r13
+       movq    16(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    104(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    32(%rsp),%r12
+       movq    %rax,%r13
+       addq    %r14,%r12
+       movq    %r8,%r14
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,32(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    24(%rsp),%r13d
-       movl    12(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    56(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    20(%rsp),%r12d
-       movl    %r11d,%r13d
-       addl    %r14d,%r12d
-       movl    %edx,%r14d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,20(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    48(%rsp),%r13
+       movq    24(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    112(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    40(%rsp),%r12
+       movq    %r11,%r13
+       addq    %r14,%r12
+       movq    %rdx,%r14
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,40(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    28(%rsp),%r13d
-       movl    16(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    60(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    24(%rsp),%r12d
-       movl    %r10d,%r13d
-       addl    %r14d,%r12d
-       movl    %ecx,%r14d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,24(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    56(%rsp),%r13
+       movq    32(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    120(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    48(%rsp),%r12
+       movq    %r10,%r13
+       addq    %r14,%r12
+       movq    %rcx,%r14
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,48(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    32(%rsp),%r13d
-       movl    20(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    0(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    28(%rsp),%r12d
-       movl    %r9d,%r13d
-       addl    %r14d,%r12d
-       movl    %ebx,%r14d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,28(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    64(%rsp),%r13
+       movq    40(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    0(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    56(%rsp),%r12
+       movq    %r9,%r13
+       addq    %r14,%r12
+       movq    %rbx,%r14
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,56(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
-
-       movl    36(%rsp),%r13d
-       movl    24(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    4(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    32(%rsp),%r12d
-       movl    %r8d,%r13d
-       addl    %r14d,%r12d
-       movl    %eax,%r14d
-       rorl    $14,%r13d
-       movl    %r9d,%r15d
-       movl    %r12d,32(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r11d,%r12d
-       xorl    %eax,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r8d,%r15d
-       movl    %ebx,%r11d
-
-       rorl    $11,%r14d
-       xorl    %r8d,%r13d
-       xorl    %r10d,%r15d
-
-       xorl    %ecx,%r11d
-       xorl    %eax,%r14d
-       addl    %r15d,%r12d
-       movl    %ebx,%r15d
-
-       rorl    $6,%r13d
-       andl    %eax,%r11d
-       andl    %ecx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r11d
-
-       addl    %r12d,%edx
-       addl    %r12d,%r11d
+       addq    %r14,%rax
+
+       movq    72(%rsp),%r13
+       movq    48(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    8(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    64(%rsp),%r12
+       movq    %r8,%r13
+       addq    %r14,%r12
+       movq    %rax,%r14
+       rorq    $23,%r13
+       movq    %r9,%r15
+       movq    %r12,64(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       rorq    $4,%r13
+       addq    %r11,%r12
+       xorq    %rax,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r8,%r15
+       movq    %rbx,%r11
+
+       rorq    $6,%r14
+       xorq    %r8,%r13
+       xorq    %r10,%r15
+
+       xorq    %rcx,%r11
+       xorq    %rax,%r14
+       addq    %r15,%r12
+       movq    %rbx,%r15
+
+       rorq    $14,%r13
+       andq    %rax,%r11
+       andq    %rcx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r11
+
+       addq    %r12,%rdx
+       addq    %r12,%r11
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r11d
-
-       movl    40(%rsp),%r13d
-       movl    28(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    8(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    36(%rsp),%r12d
-       movl    %edx,%r13d
-       addl    %r14d,%r12d
-       movl    %r11d,%r14d
-       rorl    $14,%r13d
-       movl    %r8d,%r15d
-       movl    %r12d,36(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r10d,%r12d
-       xorl    %r11d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %edx,%r15d
-       movl    %eax,%r10d
-
-       rorl    $11,%r14d
-       xorl    %edx,%r13d
-       xorl    %r9d,%r15d
-
-       xorl    %ebx,%r10d
-       xorl    %r11d,%r14d
-       addl    %r15d,%r12d
-       movl    %eax,%r15d
-
-       rorl    $6,%r13d
-       andl    %r11d,%r10d
-       andl    %ebx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r10d
-
-       addl    %r12d,%ecx
-       addl    %r12d,%r10d
+       addq    %r14,%r11
+
+       movq    80(%rsp),%r13
+       movq    56(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    16(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    72(%rsp),%r12
+       movq    %rdx,%r13
+       addq    %r14,%r12
+       movq    %r11,%r14
+       rorq    $23,%r13
+       movq    %r8,%r15
+       movq    %r12,72(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       rorq    $4,%r13
+       addq    %r10,%r12
+       xorq    %r11,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rdx,%r15
+       movq    %rax,%r10
+
+       rorq    $6,%r14
+       xorq    %rdx,%r13
+       xorq    %r9,%r15
+
+       xorq    %rbx,%r10
+       xorq    %r11,%r14
+       addq    %r15,%r12
+       movq    %rax,%r15
+
+       rorq    $14,%r13
+       andq    %r11,%r10
+       andq    %rbx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r10
+
+       addq    %r12,%rcx
+       addq    %r12,%r10
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r10d
-
-       movl    44(%rsp),%r13d
-       movl    32(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    12(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    40(%rsp),%r12d
-       movl    %ecx,%r13d
-       addl    %r14d,%r12d
-       movl    %r10d,%r14d
-       rorl    $14,%r13d
-       movl    %edx,%r15d
-       movl    %r12d,40(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       rorl    $5,%r13d
-       addl    %r9d,%r12d
-       xorl    %r10d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ecx,%r15d
-       movl    %r11d,%r9d
-
-       rorl    $11,%r14d
-       xorl    %ecx,%r13d
-       xorl    %r8d,%r15d
-
-       xorl    %eax,%r9d
-       xorl    %r10d,%r14d
-       addl    %r15d,%r12d
-       movl    %r11d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r10d,%r9d
-       andl    %eax,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r9d
-
-       addl    %r12d,%ebx
-       addl    %r12d,%r9d
+       addq    %r14,%r10
+
+       movq    88(%rsp),%r13
+       movq    64(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    24(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    80(%rsp),%r12
+       movq    %rcx,%r13
+       addq    %r14,%r12
+       movq    %r10,%r14
+       rorq    $23,%r13
+       movq    %rdx,%r15
+       movq    %r12,80(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       rorq    $4,%r13
+       addq    %r9,%r12
+       xorq    %r10,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rcx,%r15
+       movq    %r11,%r9
+
+       rorq    $6,%r14
+       xorq    %rcx,%r13
+       xorq    %r8,%r15
+
+       xorq    %rax,%r9
+       xorq    %r10,%r14
+       addq    %r15,%r12
+       movq    %r11,%r15
+
+       rorq    $14,%r13
+       andq    %r10,%r9
+       andq    %rax,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r9
+
+       addq    %r12,%rbx
+       addq    %r12,%r9
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r9d
-
-       movl    48(%rsp),%r13d
-       movl    36(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    16(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    44(%rsp),%r12d
-       movl    %ebx,%r13d
-       addl    %r14d,%r12d
-       movl    %r9d,%r14d
-       rorl    $14,%r13d
-       movl    %ecx,%r15d
-       movl    %r12d,44(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       rorl    $5,%r13d
-       addl    %r8d,%r12d
-       xorl    %r9d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %ebx,%r15d
-       movl    %r10d,%r8d
-
-       rorl    $11,%r14d
-       xorl    %ebx,%r13d
-       xorl    %edx,%r15d
-
-       xorl    %r11d,%r8d
-       xorl    %r9d,%r14d
-       addl    %r15d,%r12d
-       movl    %r10d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r9d,%r8d
-       andl    %r11d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%r8d
-
-       addl    %r12d,%eax
-       addl    %r12d,%r8d
+       addq    %r14,%r9
+
+       movq    96(%rsp),%r13
+       movq    72(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    32(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    88(%rsp),%r12
+       movq    %rbx,%r13
+       addq    %r14,%r12
+       movq    %r9,%r14
+       rorq    $23,%r13
+       movq    %rcx,%r15
+       movq    %r12,88(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       rorq    $4,%r13
+       addq    %r8,%r12
+       xorq    %r9,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rbx,%r15
+       movq    %r10,%r8
+
+       rorq    $6,%r14
+       xorq    %rbx,%r13
+       xorq    %rdx,%r15
+
+       xorq    %r11,%r8
+       xorq    %r9,%r14
+       addq    %r15,%r12
+       movq    %r10,%r15
+
+       rorq    $14,%r13
+       andq    %r9,%r8
+       andq    %r11,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%r8
+
+       addq    %r12,%rax
+       addq    %r12,%r8
        leaq    1(%rdi),%rdi
-       addl    %r14d,%r8d
-
-       movl    52(%rsp),%r13d
-       movl    40(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    20(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    48(%rsp),%r12d
-       movl    %eax,%r13d
-       addl    %r14d,%r12d
-       movl    %r8d,%r14d
-       rorl    $14,%r13d
-       movl    %ebx,%r15d
-       movl    %r12d,48(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       rorl    $5,%r13d
-       addl    %edx,%r12d
-       xorl    %r8d,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %eax,%r15d
-       movl    %r9d,%edx
-
-       rorl    $11,%r14d
-       xorl    %eax,%r13d
-       xorl    %ecx,%r15d
-
-       xorl    %r10d,%edx
-       xorl    %r8d,%r14d
-       addl    %r15d,%r12d
-       movl    %r9d,%r15d
-
-       rorl    $6,%r13d
-       andl    %r8d,%edx
-       andl    %r10d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%edx
-
-       addl    %r12d,%r11d
-       addl    %r12d,%edx
+       addq    %r14,%r8
+
+       movq    104(%rsp),%r13
+       movq    80(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    40(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    96(%rsp),%r12
+       movq    %rax,%r13
+       addq    %r14,%r12
+       movq    %r8,%r14
+       rorq    $23,%r13
+       movq    %rbx,%r15
+       movq    %r12,96(%rsp)
+
+       rorq    $5,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       rorq    $4,%r13
+       addq    %rdx,%r12
+       xorq    %r8,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %rax,%r15
+       movq    %r9,%rdx
+
+       rorq    $6,%r14
+       xorq    %rax,%r13
+       xorq    %rcx,%r15
+
+       xorq    %r10,%rdx
+       xorq    %r8,%r14
+       addq    %r15,%r12
+       movq    %r9,%r15
+
+       rorq    $14,%r13
+       andq    %r8,%rdx
+       andq    %r10,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rdx
+
+       addq    %r12,%r11
+       addq    %r12,%rdx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%edx
-
-       movl    56(%rsp),%r13d
-       movl    44(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    24(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    52(%rsp),%r12d
-       movl    %r11d,%r13d
-       addl    %r14d,%r12d
-       movl    %edx,%r14d
-       rorl    $14,%r13d
-       movl    %eax,%r15d
-       movl    %r12d,52(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       rorl    $5,%r13d
-       addl    %ecx,%r12d
-       xorl    %edx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r11d,%r15d
-       movl    %r8d,%ecx
-
-       rorl    $11,%r14d
-       xorl    %r11d,%r13d
-       xorl    %ebx,%r15d
-
-       xorl    %r9d,%ecx
-       xorl    %edx,%r14d
-       addl    %r15d,%r12d
-       movl    %r8d,%r15d
-
-       rorl    $6,%r13d
-       andl    %edx,%ecx
-       andl    %r9d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ecx
-
-       addl    %r12d,%r10d
-       addl    %r12d,%ecx
+       addq    %r14,%rdx
+
+       movq    112(%rsp),%r13
+       movq    88(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    48(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    104(%rsp),%r12
+       movq    %r11,%r13
+       addq    %r14,%r12
+       movq    %rdx,%r14
+       rorq    $23,%r13
+       movq    %rax,%r15
+       movq    %r12,104(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       rorq    $4,%r13
+       addq    %rcx,%r12
+       xorq    %rdx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r11,%r15
+       movq    %r8,%rcx
+
+       rorq    $6,%r14
+       xorq    %r11,%r13
+       xorq    %rbx,%r15
+
+       xorq    %r9,%rcx
+       xorq    %rdx,%r14
+       addq    %r15,%r12
+       movq    %r8,%r15
+
+       rorq    $14,%r13
+       andq    %rdx,%rcx
+       andq    %r9,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rcx
+
+       addq    %r12,%r10
+       addq    %r12,%rcx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ecx
-
-       movl    60(%rsp),%r13d
-       movl    48(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    28(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    56(%rsp),%r12d
-       movl    %r10d,%r13d
-       addl    %r14d,%r12d
-       movl    %ecx,%r14d
-       rorl    $14,%r13d
-       movl    %r11d,%r15d
-       movl    %r12d,56(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       rorl    $5,%r13d
-       addl    %ebx,%r12d
-       xorl    %ecx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r10d,%r15d
-       movl    %edx,%ebx
-
-       rorl    $11,%r14d
-       xorl    %r10d,%r13d
-       xorl    %eax,%r15d
-
-       xorl    %r8d,%ebx
-       xorl    %ecx,%r14d
-       addl    %r15d,%r12d
-       movl    %edx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ecx,%ebx
-       andl    %r8d,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%ebx
-
-       addl    %r12d,%r9d
-       addl    %r12d,%ebx
+       addq    %r14,%rcx
+
+       movq    120(%rsp),%r13
+       movq    96(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    56(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    112(%rsp),%r12
+       movq    %r10,%r13
+       addq    %r14,%r12
+       movq    %rcx,%r14
+       rorq    $23,%r13
+       movq    %r11,%r15
+       movq    %r12,112(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       rorq    $4,%r13
+       addq    %rbx,%r12
+       xorq    %rcx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r10,%r15
+       movq    %rdx,%rbx
+
+       rorq    $6,%r14
+       xorq    %r10,%r13
+       xorq    %rax,%r15
+
+       xorq    %r8,%rbx
+       xorq    %rcx,%r14
+       addq    %r15,%r12
+       movq    %rdx,%r15
+
+       rorq    $14,%r13
+       andq    %rcx,%rbx
+       andq    %r8,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rbx
+
+       addq    %r12,%r9
+       addq    %r12,%rbx
        leaq    1(%rdi),%rdi
-       addl    %r14d,%ebx
-
-       movl    0(%rsp),%r13d
-       movl    52(%rsp),%r14d
-       movl    %r13d,%r12d
-       movl    %r14d,%r15d
-
-       rorl    $11,%r12d
-       xorl    %r13d,%r12d
-       shrl    $3,%r13d
-
-       rorl    $7,%r12d
-       xorl    %r12d,%r13d
-       movl    32(%rsp),%r12d
-
-       rorl    $2,%r15d
-       xorl    %r14d,%r15d
-       shrl    $10,%r14d
-
-       rorl    $17,%r15d
-       addl    %r13d,%r12d
-       xorl    %r15d,%r14d
-
-       addl    60(%rsp),%r12d
-       movl    %r9d,%r13d
-       addl    %r14d,%r12d
-       movl    %ebx,%r14d
-       rorl    $14,%r13d
-       movl    %r10d,%r15d
-       movl    %r12d,60(%rsp)
-
-       rorl    $9,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       rorl    $5,%r13d
-       addl    %eax,%r12d
-       xorl    %ebx,%r14d
-
-       addl    (%rbp,%rdi,4),%r12d
-       andl    %r9d,%r15d
-       movl    %ecx,%eax
-
-       rorl    $11,%r14d
-       xorl    %r9d,%r13d
-       xorl    %r11d,%r15d
-
-       xorl    %edx,%eax
-       xorl    %ebx,%r14d
-       addl    %r15d,%r12d
-       movl    %ecx,%r15d
-
-       rorl    $6,%r13d
-       andl    %ebx,%eax
-       andl    %edx,%r15d
-
-       rorl    $2,%r14d
-       addl    %r13d,%r12d
-       addl    %r15d,%eax
-
-       addl    %r12d,%r8d
-       addl    %r12d,%eax
+       addq    %r14,%rbx
+
+       movq    0(%rsp),%r13
+       movq    104(%rsp),%r14
+       movq    %r13,%r12
+       movq    %r14,%r15
+
+       rorq    $7,%r12
+       xorq    %r13,%r12
+       shrq    $7,%r13
+
+       rorq    $1,%r12
+       xorq    %r12,%r13
+       movq    64(%rsp),%r12
+
+       rorq    $42,%r15
+       xorq    %r14,%r15
+       shrq    $6,%r14
+
+       rorq    $19,%r15
+       addq    %r13,%r12
+       xorq    %r15,%r14
+
+       addq    120(%rsp),%r12
+       movq    %r9,%r13
+       addq    %r14,%r12
+       movq    %rbx,%r14
+       rorq    $23,%r13
+       movq    %r10,%r15
+       movq    %r12,120(%rsp)
+
+       rorq    $5,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       rorq    $4,%r13
+       addq    %rax,%r12
+       xorq    %rbx,%r14
+
+       addq    (%rbp,%rdi,8),%r12
+       andq    %r9,%r15
+       movq    %rcx,%rax
+
+       rorq    $6,%r14
+       xorq    %r9,%r13
+       xorq    %r11,%r15
+
+       xorq    %rdx,%rax
+       xorq    %rbx,%r14
+       addq    %r15,%r12
+       movq    %rcx,%r15
+
+       rorq    $14,%r13
+       andq    %rbx,%rax
+       andq    %rdx,%r15
+
+       rorq    $28,%r14
+       addq    %r13,%r12
+       addq    %r15,%rax
+
+       addq    %r12,%r8
+       addq    %r12,%rax
        leaq    1(%rdi),%rdi
-       addl    %r14d,%eax
+       addq    %r14,%rax
 
-       cmpq    $64,%rdi
+       cmpq    $80,%rdi
        jb      L$rounds_16_xx
 
-       movq    64+0(%rsp),%rdi
-       leaq    64(%rsi),%rsi
-
-       addl    0(%rdi),%eax
-       addl    4(%rdi),%ebx
-       addl    8(%rdi),%ecx
-       addl    12(%rdi),%edx
-       addl    16(%rdi),%r8d
-       addl    20(%rdi),%r9d
-       addl    24(%rdi),%r10d
-       addl    28(%rdi),%r11d
-
-       cmpq    64+16(%rsp),%rsi
-
-       movl    %eax,0(%rdi)
-       movl    %ebx,4(%rdi)
-       movl    %ecx,8(%rdi)
-       movl    %edx,12(%rdi)
-       movl    %r8d,16(%rdi)
-       movl    %r9d,20(%rdi)
-       movl    %r10d,24(%rdi)
-       movl    %r11d,28(%rdi)
+       movq    128+0(%rsp),%rdi
+       leaq    128(%rsi),%rsi
+
+       addq    0(%rdi),%rax
+       addq    8(%rdi),%rbx
+       addq    16(%rdi),%rcx
+       addq    24(%rdi),%rdx
+       addq    32(%rdi),%r8
+       addq    40(%rdi),%r9
+       addq    48(%rdi),%r10
+       addq    56(%rdi),%r11
+
+       cmpq    128+16(%rsp),%rsi
+
+       movq    %rax,0(%rdi)
+       movq    %rbx,8(%rdi)
+       movq    %rcx,16(%rdi)
+       movq    %rdx,24(%rdi)
+       movq    %r8,32(%rdi)
+       movq    %r9,40(%rdi)
+       movq    %r10,48(%rdi)
+       movq    %r11,56(%rdi)
        jb      L$loop
 
-       movq    64+24(%rsp),%rsi
+       movq    128+24(%rsp),%rsi
        movq    (%rsi),%r15
        movq    8(%rsi),%r14
        movq    16(%rsi),%r13
@@ -1760,20 +1760,44 @@ L$epilogue:
 
 .p2align       6
 
-K256:
-.long  0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-.long  0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-.long  0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-.long  0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-.long  0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-.long  0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-.long  0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-.long  0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-.long  0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-.long  0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-.long  0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-.long  0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-.long  0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-.long  0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-.long  0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-.long  0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+K512:
+.quad  0x428a2f98d728ae22,0x7137449123ef65cd
+.quad  0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+.quad  0x3956c25bf348b538,0x59f111f1b605d019
+.quad  0x923f82a4af194f9b,0xab1c5ed5da6d8118
+.quad  0xd807aa98a3030242,0x12835b0145706fbe
+.quad  0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+.quad  0x72be5d74f27b896f,0x80deb1fe3b1696b1
+.quad  0x9bdc06a725c71235,0xc19bf174cf692694
+.quad  0xe49b69c19ef14ad2,0xefbe4786384f25e3
+.quad  0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+.quad  0x2de92c6f592b0275,0x4a7484aa6ea6e483
+.quad  0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+.quad  0x983e5152ee66dfab,0xa831c66d2db43210
+.quad  0xb00327c898fb213f,0xbf597fc7beef0ee4
+.quad  0xc6e00bf33da88fc2,0xd5a79147930aa725
+.quad  0x06ca6351e003826f,0x142929670a0e6e70
+.quad  0x27b70a8546d22ffc,0x2e1b21385c26c926
+.quad  0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+.quad  0x650a73548baf63de,0x766a0abb3c77b2a8
+.quad  0x81c2c92e47edaee6,0x92722c851482353b
+.quad  0xa2bfe8a14cf10364,0xa81a664bbc423001
+.quad  0xc24b8b70d0f89791,0xc76c51a30654be30
+.quad  0xd192e819d6ef5218,0xd69906245565a910
+.quad  0xf40e35855771202a,0x106aa07032bbd1b8
+.quad  0x19a4c116b8d2d0c8,0x1e376c085141ab53
+.quad  0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+.quad  0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+.quad  0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+.quad  0x748f82ee5defb2fc,0x78a5636f43172f60
+.quad  0x84c87814a1f0ab72,0x8cc702081a6439ec
+.quad  0x90befffa23631e28,0xa4506cebde82bde9
+.quad  0xbef9a3f7b2c67915,0xc67178f2e372532b
+.quad  0xca273eceea26619c,0xd186b8c721c0c207
+.quad  0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+.quad  0x06f067aa72176fba,0x0a637dc5a2c898a6
+.quad  0x113f9804bef90dae,0x1b710b35131c471b
+.quad  0x28db77f523047d84,0x32caab7b40c72493
+.quad  0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+.quad  0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+.quad  0x5fcb6fab3ad6faec,0x6c44198c4a475817
index b9f6fd0..ff8ee94 100644 (file)
@@ -1395,8 +1395,8 @@ $L$cbc_picked_te::
        jb      $L$cbc_slow_prologue
        test    rdx,15
        jnz     $L$cbc_slow_prologue
-
-
+       bt      r10d,28
+       jc      $L$cbc_slow_prologue
 
 
        lea     r15,QWORD PTR[((-88-248))+rsp]
diff --git a/deps/openssl/asm/x64-win32-masm/aes/bsaes-x86_64.asm b/deps/openssl/asm/x64-win32-masm/aes/bsaes-x86_64.asm
new file mode 100644 (file)
index 0000000..bea2f03
--- /dev/null
@@ -0,0 +1,2748 @@
+OPTION DOTNAME
+.text$ SEGMENT ALIGN(64) 'CODE'
+
+EXTERN asm_AES_encrypt:NEAR
+EXTERN asm_AES_decrypt:NEAR
+
+
+ALIGN  64
+_bsaes_encrypt8        PROC PRIVATE
+       lea     r11,QWORD PTR[$L$BS0]
+
+       movdqa  xmm8,XMMWORD PTR[rax]
+       lea     rax,QWORD PTR[16+rax]
+       movdqa  xmm7,XMMWORD PTR[80+r11]
+       pxor    xmm15,xmm8
+       pxor    xmm0,xmm8
+DB     102,68,15,56,0,255
+       pxor    xmm1,xmm8
+DB     102,15,56,0,199
+       pxor    xmm2,xmm8
+DB     102,15,56,0,207
+       pxor    xmm3,xmm8
+DB     102,15,56,0,215
+       pxor    xmm4,xmm8
+DB     102,15,56,0,223
+       pxor    xmm5,xmm8
+DB     102,15,56,0,231
+       pxor    xmm6,xmm8
+DB     102,15,56,0,239
+DB     102,15,56,0,247
+_bsaes_encrypt8_bitslice::
+       movdqa  xmm7,XMMWORD PTR[r11]
+       movdqa  xmm8,XMMWORD PTR[16+r11]
+       movdqa  xmm9,xmm5
+       psrlq   xmm5,1
+       movdqa  xmm10,xmm3
+       psrlq   xmm3,1
+       pxor    xmm5,xmm6
+       pxor    xmm3,xmm4
+       pand    xmm5,xmm7
+       pand    xmm3,xmm7
+       pxor    xmm6,xmm5
+       psllq   xmm5,1
+       pxor    xmm4,xmm3
+       psllq   xmm3,1
+       pxor    xmm5,xmm9
+       pxor    xmm3,xmm10
+       movdqa  xmm9,xmm1
+       psrlq   xmm1,1
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,1
+       pxor    xmm1,xmm2
+       pxor    xmm15,xmm0
+       pand    xmm1,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm2,xmm1
+       psllq   xmm1,1
+       pxor    xmm0,xmm15
+       psllq   xmm15,1
+       pxor    xmm1,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm7,XMMWORD PTR[32+r11]
+       movdqa  xmm9,xmm4
+       psrlq   xmm4,2
+       movdqa  xmm10,xmm3
+       psrlq   xmm3,2
+       pxor    xmm4,xmm6
+       pxor    xmm3,xmm5
+       pand    xmm4,xmm8
+       pand    xmm3,xmm8
+       pxor    xmm6,xmm4
+       psllq   xmm4,2
+       pxor    xmm5,xmm3
+       psllq   xmm3,2
+       pxor    xmm4,xmm9
+       pxor    xmm3,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,2
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,2
+       pxor    xmm0,xmm2
+       pxor    xmm15,xmm1
+       pand    xmm0,xmm8
+       pand    xmm15,xmm8
+       pxor    xmm2,xmm0
+       psllq   xmm0,2
+       pxor    xmm1,xmm15
+       psllq   xmm15,2
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm9,xmm2
+       psrlq   xmm2,4
+       movdqa  xmm10,xmm1
+       psrlq   xmm1,4
+       pxor    xmm2,xmm6
+       pxor    xmm1,xmm5
+       pand    xmm2,xmm7
+       pand    xmm1,xmm7
+       pxor    xmm6,xmm2
+       psllq   xmm2,4
+       pxor    xmm5,xmm1
+       psllq   xmm1,4
+       pxor    xmm2,xmm9
+       pxor    xmm1,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,4
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,4
+       pxor    xmm0,xmm4
+       pxor    xmm15,xmm3
+       pand    xmm0,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm4,xmm0
+       psllq   xmm0,4
+       pxor    xmm3,xmm15
+       psllq   xmm15,4
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       dec     r10d
+       jmp     $L$enc_sbox
+ALIGN  16
+$L$enc_loop::
+       pxor    xmm15,XMMWORD PTR[rax]
+       pxor    xmm0,XMMWORD PTR[16+rax]
+DB     102,68,15,56,0,255
+       pxor    xmm1,XMMWORD PTR[32+rax]
+DB     102,15,56,0,199
+       pxor    xmm2,XMMWORD PTR[48+rax]
+DB     102,15,56,0,207
+       pxor    xmm3,XMMWORD PTR[64+rax]
+DB     102,15,56,0,215
+       pxor    xmm4,XMMWORD PTR[80+rax]
+DB     102,15,56,0,223
+       pxor    xmm5,XMMWORD PTR[96+rax]
+DB     102,15,56,0,231
+       pxor    xmm6,XMMWORD PTR[112+rax]
+DB     102,15,56,0,239
+       lea     rax,QWORD PTR[128+rax]
+DB     102,15,56,0,247
+$L$enc_sbox::
+       pxor    xmm4,xmm5
+       pxor    xmm1,xmm0
+       pxor    xmm2,xmm15
+       pxor    xmm5,xmm1
+       pxor    xmm4,xmm15
+
+       pxor    xmm5,xmm2
+       pxor    xmm2,xmm6
+       pxor    xmm6,xmm4
+       pxor    xmm2,xmm3
+       pxor    xmm3,xmm4
+       pxor    xmm2,xmm0
+
+       pxor    xmm1,xmm6
+       pxor    xmm0,xmm4
+       movdqa  xmm10,xmm6
+       movdqa  xmm9,xmm0
+       movdqa  xmm8,xmm4
+       movdqa  xmm12,xmm1
+       movdqa  xmm11,xmm5
+
+       pxor    xmm10,xmm3
+       pxor    xmm9,xmm1
+       pxor    xmm8,xmm2
+       movdqa  xmm13,xmm10
+       pxor    xmm12,xmm3
+       movdqa  xmm7,xmm9
+       pxor    xmm11,xmm15
+       movdqa  xmm14,xmm10
+
+       por     xmm9,xmm8
+       por     xmm10,xmm11
+       pxor    xmm14,xmm7
+       pand    xmm13,xmm11
+       pxor    xmm11,xmm8
+       pand    xmm7,xmm8
+       pand    xmm14,xmm11
+       movdqa  xmm11,xmm2
+       pxor    xmm11,xmm15
+       pand    xmm12,xmm11
+       pxor    xmm10,xmm12
+       pxor    xmm9,xmm12
+       movdqa  xmm12,xmm6
+       movdqa  xmm11,xmm4
+       pxor    xmm12,xmm0
+       pxor    xmm11,xmm5
+       movdqa  xmm8,xmm12
+       pand    xmm12,xmm11
+       por     xmm8,xmm11
+       pxor    xmm7,xmm12
+       pxor    xmm10,xmm14
+       pxor    xmm9,xmm13
+       pxor    xmm8,xmm14
+       movdqa  xmm11,xmm1
+       pxor    xmm7,xmm13
+       movdqa  xmm12,xmm3
+       pxor    xmm8,xmm13
+       movdqa  xmm13,xmm0
+       pand    xmm11,xmm2
+       movdqa  xmm14,xmm6
+       pand    xmm12,xmm15
+       pand    xmm13,xmm4
+       por     xmm14,xmm5
+       pxor    xmm10,xmm11
+       pxor    xmm9,xmm12
+       pxor    xmm8,xmm13
+       pxor    xmm7,xmm14
+
+
+
+
+
+       movdqa  xmm11,xmm10
+       pand    xmm10,xmm8
+       pxor    xmm11,xmm9
+
+       movdqa  xmm13,xmm7
+       movdqa  xmm14,xmm11
+       pxor    xmm13,xmm10
+       pand    xmm14,xmm13
+
+       movdqa  xmm12,xmm8
+       pxor    xmm14,xmm9
+       pxor    xmm12,xmm7
+
+       pxor    xmm10,xmm9
+
+       pand    xmm12,xmm10
+
+       movdqa  xmm9,xmm13
+       pxor    xmm12,xmm7
+
+       pxor    xmm9,xmm12
+       pxor    xmm8,xmm12
+
+       pand    xmm9,xmm7
+
+       pxor    xmm13,xmm9
+       pxor    xmm8,xmm9
+
+       pand    xmm13,xmm14
+
+       pxor    xmm13,xmm11
+       movdqa  xmm11,xmm5
+       movdqa  xmm7,xmm4
+       movdqa  xmm9,xmm14
+       pxor    xmm9,xmm13
+       pand    xmm9,xmm5
+       pxor    xmm5,xmm4
+       pand    xmm4,xmm14
+       pand    xmm5,xmm13
+       pxor    xmm5,xmm4
+       pxor    xmm4,xmm9
+       pxor    xmm11,xmm15
+       pxor    xmm7,xmm2
+       pxor    xmm14,xmm12
+       pxor    xmm13,xmm8
+       movdqa  xmm10,xmm14
+       movdqa  xmm9,xmm12
+       pxor    xmm10,xmm13
+       pxor    xmm9,xmm8
+       pand    xmm10,xmm11
+       pand    xmm9,xmm15
+       pxor    xmm11,xmm7
+       pxor    xmm15,xmm2
+       pand    xmm7,xmm14
+       pand    xmm2,xmm12
+       pand    xmm11,xmm13
+       pand    xmm15,xmm8
+       pxor    xmm7,xmm11
+       pxor    xmm15,xmm2
+       pxor    xmm11,xmm10
+       pxor    xmm2,xmm9
+       pxor    xmm5,xmm11
+       pxor    xmm15,xmm11
+       pxor    xmm4,xmm7
+       pxor    xmm2,xmm7
+
+       movdqa  xmm11,xmm6
+       movdqa  xmm7,xmm0
+       pxor    xmm11,xmm3
+       pxor    xmm7,xmm1
+       movdqa  xmm10,xmm14
+       movdqa  xmm9,xmm12
+       pxor    xmm10,xmm13
+       pxor    xmm9,xmm8
+       pand    xmm10,xmm11
+       pand    xmm9,xmm3
+       pxor    xmm11,xmm7
+       pxor    xmm3,xmm1
+       pand    xmm7,xmm14
+       pand    xmm1,xmm12
+       pand    xmm11,xmm13
+       pand    xmm3,xmm8
+       pxor    xmm7,xmm11
+       pxor    xmm3,xmm1
+       pxor    xmm11,xmm10
+       pxor    xmm1,xmm9
+       pxor    xmm14,xmm12
+       pxor    xmm13,xmm8
+       movdqa  xmm10,xmm14
+       pxor    xmm10,xmm13
+       pand    xmm10,xmm6
+       pxor    xmm6,xmm0
+       pand    xmm0,xmm14
+       pand    xmm6,xmm13
+       pxor    xmm6,xmm0
+       pxor    xmm0,xmm10
+       pxor    xmm6,xmm11
+       pxor    xmm3,xmm11
+       pxor    xmm0,xmm7
+       pxor    xmm1,xmm7
+       pxor    xmm6,xmm15
+       pxor    xmm0,xmm5
+       pxor    xmm3,xmm6
+       pxor    xmm5,xmm15
+       pxor    xmm15,xmm0
+
+       pxor    xmm0,xmm4
+       pxor    xmm4,xmm1
+       pxor    xmm1,xmm2
+       pxor    xmm2,xmm4
+       pxor    xmm3,xmm4
+
+       pxor    xmm5,xmm2
+       dec     r10d
+       jl      $L$enc_done
+       pshufd  xmm7,xmm15,093h
+       pshufd  xmm8,xmm0,093h
+       pxor    xmm15,xmm7
+       pshufd  xmm9,xmm3,093h
+       pxor    xmm0,xmm8
+       pshufd  xmm10,xmm5,093h
+       pxor    xmm3,xmm9
+       pshufd  xmm11,xmm2,093h
+       pxor    xmm5,xmm10
+       pshufd  xmm12,xmm6,093h
+       pxor    xmm2,xmm11
+       pshufd  xmm13,xmm1,093h
+       pxor    xmm6,xmm12
+       pshufd  xmm14,xmm4,093h
+       pxor    xmm1,xmm13
+       pxor    xmm4,xmm14
+
+       pxor    xmm8,xmm15
+       pxor    xmm7,xmm4
+       pxor    xmm8,xmm4
+       pshufd  xmm15,xmm15,04Eh
+       pxor    xmm9,xmm0
+       pshufd  xmm0,xmm0,04Eh
+       pxor    xmm12,xmm2
+       pxor    xmm15,xmm7
+       pxor    xmm13,xmm6
+       pxor    xmm0,xmm8
+       pxor    xmm11,xmm5
+       pshufd  xmm7,xmm2,04Eh
+       pxor    xmm14,xmm1
+       pshufd  xmm8,xmm6,04Eh
+       pxor    xmm10,xmm3
+       pshufd  xmm2,xmm5,04Eh
+       pxor    xmm10,xmm4
+       pshufd  xmm6,xmm4,04Eh
+       pxor    xmm11,xmm4
+       pshufd  xmm5,xmm1,04Eh
+       pxor    xmm7,xmm11
+       pshufd  xmm1,xmm3,04Eh
+       pxor    xmm8,xmm12
+       pxor    xmm2,xmm10
+       pxor    xmm6,xmm14
+       pxor    xmm5,xmm13
+       movdqa  xmm3,xmm7
+       pxor    xmm1,xmm9
+       movdqa  xmm4,xmm8
+       movdqa  xmm7,XMMWORD PTR[48+r11]
+       jnz     $L$enc_loop
+       movdqa  xmm7,XMMWORD PTR[64+r11]
+       jmp     $L$enc_loop
+ALIGN  16
+$L$enc_done::
+       movdqa  xmm7,XMMWORD PTR[r11]
+       movdqa  xmm8,XMMWORD PTR[16+r11]
+       movdqa  xmm9,xmm1
+       psrlq   xmm1,1
+       movdqa  xmm10,xmm2
+       psrlq   xmm2,1
+       pxor    xmm1,xmm4
+       pxor    xmm2,xmm6
+       pand    xmm1,xmm7
+       pand    xmm2,xmm7
+       pxor    xmm4,xmm1
+       psllq   xmm1,1
+       pxor    xmm6,xmm2
+       psllq   xmm2,1
+       pxor    xmm1,xmm9
+       pxor    xmm2,xmm10
+       movdqa  xmm9,xmm3
+       psrlq   xmm3,1
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,1
+       pxor    xmm3,xmm5
+       pxor    xmm15,xmm0
+       pand    xmm3,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm5,xmm3
+       psllq   xmm3,1
+       pxor    xmm0,xmm15
+       psllq   xmm15,1
+       pxor    xmm3,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm7,XMMWORD PTR[32+r11]
+       movdqa  xmm9,xmm6
+       psrlq   xmm6,2
+       movdqa  xmm10,xmm2
+       psrlq   xmm2,2
+       pxor    xmm6,xmm4
+       pxor    xmm2,xmm1
+       pand    xmm6,xmm8
+       pand    xmm2,xmm8
+       pxor    xmm4,xmm6
+       psllq   xmm6,2
+       pxor    xmm1,xmm2
+       psllq   xmm2,2
+       pxor    xmm6,xmm9
+       pxor    xmm2,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,2
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,2
+       pxor    xmm0,xmm5
+       pxor    xmm15,xmm3
+       pand    xmm0,xmm8
+       pand    xmm15,xmm8
+       pxor    xmm5,xmm0
+       psllq   xmm0,2
+       pxor    xmm3,xmm15
+       psllq   xmm15,2
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm9,xmm5
+       psrlq   xmm5,4
+       movdqa  xmm10,xmm3
+       psrlq   xmm3,4
+       pxor    xmm5,xmm4
+       pxor    xmm3,xmm1
+       pand    xmm5,xmm7
+       pand    xmm3,xmm7
+       pxor    xmm4,xmm5
+       psllq   xmm5,4
+       pxor    xmm1,xmm3
+       psllq   xmm3,4
+       pxor    xmm5,xmm9
+       pxor    xmm3,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,4
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,4
+       pxor    xmm0,xmm6
+       pxor    xmm15,xmm2
+       pand    xmm0,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm6,xmm0
+       psllq   xmm0,4
+       pxor    xmm2,xmm15
+       psllq   xmm15,4
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm7,XMMWORD PTR[rax]
+       pxor    xmm3,xmm7
+       pxor    xmm5,xmm7
+       pxor    xmm2,xmm7
+       pxor    xmm6,xmm7
+       pxor    xmm1,xmm7
+       pxor    xmm4,xmm7
+       pxor    xmm15,xmm7
+       pxor    xmm0,xmm7
+       DB      0F3h,0C3h               ;repret
+_bsaes_encrypt8        ENDP
+
+
+ALIGN  64
+_bsaes_decrypt8        PROC PRIVATE
+       lea     r11,QWORD PTR[$L$BS0]
+
+       movdqa  xmm8,XMMWORD PTR[rax]
+       lea     rax,QWORD PTR[16+rax]
+       movdqa  xmm7,XMMWORD PTR[((-48))+r11]
+       pxor    xmm15,xmm8
+       pxor    xmm0,xmm8
+DB     102,68,15,56,0,255
+       pxor    xmm1,xmm8
+DB     102,15,56,0,199
+       pxor    xmm2,xmm8
+DB     102,15,56,0,207
+       pxor    xmm3,xmm8
+DB     102,15,56,0,215
+       pxor    xmm4,xmm8
+DB     102,15,56,0,223
+       pxor    xmm5,xmm8
+DB     102,15,56,0,231
+       pxor    xmm6,xmm8
+DB     102,15,56,0,239
+DB     102,15,56,0,247
+       movdqa  xmm7,XMMWORD PTR[r11]
+       movdqa  xmm8,XMMWORD PTR[16+r11]
+       movdqa  xmm9,xmm5
+       psrlq   xmm5,1
+       movdqa  xmm10,xmm3
+       psrlq   xmm3,1
+       pxor    xmm5,xmm6
+       pxor    xmm3,xmm4
+       pand    xmm5,xmm7
+       pand    xmm3,xmm7
+       pxor    xmm6,xmm5
+       psllq   xmm5,1
+       pxor    xmm4,xmm3
+       psllq   xmm3,1
+       pxor    xmm5,xmm9
+       pxor    xmm3,xmm10
+       movdqa  xmm9,xmm1
+       psrlq   xmm1,1
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,1
+       pxor    xmm1,xmm2
+       pxor    xmm15,xmm0
+       pand    xmm1,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm2,xmm1
+       psllq   xmm1,1
+       pxor    xmm0,xmm15
+       psllq   xmm15,1
+       pxor    xmm1,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm7,XMMWORD PTR[32+r11]
+       movdqa  xmm9,xmm4
+       psrlq   xmm4,2
+       movdqa  xmm10,xmm3
+       psrlq   xmm3,2
+       pxor    xmm4,xmm6
+       pxor    xmm3,xmm5
+       pand    xmm4,xmm8
+       pand    xmm3,xmm8
+       pxor    xmm6,xmm4
+       psllq   xmm4,2
+       pxor    xmm5,xmm3
+       psllq   xmm3,2
+       pxor    xmm4,xmm9
+       pxor    xmm3,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,2
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,2
+       pxor    xmm0,xmm2
+       pxor    xmm15,xmm1
+       pand    xmm0,xmm8
+       pand    xmm15,xmm8
+       pxor    xmm2,xmm0
+       psllq   xmm0,2
+       pxor    xmm1,xmm15
+       psllq   xmm15,2
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm9,xmm2
+       psrlq   xmm2,4
+       movdqa  xmm10,xmm1
+       psrlq   xmm1,4
+       pxor    xmm2,xmm6
+       pxor    xmm1,xmm5
+       pand    xmm2,xmm7
+       pand    xmm1,xmm7
+       pxor    xmm6,xmm2
+       psllq   xmm2,4
+       pxor    xmm5,xmm1
+       psllq   xmm1,4
+       pxor    xmm2,xmm9
+       pxor    xmm1,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,4
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,4
+       pxor    xmm0,xmm4
+       pxor    xmm15,xmm3
+       pand    xmm0,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm4,xmm0
+       psllq   xmm0,4
+       pxor    xmm3,xmm15
+       psllq   xmm15,4
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       dec     r10d
+       jmp     $L$dec_sbox
+ALIGN  16
+$L$dec_loop::
+       pxor    xmm15,XMMWORD PTR[rax]
+       pxor    xmm0,XMMWORD PTR[16+rax]
+DB     102,68,15,56,0,255
+       pxor    xmm1,XMMWORD PTR[32+rax]
+DB     102,15,56,0,199
+       pxor    xmm2,XMMWORD PTR[48+rax]
+DB     102,15,56,0,207
+       pxor    xmm3,XMMWORD PTR[64+rax]
+DB     102,15,56,0,215
+       pxor    xmm4,XMMWORD PTR[80+rax]
+DB     102,15,56,0,223
+       pxor    xmm5,XMMWORD PTR[96+rax]
+DB     102,15,56,0,231
+       pxor    xmm6,XMMWORD PTR[112+rax]
+DB     102,15,56,0,239
+       lea     rax,QWORD PTR[128+rax]
+DB     102,15,56,0,247
+$L$dec_sbox::
+       pxor    xmm2,xmm3
+
+       pxor    xmm3,xmm6
+       pxor    xmm1,xmm6
+       pxor    xmm5,xmm3
+       pxor    xmm6,xmm5
+       pxor    xmm0,xmm6
+
+       pxor    xmm15,xmm0
+       pxor    xmm1,xmm4
+       pxor    xmm2,xmm15
+       pxor    xmm4,xmm15
+       pxor    xmm0,xmm2
+       movdqa  xmm10,xmm2
+       movdqa  xmm9,xmm6
+       movdqa  xmm8,xmm0
+       movdqa  xmm12,xmm3
+       movdqa  xmm11,xmm4
+
+       pxor    xmm10,xmm15
+       pxor    xmm9,xmm3
+       pxor    xmm8,xmm5
+       movdqa  xmm13,xmm10
+       pxor    xmm12,xmm15
+       movdqa  xmm7,xmm9
+       pxor    xmm11,xmm1
+       movdqa  xmm14,xmm10
+
+       por     xmm9,xmm8
+       por     xmm10,xmm11
+       pxor    xmm14,xmm7
+       pand    xmm13,xmm11
+       pxor    xmm11,xmm8
+       pand    xmm7,xmm8
+       pand    xmm14,xmm11
+       movdqa  xmm11,xmm5
+       pxor    xmm11,xmm1
+       pand    xmm12,xmm11
+       pxor    xmm10,xmm12
+       pxor    xmm9,xmm12
+       movdqa  xmm12,xmm2
+       movdqa  xmm11,xmm0
+       pxor    xmm12,xmm6
+       pxor    xmm11,xmm4
+       movdqa  xmm8,xmm12
+       pand    xmm12,xmm11
+       por     xmm8,xmm11
+       pxor    xmm7,xmm12
+       pxor    xmm10,xmm14
+       pxor    xmm9,xmm13
+       pxor    xmm8,xmm14
+       movdqa  xmm11,xmm3
+       pxor    xmm7,xmm13
+       movdqa  xmm12,xmm15
+       pxor    xmm8,xmm13
+       movdqa  xmm13,xmm6
+       pand    xmm11,xmm5
+       movdqa  xmm14,xmm2
+       pand    xmm12,xmm1
+       pand    xmm13,xmm0
+       por     xmm14,xmm4
+       pxor    xmm10,xmm11
+       pxor    xmm9,xmm12
+       pxor    xmm8,xmm13
+       pxor    xmm7,xmm14
+
+
+
+
+
+       movdqa  xmm11,xmm10
+       pand    xmm10,xmm8
+       pxor    xmm11,xmm9
+
+       movdqa  xmm13,xmm7
+       movdqa  xmm14,xmm11
+       pxor    xmm13,xmm10
+       pand    xmm14,xmm13
+
+       movdqa  xmm12,xmm8
+       pxor    xmm14,xmm9
+       pxor    xmm12,xmm7
+
+       pxor    xmm10,xmm9
+
+       pand    xmm12,xmm10
+
+       movdqa  xmm9,xmm13
+       pxor    xmm12,xmm7
+
+       pxor    xmm9,xmm12
+       pxor    xmm8,xmm12
+
+       pand    xmm9,xmm7
+
+       pxor    xmm13,xmm9
+       pxor    xmm8,xmm9
+
+       pand    xmm13,xmm14
+
+       pxor    xmm13,xmm11
+       movdqa  xmm11,xmm4
+       movdqa  xmm7,xmm0
+       movdqa  xmm9,xmm14
+       pxor    xmm9,xmm13
+       pand    xmm9,xmm4
+       pxor    xmm4,xmm0
+       pand    xmm0,xmm14
+       pand    xmm4,xmm13
+       pxor    xmm4,xmm0
+       pxor    xmm0,xmm9
+       pxor    xmm11,xmm1
+       pxor    xmm7,xmm5
+       pxor    xmm14,xmm12
+       pxor    xmm13,xmm8
+       movdqa  xmm10,xmm14
+       movdqa  xmm9,xmm12
+       pxor    xmm10,xmm13
+       pxor    xmm9,xmm8
+       pand    xmm10,xmm11
+       pand    xmm9,xmm1
+       pxor    xmm11,xmm7
+       pxor    xmm1,xmm5
+       pand    xmm7,xmm14
+       pand    xmm5,xmm12
+       pand    xmm11,xmm13
+       pand    xmm1,xmm8
+       pxor    xmm7,xmm11
+       pxor    xmm1,xmm5
+       pxor    xmm11,xmm10
+       pxor    xmm5,xmm9
+       pxor    xmm4,xmm11
+       pxor    xmm1,xmm11
+       pxor    xmm0,xmm7
+       pxor    xmm5,xmm7
+
+       movdqa  xmm11,xmm2
+       movdqa  xmm7,xmm6
+       pxor    xmm11,xmm15
+       pxor    xmm7,xmm3
+       movdqa  xmm10,xmm14
+       movdqa  xmm9,xmm12
+       pxor    xmm10,xmm13
+       pxor    xmm9,xmm8
+       pand    xmm10,xmm11
+       pand    xmm9,xmm15
+       pxor    xmm11,xmm7
+       pxor    xmm15,xmm3
+       pand    xmm7,xmm14
+       pand    xmm3,xmm12
+       pand    xmm11,xmm13
+       pand    xmm15,xmm8
+       pxor    xmm7,xmm11
+       pxor    xmm15,xmm3
+       pxor    xmm11,xmm10
+       pxor    xmm3,xmm9
+       pxor    xmm14,xmm12
+       pxor    xmm13,xmm8
+       movdqa  xmm10,xmm14
+       pxor    xmm10,xmm13
+       pand    xmm10,xmm2
+       pxor    xmm2,xmm6
+       pand    xmm6,xmm14
+       pand    xmm2,xmm13
+       pxor    xmm2,xmm6
+       pxor    xmm6,xmm10
+       pxor    xmm2,xmm11
+       pxor    xmm15,xmm11
+       pxor    xmm6,xmm7
+       pxor    xmm3,xmm7
+       pxor    xmm0,xmm6
+       pxor    xmm5,xmm4
+
+       pxor    xmm3,xmm0
+       pxor    xmm1,xmm6
+       pxor    xmm4,xmm6
+       pxor    xmm3,xmm1
+       pxor    xmm6,xmm15
+       pxor    xmm3,xmm4
+       pxor    xmm2,xmm5
+       pxor    xmm5,xmm0
+       pxor    xmm2,xmm3
+
+       pxor    xmm3,xmm15
+       pxor    xmm6,xmm2
+       dec     r10d
+       jl      $L$dec_done
+
+       pshufd  xmm7,xmm15,04Eh
+       pshufd  xmm13,xmm2,04Eh
+       pxor    xmm7,xmm15
+       pshufd  xmm14,xmm4,04Eh
+       pxor    xmm13,xmm2
+       pshufd  xmm8,xmm0,04Eh
+       pxor    xmm14,xmm4
+       pshufd  xmm9,xmm5,04Eh
+       pxor    xmm8,xmm0
+       pshufd  xmm10,xmm3,04Eh
+       pxor    xmm9,xmm5
+       pxor    xmm15,xmm13
+       pxor    xmm0,xmm13
+       pshufd  xmm11,xmm1,04Eh
+       pxor    xmm10,xmm3
+       pxor    xmm5,xmm7
+       pxor    xmm3,xmm8
+       pshufd  xmm12,xmm6,04Eh
+       pxor    xmm11,xmm1
+       pxor    xmm0,xmm14
+       pxor    xmm1,xmm9
+       pxor    xmm12,xmm6
+
+       pxor    xmm5,xmm14
+       pxor    xmm3,xmm13
+       pxor    xmm1,xmm13
+       pxor    xmm6,xmm10
+       pxor    xmm2,xmm11
+       pxor    xmm1,xmm14
+       pxor    xmm6,xmm14
+       pxor    xmm4,xmm12
+       pshufd  xmm7,xmm15,093h
+       pshufd  xmm8,xmm0,093h
+       pxor    xmm15,xmm7
+       pshufd  xmm9,xmm5,093h
+       pxor    xmm0,xmm8
+       pshufd  xmm10,xmm3,093h
+       pxor    xmm5,xmm9
+       pshufd  xmm11,xmm1,093h
+       pxor    xmm3,xmm10
+       pshufd  xmm12,xmm6,093h
+       pxor    xmm1,xmm11
+       pshufd  xmm13,xmm2,093h
+       pxor    xmm6,xmm12
+       pshufd  xmm14,xmm4,093h
+       pxor    xmm2,xmm13
+       pxor    xmm4,xmm14
+
+       pxor    xmm8,xmm15
+       pxor    xmm7,xmm4
+       pxor    xmm8,xmm4
+       pshufd  xmm15,xmm15,04Eh
+       pxor    xmm9,xmm0
+       pshufd  xmm0,xmm0,04Eh
+       pxor    xmm12,xmm1
+       pxor    xmm15,xmm7
+       pxor    xmm13,xmm6
+       pxor    xmm0,xmm8
+       pxor    xmm11,xmm3
+       pshufd  xmm7,xmm1,04Eh
+       pxor    xmm14,xmm2
+       pshufd  xmm8,xmm6,04Eh
+       pxor    xmm10,xmm5
+       pshufd  xmm1,xmm3,04Eh
+       pxor    xmm10,xmm4
+       pshufd  xmm6,xmm4,04Eh
+       pxor    xmm11,xmm4
+       pshufd  xmm3,xmm2,04Eh
+       pxor    xmm7,xmm11
+       pshufd  xmm2,xmm5,04Eh
+       pxor    xmm8,xmm12
+       pxor    xmm10,xmm1
+       pxor    xmm6,xmm14
+       pxor    xmm13,xmm3
+       movdqa  xmm3,xmm7
+       pxor    xmm2,xmm9
+       movdqa  xmm5,xmm13
+       movdqa  xmm4,xmm8
+       movdqa  xmm1,xmm2
+       movdqa  xmm2,xmm10
+       movdqa  xmm7,XMMWORD PTR[((-16))+r11]
+       jnz     $L$dec_loop
+       movdqa  xmm7,XMMWORD PTR[((-32))+r11]
+       jmp     $L$dec_loop
+ALIGN  16
+$L$dec_done::
+       movdqa  xmm7,XMMWORD PTR[r11]
+       movdqa  xmm8,XMMWORD PTR[16+r11]
+       movdqa  xmm9,xmm2
+       psrlq   xmm2,1
+       movdqa  xmm10,xmm1
+       psrlq   xmm1,1
+       pxor    xmm2,xmm4
+       pxor    xmm1,xmm6
+       pand    xmm2,xmm7
+       pand    xmm1,xmm7
+       pxor    xmm4,xmm2
+       psllq   xmm2,1
+       pxor    xmm6,xmm1
+       psllq   xmm1,1
+       pxor    xmm2,xmm9
+       pxor    xmm1,xmm10
+       movdqa  xmm9,xmm5
+       psrlq   xmm5,1
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,1
+       pxor    xmm5,xmm3
+       pxor    xmm15,xmm0
+       pand    xmm5,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm3,xmm5
+       psllq   xmm5,1
+       pxor    xmm0,xmm15
+       psllq   xmm15,1
+       pxor    xmm5,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm7,XMMWORD PTR[32+r11]
+       movdqa  xmm9,xmm6
+       psrlq   xmm6,2
+       movdqa  xmm10,xmm1
+       psrlq   xmm1,2
+       pxor    xmm6,xmm4
+       pxor    xmm1,xmm2
+       pand    xmm6,xmm8
+       pand    xmm1,xmm8
+       pxor    xmm4,xmm6
+       psllq   xmm6,2
+       pxor    xmm2,xmm1
+       psllq   xmm1,2
+       pxor    xmm6,xmm9
+       pxor    xmm1,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,2
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,2
+       pxor    xmm0,xmm3
+       pxor    xmm15,xmm5
+       pand    xmm0,xmm8
+       pand    xmm15,xmm8
+       pxor    xmm3,xmm0
+       psllq   xmm0,2
+       pxor    xmm5,xmm15
+       psllq   xmm15,2
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm9,xmm3
+       psrlq   xmm3,4
+       movdqa  xmm10,xmm5
+       psrlq   xmm5,4
+       pxor    xmm3,xmm4
+       pxor    xmm5,xmm2
+       pand    xmm3,xmm7
+       pand    xmm5,xmm7
+       pxor    xmm4,xmm3
+       psllq   xmm3,4
+       pxor    xmm2,xmm5
+       psllq   xmm5,4
+       pxor    xmm3,xmm9
+       pxor    xmm5,xmm10
+       movdqa  xmm9,xmm0
+       psrlq   xmm0,4
+       movdqa  xmm10,xmm15
+       psrlq   xmm15,4
+       pxor    xmm0,xmm6
+       pxor    xmm15,xmm1
+       pand    xmm0,xmm7
+       pand    xmm15,xmm7
+       pxor    xmm6,xmm0
+       psllq   xmm0,4
+       pxor    xmm1,xmm15
+       psllq   xmm15,4
+       pxor    xmm0,xmm9
+       pxor    xmm15,xmm10
+       movdqa  xmm7,XMMWORD PTR[rax]
+       pxor    xmm5,xmm7
+       pxor    xmm3,xmm7
+       pxor    xmm1,xmm7
+       pxor    xmm6,xmm7
+       pxor    xmm2,xmm7
+       pxor    xmm4,xmm7
+       pxor    xmm15,xmm7
+       pxor    xmm0,xmm7
+       DB      0F3h,0C3h               ;repret
+_bsaes_decrypt8        ENDP
+
+ALIGN  16
+_bsaes_key_convert     PROC PRIVATE
+       lea     r11,QWORD PTR[$L$masks]
+       movdqu  xmm7,XMMWORD PTR[rcx]
+       lea     rcx,QWORD PTR[16+rcx]
+       movdqa  xmm0,XMMWORD PTR[r11]
+       movdqa  xmm1,XMMWORD PTR[16+r11]
+       movdqa  xmm2,XMMWORD PTR[32+r11]
+       movdqa  xmm3,XMMWORD PTR[48+r11]
+       movdqa  xmm4,XMMWORD PTR[64+r11]
+       pcmpeqd xmm5,xmm5
+
+       movdqu  xmm6,XMMWORD PTR[rcx]
+       movdqa  XMMWORD PTR[rax],xmm7
+       lea     rax,QWORD PTR[16+rax]
+       dec     r10d
+       jmp     $L$key_loop
+ALIGN  16
+$L$key_loop::
+DB     102,15,56,0,244
+
+       movdqa  xmm8,xmm0
+       movdqa  xmm9,xmm1
+
+       pand    xmm8,xmm6
+       pand    xmm9,xmm6
+       movdqa  xmm10,xmm2
+       pcmpeqb xmm8,xmm0
+       psllq   xmm0,4
+       movdqa  xmm11,xmm3
+       pcmpeqb xmm9,xmm1
+       psllq   xmm1,4
+
+       pand    xmm10,xmm6
+       pand    xmm11,xmm6
+       movdqa  xmm12,xmm0
+       pcmpeqb xmm10,xmm2
+       psllq   xmm2,4
+       movdqa  xmm13,xmm1
+       pcmpeqb xmm11,xmm3
+       psllq   xmm3,4
+
+       movdqa  xmm14,xmm2
+       movdqa  xmm15,xmm3
+       pxor    xmm8,xmm5
+       pxor    xmm9,xmm5
+
+       pand    xmm12,xmm6
+       pand    xmm13,xmm6
+       movdqa  XMMWORD PTR[rax],xmm8
+       pcmpeqb xmm12,xmm0
+       psrlq   xmm0,4
+       movdqa  XMMWORD PTR[16+rax],xmm9
+       pcmpeqb xmm13,xmm1
+       psrlq   xmm1,4
+       lea     rcx,QWORD PTR[16+rcx]
+
+       pand    xmm14,xmm6
+       pand    xmm15,xmm6
+       movdqa  XMMWORD PTR[32+rax],xmm10
+       pcmpeqb xmm14,xmm2
+       psrlq   xmm2,4
+       movdqa  XMMWORD PTR[48+rax],xmm11
+       pcmpeqb xmm15,xmm3
+       psrlq   xmm3,4
+       movdqu  xmm6,XMMWORD PTR[rcx]
+
+       pxor    xmm13,xmm5
+       pxor    xmm14,xmm5
+       movdqa  XMMWORD PTR[64+rax],xmm12
+       movdqa  XMMWORD PTR[80+rax],xmm13
+       movdqa  XMMWORD PTR[96+rax],xmm14
+       movdqa  XMMWORD PTR[112+rax],xmm15
+       lea     rax,QWORD PTR[128+rax]
+       dec     r10d
+       jnz     $L$key_loop
+
+       movdqa  xmm7,XMMWORD PTR[80+r11]
+
+       DB      0F3h,0C3h               ;repret
+_bsaes_key_convert     ENDP
+EXTERN asm_AES_cbc_encrypt:NEAR
+PUBLIC bsaes_cbc_encrypt
+
+ALIGN  16
+bsaes_cbc_encrypt      PROC PUBLIC
+       mov     r11d,DWORD PTR[48+rsp]
+       cmp     r11d,0
+       jne     asm_AES_cbc_encrypt
+       cmp     r8,128
+       jb      asm_AES_cbc_encrypt
+
+       mov     rax,rsp
+$L$cbc_dec_prologue::
+       push    rbp
+       push    rbx
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       lea     rsp,QWORD PTR[((-72))+rsp]
+       mov     r10,QWORD PTR[160+rsp]
+       lea     rsp,QWORD PTR[((-160))+rsp]
+       movaps  XMMWORD PTR[64+rsp],xmm6
+       movaps  XMMWORD PTR[80+rsp],xmm7
+       movaps  XMMWORD PTR[96+rsp],xmm8
+       movaps  XMMWORD PTR[112+rsp],xmm9
+       movaps  XMMWORD PTR[128+rsp],xmm10
+       movaps  XMMWORD PTR[144+rsp],xmm11
+       movaps  XMMWORD PTR[160+rsp],xmm12
+       movaps  XMMWORD PTR[176+rsp],xmm13
+       movaps  XMMWORD PTR[192+rsp],xmm14
+       movaps  XMMWORD PTR[208+rsp],xmm15
+$L$cbc_dec_body::
+       mov     rbp,rsp
+       mov     eax,DWORD PTR[240+r9]
+       mov     r12,rcx
+       mov     r13,rdx
+       mov     r14,r8
+       mov     r15,r9
+       mov     rbx,r10
+       shr     r14,4
+
+       mov     edx,eax
+       shl     rax,7
+       sub     rax,96
+       sub     rsp,rax
+
+       mov     rax,rsp
+       mov     rcx,r15
+       mov     r10d,edx
+       call    _bsaes_key_convert
+       pxor    xmm7,XMMWORD PTR[rsp]
+       movdqa  XMMWORD PTR[rax],xmm6
+       movdqa  XMMWORD PTR[rsp],xmm7
+
+       movdqu  xmm14,XMMWORD PTR[rbx]
+       sub     r14,8
+$L$cbc_dec_loop::
+       movdqu  xmm15,XMMWORD PTR[r12]
+       movdqu  xmm0,XMMWORD PTR[16+r12]
+       movdqu  xmm1,XMMWORD PTR[32+r12]
+       movdqu  xmm2,XMMWORD PTR[48+r12]
+       movdqu  xmm3,XMMWORD PTR[64+r12]
+       movdqu  xmm4,XMMWORD PTR[80+r12]
+       mov     rax,rsp
+       movdqu  xmm5,XMMWORD PTR[96+r12]
+       mov     r10d,edx
+       movdqu  xmm6,XMMWORD PTR[112+r12]
+       movdqa  XMMWORD PTR[32+rbp],xmm14
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm7
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm5,xmm8
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       pxor    xmm3,xmm9
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       pxor    xmm1,xmm10
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       pxor    xmm6,xmm11
+       movdqu  xmm13,XMMWORD PTR[96+r12]
+       pxor    xmm2,xmm12
+       movdqu  xmm14,XMMWORD PTR[112+r12]
+       pxor    xmm4,xmm13
+       movdqu  XMMWORD PTR[r13],xmm15
+       lea     r12,QWORD PTR[128+r12]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       movdqu  XMMWORD PTR[96+r13],xmm2
+       movdqu  XMMWORD PTR[112+r13],xmm4
+       lea     r13,QWORD PTR[128+r13]
+       sub     r14,8
+       jnc     $L$cbc_dec_loop
+
+       add     r14,8
+       jz      $L$cbc_dec_done
+
+       movdqu  xmm15,XMMWORD PTR[r12]
+       mov     rax,rsp
+       mov     r10d,edx
+       cmp     r14,2
+       jb      $L$cbc_dec_one
+       movdqu  xmm0,XMMWORD PTR[16+r12]
+       je      $L$cbc_dec_two
+       movdqu  xmm1,XMMWORD PTR[32+r12]
+       cmp     r14,4
+       jb      $L$cbc_dec_three
+       movdqu  xmm2,XMMWORD PTR[48+r12]
+       je      $L$cbc_dec_four
+       movdqu  xmm3,XMMWORD PTR[64+r12]
+       cmp     r14,6
+       jb      $L$cbc_dec_five
+       movdqu  xmm4,XMMWORD PTR[80+r12]
+       je      $L$cbc_dec_six
+       movdqu  xmm5,XMMWORD PTR[96+r12]
+       movdqa  XMMWORD PTR[32+rbp],xmm14
+       call    _bsaes_decrypt8
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm7
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm5,xmm8
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       pxor    xmm3,xmm9
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       pxor    xmm1,xmm10
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       pxor    xmm6,xmm11
+       movdqu  xmm14,XMMWORD PTR[96+r12]
+       pxor    xmm2,xmm12
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       movdqu  XMMWORD PTR[96+r13],xmm2
+       jmp     $L$cbc_dec_done
+ALIGN  16
+$L$cbc_dec_six::
+       movdqa  XMMWORD PTR[32+rbp],xmm14
+       call    _bsaes_decrypt8
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm7
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm5,xmm8
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       pxor    xmm3,xmm9
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       pxor    xmm1,xmm10
+       movdqu  xmm14,XMMWORD PTR[80+r12]
+       pxor    xmm6,xmm11
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       jmp     $L$cbc_dec_done
+ALIGN  16
+$L$cbc_dec_five::
+       movdqa  XMMWORD PTR[32+rbp],xmm14
+       call    _bsaes_decrypt8
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm7
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm5,xmm8
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       pxor    xmm3,xmm9
+       movdqu  xmm14,XMMWORD PTR[64+r12]
+       pxor    xmm1,xmm10
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       jmp     $L$cbc_dec_done
+ALIGN  16
+$L$cbc_dec_four::
+       movdqa  XMMWORD PTR[32+rbp],xmm14
+       call    _bsaes_decrypt8
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm7
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm5,xmm8
+       movdqu  xmm14,XMMWORD PTR[48+r12]
+       pxor    xmm3,xmm9
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       jmp     $L$cbc_dec_done
+ALIGN  16
+$L$cbc_dec_three::
+       movdqa  XMMWORD PTR[32+rbp],xmm14
+       call    _bsaes_decrypt8
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm7
+       movdqu  xmm14,XMMWORD PTR[32+r12]
+       pxor    xmm5,xmm8
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       jmp     $L$cbc_dec_done
+ALIGN  16
+$L$cbc_dec_two::
+       movdqa  XMMWORD PTR[32+rbp],xmm14
+       call    _bsaes_decrypt8
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm14,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm7
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       jmp     $L$cbc_dec_done
+ALIGN  16
+$L$cbc_dec_one::
+       lea     rcx,QWORD PTR[r12]
+       lea     rdx,QWORD PTR[32+rbp]
+       lea     r8,QWORD PTR[r15]
+       call    asm_AES_decrypt
+
+       pxor    xmm14,XMMWORD PTR[32+rbp]
+       movdqu  XMMWORD PTR[r13],xmm14
+       movdqa  xmm14,xmm15
+
+$L$cbc_dec_done::
+       movdqu  XMMWORD PTR[rbx],xmm14
+       lea     rax,QWORD PTR[rsp]
+       pxor    xmm0,xmm0
+$L$cbc_dec_bzero::
+       movdqa  XMMWORD PTR[rax],xmm0
+       movdqa  XMMWORD PTR[16+rax],xmm0
+       lea     rax,QWORD PTR[32+rax]
+       cmp     rbp,rax
+       ja      $L$cbc_dec_bzero
+
+       lea     rsp,QWORD PTR[rbp]
+       movaps  xmm6,XMMWORD PTR[64+rbp]
+       movaps  xmm7,XMMWORD PTR[80+rbp]
+       movaps  xmm8,XMMWORD PTR[96+rbp]
+       movaps  xmm9,XMMWORD PTR[112+rbp]
+       movaps  xmm10,XMMWORD PTR[128+rbp]
+       movaps  xmm11,XMMWORD PTR[144+rbp]
+       movaps  xmm12,XMMWORD PTR[160+rbp]
+       movaps  xmm13,XMMWORD PTR[176+rbp]
+       movaps  xmm14,XMMWORD PTR[192+rbp]
+       movaps  xmm15,XMMWORD PTR[208+rbp]
+       lea     rsp,QWORD PTR[160+rbp]
+       mov     r15,QWORD PTR[72+rsp]
+       mov     r14,QWORD PTR[80+rsp]
+       mov     r13,QWORD PTR[88+rsp]
+       mov     r12,QWORD PTR[96+rsp]
+       mov     rbx,QWORD PTR[104+rsp]
+       mov     rax,QWORD PTR[112+rsp]
+       lea     rsp,QWORD PTR[120+rsp]
+       mov     rbp,rax
+$L$cbc_dec_epilogue::
+       DB      0F3h,0C3h               ;repret
+bsaes_cbc_encrypt      ENDP
+
+PUBLIC bsaes_ctr32_encrypt_blocks
+
+ALIGN  16
+bsaes_ctr32_encrypt_blocks     PROC PUBLIC
+       mov     rax,rsp
+$L$ctr_enc_prologue::
+       push    rbp
+       push    rbx
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       lea     rsp,QWORD PTR[((-72))+rsp]
+       mov     r10,QWORD PTR[160+rsp]
+       lea     rsp,QWORD PTR[((-160))+rsp]
+       movaps  XMMWORD PTR[64+rsp],xmm6
+       movaps  XMMWORD PTR[80+rsp],xmm7
+       movaps  XMMWORD PTR[96+rsp],xmm8
+       movaps  XMMWORD PTR[112+rsp],xmm9
+       movaps  XMMWORD PTR[128+rsp],xmm10
+       movaps  XMMWORD PTR[144+rsp],xmm11
+       movaps  XMMWORD PTR[160+rsp],xmm12
+       movaps  XMMWORD PTR[176+rsp],xmm13
+       movaps  XMMWORD PTR[192+rsp],xmm14
+       movaps  XMMWORD PTR[208+rsp],xmm15
+$L$ctr_enc_body::
+       mov     rbp,rsp
+       movdqu  xmm0,XMMWORD PTR[r10]
+       mov     eax,DWORD PTR[240+r9]
+       mov     r12,rcx
+       mov     r13,rdx
+       mov     r14,r8
+       mov     r15,r9
+       movdqa  XMMWORD PTR[32+rbp],xmm0
+       cmp     r8,8
+       jb      $L$ctr_enc_short
+
+       mov     ebx,eax
+       shl     rax,7
+       sub     rax,96
+       sub     rsp,rax
+
+       mov     rax,rsp
+       mov     rcx,r15
+       mov     r10d,ebx
+       call    _bsaes_key_convert
+       pxor    xmm7,xmm6
+       movdqa  XMMWORD PTR[rax],xmm7
+
+       movdqa  xmm8,XMMWORD PTR[rsp]
+       lea     r11,QWORD PTR[$L$ADD1]
+       movdqa  xmm15,XMMWORD PTR[32+rbp]
+       movdqa  xmm7,XMMWORD PTR[((-32))+r11]
+DB     102,68,15,56,0,199
+DB     102,68,15,56,0,255
+       movdqa  XMMWORD PTR[rsp],xmm8
+       jmp     $L$ctr_enc_loop
+ALIGN  16
+$L$ctr_enc_loop::
+       movdqa  XMMWORD PTR[32+rbp],xmm15
+       movdqa  xmm0,xmm15
+       movdqa  xmm1,xmm15
+       paddd   xmm0,XMMWORD PTR[r11]
+       movdqa  xmm2,xmm15
+       paddd   xmm1,XMMWORD PTR[16+r11]
+       movdqa  xmm3,xmm15
+       paddd   xmm2,XMMWORD PTR[32+r11]
+       movdqa  xmm4,xmm15
+       paddd   xmm3,XMMWORD PTR[48+r11]
+       movdqa  xmm5,xmm15
+       paddd   xmm4,XMMWORD PTR[64+r11]
+       movdqa  xmm6,xmm15
+       paddd   xmm5,XMMWORD PTR[80+r11]
+       paddd   xmm6,XMMWORD PTR[96+r11]
+
+
+
+       movdqa  xmm8,XMMWORD PTR[rsp]
+       lea     rax,QWORD PTR[16+rsp]
+       movdqa  xmm7,XMMWORD PTR[((-16))+r11]
+       pxor    xmm15,xmm8
+       pxor    xmm0,xmm8
+DB     102,68,15,56,0,255
+       pxor    xmm1,xmm8
+DB     102,15,56,0,199
+       pxor    xmm2,xmm8
+DB     102,15,56,0,207
+       pxor    xmm3,xmm8
+DB     102,15,56,0,215
+       pxor    xmm4,xmm8
+DB     102,15,56,0,223
+       pxor    xmm5,xmm8
+DB     102,15,56,0,231
+       pxor    xmm6,xmm8
+DB     102,15,56,0,239
+       lea     r11,QWORD PTR[$L$BS0]
+DB     102,15,56,0,247
+       mov     r10d,ebx
+
+       call    _bsaes_encrypt8_bitslice
+
+       sub     r14,8
+       jc      $L$ctr_enc_loop_done
+
+       movdqu  xmm7,XMMWORD PTR[r12]
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       movdqu  xmm13,XMMWORD PTR[96+r12]
+       movdqu  xmm14,XMMWORD PTR[112+r12]
+       lea     r12,QWORD PTR[128+r12]
+       pxor    xmm7,xmm15
+       movdqa  xmm15,XMMWORD PTR[32+rbp]
+       pxor    xmm0,xmm8
+       movdqu  XMMWORD PTR[r13],xmm7
+       pxor    xmm3,xmm9
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm5,xmm10
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       pxor    xmm2,xmm11
+       movdqu  XMMWORD PTR[48+r13],xmm5
+       pxor    xmm6,xmm12
+       movdqu  XMMWORD PTR[64+r13],xmm2
+       pxor    xmm1,xmm13
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       pxor    xmm4,xmm14
+       movdqu  XMMWORD PTR[96+r13],xmm1
+       lea     r11,QWORD PTR[$L$ADD1]
+       movdqu  XMMWORD PTR[112+r13],xmm4
+       lea     r13,QWORD PTR[128+r13]
+       paddd   xmm15,XMMWORD PTR[112+r11]
+       jnz     $L$ctr_enc_loop
+
+       jmp     $L$ctr_enc_done
+ALIGN  16
+$L$ctr_enc_loop_done::
+       add     r14,8
+       movdqu  xmm7,XMMWORD PTR[r12]
+       pxor    xmm15,xmm7
+       movdqu  XMMWORD PTR[r13],xmm15
+       cmp     r14,2
+       jb      $L$ctr_enc_done
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm0,xmm8
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       je      $L$ctr_enc_done
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm3,xmm9
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       cmp     r14,4
+       jb      $L$ctr_enc_done
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       pxor    xmm5,xmm10
+       movdqu  XMMWORD PTR[48+r13],xmm5
+       je      $L$ctr_enc_done
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       pxor    xmm2,xmm11
+       movdqu  XMMWORD PTR[64+r13],xmm2
+       cmp     r14,6
+       jb      $L$ctr_enc_done
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       pxor    xmm6,xmm12
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       je      $L$ctr_enc_done
+       movdqu  xmm13,XMMWORD PTR[96+r12]
+       pxor    xmm1,xmm13
+       movdqu  XMMWORD PTR[96+r13],xmm1
+       jmp     $L$ctr_enc_done
+
+ALIGN  16
+$L$ctr_enc_short::
+       lea     rcx,QWORD PTR[32+rbp]
+       lea     rdx,QWORD PTR[48+rbp]
+       lea     r8,QWORD PTR[r15]
+       call    asm_AES_encrypt
+       movdqu  xmm0,XMMWORD PTR[r12]
+       lea     r12,QWORD PTR[16+r12]
+       mov     eax,DWORD PTR[44+rbp]
+       bswap   eax
+       pxor    xmm0,XMMWORD PTR[48+rbp]
+       inc     eax
+       movdqu  XMMWORD PTR[r13],xmm0
+       bswap   eax
+       lea     r13,QWORD PTR[16+r13]
+       mov     DWORD PTR[44+rsp],eax
+       dec     r14
+       jnz     $L$ctr_enc_short
+
+$L$ctr_enc_done::
+       lea     rax,QWORD PTR[rsp]
+       pxor    xmm0,xmm0
+$L$ctr_enc_bzero::
+       movdqa  XMMWORD PTR[rax],xmm0
+       movdqa  XMMWORD PTR[16+rax],xmm0
+       lea     rax,QWORD PTR[32+rax]
+       cmp     rbp,rax
+       ja      $L$ctr_enc_bzero
+
+       lea     rsp,QWORD PTR[rbp]
+       movaps  xmm6,XMMWORD PTR[64+rbp]
+       movaps  xmm7,XMMWORD PTR[80+rbp]
+       movaps  xmm8,XMMWORD PTR[96+rbp]
+       movaps  xmm9,XMMWORD PTR[112+rbp]
+       movaps  xmm10,XMMWORD PTR[128+rbp]
+       movaps  xmm11,XMMWORD PTR[144+rbp]
+       movaps  xmm12,XMMWORD PTR[160+rbp]
+       movaps  xmm13,XMMWORD PTR[176+rbp]
+       movaps  xmm14,XMMWORD PTR[192+rbp]
+       movaps  xmm15,XMMWORD PTR[208+rbp]
+       lea     rsp,QWORD PTR[160+rbp]
+       mov     r15,QWORD PTR[72+rsp]
+       mov     r14,QWORD PTR[80+rsp]
+       mov     r13,QWORD PTR[88+rsp]
+       mov     r12,QWORD PTR[96+rsp]
+       mov     rbx,QWORD PTR[104+rsp]
+       mov     rax,QWORD PTR[112+rsp]
+       lea     rsp,QWORD PTR[120+rsp]
+       mov     rbp,rax
+$L$ctr_enc_epilogue::
+       DB      0F3h,0C3h               ;repret
+bsaes_ctr32_encrypt_blocks     ENDP
+PUBLIC bsaes_xts_encrypt
+
+ALIGN  16
+bsaes_xts_encrypt      PROC PUBLIC
+       mov     rax,rsp
+$L$xts_enc_prologue::
+       push    rbp
+       push    rbx
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       lea     rsp,QWORD PTR[((-72))+rsp]
+       mov     r10,QWORD PTR[160+rsp]
+       mov     r11,QWORD PTR[168+rsp]
+       lea     rsp,QWORD PTR[((-160))+rsp]
+       movaps  XMMWORD PTR[64+rsp],xmm6
+       movaps  XMMWORD PTR[80+rsp],xmm7
+       movaps  XMMWORD PTR[96+rsp],xmm8
+       movaps  XMMWORD PTR[112+rsp],xmm9
+       movaps  XMMWORD PTR[128+rsp],xmm10
+       movaps  XMMWORD PTR[144+rsp],xmm11
+       movaps  XMMWORD PTR[160+rsp],xmm12
+       movaps  XMMWORD PTR[176+rsp],xmm13
+       movaps  XMMWORD PTR[192+rsp],xmm14
+       movaps  XMMWORD PTR[208+rsp],xmm15
+$L$xts_enc_body::
+       mov     rbp,rsp
+       mov     r12,rcx
+       mov     r13,rdx
+       mov     r14,r8
+       mov     r15,r9
+
+       lea     rcx,QWORD PTR[r11]
+       lea     rdx,QWORD PTR[32+rbp]
+       lea     r8,QWORD PTR[r10]
+       call    asm_AES_encrypt
+
+
+       mov     eax,DWORD PTR[240+r15]
+       mov     rbx,r14
+
+       mov     edx,eax
+       shl     rax,7
+       sub     rax,96
+       sub     rsp,rax
+
+       mov     rax,rsp
+       mov     rcx,r15
+       mov     r10d,edx
+       call    _bsaes_key_convert
+       pxor    xmm7,xmm6
+       movdqa  XMMWORD PTR[rax],xmm7
+
+       and     r14,-16
+       sub     rsp,080h
+       movdqa  xmm6,XMMWORD PTR[32+rbp]
+
+       pxor    xmm14,xmm14
+       movdqa  xmm12,XMMWORD PTR[$L$xts_magic]
+       pcmpgtd xmm14,xmm6
+
+       sub     r14,080h
+       jc      $L$xts_enc_short
+       jmp     $L$xts_enc_loop
+
+ALIGN  16
+$L$xts_enc_loop::
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm15,xmm6
+       movdqa  XMMWORD PTR[rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm0,xmm6
+       movdqa  XMMWORD PTR[16+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm7,XMMWORD PTR[r12]
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm1,xmm6
+       movdqa  XMMWORD PTR[32+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm15,xmm7
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm2,xmm6
+       movdqa  XMMWORD PTR[48+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm0,xmm8
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm3,xmm6
+       movdqa  XMMWORD PTR[64+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       pxor    xmm1,xmm9
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm4,xmm6
+       movdqa  XMMWORD PTR[80+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       pxor    xmm2,xmm10
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm5,xmm6
+       movdqa  XMMWORD PTR[96+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       pxor    xmm3,xmm11
+       movdqu  xmm13,XMMWORD PTR[96+r12]
+       pxor    xmm4,xmm12
+       movdqu  xmm14,XMMWORD PTR[112+r12]
+       lea     r12,QWORD PTR[128+r12]
+       movdqa  XMMWORD PTR[112+rsp],xmm6
+       pxor    xmm5,xmm13
+       lea     rax,QWORD PTR[128+rsp]
+       pxor    xmm6,xmm14
+       mov     r10d,edx
+
+       call    _bsaes_encrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm3,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm5,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       pxor    xmm2,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm5
+       pxor    xmm6,XMMWORD PTR[80+rsp]
+       movdqu  XMMWORD PTR[64+r13],xmm2
+       pxor    xmm1,XMMWORD PTR[96+rsp]
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       pxor    xmm4,XMMWORD PTR[112+rsp]
+       movdqu  XMMWORD PTR[96+r13],xmm1
+       movdqu  XMMWORD PTR[112+r13],xmm4
+       lea     r13,QWORD PTR[128+r13]
+
+       movdqa  xmm6,XMMWORD PTR[112+rsp]
+       pxor    xmm14,xmm14
+       movdqa  xmm12,XMMWORD PTR[$L$xts_magic]
+       pcmpgtd xmm14,xmm6
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+
+       sub     r14,080h
+       jnc     $L$xts_enc_loop
+
+$L$xts_enc_short::
+       add     r14,080h
+       jz      $L$xts_enc_done
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm15,xmm6
+       movdqa  XMMWORD PTR[rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm0,xmm6
+       movdqa  XMMWORD PTR[16+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm7,XMMWORD PTR[r12]
+       cmp     r14,16
+       je      $L$xts_enc_1
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm1,xmm6
+       movdqa  XMMWORD PTR[32+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       cmp     r14,32
+       je      $L$xts_enc_2
+       pxor    xmm15,xmm7
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm2,xmm6
+       movdqa  XMMWORD PTR[48+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       cmp     r14,48
+       je      $L$xts_enc_3
+       pxor    xmm0,xmm8
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm3,xmm6
+       movdqa  XMMWORD PTR[64+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       cmp     r14,64
+       je      $L$xts_enc_4
+       pxor    xmm1,xmm9
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm4,xmm6
+       movdqa  XMMWORD PTR[80+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       cmp     r14,80
+       je      $L$xts_enc_5
+       pxor    xmm2,xmm10
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm5,xmm6
+       movdqa  XMMWORD PTR[96+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       cmp     r14,96
+       je      $L$xts_enc_6
+       pxor    xmm3,xmm11
+       movdqu  xmm13,XMMWORD PTR[96+r12]
+       pxor    xmm4,xmm12
+       movdqa  XMMWORD PTR[112+rsp],xmm6
+       lea     r12,QWORD PTR[112+r12]
+       pxor    xmm5,xmm13
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_encrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm3,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm5,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       pxor    xmm2,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm5
+       pxor    xmm6,XMMWORD PTR[80+rsp]
+       movdqu  XMMWORD PTR[64+r13],xmm2
+       pxor    xmm1,XMMWORD PTR[96+rsp]
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       movdqu  XMMWORD PTR[96+r13],xmm1
+       lea     r13,QWORD PTR[112+r13]
+
+       movdqa  xmm6,XMMWORD PTR[112+rsp]
+       jmp     $L$xts_enc_done
+ALIGN  16
+$L$xts_enc_6::
+       pxor    xmm3,xmm11
+       lea     r12,QWORD PTR[96+r12]
+       pxor    xmm4,xmm12
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_encrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm3,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm5,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       pxor    xmm2,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm5
+       pxor    xmm6,XMMWORD PTR[80+rsp]
+       movdqu  XMMWORD PTR[64+r13],xmm2
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       lea     r13,QWORD PTR[96+r13]
+
+       movdqa  xmm6,XMMWORD PTR[96+rsp]
+       jmp     $L$xts_enc_done
+ALIGN  16
+$L$xts_enc_5::
+       pxor    xmm2,xmm10
+       lea     r12,QWORD PTR[80+r12]
+       pxor    xmm3,xmm11
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_encrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm3,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm5,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       pxor    xmm2,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm5
+       movdqu  XMMWORD PTR[64+r13],xmm2
+       lea     r13,QWORD PTR[80+r13]
+
+       movdqa  xmm6,XMMWORD PTR[80+rsp]
+       jmp     $L$xts_enc_done
+ALIGN  16
+$L$xts_enc_4::
+       pxor    xmm1,xmm9
+       lea     r12,QWORD PTR[64+r12]
+       pxor    xmm2,xmm10
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_encrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm3,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm5,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       movdqu  XMMWORD PTR[48+r13],xmm5
+       lea     r13,QWORD PTR[64+r13]
+
+       movdqa  xmm6,XMMWORD PTR[64+rsp]
+       jmp     $L$xts_enc_done
+ALIGN  16
+$L$xts_enc_3::
+       pxor    xmm0,xmm8
+       lea     r12,QWORD PTR[48+r12]
+       pxor    xmm1,xmm9
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_encrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm3,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm3
+       lea     r13,QWORD PTR[48+r13]
+
+       movdqa  xmm6,XMMWORD PTR[48+rsp]
+       jmp     $L$xts_enc_done
+ALIGN  16
+$L$xts_enc_2::
+       pxor    xmm15,xmm7
+       lea     r12,QWORD PTR[32+r12]
+       pxor    xmm0,xmm8
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_encrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       lea     r13,QWORD PTR[32+r13]
+
+       movdqa  xmm6,XMMWORD PTR[32+rsp]
+       jmp     $L$xts_enc_done
+ALIGN  16
+$L$xts_enc_1::
+       pxor    xmm7,xmm15
+       lea     r12,QWORD PTR[16+r12]
+       movdqa  XMMWORD PTR[32+rbp],xmm7
+       lea     rcx,QWORD PTR[32+rbp]
+       lea     rdx,QWORD PTR[32+rbp]
+       lea     r8,QWORD PTR[r15]
+       call    asm_AES_encrypt
+
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+
+
+
+
+
+       movdqu  XMMWORD PTR[r13],xmm15
+       lea     r13,QWORD PTR[16+r13]
+
+       movdqa  xmm6,XMMWORD PTR[16+rsp]
+
+$L$xts_enc_done::
+       and     ebx,15
+       jz      $L$xts_enc_ret
+       mov     rdx,r13
+
+$L$xts_enc_steal::
+       movzx   eax,BYTE PTR[r12]
+       movzx   ecx,BYTE PTR[((-16))+rdx]
+       lea     r12,QWORD PTR[1+r12]
+       mov     BYTE PTR[((-16))+rdx],al
+       mov     BYTE PTR[rdx],cl
+       lea     rdx,QWORD PTR[1+rdx]
+       sub     ebx,1
+       jnz     $L$xts_enc_steal
+
+       movdqu  xmm15,XMMWORD PTR[((-16))+r13]
+       lea     rcx,QWORD PTR[32+rbp]
+       pxor    xmm15,xmm6
+       lea     rdx,QWORD PTR[32+rbp]
+       movdqa  XMMWORD PTR[32+rbp],xmm15
+       lea     r8,QWORD PTR[r15]
+       call    asm_AES_encrypt
+
+       pxor    xmm6,XMMWORD PTR[32+rbp]
+       movdqu  XMMWORD PTR[(-16)+r13],xmm6
+
+$L$xts_enc_ret::
+       lea     rax,QWORD PTR[rsp]
+       pxor    xmm0,xmm0
+$L$xts_enc_bzero::
+       movdqa  XMMWORD PTR[rax],xmm0
+       movdqa  XMMWORD PTR[16+rax],xmm0
+       lea     rax,QWORD PTR[32+rax]
+       cmp     rbp,rax
+       ja      $L$xts_enc_bzero
+
+       lea     rsp,QWORD PTR[rbp]
+       movaps  xmm6,XMMWORD PTR[64+rbp]
+       movaps  xmm7,XMMWORD PTR[80+rbp]
+       movaps  xmm8,XMMWORD PTR[96+rbp]
+       movaps  xmm9,XMMWORD PTR[112+rbp]
+       movaps  xmm10,XMMWORD PTR[128+rbp]
+       movaps  xmm11,XMMWORD PTR[144+rbp]
+       movaps  xmm12,XMMWORD PTR[160+rbp]
+       movaps  xmm13,XMMWORD PTR[176+rbp]
+       movaps  xmm14,XMMWORD PTR[192+rbp]
+       movaps  xmm15,XMMWORD PTR[208+rbp]
+       lea     rsp,QWORD PTR[160+rbp]
+       mov     r15,QWORD PTR[72+rsp]
+       mov     r14,QWORD PTR[80+rsp]
+       mov     r13,QWORD PTR[88+rsp]
+       mov     r12,QWORD PTR[96+rsp]
+       mov     rbx,QWORD PTR[104+rsp]
+       mov     rax,QWORD PTR[112+rsp]
+       lea     rsp,QWORD PTR[120+rsp]
+       mov     rbp,rax
+$L$xts_enc_epilogue::
+       DB      0F3h,0C3h               ;repret
+bsaes_xts_encrypt      ENDP
+
+PUBLIC bsaes_xts_decrypt
+
+ALIGN  16
+bsaes_xts_decrypt      PROC PUBLIC
+       mov     rax,rsp
+$L$xts_dec_prologue::
+       push    rbp
+       push    rbx
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       lea     rsp,QWORD PTR[((-72))+rsp]
+       mov     r10,QWORD PTR[160+rsp]
+       mov     r11,QWORD PTR[168+rsp]
+       lea     rsp,QWORD PTR[((-160))+rsp]
+       movaps  XMMWORD PTR[64+rsp],xmm6
+       movaps  XMMWORD PTR[80+rsp],xmm7
+       movaps  XMMWORD PTR[96+rsp],xmm8
+       movaps  XMMWORD PTR[112+rsp],xmm9
+       movaps  XMMWORD PTR[128+rsp],xmm10
+       movaps  XMMWORD PTR[144+rsp],xmm11
+       movaps  XMMWORD PTR[160+rsp],xmm12
+       movaps  XMMWORD PTR[176+rsp],xmm13
+       movaps  XMMWORD PTR[192+rsp],xmm14
+       movaps  XMMWORD PTR[208+rsp],xmm15
+$L$xts_dec_body::
+       mov     rbp,rsp
+       mov     r12,rcx
+       mov     r13,rdx
+       mov     r14,r8
+       mov     r15,r9
+
+       lea     rcx,QWORD PTR[r11]
+       lea     rdx,QWORD PTR[32+rbp]
+       lea     r8,QWORD PTR[r10]
+       call    asm_AES_encrypt
+
+
+       mov     eax,DWORD PTR[240+r15]
+       mov     rbx,r14
+
+       mov     edx,eax
+       shl     rax,7
+       sub     rax,96
+       sub     rsp,rax
+
+       mov     rax,rsp
+       mov     rcx,r15
+       mov     r10d,edx
+       call    _bsaes_key_convert
+       pxor    xmm7,XMMWORD PTR[rsp]
+       movdqa  XMMWORD PTR[rax],xmm6
+       movdqa  XMMWORD PTR[rsp],xmm7
+
+       xor     eax,eax
+       and     r14,-16
+       test    ebx,15
+       setnz   al
+       shl     rax,4
+       sub     r14,rax
+
+       sub     rsp,080h
+       movdqa  xmm6,XMMWORD PTR[32+rbp]
+
+       pxor    xmm14,xmm14
+       movdqa  xmm12,XMMWORD PTR[$L$xts_magic]
+       pcmpgtd xmm14,xmm6
+
+       sub     r14,080h
+       jc      $L$xts_dec_short
+       jmp     $L$xts_dec_loop
+
+ALIGN  16
+$L$xts_dec_loop::
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm15,xmm6
+       movdqa  XMMWORD PTR[rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm0,xmm6
+       movdqa  XMMWORD PTR[16+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm7,XMMWORD PTR[r12]
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm1,xmm6
+       movdqa  XMMWORD PTR[32+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       pxor    xmm15,xmm7
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm2,xmm6
+       movdqa  XMMWORD PTR[48+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       pxor    xmm0,xmm8
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm3,xmm6
+       movdqa  XMMWORD PTR[64+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       pxor    xmm1,xmm9
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm4,xmm6
+       movdqa  XMMWORD PTR[80+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       pxor    xmm2,xmm10
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm5,xmm6
+       movdqa  XMMWORD PTR[96+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       pxor    xmm3,xmm11
+       movdqu  xmm13,XMMWORD PTR[96+r12]
+       pxor    xmm4,xmm12
+       movdqu  xmm14,XMMWORD PTR[112+r12]
+       lea     r12,QWORD PTR[128+r12]
+       movdqa  XMMWORD PTR[112+rsp],xmm6
+       pxor    xmm5,xmm13
+       lea     rax,QWORD PTR[128+rsp]
+       pxor    xmm6,xmm14
+       mov     r10d,edx
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm5,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm3,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       pxor    xmm1,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       pxor    xmm6,XMMWORD PTR[80+rsp]
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       pxor    xmm2,XMMWORD PTR[96+rsp]
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       pxor    xmm4,XMMWORD PTR[112+rsp]
+       movdqu  XMMWORD PTR[96+r13],xmm2
+       movdqu  XMMWORD PTR[112+r13],xmm4
+       lea     r13,QWORD PTR[128+r13]
+
+       movdqa  xmm6,XMMWORD PTR[112+rsp]
+       pxor    xmm14,xmm14
+       movdqa  xmm12,XMMWORD PTR[$L$xts_magic]
+       pcmpgtd xmm14,xmm6
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+
+       sub     r14,080h
+       jnc     $L$xts_dec_loop
+
+$L$xts_dec_short::
+       add     r14,080h
+       jz      $L$xts_dec_done
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm15,xmm6
+       movdqa  XMMWORD PTR[rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm0,xmm6
+       movdqa  XMMWORD PTR[16+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm7,XMMWORD PTR[r12]
+       cmp     r14,16
+       je      $L$xts_dec_1
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm1,xmm6
+       movdqa  XMMWORD PTR[32+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm8,XMMWORD PTR[16+r12]
+       cmp     r14,32
+       je      $L$xts_dec_2
+       pxor    xmm15,xmm7
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm2,xmm6
+       movdqa  XMMWORD PTR[48+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm9,XMMWORD PTR[32+r12]
+       cmp     r14,48
+       je      $L$xts_dec_3
+       pxor    xmm0,xmm8
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm3,xmm6
+       movdqa  XMMWORD PTR[64+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm10,XMMWORD PTR[48+r12]
+       cmp     r14,64
+       je      $L$xts_dec_4
+       pxor    xmm1,xmm9
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm4,xmm6
+       movdqa  XMMWORD PTR[80+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm11,XMMWORD PTR[64+r12]
+       cmp     r14,80
+       je      $L$xts_dec_5
+       pxor    xmm2,xmm10
+       pshufd  xmm13,xmm14,013h
+       pxor    xmm14,xmm14
+       movdqa  xmm5,xmm6
+       movdqa  XMMWORD PTR[96+rsp],xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       pcmpgtd xmm14,xmm6
+       pxor    xmm6,xmm13
+       movdqu  xmm12,XMMWORD PTR[80+r12]
+       cmp     r14,96
+       je      $L$xts_dec_6
+       pxor    xmm3,xmm11
+       movdqu  xmm13,XMMWORD PTR[96+r12]
+       pxor    xmm4,xmm12
+       movdqa  XMMWORD PTR[112+rsp],xmm6
+       lea     r12,QWORD PTR[112+r12]
+       pxor    xmm5,xmm13
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm5,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm3,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       pxor    xmm1,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       pxor    xmm6,XMMWORD PTR[80+rsp]
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       pxor    xmm2,XMMWORD PTR[96+rsp]
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       movdqu  XMMWORD PTR[96+r13],xmm2
+       lea     r13,QWORD PTR[112+r13]
+
+       movdqa  xmm6,XMMWORD PTR[112+rsp]
+       jmp     $L$xts_dec_done
+ALIGN  16
+$L$xts_dec_6::
+       pxor    xmm3,xmm11
+       lea     r12,QWORD PTR[96+r12]
+       pxor    xmm4,xmm12
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm5,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm3,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       pxor    xmm1,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       pxor    xmm6,XMMWORD PTR[80+rsp]
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       movdqu  XMMWORD PTR[80+r13],xmm6
+       lea     r13,QWORD PTR[96+r13]
+
+       movdqa  xmm6,XMMWORD PTR[96+rsp]
+       jmp     $L$xts_dec_done
+ALIGN  16
+$L$xts_dec_5::
+       pxor    xmm2,xmm10
+       lea     r12,QWORD PTR[80+r12]
+       pxor    xmm3,xmm11
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm5,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm3,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       pxor    xmm1,XMMWORD PTR[64+rsp]
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       movdqu  XMMWORD PTR[64+r13],xmm1
+       lea     r13,QWORD PTR[80+r13]
+
+       movdqa  xmm6,XMMWORD PTR[80+rsp]
+       jmp     $L$xts_dec_done
+ALIGN  16
+$L$xts_dec_4::
+       pxor    xmm1,xmm9
+       lea     r12,QWORD PTR[64+r12]
+       pxor    xmm2,xmm10
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm5,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       pxor    xmm3,XMMWORD PTR[48+rsp]
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       movdqu  XMMWORD PTR[48+r13],xmm3
+       lea     r13,QWORD PTR[64+r13]
+
+       movdqa  xmm6,XMMWORD PTR[64+rsp]
+       jmp     $L$xts_dec_done
+ALIGN  16
+$L$xts_dec_3::
+       pxor    xmm0,xmm8
+       lea     r12,QWORD PTR[48+r12]
+       pxor    xmm1,xmm9
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       pxor    xmm5,XMMWORD PTR[32+rsp]
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       movdqu  XMMWORD PTR[32+r13],xmm5
+       lea     r13,QWORD PTR[48+r13]
+
+       movdqa  xmm6,XMMWORD PTR[48+rsp]
+       jmp     $L$xts_dec_done
+ALIGN  16
+$L$xts_dec_2::
+       pxor    xmm15,xmm7
+       lea     r12,QWORD PTR[32+r12]
+       pxor    xmm0,xmm8
+       lea     rax,QWORD PTR[128+rsp]
+       mov     r10d,edx
+
+       call    _bsaes_decrypt8
+
+       pxor    xmm15,XMMWORD PTR[rsp]
+       pxor    xmm0,XMMWORD PTR[16+rsp]
+       movdqu  XMMWORD PTR[r13],xmm15
+       movdqu  XMMWORD PTR[16+r13],xmm0
+       lea     r13,QWORD PTR[32+r13]
+
+       movdqa  xmm6,XMMWORD PTR[32+rsp]
+       jmp     $L$xts_dec_done
+ALIGN  16
+$L$xts_dec_1::
+       pxor    xmm7,xmm15
+       lea     r12,QWORD PTR[16+r12]
+       movdqa  XMMWORD PTR[32+rbp],xmm7
+       lea     rcx,QWORD PTR[32+rbp]
+       lea     rdx,QWORD PTR[32+rbp]
+       lea     r8,QWORD PTR[r15]
+       call    asm_AES_decrypt
+
+       pxor    xmm15,XMMWORD PTR[32+rbp]
+
+
+
+
+
+       movdqu  XMMWORD PTR[r13],xmm15
+       lea     r13,QWORD PTR[16+r13]
+
+       movdqa  xmm6,XMMWORD PTR[16+rsp]
+
+$L$xts_dec_done::
+       and     ebx,15
+       jz      $L$xts_dec_ret
+
+       pxor    xmm14,xmm14
+       movdqa  xmm12,XMMWORD PTR[$L$xts_magic]
+       pcmpgtd xmm14,xmm6
+       pshufd  xmm13,xmm14,013h
+       movdqa  xmm5,xmm6
+       paddq   xmm6,xmm6
+       pand    xmm13,xmm12
+       movdqu  xmm15,XMMWORD PTR[r12]
+       pxor    xmm6,xmm13
+
+       lea     rcx,QWORD PTR[32+rbp]
+       pxor    xmm15,xmm6
+       lea     rdx,QWORD PTR[32+rbp]
+       movdqa  XMMWORD PTR[32+rbp],xmm15
+       lea     r8,QWORD PTR[r15]
+       call    asm_AES_decrypt
+
+       pxor    xmm6,XMMWORD PTR[32+rbp]
+       mov     rdx,r13
+       movdqu  XMMWORD PTR[r13],xmm6
+
+$L$xts_dec_steal::
+       movzx   eax,BYTE PTR[16+r12]
+       movzx   ecx,BYTE PTR[rdx]
+       lea     r12,QWORD PTR[1+r12]
+       mov     BYTE PTR[rdx],al
+       mov     BYTE PTR[16+rdx],cl
+       lea     rdx,QWORD PTR[1+rdx]
+       sub     ebx,1
+       jnz     $L$xts_dec_steal
+
+       movdqu  xmm15,XMMWORD PTR[r13]
+       lea     rcx,QWORD PTR[32+rbp]
+       pxor    xmm15,xmm5
+       lea     rdx,QWORD PTR[32+rbp]
+       movdqa  XMMWORD PTR[32+rbp],xmm15
+       lea     r8,QWORD PTR[r15]
+       call    asm_AES_decrypt
+
+       pxor    xmm5,XMMWORD PTR[32+rbp]
+       movdqu  XMMWORD PTR[r13],xmm5
+
+$L$xts_dec_ret::
+       lea     rax,QWORD PTR[rsp]
+       pxor    xmm0,xmm0
+$L$xts_dec_bzero::
+       movdqa  XMMWORD PTR[rax],xmm0
+       movdqa  XMMWORD PTR[16+rax],xmm0
+       lea     rax,QWORD PTR[32+rax]
+       cmp     rbp,rax
+       ja      $L$xts_dec_bzero
+
+       lea     rsp,QWORD PTR[rbp]
+       movaps  xmm6,XMMWORD PTR[64+rbp]
+       movaps  xmm7,XMMWORD PTR[80+rbp]
+       movaps  xmm8,XMMWORD PTR[96+rbp]
+       movaps  xmm9,XMMWORD PTR[112+rbp]
+       movaps  xmm10,XMMWORD PTR[128+rbp]
+       movaps  xmm11,XMMWORD PTR[144+rbp]
+       movaps  xmm12,XMMWORD PTR[160+rbp]
+       movaps  xmm13,XMMWORD PTR[176+rbp]
+       movaps  xmm14,XMMWORD PTR[192+rbp]
+       movaps  xmm15,XMMWORD PTR[208+rbp]
+       lea     rsp,QWORD PTR[160+rbp]
+       mov     r15,QWORD PTR[72+rsp]
+       mov     r14,QWORD PTR[80+rsp]
+       mov     r13,QWORD PTR[88+rsp]
+       mov     r12,QWORD PTR[96+rsp]
+       mov     rbx,QWORD PTR[104+rsp]
+       mov     rax,QWORD PTR[112+rsp]
+       lea     rsp,QWORD PTR[120+rsp]
+       mov     rbp,rax
+$L$xts_dec_epilogue::
+       DB      0F3h,0C3h               ;repret
+bsaes_xts_decrypt      ENDP
+
+ALIGN  64
+_bsaes_const::
+$L$M0ISR::
+       DQ      00a0e0206070b0f03h,00004080c0d010509h
+$L$ISRM0::
+       DQ      001040b0e0205080fh,00306090c00070a0dh
+$L$ISR::
+       DQ      00504070602010003h,00f0e0d0c080b0a09h
+$L$BS0::
+       DQ      05555555555555555h,05555555555555555h
+$L$BS1::
+       DQ      03333333333333333h,03333333333333333h
+$L$BS2::
+       DQ      00f0f0f0f0f0f0f0fh,00f0f0f0f0f0f0f0fh
+$L$SR::
+       DQ      00504070600030201h,00f0e0d0c0a09080bh
+$L$SRM0::
+       DQ      00304090e00050a0fh,001060b0c0207080dh
+$L$M0SR::
+       DQ      00a0e02060f03070bh,00004080c05090d01h
+$L$SWPUP::
+       DQ      00706050403020100h,00c0d0e0f0b0a0908h
+$L$SWPUPM0SR::
+       DQ      00a0d02060c03070bh,00004080f05090e01h
+$L$ADD1::
+       DQ      00000000000000000h,00000000100000000h
+$L$ADD2::
+       DQ      00000000000000000h,00000000200000000h
+$L$ADD3::
+       DQ      00000000000000000h,00000000300000000h
+$L$ADD4::
+       DQ      00000000000000000h,00000000400000000h
+$L$ADD5::
+       DQ      00000000000000000h,00000000500000000h
+$L$ADD6::
+       DQ      00000000000000000h,00000000600000000h
+$L$ADD7::
+       DQ      00000000000000000h,00000000700000000h
+$L$ADD8::
+       DQ      00000000000000000h,00000000800000000h
+$L$xts_magic::
+       DD      087h,0,1,0
+$L$masks::
+       DQ      00101010101010101h,00101010101010101h
+       DQ      00202020202020202h,00202020202020202h
+       DQ      00404040404040404h,00404040404040404h
+       DQ      00808080808080808h,00808080808080808h
+$L$M0::
+       DQ      002060a0e03070b0fh,00004080c0105090dh
+$L$63::
+       DQ      06363636363636363h,06363636363636363h
+DB     66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102
+DB     111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44
+DB     32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44
+DB     32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32
+DB     65,110,100,121,32,80,111,108,121,97,107,111,118,0
+ALIGN  64
+
+EXTERN __imp_RtlVirtualUnwind:NEAR
+
+ALIGN  16
+se_handler     PROC PRIVATE
+       push    rsi
+       push    rdi
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       pushfq
+       sub     rsp,64
+
+       mov     rax,QWORD PTR[120+r8]
+       mov     rbx,QWORD PTR[248+r8]
+
+       mov     rsi,QWORD PTR[8+r9]
+       mov     r11,QWORD PTR[56+r9]
+
+       mov     r10d,DWORD PTR[r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jb      $L$in_prologue
+
+       mov     rax,QWORD PTR[152+r8]
+
+       mov     r10d,DWORD PTR[4+r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jae     $L$in_prologue
+
+       mov     rax,QWORD PTR[160+r8]
+
+       lea     rsi,QWORD PTR[64+rax]
+       lea     rdi,QWORD PTR[512+r8]
+       mov     ecx,20
+       DD      0a548f3fch
+
+       lea     rax,QWORD PTR[160+rax]
+
+       mov     rbp,QWORD PTR[112+rax]
+       mov     rbx,QWORD PTR[104+rax]
+       mov     r12,QWORD PTR[96+rax]
+       mov     r13,QWORD PTR[88+rax]
+       mov     r14,QWORD PTR[80+rax]
+       mov     r15,QWORD PTR[72+rax]
+       lea     rax,QWORD PTR[120+rax]
+       mov     QWORD PTR[144+r8],rbx
+       mov     QWORD PTR[160+r8],rbp
+       mov     QWORD PTR[216+r8],r12
+       mov     QWORD PTR[224+r8],r13
+       mov     QWORD PTR[232+r8],r14
+       mov     QWORD PTR[240+r8],r15
+
+$L$in_prologue::
+       mov     QWORD PTR[152+r8],rax
+
+       mov     rdi,QWORD PTR[40+r9]
+       mov     rsi,r8
+       mov     ecx,154
+       DD      0a548f3fch
+
+
+       mov     rsi,r9
+       xor     rcx,rcx
+       mov     rdx,QWORD PTR[8+rsi]
+       mov     r8,QWORD PTR[rsi]
+       mov     r9,QWORD PTR[16+rsi]
+       mov     r10,QWORD PTR[40+rsi]
+       lea     r11,QWORD PTR[56+rsi]
+       lea     r12,QWORD PTR[24+rsi]
+       mov     QWORD PTR[32+rsp],r10
+       mov     QWORD PTR[40+rsp],r11
+       mov     QWORD PTR[48+rsp],r12
+       mov     QWORD PTR[56+rsp],rcx
+       call    QWORD PTR[__imp_RtlVirtualUnwind]
+
+       mov     eax,1
+       add     rsp,64
+       popfq
+       pop     r15
+       pop     r14
+       pop     r13
+       pop     r12
+       pop     rbp
+       pop     rbx
+       pop     rdi
+       pop     rsi
+       DB      0F3h,0C3h               ;repret
+se_handler     ENDP
+
+.text$ ENDS
+.pdata SEGMENT READONLY ALIGN(4)
+ALIGN  4
+       DD      imagerel $L$cbc_dec_prologue
+       DD      imagerel $L$cbc_dec_epilogue
+       DD      imagerel $L$cbc_dec_info
+
+       DD      imagerel $L$ctr_enc_prologue
+       DD      imagerel $L$ctr_enc_epilogue
+       DD      imagerel $L$ctr_enc_info
+
+       DD      imagerel $L$xts_enc_prologue
+       DD      imagerel $L$xts_enc_epilogue
+       DD      imagerel $L$xts_enc_info
+
+       DD      imagerel $L$xts_dec_prologue
+       DD      imagerel $L$xts_dec_epilogue
+       DD      imagerel $L$xts_dec_info
+
+.pdata ENDS
+.xdata SEGMENT READONLY ALIGN(8)
+ALIGN  8
+$L$cbc_dec_info::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$cbc_dec_body,imagerel $L$cbc_dec_epilogue
+
+$L$ctr_enc_info::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$ctr_enc_body,imagerel $L$ctr_enc_epilogue
+
+$L$xts_enc_info::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue
+
+$L$xts_dec_info::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue
+
+
+.xdata ENDS
+END
diff --git a/deps/openssl/asm/x64-win32-masm/aes/vpaes-x86_64.asm b/deps/openssl/asm/x64-win32-masm/aes/vpaes-x86_64.asm
new file mode 100644 (file)
index 0000000..d904c80
--- /dev/null
@@ -0,0 +1,1161 @@
+OPTION DOTNAME
+.text$ SEGMENT ALIGN(64) 'CODE'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_encrypt_core    PROC PRIVATE
+       mov     r9,rdx
+       mov     r11,16
+       mov     eax,DWORD PTR[240+rdx]
+       movdqa  xmm1,xmm9
+       movdqa  xmm2,XMMWORD PTR[$L$k_ipt]
+       pandn   xmm1,xmm0
+       movdqu  xmm5,XMMWORD PTR[r9]
+       psrld   xmm1,4
+       pand    xmm0,xmm9
+DB     102,15,56,0,208
+       movdqa  xmm0,XMMWORD PTR[(($L$k_ipt+16))]
+DB     102,15,56,0,193
+       pxor    xmm2,xmm5
+       pxor    xmm0,xmm2
+       add     r9,16
+       lea     r10,QWORD PTR[$L$k_mc_backward]
+       jmp     $L$enc_entry
+
+ALIGN  16
+$L$enc_loop::
+
+       movdqa  xmm4,xmm13
+DB     102,15,56,0,226
+       pxor    xmm4,xmm5
+       movdqa  xmm0,xmm12
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+       movdqa  xmm5,xmm15
+DB     102,15,56,0,234
+       movdqa  xmm1,XMMWORD PTR[((-64))+r10*1+r11]
+       movdqa  xmm2,xmm14
+DB     102,15,56,0,211
+       pxor    xmm2,xmm5
+       movdqa  xmm4,XMMWORD PTR[r10*1+r11]
+       movdqa  xmm3,xmm0
+DB     102,15,56,0,193
+       add     r9,16
+       pxor    xmm0,xmm2
+DB     102,15,56,0,220
+       add     r11,16
+       pxor    xmm3,xmm0
+DB     102,15,56,0,193
+       and     r11,030h
+       pxor    xmm0,xmm3
+       sub     rax,1
+
+$L$enc_entry::
+
+       movdqa  xmm1,xmm9
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm9
+       movdqa  xmm5,xmm11
+DB     102,15,56,0,232
+       pxor    xmm0,xmm1
+       movdqa  xmm3,xmm10
+DB     102,15,56,0,217
+       pxor    xmm3,xmm5
+       movdqa  xmm4,xmm10
+DB     102,15,56,0,224
+       pxor    xmm4,xmm5
+       movdqa  xmm2,xmm10
+DB     102,15,56,0,211
+       pxor    xmm2,xmm0
+       movdqa  xmm3,xmm10
+       movdqu  xmm5,XMMWORD PTR[r9]
+DB     102,15,56,0,220
+       pxor    xmm3,xmm1
+       jnz     $L$enc_loop
+
+
+       movdqa  xmm4,XMMWORD PTR[((-96))+r10]
+       movdqa  xmm0,XMMWORD PTR[((-80))+r10]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm5
+DB     102,15,56,0,195
+       movdqa  xmm1,XMMWORD PTR[64+r10*1+r11]
+       pxor    xmm0,xmm4
+DB     102,15,56,0,193
+       DB      0F3h,0C3h               ;repret
+_vpaes_encrypt_core    ENDP
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_decrypt_core    PROC PRIVATE
+       mov     r9,rdx
+       mov     eax,DWORD PTR[240+rdx]
+       movdqa  xmm1,xmm9
+       movdqa  xmm2,XMMWORD PTR[$L$k_dipt]
+       pandn   xmm1,xmm0
+       mov     r11,rax
+       psrld   xmm1,4
+       movdqu  xmm5,XMMWORD PTR[r9]
+       shl     r11,4
+       pand    xmm0,xmm9
+DB     102,15,56,0,208
+       movdqa  xmm0,XMMWORD PTR[(($L$k_dipt+16))]
+       xor     r11,030h
+       lea     r10,QWORD PTR[$L$k_dsbd]
+DB     102,15,56,0,193
+       and     r11,030h
+       pxor    xmm2,xmm5
+       movdqa  xmm5,XMMWORD PTR[(($L$k_mc_forward+48))]
+       pxor    xmm0,xmm2
+       add     r9,16
+       add     r11,r10
+       jmp     $L$dec_entry
+
+ALIGN  16
+$L$dec_loop::
+
+
+
+       movdqa  xmm4,XMMWORD PTR[((-32))+r10]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR[((-16))+r10]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+       add     r9,16
+
+DB     102,15,56,0,197
+       movdqa  xmm4,XMMWORD PTR[r10]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR[16+r10]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+       sub     rax,1
+
+DB     102,15,56,0,197
+       movdqa  xmm4,XMMWORD PTR[32+r10]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR[48+r10]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+
+DB     102,15,56,0,197
+       movdqa  xmm4,XMMWORD PTR[64+r10]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR[80+r10]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+
+DB     102,15,58,15,237,12
+
+$L$dec_entry::
+
+       movdqa  xmm1,xmm9
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm9
+       movdqa  xmm2,xmm11
+DB     102,15,56,0,208
+       pxor    xmm0,xmm1
+       movdqa  xmm3,xmm10
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+       movdqa  xmm4,xmm10
+DB     102,15,56,0,224
+       pxor    xmm4,xmm2
+       movdqa  xmm2,xmm10
+DB     102,15,56,0,211
+       pxor    xmm2,xmm0
+       movdqa  xmm3,xmm10
+DB     102,15,56,0,220
+       pxor    xmm3,xmm1
+       movdqu  xmm0,XMMWORD PTR[r9]
+       jnz     $L$dec_loop
+
+
+       movdqa  xmm4,XMMWORD PTR[96+r10]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR[112+r10]
+       movdqa  xmm2,XMMWORD PTR[((-352))+r11]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+DB     102,15,56,0,194
+       DB      0F3h,0C3h               ;repret
+_vpaes_decrypt_core    ENDP
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_schedule_core   PROC PRIVATE
+
+
+
+
+
+       call    _vpaes_preheat
+
+       movdqa  xmm8,XMMWORD PTR[$L$k_rcon]
+       movdqu  xmm0,XMMWORD PTR[rdi]
+
+
+       movdqa  xmm3,xmm0
+       lea     r11,QWORD PTR[$L$k_ipt]
+       call    _vpaes_schedule_transform
+       movdqa  xmm7,xmm0
+
+       lea     r10,QWORD PTR[$L$k_sr]
+       test    rcx,rcx
+       jnz     $L$schedule_am_decrypting
+
+
+       movdqu  XMMWORD PTR[rdx],xmm0
+       jmp     $L$schedule_go
+
+$L$schedule_am_decrypting::
+
+       movdqa  xmm1,XMMWORD PTR[r10*1+r8]
+DB     102,15,56,0,217
+       movdqu  XMMWORD PTR[rdx],xmm3
+       xor     r8,030h
+
+$L$schedule_go::
+       cmp     esi,192
+       ja      $L$schedule_256
+       je      $L$schedule_192
+
+
+
+
+
+
+
+
+
+
+$L$schedule_128::
+       mov     esi,10
+
+$L$oop_schedule_128::
+       call    _vpaes_schedule_round
+       dec     rsi
+       jz      $L$schedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+       jmp     $L$oop_schedule_128
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+$L$schedule_192::
+       movdqu  xmm0,XMMWORD PTR[8+rdi]
+       call    _vpaes_schedule_transform
+
+       movdqa  xmm6,xmm0
+       pxor    xmm4,xmm4
+       movhlps xmm6,xmm4
+       mov     esi,4
+
+$L$oop_schedule_192::
+       call    _vpaes_schedule_round
+DB     102,15,58,15,198,8
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_192_smear
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_round
+       dec     rsi
+       jz      $L$schedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+       call    _vpaes_schedule_192_smear
+       jmp     $L$oop_schedule_192
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+$L$schedule_256::
+       movdqu  xmm0,XMMWORD PTR[16+rdi]
+       call    _vpaes_schedule_transform
+
+       mov     esi,7
+
+$L$oop_schedule_256::
+       call    _vpaes_schedule_mangle
+
+       movdqa  xmm6,xmm0
+
+
+       call    _vpaes_schedule_round
+       dec     rsi
+       jz      $L$schedule_mangle_last
+       call    _vpaes_schedule_mangle
+
+
+
+       pshufd  xmm0,xmm0,0FFh
+       movdqa  xmm5,xmm7
+       movdqa  xmm7,xmm6
+       call    _vpaes_schedule_low_round
+       movdqa  xmm7,xmm5
+
+       jmp     $L$oop_schedule_256
+
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+$L$schedule_mangle_last::
+
+       lea     r11,QWORD PTR[$L$k_deskew]
+       test    rcx,rcx
+       jnz     $L$schedule_mangle_last_dec
+
+
+       movdqa  xmm1,XMMWORD PTR[r10*1+r8]
+DB     102,15,56,0,193
+       lea     r11,QWORD PTR[$L$k_opt]
+       add     rdx,32
+
+$L$schedule_mangle_last_dec::
+       add     rdx,-16
+       pxor    xmm0,XMMWORD PTR[$L$k_s63]
+       call    _vpaes_schedule_transform
+
+       movdqu  XMMWORD PTR[rdx],xmm0
+
+
+       pxor    xmm0,xmm0
+       pxor    xmm1,xmm1
+       pxor    xmm2,xmm2
+       pxor    xmm3,xmm3
+       pxor    xmm4,xmm4
+       pxor    xmm5,xmm5
+       pxor    xmm6,xmm6
+       pxor    xmm7,xmm7
+       DB      0F3h,0C3h               ;repret
+_vpaes_schedule_core   ENDP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_schedule_192_smear      PROC PRIVATE
+       pshufd  xmm0,xmm6,080h
+       pxor    xmm6,xmm0
+       pshufd  xmm0,xmm7,0FEh
+       pxor    xmm6,xmm0
+       movdqa  xmm0,xmm6
+       pxor    xmm1,xmm1
+       movhlps xmm6,xmm1
+       DB      0F3h,0C3h               ;repret
+_vpaes_schedule_192_smear      ENDP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_schedule_round  PROC PRIVATE
+
+       pxor    xmm1,xmm1
+DB     102,65,15,58,15,200,15
+DB     102,69,15,58,15,192,15
+       pxor    xmm7,xmm1
+
+
+       pshufd  xmm0,xmm0,0FFh
+DB     102,15,58,15,192,1
+
+
+
+
+_vpaes_schedule_low_round::
+
+       movdqa  xmm1,xmm7
+       pslldq  xmm7,4
+       pxor    xmm7,xmm1
+       movdqa  xmm1,xmm7
+       pslldq  xmm7,8
+       pxor    xmm7,xmm1
+       pxor    xmm7,XMMWORD PTR[$L$k_s63]
+
+
+       movdqa  xmm1,xmm9
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm9
+       movdqa  xmm2,xmm11
+DB     102,15,56,0,208
+       pxor    xmm0,xmm1
+       movdqa  xmm3,xmm10
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+       movdqa  xmm4,xmm10
+DB     102,15,56,0,224
+       pxor    xmm4,xmm2
+       movdqa  xmm2,xmm10
+DB     102,15,56,0,211
+       pxor    xmm2,xmm0
+       movdqa  xmm3,xmm10
+DB     102,15,56,0,220
+       pxor    xmm3,xmm1
+       movdqa  xmm4,xmm13
+DB     102,15,56,0,226
+       movdqa  xmm0,xmm12
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+
+
+       pxor    xmm0,xmm7
+       movdqa  xmm7,xmm0
+       DB      0F3h,0C3h               ;repret
+_vpaes_schedule_round  ENDP
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_schedule_transform      PROC PRIVATE
+       movdqa  xmm1,xmm9
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm9
+       movdqa  xmm2,XMMWORD PTR[r11]
+DB     102,15,56,0,208
+       movdqa  xmm0,XMMWORD PTR[16+r11]
+DB     102,15,56,0,193
+       pxor    xmm0,xmm2
+       DB      0F3h,0C3h               ;repret
+_vpaes_schedule_transform      ENDP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_schedule_mangle PROC PRIVATE
+       movdqa  xmm4,xmm0
+       movdqa  xmm5,XMMWORD PTR[$L$k_mc_forward]
+       test    rcx,rcx
+       jnz     $L$schedule_mangle_dec
+
+
+       add     rdx,16
+       pxor    xmm4,XMMWORD PTR[$L$k_s63]
+DB     102,15,56,0,229
+       movdqa  xmm3,xmm4
+DB     102,15,56,0,229
+       pxor    xmm3,xmm4
+DB     102,15,56,0,229
+       pxor    xmm3,xmm4
+
+       jmp     $L$schedule_mangle_both
+ALIGN  16
+$L$schedule_mangle_dec::
+
+       lea     r11,QWORD PTR[$L$k_dksd]
+       movdqa  xmm1,xmm9
+       pandn   xmm1,xmm4
+       psrld   xmm1,4
+       pand    xmm4,xmm9
+
+       movdqa  xmm2,XMMWORD PTR[r11]
+DB     102,15,56,0,212
+       movdqa  xmm3,XMMWORD PTR[16+r11]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+DB     102,15,56,0,221
+
+       movdqa  xmm2,XMMWORD PTR[32+r11]
+DB     102,15,56,0,212
+       pxor    xmm2,xmm3
+       movdqa  xmm3,XMMWORD PTR[48+r11]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+DB     102,15,56,0,221
+
+       movdqa  xmm2,XMMWORD PTR[64+r11]
+DB     102,15,56,0,212
+       pxor    xmm2,xmm3
+       movdqa  xmm3,XMMWORD PTR[80+r11]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+DB     102,15,56,0,221
+
+       movdqa  xmm2,XMMWORD PTR[96+r11]
+DB     102,15,56,0,212
+       pxor    xmm2,xmm3
+       movdqa  xmm3,XMMWORD PTR[112+r11]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+
+       add     rdx,-16
+
+$L$schedule_mangle_both::
+       movdqa  xmm1,XMMWORD PTR[r10*1+r8]
+DB     102,15,56,0,217
+       add     r8,-16
+       and     r8,030h
+       movdqu  XMMWORD PTR[rdx],xmm3
+       DB      0F3h,0C3h               ;repret
+_vpaes_schedule_mangle ENDP
+
+
+
+
+PUBLIC vpaes_set_encrypt_key
+
+ALIGN  16
+vpaes_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_vpaes_set_encrypt_key::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+
+
+       lea     rsp,QWORD PTR[((-184))+rsp]
+       movaps  XMMWORD PTR[16+rsp],xmm6
+       movaps  XMMWORD PTR[32+rsp],xmm7
+       movaps  XMMWORD PTR[48+rsp],xmm8
+       movaps  XMMWORD PTR[64+rsp],xmm9
+       movaps  XMMWORD PTR[80+rsp],xmm10
+       movaps  XMMWORD PTR[96+rsp],xmm11
+       movaps  XMMWORD PTR[112+rsp],xmm12
+       movaps  XMMWORD PTR[128+rsp],xmm13
+       movaps  XMMWORD PTR[144+rsp],xmm14
+       movaps  XMMWORD PTR[160+rsp],xmm15
+$L$enc_key_body::
+       mov     eax,esi
+       shr     eax,5
+       add     eax,5
+       mov     DWORD PTR[240+rdx],eax
+
+       mov     ecx,0
+       mov     r8d,030h
+       call    _vpaes_schedule_core
+       movaps  xmm6,XMMWORD PTR[16+rsp]
+       movaps  xmm7,XMMWORD PTR[32+rsp]
+       movaps  xmm8,XMMWORD PTR[48+rsp]
+       movaps  xmm9,XMMWORD PTR[64+rsp]
+       movaps  xmm10,XMMWORD PTR[80+rsp]
+       movaps  xmm11,XMMWORD PTR[96+rsp]
+       movaps  xmm12,XMMWORD PTR[112+rsp]
+       movaps  xmm13,XMMWORD PTR[128+rsp]
+       movaps  xmm14,XMMWORD PTR[144+rsp]
+       movaps  xmm15,XMMWORD PTR[160+rsp]
+       lea     rsp,QWORD PTR[184+rsp]
+$L$enc_key_epilogue::
+       xor     eax,eax
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_vpaes_set_encrypt_key::
+vpaes_set_encrypt_key  ENDP
+
+PUBLIC vpaes_set_decrypt_key
+
+ALIGN  16
+vpaes_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_vpaes_set_decrypt_key::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+
+
+       lea     rsp,QWORD PTR[((-184))+rsp]
+       movaps  XMMWORD PTR[16+rsp],xmm6
+       movaps  XMMWORD PTR[32+rsp],xmm7
+       movaps  XMMWORD PTR[48+rsp],xmm8
+       movaps  XMMWORD PTR[64+rsp],xmm9
+       movaps  XMMWORD PTR[80+rsp],xmm10
+       movaps  XMMWORD PTR[96+rsp],xmm11
+       movaps  XMMWORD PTR[112+rsp],xmm12
+       movaps  XMMWORD PTR[128+rsp],xmm13
+       movaps  XMMWORD PTR[144+rsp],xmm14
+       movaps  XMMWORD PTR[160+rsp],xmm15
+$L$dec_key_body::
+       mov     eax,esi
+       shr     eax,5
+       add     eax,5
+       mov     DWORD PTR[240+rdx],eax
+       shl     eax,4
+       lea     rdx,QWORD PTR[16+rax*1+rdx]
+
+       mov     ecx,1
+       mov     r8d,esi
+       shr     r8d,1
+       and     r8d,32
+       xor     r8d,32
+       call    _vpaes_schedule_core
+       movaps  xmm6,XMMWORD PTR[16+rsp]
+       movaps  xmm7,XMMWORD PTR[32+rsp]
+       movaps  xmm8,XMMWORD PTR[48+rsp]
+       movaps  xmm9,XMMWORD PTR[64+rsp]
+       movaps  xmm10,XMMWORD PTR[80+rsp]
+       movaps  xmm11,XMMWORD PTR[96+rsp]
+       movaps  xmm12,XMMWORD PTR[112+rsp]
+       movaps  xmm13,XMMWORD PTR[128+rsp]
+       movaps  xmm14,XMMWORD PTR[144+rsp]
+       movaps  xmm15,XMMWORD PTR[160+rsp]
+       lea     rsp,QWORD PTR[184+rsp]
+$L$dec_key_epilogue::
+       xor     eax,eax
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_vpaes_set_decrypt_key::
+vpaes_set_decrypt_key  ENDP
+
+PUBLIC vpaes_encrypt
+
+ALIGN  16
+vpaes_encrypt  PROC PUBLIC
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_vpaes_encrypt::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+
+
+       lea     rsp,QWORD PTR[((-184))+rsp]
+       movaps  XMMWORD PTR[16+rsp],xmm6
+       movaps  XMMWORD PTR[32+rsp],xmm7
+       movaps  XMMWORD PTR[48+rsp],xmm8
+       movaps  XMMWORD PTR[64+rsp],xmm9
+       movaps  XMMWORD PTR[80+rsp],xmm10
+       movaps  XMMWORD PTR[96+rsp],xmm11
+       movaps  XMMWORD PTR[112+rsp],xmm12
+       movaps  XMMWORD PTR[128+rsp],xmm13
+       movaps  XMMWORD PTR[144+rsp],xmm14
+       movaps  XMMWORD PTR[160+rsp],xmm15
+$L$enc_body::
+       movdqu  xmm0,XMMWORD PTR[rdi]
+       call    _vpaes_preheat
+       call    _vpaes_encrypt_core
+       movdqu  XMMWORD PTR[rsi],xmm0
+       movaps  xmm6,XMMWORD PTR[16+rsp]
+       movaps  xmm7,XMMWORD PTR[32+rsp]
+       movaps  xmm8,XMMWORD PTR[48+rsp]
+       movaps  xmm9,XMMWORD PTR[64+rsp]
+       movaps  xmm10,XMMWORD PTR[80+rsp]
+       movaps  xmm11,XMMWORD PTR[96+rsp]
+       movaps  xmm12,XMMWORD PTR[112+rsp]
+       movaps  xmm13,XMMWORD PTR[128+rsp]
+       movaps  xmm14,XMMWORD PTR[144+rsp]
+       movaps  xmm15,XMMWORD PTR[160+rsp]
+       lea     rsp,QWORD PTR[184+rsp]
+$L$enc_epilogue::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_vpaes_encrypt::
+vpaes_encrypt  ENDP
+
+PUBLIC vpaes_decrypt
+
+ALIGN  16
+vpaes_decrypt  PROC PUBLIC
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_vpaes_decrypt::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+
+
+       lea     rsp,QWORD PTR[((-184))+rsp]
+       movaps  XMMWORD PTR[16+rsp],xmm6
+       movaps  XMMWORD PTR[32+rsp],xmm7
+       movaps  XMMWORD PTR[48+rsp],xmm8
+       movaps  XMMWORD PTR[64+rsp],xmm9
+       movaps  XMMWORD PTR[80+rsp],xmm10
+       movaps  XMMWORD PTR[96+rsp],xmm11
+       movaps  XMMWORD PTR[112+rsp],xmm12
+       movaps  XMMWORD PTR[128+rsp],xmm13
+       movaps  XMMWORD PTR[144+rsp],xmm14
+       movaps  XMMWORD PTR[160+rsp],xmm15
+$L$dec_body::
+       movdqu  xmm0,XMMWORD PTR[rdi]
+       call    _vpaes_preheat
+       call    _vpaes_decrypt_core
+       movdqu  XMMWORD PTR[rsi],xmm0
+       movaps  xmm6,XMMWORD PTR[16+rsp]
+       movaps  xmm7,XMMWORD PTR[32+rsp]
+       movaps  xmm8,XMMWORD PTR[48+rsp]
+       movaps  xmm9,XMMWORD PTR[64+rsp]
+       movaps  xmm10,XMMWORD PTR[80+rsp]
+       movaps  xmm11,XMMWORD PTR[96+rsp]
+       movaps  xmm12,XMMWORD PTR[112+rsp]
+       movaps  xmm13,XMMWORD PTR[128+rsp]
+       movaps  xmm14,XMMWORD PTR[144+rsp]
+       movaps  xmm15,XMMWORD PTR[160+rsp]
+       lea     rsp,QWORD PTR[184+rsp]
+$L$dec_epilogue::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_vpaes_decrypt::
+vpaes_decrypt  ENDP
+PUBLIC vpaes_cbc_encrypt
+
+ALIGN  16
+vpaes_cbc_encrypt      PROC PUBLIC
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_vpaes_cbc_encrypt::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+       mov     rcx,r9
+       mov     r8,QWORD PTR[40+rsp]
+       mov     r9,QWORD PTR[48+rsp]
+
+
+       xchg    rdx,rcx
+       sub     rcx,16
+       jc      $L$cbc_abort
+       lea     rsp,QWORD PTR[((-184))+rsp]
+       movaps  XMMWORD PTR[16+rsp],xmm6
+       movaps  XMMWORD PTR[32+rsp],xmm7
+       movaps  XMMWORD PTR[48+rsp],xmm8
+       movaps  XMMWORD PTR[64+rsp],xmm9
+       movaps  XMMWORD PTR[80+rsp],xmm10
+       movaps  XMMWORD PTR[96+rsp],xmm11
+       movaps  XMMWORD PTR[112+rsp],xmm12
+       movaps  XMMWORD PTR[128+rsp],xmm13
+       movaps  XMMWORD PTR[144+rsp],xmm14
+       movaps  XMMWORD PTR[160+rsp],xmm15
+$L$cbc_body::
+       movdqu  xmm6,XMMWORD PTR[r8]
+       sub     rsi,rdi
+       call    _vpaes_preheat
+       cmp     r9d,0
+       je      $L$cbc_dec_loop
+       jmp     $L$cbc_enc_loop
+ALIGN  16
+$L$cbc_enc_loop::
+       movdqu  xmm0,XMMWORD PTR[rdi]
+       pxor    xmm0,xmm6
+       call    _vpaes_encrypt_core
+       movdqa  xmm6,xmm0
+       movdqu  XMMWORD PTR[rdi*1+rsi],xmm0
+       lea     rdi,QWORD PTR[16+rdi]
+       sub     rcx,16
+       jnc     $L$cbc_enc_loop
+       jmp     $L$cbc_done
+ALIGN  16
+$L$cbc_dec_loop::
+       movdqu  xmm0,XMMWORD PTR[rdi]
+       movdqa  xmm7,xmm0
+       call    _vpaes_decrypt_core
+       pxor    xmm0,xmm6
+       movdqa  xmm6,xmm7
+       movdqu  XMMWORD PTR[rdi*1+rsi],xmm0
+       lea     rdi,QWORD PTR[16+rdi]
+       sub     rcx,16
+       jnc     $L$cbc_dec_loop
+$L$cbc_done::
+       movdqu  XMMWORD PTR[r8],xmm6
+       movaps  xmm6,XMMWORD PTR[16+rsp]
+       movaps  xmm7,XMMWORD PTR[32+rsp]
+       movaps  xmm8,XMMWORD PTR[48+rsp]
+       movaps  xmm9,XMMWORD PTR[64+rsp]
+       movaps  xmm10,XMMWORD PTR[80+rsp]
+       movaps  xmm11,XMMWORD PTR[96+rsp]
+       movaps  xmm12,XMMWORD PTR[112+rsp]
+       movaps  xmm13,XMMWORD PTR[128+rsp]
+       movaps  xmm14,XMMWORD PTR[144+rsp]
+       movaps  xmm15,XMMWORD PTR[160+rsp]
+       lea     rsp,QWORD PTR[184+rsp]
+$L$cbc_epilogue::
+$L$cbc_abort::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_vpaes_cbc_encrypt::
+vpaes_cbc_encrypt      ENDP
+
+
+
+
+
+
+
+ALIGN  16
+_vpaes_preheat PROC PRIVATE
+       lea     r10,QWORD PTR[$L$k_s0F]
+       movdqa  xmm10,XMMWORD PTR[((-32))+r10]
+       movdqa  xmm11,XMMWORD PTR[((-16))+r10]
+       movdqa  xmm9,XMMWORD PTR[r10]
+       movdqa  xmm13,XMMWORD PTR[48+r10]
+       movdqa  xmm12,XMMWORD PTR[64+r10]
+       movdqa  xmm15,XMMWORD PTR[80+r10]
+       movdqa  xmm14,XMMWORD PTR[96+r10]
+       DB      0F3h,0C3h               ;repret
+_vpaes_preheat ENDP
+
+
+
+
+
+
+ALIGN  64
+_vpaes_consts::
+$L$k_inv::
+       DQ      00E05060F0D080180h,0040703090A0B0C02h
+       DQ      001040A060F0B0780h,0030D0E0C02050809h
+
+$L$k_s0F::
+       DQ      00F0F0F0F0F0F0F0Fh,00F0F0F0F0F0F0F0Fh
+
+$L$k_ipt::
+       DQ      0C2B2E8985A2A7000h,0CABAE09052227808h
+       DQ      04C01307D317C4D00h,0CD80B1FCB0FDCC81h
+
+$L$k_sb1::
+       DQ      0B19BE18FCB503E00h,0A5DF7A6E142AF544h
+       DQ      03618D415FAE22300h,03BF7CCC10D2ED9EFh
+$L$k_sb2::
+       DQ      0E27A93C60B712400h,05EB7E955BC982FCDh
+       DQ      069EB88400AE12900h,0C2A163C8AB82234Ah
+$L$k_sbo::
+       DQ      0D0D26D176FBDC700h,015AABF7AC502A878h
+       DQ      0CFE474A55FBB6A00h,08E1E90D1412B35FAh
+
+$L$k_mc_forward::
+       DQ      00407060500030201h,00C0F0E0D080B0A09h
+       DQ      0080B0A0904070605h,0000302010C0F0E0Dh
+       DQ      00C0F0E0D080B0A09h,00407060500030201h
+       DQ      0000302010C0F0E0Dh,0080B0A0904070605h
+
+$L$k_mc_backward::
+       DQ      00605040702010003h,00E0D0C0F0A09080Bh
+       DQ      0020100030E0D0C0Fh,00A09080B06050407h
+       DQ      00E0D0C0F0A09080Bh,00605040702010003h
+       DQ      00A09080B06050407h,0020100030E0D0C0Fh
+
+$L$k_sr::
+       DQ      00706050403020100h,00F0E0D0C0B0A0908h
+       DQ      0030E09040F0A0500h,00B06010C07020D08h
+       DQ      00F060D040B020900h,0070E050C030A0108h
+       DQ      00B0E0104070A0D00h,00306090C0F020508h
+
+$L$k_rcon::
+       DQ      01F8391B9AF9DEEB6h,0702A98084D7C7D81h
+
+$L$k_s63::
+       DQ      05B5B5B5B5B5B5B5Bh,05B5B5B5B5B5B5B5Bh
+
+$L$k_opt::
+       DQ      0FF9F4929D6B66000h,0F7974121DEBE6808h
+       DQ      001EDBD5150BCEC00h,0E10D5DB1B05C0CE0h
+
+$L$k_deskew::
+       DQ      007E4A34047A4E300h,01DFEB95A5DBEF91Ah
+       DQ      05F36B5DC83EA6900h,02841C2ABF49D1E77h
+
+
+
+
+
+$L$k_dksd::
+       DQ      0FEB91A5DA3E44700h,00740E3A45A1DBEF9h
+       DQ      041C277F4B5368300h,05FDC69EAAB289D1Eh
+$L$k_dksb::
+       DQ      09A4FCA1F8550D500h,003D653861CC94C99h
+       DQ      0115BEDA7B6FC4A00h,0D993256F7E3482C8h
+$L$k_dkse::
+       DQ      0D5031CCA1FC9D600h,053859A4C994F5086h
+       DQ      0A23196054FDC7BE8h,0CD5EF96A20B31487h
+$L$k_dks9::
+       DQ      0B6116FC87ED9A700h,04AED933482255BFCh
+       DQ      04576516227143300h,08BB89FACE9DAFDCEh
+
+
+
+
+
+$L$k_dipt::
+       DQ      00F505B040B545F00h,0154A411E114E451Ah
+       DQ      086E383E660056500h,012771772F491F194h
+
+$L$k_dsb9::
+       DQ      0851C03539A86D600h,0CAD51F504F994CC9h
+       DQ      0C03B1789ECD74900h,0725E2C9EB2FBA565h
+$L$k_dsbd::
+       DQ      07D57CCDFE6B1A200h,0F56E9B13882A4439h
+       DQ      03CE2FAF724C6CB00h,02931180D15DEEFD3h
+$L$k_dsbb::
+       DQ      0D022649296B44200h,0602646F6B0F2D404h
+       DQ      0C19498A6CD596700h,0F3FF0C3E3255AA6Bh
+$L$k_dsbe::
+       DQ      046F2929626D4D000h,02242600464B4F6B0h
+       DQ      00C55A6CDFFAAC100h,09467F36B98593E32h
+$L$k_dsbo::
+       DQ      01387EA537EF94000h,0C7AA6DB9D4943E2Dh
+       DQ      012D7560F93441D00h,0CA4B8159D8C58E9Ch
+DB     86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
+DB     111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54
+DB     52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97
+DB     109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32
+DB     85,110,105,118,101,114,115,105,116,121,41,0
+ALIGN  64
+
+EXTERN __imp_RtlVirtualUnwind:NEAR
+
+ALIGN  16
+se_handler     PROC PRIVATE
+       push    rsi
+       push    rdi
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       pushfq
+       sub     rsp,64
+
+       mov     rax,QWORD PTR[120+r8]
+       mov     rbx,QWORD PTR[248+r8]
+
+       mov     rsi,QWORD PTR[8+r9]
+       mov     r11,QWORD PTR[56+r9]
+
+       mov     r10d,DWORD PTR[r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jb      $L$in_prologue
+
+       mov     rax,QWORD PTR[152+r8]
+
+       mov     r10d,DWORD PTR[4+r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jae     $L$in_prologue
+
+       lea     rsi,QWORD PTR[16+rax]
+       lea     rdi,QWORD PTR[512+r8]
+       mov     ecx,20
+       DD      0a548f3fch
+
+       lea     rax,QWORD PTR[184+rax]
+
+$L$in_prologue::
+       mov     rdi,QWORD PTR[8+rax]
+       mov     rsi,QWORD PTR[16+rax]
+       mov     QWORD PTR[152+r8],rax
+       mov     QWORD PTR[168+r8],rsi
+       mov     QWORD PTR[176+r8],rdi
+
+       mov     rdi,QWORD PTR[40+r9]
+       mov     rsi,r8
+       mov     ecx,154
+       DD      0a548f3fch
+
+
+       mov     rsi,r9
+       xor     rcx,rcx
+       mov     rdx,QWORD PTR[8+rsi]
+       mov     r8,QWORD PTR[rsi]
+       mov     r9,QWORD PTR[16+rsi]
+       mov     r10,QWORD PTR[40+rsi]
+       lea     r11,QWORD PTR[56+rsi]
+       lea     r12,QWORD PTR[24+rsi]
+       mov     QWORD PTR[32+rsp],r10
+       mov     QWORD PTR[40+rsp],r11
+       mov     QWORD PTR[48+rsp],r12
+       mov     QWORD PTR[56+rsp],rcx
+       call    QWORD PTR[__imp_RtlVirtualUnwind]
+
+       mov     eax,1
+       add     rsp,64
+       popfq
+       pop     r15
+       pop     r14
+       pop     r13
+       pop     r12
+       pop     rbp
+       pop     rbx
+       pop     rdi
+       pop     rsi
+       DB      0F3h,0C3h               ;repret
+se_handler     ENDP
+
+.text$ ENDS
+.pdata SEGMENT READONLY ALIGN(4)
+ALIGN  4
+       DD      imagerel $L$SEH_begin_vpaes_set_encrypt_key
+       DD      imagerel $L$SEH_end_vpaes_set_encrypt_key
+       DD      imagerel $L$SEH_info_vpaes_set_encrypt_key
+
+       DD      imagerel $L$SEH_begin_vpaes_set_decrypt_key
+       DD      imagerel $L$SEH_end_vpaes_set_decrypt_key
+       DD      imagerel $L$SEH_info_vpaes_set_decrypt_key
+
+       DD      imagerel $L$SEH_begin_vpaes_encrypt
+       DD      imagerel $L$SEH_end_vpaes_encrypt
+       DD      imagerel $L$SEH_info_vpaes_encrypt
+
+       DD      imagerel $L$SEH_begin_vpaes_decrypt
+       DD      imagerel $L$SEH_end_vpaes_decrypt
+       DD      imagerel $L$SEH_info_vpaes_decrypt
+
+       DD      imagerel $L$SEH_begin_vpaes_cbc_encrypt
+       DD      imagerel $L$SEH_end_vpaes_cbc_encrypt
+       DD      imagerel $L$SEH_info_vpaes_cbc_encrypt
+
+.pdata ENDS
+.xdata SEGMENT READONLY ALIGN(8)
+ALIGN  8
+$L$SEH_info_vpaes_set_encrypt_key::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$enc_key_body,imagerel $L$enc_key_epilogue
+
+$L$SEH_info_vpaes_set_decrypt_key::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$dec_key_body,imagerel $L$dec_key_epilogue
+
+$L$SEH_info_vpaes_encrypt::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$enc_body,imagerel $L$enc_epilogue
+
+$L$SEH_info_vpaes_decrypt::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$dec_body,imagerel $L$dec_epilogue
+
+$L$SEH_info_vpaes_cbc_encrypt::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$cbc_body,imagerel $L$cbc_epilogue
+
+
+.xdata ENDS
+END
diff --git a/deps/openssl/asm/x64-win32-masm/aes/vpaesni-x86_64.asm b/deps/openssl/asm/x64-win32-masm/aes/vpaesni-x86_64.asm
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/deps/openssl/asm/x64-win32-masm/bn/x86_64-gf2m.asm b/deps/openssl/asm/x64-win32-masm/bn/x86_64-gf2m.asm
new file mode 100644 (file)
index 0000000..a58049d
--- /dev/null
@@ -0,0 +1,404 @@
+OPTION DOTNAME
+.text$ SEGMENT ALIGN(64) 'CODE'
+
+
+ALIGN  16
+_mul_1x1       PROC PRIVATE
+       sub     rsp,128+8
+       mov     r9,-1
+       lea     rsi,QWORD PTR[rax*1+rax]
+       shr     r9,3
+       lea     rdi,QWORD PTR[rax*4]
+       and     r9,rax
+       lea     r12,QWORD PTR[rax*8]
+       sar     rax,63
+       lea     r10,QWORD PTR[r9*1+r9]
+       sar     rsi,63
+       lea     r11,QWORD PTR[r9*4]
+       and     rax,rbp
+       sar     rdi,63
+       mov     rdx,rax
+       shl     rax,63
+       and     rsi,rbp
+       shr     rdx,1
+       mov     rcx,rsi
+       shl     rsi,62
+       and     rdi,rbp
+       shr     rcx,2
+       xor     rax,rsi
+       mov     rbx,rdi
+       shl     rdi,61
+       xor     rdx,rcx
+       shr     rbx,3
+       xor     rax,rdi
+       xor     rdx,rbx
+
+       mov     r13,r9
+       mov     QWORD PTR[rsp],0
+       xor     r13,r10
+       mov     QWORD PTR[8+rsp],r9
+       mov     r14,r11
+       mov     QWORD PTR[16+rsp],r10
+       xor     r14,r12
+       mov     QWORD PTR[24+rsp],r13
+
+       xor     r9,r11
+       mov     QWORD PTR[32+rsp],r11
+       xor     r10,r11
+       mov     QWORD PTR[40+rsp],r9
+       xor     r13,r11
+       mov     QWORD PTR[48+rsp],r10
+       xor     r9,r14
+       mov     QWORD PTR[56+rsp],r13
+       xor     r10,r14
+
+       mov     QWORD PTR[64+rsp],r12
+       xor     r13,r14
+       mov     QWORD PTR[72+rsp],r9
+       xor     r9,r11
+       mov     QWORD PTR[80+rsp],r10
+       xor     r10,r11
+       mov     QWORD PTR[88+rsp],r13
+
+       xor     r13,r11
+       mov     QWORD PTR[96+rsp],r14
+       mov     rsi,r8
+       mov     QWORD PTR[104+rsp],r9
+       and     rsi,rbp
+       mov     QWORD PTR[112+rsp],r10
+       shr     rbp,4
+       mov     QWORD PTR[120+rsp],r13
+       mov     rdi,r8
+       and     rdi,rbp
+       shr     rbp,4
+
+       movq    xmm0,QWORD PTR[rsi*8+rsp]
+       mov     rsi,r8
+       and     rsi,rbp
+       shr     rbp,4
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rdi,r8
+       mov     rbx,rcx
+       shl     rcx,4
+       and     rdi,rbp
+       movq    xmm1,QWORD PTR[rsi*8+rsp]
+       shr     rbx,60
+       xor     rax,rcx
+       pslldq  xmm1,1
+       mov     rsi,r8
+       shr     rbp,4
+       xor     rdx,rbx
+       and     rsi,rbp
+       shr     rbp,4
+       pxor    xmm0,xmm1
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rdi,r8
+       mov     rbx,rcx
+       shl     rcx,12
+       and     rdi,rbp
+       movq    xmm1,QWORD PTR[rsi*8+rsp]
+       shr     rbx,52
+       xor     rax,rcx
+       pslldq  xmm1,2
+       mov     rsi,r8
+       shr     rbp,4
+       xor     rdx,rbx
+       and     rsi,rbp
+       shr     rbp,4
+       pxor    xmm0,xmm1
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rdi,r8
+       mov     rbx,rcx
+       shl     rcx,20
+       and     rdi,rbp
+       movq    xmm1,QWORD PTR[rsi*8+rsp]
+       shr     rbx,44
+       xor     rax,rcx
+       pslldq  xmm1,3
+       mov     rsi,r8
+       shr     rbp,4
+       xor     rdx,rbx
+       and     rsi,rbp
+       shr     rbp,4
+       pxor    xmm0,xmm1
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rdi,r8
+       mov     rbx,rcx
+       shl     rcx,28
+       and     rdi,rbp
+       movq    xmm1,QWORD PTR[rsi*8+rsp]
+       shr     rbx,36
+       xor     rax,rcx
+       pslldq  xmm1,4
+       mov     rsi,r8
+       shr     rbp,4
+       xor     rdx,rbx
+       and     rsi,rbp
+       shr     rbp,4
+       pxor    xmm0,xmm1
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rdi,r8
+       mov     rbx,rcx
+       shl     rcx,36
+       and     rdi,rbp
+       movq    xmm1,QWORD PTR[rsi*8+rsp]
+       shr     rbx,28
+       xor     rax,rcx
+       pslldq  xmm1,5
+       mov     rsi,r8
+       shr     rbp,4
+       xor     rdx,rbx
+       and     rsi,rbp
+       shr     rbp,4
+       pxor    xmm0,xmm1
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rdi,r8
+       mov     rbx,rcx
+       shl     rcx,44
+       and     rdi,rbp
+       movq    xmm1,QWORD PTR[rsi*8+rsp]
+       shr     rbx,20
+       xor     rax,rcx
+       pslldq  xmm1,6
+       mov     rsi,r8
+       shr     rbp,4
+       xor     rdx,rbx
+       and     rsi,rbp
+       shr     rbp,4
+       pxor    xmm0,xmm1
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rdi,r8
+       mov     rbx,rcx
+       shl     rcx,52
+       and     rdi,rbp
+       movq    xmm1,QWORD PTR[rsi*8+rsp]
+       shr     rbx,12
+       xor     rax,rcx
+       pslldq  xmm1,7
+       mov     rsi,r8
+       shr     rbp,4
+       xor     rdx,rbx
+       and     rsi,rbp
+       shr     rbp,4
+       pxor    xmm0,xmm1
+       mov     rcx,QWORD PTR[rdi*8+rsp]
+       mov     rbx,rcx
+       shl     rcx,60
+DB     102,72,15,126,198
+       shr     rbx,4
+       xor     rax,rcx
+       psrldq  xmm0,8
+       xor     rdx,rbx
+DB     102,72,15,126,199
+       xor     rax,rsi
+       xor     rdx,rdi
+
+       add     rsp,128+8
+       DB      0F3h,0C3h               ;repret
+$L$end_mul_1x1::
+_mul_1x1       ENDP
+EXTERN OPENSSL_ia32cap_P:NEAR
+PUBLIC bn_GF2m_mul_2x2
+
+ALIGN  16
+bn_GF2m_mul_2x2        PROC PUBLIC
+       mov     rax,QWORD PTR[OPENSSL_ia32cap_P]
+       bt      rax,33
+       jnc     $L$vanilla_mul_2x2
+
+DB     102,72,15,110,194
+DB     102,73,15,110,201
+DB     102,73,15,110,208
+       movq    xmm3,QWORD PTR[40+rsp]
+       movdqa  xmm4,xmm0
+       movdqa  xmm5,xmm1
+DB     102,15,58,68,193,0
+       pxor    xmm4,xmm2
+       pxor    xmm5,xmm3
+DB     102,15,58,68,211,0
+DB     102,15,58,68,229,0
+       xorps   xmm4,xmm0
+       xorps   xmm4,xmm2
+       movdqa  xmm5,xmm4
+       pslldq  xmm4,8
+       psrldq  xmm5,8
+       pxor    xmm2,xmm4
+       pxor    xmm0,xmm5
+       movdqu  XMMWORD PTR[rcx],xmm2
+       movdqu  XMMWORD PTR[16+rcx],xmm0
+       DB      0F3h,0C3h               ;repret
+
+ALIGN  16
+$L$vanilla_mul_2x2::
+       lea     rsp,QWORD PTR[((-136))+rsp]
+       mov     r10,QWORD PTR[176+rsp]
+       mov     QWORD PTR[120+rsp],rdi
+       mov     QWORD PTR[128+rsp],rsi
+       mov     QWORD PTR[80+rsp],r14
+       mov     QWORD PTR[88+rsp],r13
+       mov     QWORD PTR[96+rsp],r12
+       mov     QWORD PTR[104+rsp],rbp
+       mov     QWORD PTR[112+rsp],rbx
+$L$body_mul_2x2::
+       mov     QWORD PTR[32+rsp],rcx
+       mov     QWORD PTR[40+rsp],rdx
+       mov     QWORD PTR[48+rsp],r8
+       mov     QWORD PTR[56+rsp],r9
+       mov     QWORD PTR[64+rsp],r10
+
+       mov     r8,0fh
+       mov     rax,rdx
+       mov     rbp,r9
+       call    _mul_1x1
+
+       mov     QWORD PTR[16+rsp],rax
+       mov     QWORD PTR[24+rsp],rdx
+
+       mov     rax,QWORD PTR[48+rsp]
+       mov     rbp,QWORD PTR[64+rsp]
+       call    _mul_1x1
+
+       mov     QWORD PTR[rsp],rax
+       mov     QWORD PTR[8+rsp],rdx
+
+       mov     rax,QWORD PTR[40+rsp]
+       mov     rbp,QWORD PTR[56+rsp]
+       xor     rax,QWORD PTR[48+rsp]
+       xor     rbp,QWORD PTR[64+rsp]
+       call    _mul_1x1
+
+       mov     rbx,QWORD PTR[rsp]
+       mov     rcx,QWORD PTR[8+rsp]
+       mov     rdi,QWORD PTR[16+rsp]
+       mov     rsi,QWORD PTR[24+rsp]
+       mov     rbp,QWORD PTR[32+rsp]
+
+       xor     rax,rdx
+       xor     rdx,rcx
+       xor     rax,rbx
+       mov     QWORD PTR[rbp],rbx
+       xor     rdx,rdi
+       mov     QWORD PTR[24+rbp],rsi
+       xor     rax,rsi
+       xor     rdx,rsi
+       xor     rax,rdx
+       mov     QWORD PTR[16+rbp],rdx
+       mov     QWORD PTR[8+rbp],rax
+
+       mov     r14,QWORD PTR[80+rsp]
+       mov     r13,QWORD PTR[88+rsp]
+       mov     r12,QWORD PTR[96+rsp]
+       mov     rbp,QWORD PTR[104+rsp]
+       mov     rbx,QWORD PTR[112+rsp]
+       mov     rdi,QWORD PTR[120+rsp]
+       mov     rsi,QWORD PTR[128+rsp]
+       lea     rsp,QWORD PTR[136+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$end_mul_2x2::
+bn_GF2m_mul_2x2        ENDP
+DB     71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105
+DB     99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54
+DB     52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
+DB     32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
+DB     111,114,103,62,0
+ALIGN  16
+EXTERN __imp_RtlVirtualUnwind:NEAR
+
+
+ALIGN  16
+se_handler     PROC PRIVATE
+       push    rsi
+       push    rdi
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       pushfq
+       sub     rsp,64
+
+       mov     rax,QWORD PTR[152+r8]
+       mov     rbx,QWORD PTR[248+r8]
+
+       lea     r10,QWORD PTR[$L$body_mul_2x2]
+       cmp     rbx,r10
+       jb      $L$in_prologue
+
+       mov     r14,QWORD PTR[80+rax]
+       mov     r13,QWORD PTR[88+rax]
+       mov     r12,QWORD PTR[96+rax]
+       mov     rbp,QWORD PTR[104+rax]
+       mov     rbx,QWORD PTR[112+rax]
+       mov     rdi,QWORD PTR[120+rax]
+       mov     rsi,QWORD PTR[128+rax]
+
+       mov     QWORD PTR[144+r8],rbx
+       mov     QWORD PTR[160+r8],rbp
+       mov     QWORD PTR[168+r8],rsi
+       mov     QWORD PTR[176+r8],rdi
+       mov     QWORD PTR[216+r8],r12
+       mov     QWORD PTR[224+r8],r13
+       mov     QWORD PTR[232+r8],r14
+
+$L$in_prologue::
+       lea     rax,QWORD PTR[136+rax]
+       mov     QWORD PTR[152+r8],rax
+
+       mov     rdi,QWORD PTR[40+r9]
+       mov     rsi,r8
+       mov     ecx,154
+       DD      0a548f3fch
+
+
+       mov     rsi,r9
+       xor     rcx,rcx
+       mov     rdx,QWORD PTR[8+rsi]
+       mov     r8,QWORD PTR[rsi]
+       mov     r9,QWORD PTR[16+rsi]
+       mov     r10,QWORD PTR[40+rsi]
+       lea     r11,QWORD PTR[56+rsi]
+       lea     r12,QWORD PTR[24+rsi]
+       mov     QWORD PTR[32+rsp],r10
+       mov     QWORD PTR[40+rsp],r11
+       mov     QWORD PTR[48+rsp],r12
+       mov     QWORD PTR[56+rsp],rcx
+       call    QWORD PTR[__imp_RtlVirtualUnwind]
+
+       mov     eax,1
+       add     rsp,64
+       popfq
+       pop     r15
+       pop     r14
+       pop     r13
+       pop     r12
+       pop     rbp
+       pop     rbx
+       pop     rdi
+       pop     rsi
+       DB      0F3h,0C3h               ;repret
+se_handler     ENDP
+
+.text$ ENDS
+.pdata SEGMENT READONLY ALIGN(4)
+ALIGN  4
+       DD      imagerel _mul_1x1
+       DD      imagerel $L$end_mul_1x1
+       DD      imagerel $L$SEH_info_1x1
+
+       DD      imagerel $L$vanilla_mul_2x2
+       DD      imagerel $L$end_mul_2x2
+       DD      imagerel $L$SEH_info_2x2
+.pdata ENDS
+.xdata SEGMENT READONLY ALIGN(8)
+ALIGN  8
+$L$SEH_info_1x1::
+DB     001h,007h,002h,000h
+DB     007h,001h,011h,000h
+
+$L$SEH_info_2x2::
+DB     9,0,0,0
+       DD      imagerel se_handler
+
+.xdata ENDS
+END
diff --git a/deps/openssl/asm/x64-win32-masm/bn/x86_64-mont5.asm b/deps/openssl/asm/x64-win32-masm/bn/x86_64-mont5.asm
new file mode 100644 (file)
index 0000000..e7107f0
--- /dev/null
@@ -0,0 +1,990 @@
+OPTION DOTNAME
+.text$ SEGMENT ALIGN(64) 'CODE'
+
+PUBLIC bn_mul_mont_gather5
+
+ALIGN  64
+bn_mul_mont_gather5    PROC PUBLIC
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_bn_mul_mont_gather5::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+       mov     rcx,r9
+       mov     r8,QWORD PTR[40+rsp]
+       mov     r9,QWORD PTR[48+rsp]
+
+
+       test    r9d,3
+       jnz     $L$mul_enter
+       cmp     r9d,8
+       jb      $L$mul_enter
+       jmp     $L$mul4x_enter
+
+ALIGN  16
+$L$mul_enter::
+       mov     r9d,r9d
+       mov     r10d,DWORD PTR[56+rsp]
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       lea     rsp,QWORD PTR[((-40))+rsp]
+       movaps  XMMWORD PTR[rsp],xmm6
+       movaps  XMMWORD PTR[16+rsp],xmm7
+$L$mul_alloca::
+       mov     rax,rsp
+       lea     r11,QWORD PTR[2+r9]
+       neg     r11
+       lea     rsp,QWORD PTR[r11*8+rsp]
+       and     rsp,-1024
+
+       mov     QWORD PTR[8+r9*8+rsp],rax
+$L$mul_body::
+       mov     r12,rdx
+       mov     r11,r10
+       shr     r10,3
+       and     r11,7
+       not     r10
+       lea     rax,QWORD PTR[$L$magic_masks]
+       and     r10,3
+       lea     r12,QWORD PTR[96+r11*8+r12]
+       movq    xmm4,QWORD PTR[r10*8+rax]
+       movq    xmm5,QWORD PTR[8+r10*8+rax]
+       movq    xmm6,QWORD PTR[16+r10*8+rax]
+       movq    xmm7,QWORD PTR[24+r10*8+rax]
+
+       movq    xmm0,QWORD PTR[((-96))+r12]
+       movq    xmm1,QWORD PTR[((-32))+r12]
+       pand    xmm0,xmm4
+       movq    xmm2,QWORD PTR[32+r12]
+       pand    xmm1,xmm5
+       movq    xmm3,QWORD PTR[96+r12]
+       pand    xmm2,xmm6
+       por     xmm0,xmm1
+       pand    xmm3,xmm7
+       por     xmm0,xmm2
+       lea     r12,QWORD PTR[256+r12]
+       por     xmm0,xmm3
+
+DB     102,72,15,126,195
+
+       mov     r8,QWORD PTR[r8]
+       mov     rax,QWORD PTR[rsi]
+
+       xor     r14,r14
+       xor     r15,r15
+
+       movq    xmm0,QWORD PTR[((-96))+r12]
+       movq    xmm1,QWORD PTR[((-32))+r12]
+       pand    xmm0,xmm4
+       movq    xmm2,QWORD PTR[32+r12]
+       pand    xmm1,xmm5
+
+       mov     rbp,r8
+       mul     rbx
+       mov     r10,rax
+       mov     rax,QWORD PTR[rcx]
+
+       movq    xmm3,QWORD PTR[96+r12]
+       pand    xmm2,xmm6
+       por     xmm0,xmm1
+       pand    xmm3,xmm7
+
+       imul    rbp,r10
+       mov     r11,rdx
+
+       por     xmm0,xmm2
+       lea     r12,QWORD PTR[256+r12]
+       por     xmm0,xmm3
+
+       mul     rbp
+       add     r10,rax
+       mov     rax,QWORD PTR[8+rsi]
+       adc     rdx,0
+       mov     r13,rdx
+
+       lea     r15,QWORD PTR[1+r15]
+       jmp     $L$1st_enter
+
+ALIGN  16
+$L$1st::
+       add     r13,rax
+       mov     rax,QWORD PTR[r15*8+rsi]
+       adc     rdx,0
+       add     r13,r11
+       mov     r11,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-16))+r15*8+rsp],r13
+       mov     r13,rdx
+
+$L$1st_enter::
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[r15*8+rcx]
+       adc     rdx,0
+       lea     r15,QWORD PTR[1+r15]
+       mov     r10,rdx
+
+       mul     rbp
+       cmp     r15,r9
+       jne     $L$1st
+
+DB     102,72,15,126,195
+
+       add     r13,rax
+       mov     rax,QWORD PTR[rsi]
+       adc     rdx,0
+       add     r13,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-16))+r15*8+rsp],r13
+       mov     r13,rdx
+       mov     r11,r10
+
+       xor     rdx,rdx
+       add     r13,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-8))+r9*8+rsp],r13
+       mov     QWORD PTR[r9*8+rsp],rdx
+
+       lea     r14,QWORD PTR[1+r14]
+       jmp     $L$outer
+ALIGN  16
+$L$outer::
+       xor     r15,r15
+       mov     rbp,r8
+       mov     r10,QWORD PTR[rsp]
+
+       movq    xmm0,QWORD PTR[((-96))+r12]
+       movq    xmm1,QWORD PTR[((-32))+r12]
+       pand    xmm0,xmm4
+       movq    xmm2,QWORD PTR[32+r12]
+       pand    xmm1,xmm5
+
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[rcx]
+       adc     rdx,0
+
+       movq    xmm3,QWORD PTR[96+r12]
+       pand    xmm2,xmm6
+       por     xmm0,xmm1
+       pand    xmm3,xmm7
+
+       imul    rbp,r10
+       mov     r11,rdx
+
+       por     xmm0,xmm2
+       lea     r12,QWORD PTR[256+r12]
+       por     xmm0,xmm3
+
+       mul     rbp
+       add     r10,rax
+       mov     rax,QWORD PTR[8+rsi]
+       adc     rdx,0
+       mov     r10,QWORD PTR[8+rsp]
+       mov     r13,rdx
+
+       lea     r15,QWORD PTR[1+r15]
+       jmp     $L$inner_enter
+
+ALIGN  16
+$L$inner::
+       add     r13,rax
+       mov     rax,QWORD PTR[r15*8+rsi]
+       adc     rdx,0
+       add     r13,r10
+       mov     r10,QWORD PTR[r15*8+rsp]
+       adc     rdx,0
+       mov     QWORD PTR[((-16))+r15*8+rsp],r13
+       mov     r13,rdx
+
+$L$inner_enter::
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[r15*8+rcx]
+       adc     rdx,0
+       add     r10,r11
+       mov     r11,rdx
+       adc     r11,0
+       lea     r15,QWORD PTR[1+r15]
+
+       mul     rbp
+       cmp     r15,r9
+       jne     $L$inner
+
+DB     102,72,15,126,195
+
+       add     r13,rax
+       mov     rax,QWORD PTR[rsi]
+       adc     rdx,0
+       add     r13,r10
+       mov     r10,QWORD PTR[r15*8+rsp]
+       adc     rdx,0
+       mov     QWORD PTR[((-16))+r15*8+rsp],r13
+       mov     r13,rdx
+
+       xor     rdx,rdx
+       add     r13,r11
+       adc     rdx,0
+       add     r13,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-8))+r9*8+rsp],r13
+       mov     QWORD PTR[r9*8+rsp],rdx
+
+       lea     r14,QWORD PTR[1+r14]
+       cmp     r14,r9
+       jl      $L$outer
+
+       xor     r14,r14
+       mov     rax,QWORD PTR[rsp]
+       lea     rsi,QWORD PTR[rsp]
+       mov     r15,r9
+       jmp     $L$sub
+ALIGN  16
+$L$sub::       sbb     rax,QWORD PTR[r14*8+rcx]
+       mov     QWORD PTR[r14*8+rdi],rax
+       mov     rax,QWORD PTR[8+r14*8+rsi]
+       lea     r14,QWORD PTR[1+r14]
+       dec     r15
+       jnz     $L$sub
+
+       sbb     rax,0
+       xor     r14,r14
+       and     rsi,rax
+       not     rax
+       mov     rcx,rdi
+       and     rcx,rax
+       mov     r15,r9
+       or      rsi,rcx
+ALIGN  16
+$L$copy::
+       mov     rax,QWORD PTR[r14*8+rsi]
+       mov     QWORD PTR[r14*8+rsp],r14
+       mov     QWORD PTR[r14*8+rdi],rax
+       lea     r14,QWORD PTR[1+r14]
+       sub     r15,1
+       jnz     $L$copy
+
+       mov     rsi,QWORD PTR[8+r9*8+rsp]
+       mov     rax,1
+       movaps  xmm6,XMMWORD PTR[rsi]
+       movaps  xmm7,XMMWORD PTR[16+rsi]
+       lea     rsi,QWORD PTR[40+rsi]
+       mov     r15,QWORD PTR[rsi]
+       mov     r14,QWORD PTR[8+rsi]
+       mov     r13,QWORD PTR[16+rsi]
+       mov     r12,QWORD PTR[24+rsi]
+       mov     rbp,QWORD PTR[32+rsi]
+       mov     rbx,QWORD PTR[40+rsi]
+       lea     rsp,QWORD PTR[48+rsi]
+$L$mul_epilogue::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_bn_mul_mont_gather5::
+bn_mul_mont_gather5    ENDP
+
+ALIGN  16
+bn_mul4x_mont_gather5  PROC PRIVATE
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_bn_mul4x_mont_gather5::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+       mov     rcx,r9
+       mov     r8,QWORD PTR[40+rsp]
+       mov     r9,QWORD PTR[48+rsp]
+
+
+$L$mul4x_enter::
+       mov     r9d,r9d
+       mov     r10d,DWORD PTR[56+rsp]
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       lea     rsp,QWORD PTR[((-40))+rsp]
+       movaps  XMMWORD PTR[rsp],xmm6
+       movaps  XMMWORD PTR[16+rsp],xmm7
+$L$mul4x_alloca::
+       mov     rax,rsp
+       lea     r11,QWORD PTR[4+r9]
+       neg     r11
+       lea     rsp,QWORD PTR[r11*8+rsp]
+       and     rsp,-1024
+
+       mov     QWORD PTR[8+r9*8+rsp],rax
+$L$mul4x_body::
+       mov     QWORD PTR[16+r9*8+rsp],rdi
+       mov     r12,rdx
+       mov     r11,r10
+       shr     r10,3
+       and     r11,7
+       not     r10
+       lea     rax,QWORD PTR[$L$magic_masks]
+       and     r10,3
+       lea     r12,QWORD PTR[96+r11*8+r12]
+       movq    xmm4,QWORD PTR[r10*8+rax]
+       movq    xmm5,QWORD PTR[8+r10*8+rax]
+       movq    xmm6,QWORD PTR[16+r10*8+rax]
+       movq    xmm7,QWORD PTR[24+r10*8+rax]
+
+       movq    xmm0,QWORD PTR[((-96))+r12]
+       movq    xmm1,QWORD PTR[((-32))+r12]
+       pand    xmm0,xmm4
+       movq    xmm2,QWORD PTR[32+r12]
+       pand    xmm1,xmm5
+       movq    xmm3,QWORD PTR[96+r12]
+       pand    xmm2,xmm6
+       por     xmm0,xmm1
+       pand    xmm3,xmm7
+       por     xmm0,xmm2
+       lea     r12,QWORD PTR[256+r12]
+       por     xmm0,xmm3
+
+DB     102,72,15,126,195
+       mov     r8,QWORD PTR[r8]
+       mov     rax,QWORD PTR[rsi]
+
+       xor     r14,r14
+       xor     r15,r15
+
+       movq    xmm0,QWORD PTR[((-96))+r12]
+       movq    xmm1,QWORD PTR[((-32))+r12]
+       pand    xmm0,xmm4
+       movq    xmm2,QWORD PTR[32+r12]
+       pand    xmm1,xmm5
+
+       mov     rbp,r8
+       mul     rbx
+       mov     r10,rax
+       mov     rax,QWORD PTR[rcx]
+
+       movq    xmm3,QWORD PTR[96+r12]
+       pand    xmm2,xmm6
+       por     xmm0,xmm1
+       pand    xmm3,xmm7
+
+       imul    rbp,r10
+       mov     r11,rdx
+
+       por     xmm0,xmm2
+       lea     r12,QWORD PTR[256+r12]
+       por     xmm0,xmm3
+
+       mul     rbp
+       add     r10,rax
+       mov     rax,QWORD PTR[8+rsi]
+       adc     rdx,0
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[8+rcx]
+       adc     rdx,0
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[16+rsi]
+       adc     rdx,0
+       add     rdi,r11
+       lea     r15,QWORD PTR[4+r15]
+       adc     rdx,0
+       mov     QWORD PTR[rsp],rdi
+       mov     r13,rdx
+       jmp     $L$1st4x
+ALIGN  16
+$L$1st4x::
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[((-16))+r15*8+rcx]
+       adc     rdx,0
+       mov     r11,rdx
+
+       mul     rbp
+       add     r13,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rsi]
+       adc     rdx,0
+       add     r13,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-24))+r15*8+rsp],r13
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rcx]
+       adc     rdx,0
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[r15*8+rsi]
+       adc     rdx,0
+       add     rdi,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-16))+r15*8+rsp],rdi
+       mov     r13,rdx
+
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[r15*8+rcx]
+       adc     rdx,0
+       mov     r11,rdx
+
+       mul     rbp
+       add     r13,rax
+       mov     rax,QWORD PTR[8+r15*8+rsi]
+       adc     rdx,0
+       add     r13,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-8))+r15*8+rsp],r13
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[8+r15*8+rcx]
+       adc     rdx,0
+       lea     r15,QWORD PTR[4+r15]
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[((-16))+r15*8+rsi]
+       adc     rdx,0
+       add     rdi,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-32))+r15*8+rsp],rdi
+       mov     r13,rdx
+       cmp     r15,r9
+       jl      $L$1st4x
+
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[((-16))+r15*8+rcx]
+       adc     rdx,0
+       mov     r11,rdx
+
+       mul     rbp
+       add     r13,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rsi]
+       adc     rdx,0
+       add     r13,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-24))+r15*8+rsp],r13
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rcx]
+       adc     rdx,0
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[rsi]
+       adc     rdx,0
+       add     rdi,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-16))+r15*8+rsp],rdi
+       mov     r13,rdx
+
+DB     102,72,15,126,195
+
+       xor     rdi,rdi
+       add     r13,r10
+       adc     rdi,0
+       mov     QWORD PTR[((-8))+r15*8+rsp],r13
+       mov     QWORD PTR[r15*8+rsp],rdi
+
+       lea     r14,QWORD PTR[1+r14]
+ALIGN  4
+$L$outer4x::
+       xor     r15,r15
+       movq    xmm0,QWORD PTR[((-96))+r12]
+       movq    xmm1,QWORD PTR[((-32))+r12]
+       pand    xmm0,xmm4
+       movq    xmm2,QWORD PTR[32+r12]
+       pand    xmm1,xmm5
+
+       mov     r10,QWORD PTR[rsp]
+       mov     rbp,r8
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[rcx]
+       adc     rdx,0
+
+       movq    xmm3,QWORD PTR[96+r12]
+       pand    xmm2,xmm6
+       por     xmm0,xmm1
+       pand    xmm3,xmm7
+
+       imul    rbp,r10
+       mov     r11,rdx
+
+       por     xmm0,xmm2
+       lea     r12,QWORD PTR[256+r12]
+       por     xmm0,xmm3
+
+       mul     rbp
+       add     r10,rax
+       mov     rax,QWORD PTR[8+rsi]
+       adc     rdx,0
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[8+rcx]
+       adc     rdx,0
+       add     r11,QWORD PTR[8+rsp]
+       adc     rdx,0
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[16+rsi]
+       adc     rdx,0
+       add     rdi,r11
+       lea     r15,QWORD PTR[4+r15]
+       adc     rdx,0
+       mov     r13,rdx
+       jmp     $L$inner4x
+ALIGN  16
+$L$inner4x::
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[((-16))+r15*8+rcx]
+       adc     rdx,0
+       add     r10,QWORD PTR[((-16))+r15*8+rsp]
+       adc     rdx,0
+       mov     r11,rdx
+
+       mul     rbp
+       add     r13,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rsi]
+       adc     rdx,0
+       add     r13,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-32))+r15*8+rsp],rdi
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rcx]
+       adc     rdx,0
+       add     r11,QWORD PTR[((-8))+r15*8+rsp]
+       adc     rdx,0
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[r15*8+rsi]
+       adc     rdx,0
+       add     rdi,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-24))+r15*8+rsp],r13
+       mov     r13,rdx
+
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[r15*8+rcx]
+       adc     rdx,0
+       add     r10,QWORD PTR[r15*8+rsp]
+       adc     rdx,0
+       mov     r11,rdx
+
+       mul     rbp
+       add     r13,rax
+       mov     rax,QWORD PTR[8+r15*8+rsi]
+       adc     rdx,0
+       add     r13,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-16))+r15*8+rsp],rdi
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[8+r15*8+rcx]
+       adc     rdx,0
+       add     r11,QWORD PTR[8+r15*8+rsp]
+       adc     rdx,0
+       lea     r15,QWORD PTR[4+r15]
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[((-16))+r15*8+rsi]
+       adc     rdx,0
+       add     rdi,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-40))+r15*8+rsp],r13
+       mov     r13,rdx
+       cmp     r15,r9
+       jl      $L$inner4x
+
+       mul     rbx
+       add     r10,rax
+       mov     rax,QWORD PTR[((-16))+r15*8+rcx]
+       adc     rdx,0
+       add     r10,QWORD PTR[((-16))+r15*8+rsp]
+       adc     rdx,0
+       mov     r11,rdx
+
+       mul     rbp
+       add     r13,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rsi]
+       adc     rdx,0
+       add     r13,r10
+       adc     rdx,0
+       mov     QWORD PTR[((-32))+r15*8+rsp],rdi
+       mov     rdi,rdx
+
+       mul     rbx
+       add     r11,rax
+       mov     rax,QWORD PTR[((-8))+r15*8+rcx]
+       adc     rdx,0
+       add     r11,QWORD PTR[((-8))+r15*8+rsp]
+       adc     rdx,0
+       lea     r14,QWORD PTR[1+r14]
+       mov     r10,rdx
+
+       mul     rbp
+       add     rdi,rax
+       mov     rax,QWORD PTR[rsi]
+       adc     rdx,0
+       add     rdi,r11
+       adc     rdx,0
+       mov     QWORD PTR[((-24))+r15*8+rsp],r13
+       mov     r13,rdx
+
+DB     102,72,15,126,195
+       mov     QWORD PTR[((-16))+r15*8+rsp],rdi
+
+       xor     rdi,rdi
+       add     r13,r10
+       adc     rdi,0
+       add     r13,QWORD PTR[r9*8+rsp]
+       adc     rdi,0
+       mov     QWORD PTR[((-8))+r15*8+rsp],r13
+       mov     QWORD PTR[r15*8+rsp],rdi
+
+       cmp     r14,r9
+       jl      $L$outer4x
+       mov     rdi,QWORD PTR[16+r9*8+rsp]
+       mov     rax,QWORD PTR[rsp]
+       pxor    xmm0,xmm0
+       mov     rdx,QWORD PTR[8+rsp]
+       shr     r9,2
+       lea     rsi,QWORD PTR[rsp]
+       xor     r14,r14
+
+       sub     rax,QWORD PTR[rcx]
+       mov     rbx,QWORD PTR[16+rsi]
+       mov     rbp,QWORD PTR[24+rsi]
+       sbb     rdx,QWORD PTR[8+rcx]
+       lea     r15,QWORD PTR[((-1))+r9]
+       jmp     $L$sub4x
+ALIGN  16
+$L$sub4x::
+       mov     QWORD PTR[r14*8+rdi],rax
+       mov     QWORD PTR[8+r14*8+rdi],rdx
+       sbb     rbx,QWORD PTR[16+r14*8+rcx]
+       mov     rax,QWORD PTR[32+r14*8+rsi]
+       mov     rdx,QWORD PTR[40+r14*8+rsi]
+       sbb     rbp,QWORD PTR[24+r14*8+rcx]
+       mov     QWORD PTR[16+r14*8+rdi],rbx
+       mov     QWORD PTR[24+r14*8+rdi],rbp
+       sbb     rax,QWORD PTR[32+r14*8+rcx]
+       mov     rbx,QWORD PTR[48+r14*8+rsi]
+       mov     rbp,QWORD PTR[56+r14*8+rsi]
+       sbb     rdx,QWORD PTR[40+r14*8+rcx]
+       lea     r14,QWORD PTR[4+r14]
+       dec     r15
+       jnz     $L$sub4x
+
+       mov     QWORD PTR[r14*8+rdi],rax
+       mov     rax,QWORD PTR[32+r14*8+rsi]
+       sbb     rbx,QWORD PTR[16+r14*8+rcx]
+       mov     QWORD PTR[8+r14*8+rdi],rdx
+       sbb     rbp,QWORD PTR[24+r14*8+rcx]
+       mov     QWORD PTR[16+r14*8+rdi],rbx
+
+       sbb     rax,0
+       mov     QWORD PTR[24+r14*8+rdi],rbp
+       xor     r14,r14
+       and     rsi,rax
+       not     rax
+       mov     rcx,rdi
+       and     rcx,rax
+       lea     r15,QWORD PTR[((-1))+r9]
+       or      rsi,rcx
+
+       movdqu  xmm1,XMMWORD PTR[rsi]
+       movdqa  XMMWORD PTR[rsp],xmm0
+       movdqu  XMMWORD PTR[rdi],xmm1
+       jmp     $L$copy4x
+ALIGN  16
+$L$copy4x::
+       movdqu  xmm2,XMMWORD PTR[16+r14*1+rsi]
+       movdqu  xmm1,XMMWORD PTR[32+r14*1+rsi]
+       movdqa  XMMWORD PTR[16+r14*1+rsp],xmm0
+       movdqu  XMMWORD PTR[16+r14*1+rdi],xmm2
+       movdqa  XMMWORD PTR[32+r14*1+rsp],xmm0
+       movdqu  XMMWORD PTR[32+r14*1+rdi],xmm1
+       lea     r14,QWORD PTR[32+r14]
+       dec     r15
+       jnz     $L$copy4x
+
+       shl     r9,2
+       movdqu  xmm2,XMMWORD PTR[16+r14*1+rsi]
+       movdqa  XMMWORD PTR[16+r14*1+rsp],xmm0
+       movdqu  XMMWORD PTR[16+r14*1+rdi],xmm2
+       mov     rsi,QWORD PTR[8+r9*8+rsp]
+       mov     rax,1
+       movaps  xmm6,XMMWORD PTR[rsi]
+       movaps  xmm7,XMMWORD PTR[16+rsi]
+       lea     rsi,QWORD PTR[40+rsi]
+       mov     r15,QWORD PTR[rsi]
+       mov     r14,QWORD PTR[8+rsi]
+       mov     r13,QWORD PTR[16+rsi]
+       mov     r12,QWORD PTR[24+rsi]
+       mov     rbp,QWORD PTR[32+rsi]
+       mov     rbx,QWORD PTR[40+rsi]
+       lea     rsp,QWORD PTR[48+rsi]
+$L$mul4x_epilogue::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_bn_mul4x_mont_gather5::
+bn_mul4x_mont_gather5  ENDP
+PUBLIC bn_scatter5
+
+ALIGN  16
+bn_scatter5    PROC PUBLIC
+       cmp     rdx,0
+       jz      $L$scatter_epilogue
+       lea     r8,QWORD PTR[r9*8+r8]
+$L$scatter::
+       mov     rax,QWORD PTR[rcx]
+       lea     rcx,QWORD PTR[8+rcx]
+       mov     QWORD PTR[r8],rax
+       lea     r8,QWORD PTR[256+r8]
+       sub     rdx,1
+       jnz     $L$scatter
+$L$scatter_epilogue::
+       DB      0F3h,0C3h               ;repret
+bn_scatter5    ENDP
+
+PUBLIC bn_gather5
+
+ALIGN  16
+bn_gather5     PROC PUBLIC
+$L$SEH_begin_bn_gather5::
+
+DB     048h,083h,0ech,028h
+
+DB     00fh,029h,034h,024h
+
+DB     00fh,029h,07ch,024h,010h
+
+       mov     r11,r9
+       shr     r9,3
+       and     r11,7
+       not     r9
+       lea     rax,QWORD PTR[$L$magic_masks]
+       and     r9,3
+       lea     r8,QWORD PTR[96+r11*8+r8]
+       movq    xmm4,QWORD PTR[r9*8+rax]
+       movq    xmm5,QWORD PTR[8+r9*8+rax]
+       movq    xmm6,QWORD PTR[16+r9*8+rax]
+       movq    xmm7,QWORD PTR[24+r9*8+rax]
+       jmp     $L$gather
+ALIGN  16
+$L$gather::
+       movq    xmm0,QWORD PTR[((-96))+r8]
+       movq    xmm1,QWORD PTR[((-32))+r8]
+       pand    xmm0,xmm4
+       movq    xmm2,QWORD PTR[32+r8]
+       pand    xmm1,xmm5
+       movq    xmm3,QWORD PTR[96+r8]
+       pand    xmm2,xmm6
+       por     xmm0,xmm1
+       pand    xmm3,xmm7
+       por     xmm0,xmm2
+       lea     r8,QWORD PTR[256+r8]
+       por     xmm0,xmm3
+
+       movq    QWORD PTR[rcx],xmm0
+       lea     rcx,QWORD PTR[8+rcx]
+       sub     rdx,1
+       jnz     $L$gather
+       movaps  xmm6,XMMWORD PTR[rsp]
+       movaps  xmm7,XMMWORD PTR[16+rsp]
+       lea     rsp,QWORD PTR[40+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_bn_gather5::
+bn_gather5     ENDP
+ALIGN  64
+$L$magic_masks::
+       DD      0,0,0,0,0,0,-1,-1
+       DD      0,0,0,0,0,0,0,0
+DB     77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
+DB     112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115
+DB     99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111
+DB     114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79
+DB     71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111
+DB     112,101,110,115,115,108,46,111,114,103,62,0
+EXTERN __imp_RtlVirtualUnwind:NEAR
+
+ALIGN  16
+mul_handler    PROC PRIVATE
+       push    rsi
+       push    rdi
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       pushfq
+       sub     rsp,64
+
+       mov     rax,QWORD PTR[120+r8]
+       mov     rbx,QWORD PTR[248+r8]
+
+       mov     rsi,QWORD PTR[8+r9]
+       mov     r11,QWORD PTR[56+r9]
+
+       mov     r10d,DWORD PTR[r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jb      $L$common_seh_tail
+
+       lea     rax,QWORD PTR[88+rax]
+
+       mov     r10d,DWORD PTR[4+r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jb      $L$common_seh_tail
+
+       mov     rax,QWORD PTR[152+r8]
+
+       mov     r10d,DWORD PTR[8+r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jae     $L$common_seh_tail
+
+       mov     r10,QWORD PTR[192+r8]
+       mov     rax,QWORD PTR[8+r10*8+rax]
+
+       movaps  xmm0,XMMWORD PTR[rax]
+       movaps  xmm1,XMMWORD PTR[16+rax]
+       lea     rax,QWORD PTR[88+rax]
+
+       mov     rbx,QWORD PTR[((-8))+rax]
+       mov     rbp,QWORD PTR[((-16))+rax]
+       mov     r12,QWORD PTR[((-24))+rax]
+       mov     r13,QWORD PTR[((-32))+rax]
+       mov     r14,QWORD PTR[((-40))+rax]
+       mov     r15,QWORD PTR[((-48))+rax]
+       mov     QWORD PTR[144+r8],rbx
+       mov     QWORD PTR[160+r8],rbp
+       mov     QWORD PTR[216+r8],r12
+       mov     QWORD PTR[224+r8],r13
+       mov     QWORD PTR[232+r8],r14
+       mov     QWORD PTR[240+r8],r15
+       movups  XMMWORD PTR[512+r8],xmm0
+       movups  XMMWORD PTR[528+r8],xmm1
+
+$L$common_seh_tail::
+       mov     rdi,QWORD PTR[8+rax]
+       mov     rsi,QWORD PTR[16+rax]
+       mov     QWORD PTR[152+r8],rax
+       mov     QWORD PTR[168+r8],rsi
+       mov     QWORD PTR[176+r8],rdi
+
+       mov     rdi,QWORD PTR[40+r9]
+       mov     rsi,r8
+       mov     ecx,154
+       DD      0a548f3fch
+
+
+       mov     rsi,r9
+       xor     rcx,rcx
+       mov     rdx,QWORD PTR[8+rsi]
+       mov     r8,QWORD PTR[rsi]
+       mov     r9,QWORD PTR[16+rsi]
+       mov     r10,QWORD PTR[40+rsi]
+       lea     r11,QWORD PTR[56+rsi]
+       lea     r12,QWORD PTR[24+rsi]
+       mov     QWORD PTR[32+rsp],r10
+       mov     QWORD PTR[40+rsp],r11
+       mov     QWORD PTR[48+rsp],r12
+       mov     QWORD PTR[56+rsp],rcx
+       call    QWORD PTR[__imp_RtlVirtualUnwind]
+
+       mov     eax,1
+       add     rsp,64
+       popfq
+       pop     r15
+       pop     r14
+       pop     r13
+       pop     r12
+       pop     rbp
+       pop     rbx
+       pop     rdi
+       pop     rsi
+       DB      0F3h,0C3h               ;repret
+mul_handler    ENDP
+
+.text$ ENDS
+.pdata SEGMENT READONLY ALIGN(4)
+ALIGN  4
+       DD      imagerel $L$SEH_begin_bn_mul_mont_gather5
+       DD      imagerel $L$SEH_end_bn_mul_mont_gather5
+       DD      imagerel $L$SEH_info_bn_mul_mont_gather5
+
+       DD      imagerel $L$SEH_begin_bn_mul4x_mont_gather5
+       DD      imagerel $L$SEH_end_bn_mul4x_mont_gather5
+       DD      imagerel $L$SEH_info_bn_mul4x_mont_gather5
+
+       DD      imagerel $L$SEH_begin_bn_gather5
+       DD      imagerel $L$SEH_end_bn_gather5
+       DD      imagerel $L$SEH_info_bn_gather5
+
+.pdata ENDS
+.xdata SEGMENT READONLY ALIGN(8)
+ALIGN  8
+$L$SEH_info_bn_mul_mont_gather5::
+DB     9,0,0,0
+       DD      imagerel mul_handler
+       DD      imagerel $L$mul_alloca,imagerel $L$mul_body,imagerel $L$mul_epilogue
+
+ALIGN  8
+$L$SEH_info_bn_mul4x_mont_gather5::
+DB     9,0,0,0
+       DD      imagerel mul_handler
+       DD      imagerel $L$mul4x_alloca,imagerel $L$mul4x_body,imagerel $L$mul4x_epilogue
+
+ALIGN  8
+$L$SEH_info_bn_gather5::
+DB     001h,00dh,005h,000h
+DB     00dh,078h,001h,000h
+
+DB     008h,068h,000h,000h
+
+DB     004h,042h,000h,000h
+
+ALIGN  8
+
+.xdata ENDS
+END
diff --git a/deps/openssl/asm/x64-win32-masm/modes/ghash-x86_64.asm b/deps/openssl/asm/x64-win32-masm/modes/ghash-x86_64.asm
new file mode 100644 (file)
index 0000000..01fe307
--- /dev/null
@@ -0,0 +1,1202 @@
+OPTION DOTNAME
+.text$ SEGMENT ALIGN(64) 'CODE'
+
+PUBLIC gcm_gmult_4bit
+
+ALIGN  16
+gcm_gmult_4bit PROC PUBLIC
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_gcm_gmult_4bit::
+       mov     rdi,rcx
+       mov     rsi,rdx
+
+
+       push    rbx
+       push    rbp
+       push    r12
+$L$gmult_prologue::
+
+       movzx   r8,BYTE PTR[15+rdi]
+       lea     r11,QWORD PTR[$L$rem_4bit]
+       xor     rax,rax
+       xor     rbx,rbx
+       mov     al,r8b
+       mov     bl,r8b
+       shl     al,4
+       mov     rcx,14
+       mov     r8,QWORD PTR[8+rax*1+rsi]
+       mov     r9,QWORD PTR[rax*1+rsi]
+       and     bl,0f0h
+       mov     rdx,r8
+       jmp     $L$oop1
+
+ALIGN  16
+$L$oop1::
+       shr     r8,4
+       and     rdx,0fh
+       mov     r10,r9
+       mov     al,BYTE PTR[rcx*1+rdi]
+       shr     r9,4
+       xor     r8,QWORD PTR[8+rbx*1+rsi]
+       shl     r10,60
+       xor     r9,QWORD PTR[rbx*1+rsi]
+       mov     bl,al
+       xor     r9,QWORD PTR[rdx*8+r11]
+       mov     rdx,r8
+       shl     al,4
+       xor     r8,r10
+       dec     rcx
+       js      $L$break1
+
+       shr     r8,4
+       and     rdx,0fh
+       mov     r10,r9
+       shr     r9,4
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       shl     r10,60
+       xor     r9,QWORD PTR[rax*1+rsi]
+       and     bl,0f0h
+       xor     r9,QWORD PTR[rdx*8+r11]
+       mov     rdx,r8
+       xor     r8,r10
+       jmp     $L$oop1
+
+ALIGN  16
+$L$break1::
+       shr     r8,4
+       and     rdx,0fh
+       mov     r10,r9
+       shr     r9,4
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       shl     r10,60
+       xor     r9,QWORD PTR[rax*1+rsi]
+       and     bl,0f0h
+       xor     r9,QWORD PTR[rdx*8+r11]
+       mov     rdx,r8
+       xor     r8,r10
+
+       shr     r8,4
+       and     rdx,0fh
+       mov     r10,r9
+       shr     r9,4
+       xor     r8,QWORD PTR[8+rbx*1+rsi]
+       shl     r10,60
+       xor     r9,QWORD PTR[rbx*1+rsi]
+       xor     r8,r10
+       xor     r9,QWORD PTR[rdx*8+r11]
+
+       bswap   r8
+       bswap   r9
+       mov     QWORD PTR[8+rdi],r8
+       mov     QWORD PTR[rdi],r9
+
+       mov     rbx,QWORD PTR[16+rsp]
+       lea     rsp,QWORD PTR[24+rsp]
+$L$gmult_epilogue::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_gcm_gmult_4bit::
+gcm_gmult_4bit ENDP
+PUBLIC gcm_ghash_4bit
+
+ALIGN  16
+gcm_ghash_4bit PROC PUBLIC
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_gcm_ghash_4bit::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+       mov     rcx,r9
+
+
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       sub     rsp,280
+$L$ghash_prologue::
+       mov     r14,rdx
+       mov     r15,rcx
+       sub     rsi,-128
+       lea     rbp,QWORD PTR[((16+128))+rsp]
+       xor     edx,edx
+       mov     r8,QWORD PTR[((0+0-128))+rsi]
+       mov     rax,QWORD PTR[((0+8-128))+rsi]
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     r9,QWORD PTR[((16+0-128))+rsi]
+       shl     dl,4
+       mov     rbx,QWORD PTR[((16+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[rbp],r8
+       mov     r8,QWORD PTR[((32+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((0-128))+rbp],rax
+       mov     rax,QWORD PTR[((32+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[1+rsp],dl
+       or      rbx,r10
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     QWORD PTR[8+rbp],r9
+       mov     r9,QWORD PTR[((48+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((8-128))+rbp],rbx
+       mov     rbx,QWORD PTR[((48+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[2+rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[16+rbp],r8
+       mov     r8,QWORD PTR[((64+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((16-128))+rbp],rax
+       mov     rax,QWORD PTR[((64+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[3+rsp],dl
+       or      rbx,r10
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     QWORD PTR[24+rbp],r9
+       mov     r9,QWORD PTR[((80+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((24-128))+rbp],rbx
+       mov     rbx,QWORD PTR[((80+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[4+rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[32+rbp],r8
+       mov     r8,QWORD PTR[((96+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((32-128))+rbp],rax
+       mov     rax,QWORD PTR[((96+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[5+rsp],dl
+       or      rbx,r10
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     QWORD PTR[40+rbp],r9
+       mov     r9,QWORD PTR[((112+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((40-128))+rbp],rbx
+       mov     rbx,QWORD PTR[((112+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[6+rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[48+rbp],r8
+       mov     r8,QWORD PTR[((128+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((48-128))+rbp],rax
+       mov     rax,QWORD PTR[((128+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[7+rsp],dl
+       or      rbx,r10
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     QWORD PTR[56+rbp],r9
+       mov     r9,QWORD PTR[((144+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((56-128))+rbp],rbx
+       mov     rbx,QWORD PTR[((144+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[8+rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[64+rbp],r8
+       mov     r8,QWORD PTR[((160+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((64-128))+rbp],rax
+       mov     rax,QWORD PTR[((160+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[9+rsp],dl
+       or      rbx,r10
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     QWORD PTR[72+rbp],r9
+       mov     r9,QWORD PTR[((176+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((72-128))+rbp],rbx
+       mov     rbx,QWORD PTR[((176+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[10+rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[80+rbp],r8
+       mov     r8,QWORD PTR[((192+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((80-128))+rbp],rax
+       mov     rax,QWORD PTR[((192+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[11+rsp],dl
+       or      rbx,r10
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     QWORD PTR[88+rbp],r9
+       mov     r9,QWORD PTR[((208+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((88-128))+rbp],rbx
+       mov     rbx,QWORD PTR[((208+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[12+rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[96+rbp],r8
+       mov     r8,QWORD PTR[((224+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((96-128))+rbp],rax
+       mov     rax,QWORD PTR[((224+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[13+rsp],dl
+       or      rbx,r10
+       mov     dl,al
+       shr     rax,4
+       mov     r10,r8
+       shr     r8,4
+       mov     QWORD PTR[104+rbp],r9
+       mov     r9,QWORD PTR[((240+0-128))+rsi]
+       shl     dl,4
+       mov     QWORD PTR[((104-128))+rbp],rbx
+       mov     rbx,QWORD PTR[((240+8-128))+rsi]
+       shl     r10,60
+       mov     BYTE PTR[14+rsp],dl
+       or      rax,r10
+       mov     dl,bl
+       shr     rbx,4
+       mov     r10,r9
+       shr     r9,4
+       mov     QWORD PTR[112+rbp],r8
+       shl     dl,4
+       mov     QWORD PTR[((112-128))+rbp],rax
+       shl     r10,60
+       mov     BYTE PTR[15+rsp],dl
+       or      rbx,r10
+       mov     QWORD PTR[120+rbp],r9
+       mov     QWORD PTR[((120-128))+rbp],rbx
+       add     rsi,-128
+       mov     r8,QWORD PTR[8+rdi]
+       mov     r9,QWORD PTR[rdi]
+       add     r15,r14
+       lea     r11,QWORD PTR[$L$rem_8bit]
+       jmp     $L$outer_loop
+ALIGN  16
+$L$outer_loop::
+       xor     r9,QWORD PTR[r14]
+       mov     rdx,QWORD PTR[8+r14]
+       lea     r14,QWORD PTR[16+r14]
+       xor     rdx,r8
+       mov     QWORD PTR[rdi],r9
+       mov     QWORD PTR[8+rdi],rdx
+       shr     rdx,32
+       xor     rax,rax
+       rol     edx,8
+       mov     al,dl
+       movzx   ebx,dl
+       shl     al,4
+       shr     ebx,4
+       rol     edx,8
+       mov     r8,QWORD PTR[8+rax*1+rsi]
+       mov     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       shr     ecx,4
+       xor     r12,r8
+       mov     r10,r9
+       shr     r8,8
+       movzx   r12,r12b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r12,WORD PTR[r12*2+r11]
+       movzx   ebx,dl
+       shl     al,4
+       movzx   r13,BYTE PTR[rcx*1+rsp]
+       shr     ebx,4
+       shl     r12,48
+       xor     r13,r8
+       mov     r10,r9
+       xor     r9,r12
+       shr     r8,8
+       movzx   r13,r13b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rcx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rcx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r13,WORD PTR[r13*2+r11]
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       shr     ecx,4
+       shl     r13,48
+       xor     r12,r8
+       mov     r10,r9
+       xor     r9,r13
+       shr     r8,8
+       movzx   r12,r12b
+       mov     edx,DWORD PTR[8+rdi]
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r12,WORD PTR[r12*2+r11]
+       movzx   ebx,dl
+       shl     al,4
+       movzx   r13,BYTE PTR[rcx*1+rsp]
+       shr     ebx,4
+       shl     r12,48
+       xor     r13,r8
+       mov     r10,r9
+       xor     r9,r12
+       shr     r8,8
+       movzx   r13,r13b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rcx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rcx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r13,WORD PTR[r13*2+r11]
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       shr     ecx,4
+       shl     r13,48
+       xor     r12,r8
+       mov     r10,r9
+       xor     r9,r13
+       shr     r8,8
+       movzx   r12,r12b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r12,WORD PTR[r12*2+r11]
+       movzx   ebx,dl
+       shl     al,4
+       movzx   r13,BYTE PTR[rcx*1+rsp]
+       shr     ebx,4
+       shl     r12,48
+       xor     r13,r8
+       mov     r10,r9
+       xor     r9,r12
+       shr     r8,8
+       movzx   r13,r13b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rcx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rcx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r13,WORD PTR[r13*2+r11]
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       shr     ecx,4
+       shl     r13,48
+       xor     r12,r8
+       mov     r10,r9
+       xor     r9,r13
+       shr     r8,8
+       movzx   r12,r12b
+       mov     edx,DWORD PTR[4+rdi]
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r12,WORD PTR[r12*2+r11]
+       movzx   ebx,dl
+       shl     al,4
+       movzx   r13,BYTE PTR[rcx*1+rsp]
+       shr     ebx,4
+       shl     r12,48
+       xor     r13,r8
+       mov     r10,r9
+       xor     r9,r12
+       shr     r8,8
+       movzx   r13,r13b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rcx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rcx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r13,WORD PTR[r13*2+r11]
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       shr     ecx,4
+       shl     r13,48
+       xor     r12,r8
+       mov     r10,r9
+       xor     r9,r13
+       shr     r8,8
+       movzx   r12,r12b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r12,WORD PTR[r12*2+r11]
+       movzx   ebx,dl
+       shl     al,4
+       movzx   r13,BYTE PTR[rcx*1+rsp]
+       shr     ebx,4
+       shl     r12,48
+       xor     r13,r8
+       mov     r10,r9
+       xor     r9,r12
+       shr     r8,8
+       movzx   r13,r13b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rcx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rcx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r13,WORD PTR[r13*2+r11]
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       shr     ecx,4
+       shl     r13,48
+       xor     r12,r8
+       mov     r10,r9
+       xor     r9,r13
+       shr     r8,8
+       movzx   r12,r12b
+       mov     edx,DWORD PTR[rdi]
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r12,WORD PTR[r12*2+r11]
+       movzx   ebx,dl
+       shl     al,4
+       movzx   r13,BYTE PTR[rcx*1+rsp]
+       shr     ebx,4
+       shl     r12,48
+       xor     r13,r8
+       mov     r10,r9
+       xor     r9,r12
+       shr     r8,8
+       movzx   r13,r13b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rcx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rcx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r13,WORD PTR[r13*2+r11]
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       shr     ecx,4
+       shl     r13,48
+       xor     r12,r8
+       mov     r10,r9
+       xor     r9,r13
+       shr     r8,8
+       movzx   r12,r12b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r12,WORD PTR[r12*2+r11]
+       movzx   ebx,dl
+       shl     al,4
+       movzx   r13,BYTE PTR[rcx*1+rsp]
+       shr     ebx,4
+       shl     r12,48
+       xor     r13,r8
+       mov     r10,r9
+       xor     r9,r12
+       shr     r8,8
+       movzx   r13,r13b
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rcx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rcx*8+rbp]
+       rol     edx,8
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       mov     al,dl
+       xor     r8,r10
+       movzx   r13,WORD PTR[r13*2+r11]
+       movzx   ecx,dl
+       shl     al,4
+       movzx   r12,BYTE PTR[rbx*1+rsp]
+       and     ecx,240
+       shl     r13,48
+       xor     r12,r8
+       mov     r10,r9
+       xor     r9,r13
+       shr     r8,8
+       movzx   r12,r12b
+       mov     edx,DWORD PTR[((-4))+rdi]
+       shr     r9,8
+       xor     r8,QWORD PTR[((-128))+rbx*8+rbp]
+       shl     r10,56
+       xor     r9,QWORD PTR[rbx*8+rbp]
+       movzx   r12,WORD PTR[r12*2+r11]
+       xor     r8,QWORD PTR[8+rax*1+rsi]
+       xor     r9,QWORD PTR[rax*1+rsi]
+       shl     r12,48
+       xor     r8,r10
+       xor     r9,r12
+       movzx   r13,r8b
+       shr     r8,4
+       mov     r10,r9
+       shl     r13b,4
+       shr     r9,4
+       xor     r8,QWORD PTR[8+rcx*1+rsi]
+       movzx   r13,WORD PTR[r13*2+r11]
+       shl     r10,60
+       xor     r9,QWORD PTR[rcx*1+rsi]
+       xor     r8,r10
+       shl     r13,48
+       bswap   r8
+       xor     r9,r13
+       bswap   r9
+       cmp     r14,r15
+       jb      $L$outer_loop
+       mov     QWORD PTR[8+rdi],r8
+       mov     QWORD PTR[rdi],r9
+
+       lea     rsi,QWORD PTR[280+rsp]
+       mov     r15,QWORD PTR[rsi]
+       mov     r14,QWORD PTR[8+rsi]
+       mov     r13,QWORD PTR[16+rsi]
+       mov     r12,QWORD PTR[24+rsi]
+       mov     rbp,QWORD PTR[32+rsi]
+       mov     rbx,QWORD PTR[40+rsi]
+       lea     rsp,QWORD PTR[48+rsi]
+$L$ghash_epilogue::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_gcm_ghash_4bit::
+gcm_ghash_4bit ENDP
+PUBLIC gcm_init_clmul
+
+ALIGN  16
+gcm_init_clmul PROC PUBLIC
+       movdqu  xmm2,XMMWORD PTR[rdx]
+       pshufd  xmm2,xmm2,78
+
+
+       pshufd  xmm4,xmm2,255
+       movdqa  xmm3,xmm2
+       psllq   xmm2,1
+       pxor    xmm5,xmm5
+       psrlq   xmm3,63
+       pcmpgtd xmm5,xmm4
+       pslldq  xmm3,8
+       por     xmm2,xmm3
+
+
+       pand    xmm5,XMMWORD PTR[$L$0x1c2_polynomial]
+       pxor    xmm2,xmm5
+
+
+       movdqa  xmm0,xmm2
+       movdqa  xmm1,xmm0
+       pshufd  xmm3,xmm0,78
+       pshufd  xmm4,xmm2,78
+       pxor    xmm3,xmm0
+       pxor    xmm4,xmm2
+DB     102,15,58,68,194,0
+DB     102,15,58,68,202,17
+DB     102,15,58,68,220,0
+       pxor    xmm3,xmm0
+       pxor    xmm3,xmm1
+
+       movdqa  xmm4,xmm3
+       psrldq  xmm3,8
+       pslldq  xmm4,8
+       pxor    xmm1,xmm3
+       pxor    xmm0,xmm4
+
+       movdqa  xmm3,xmm0
+       psllq   xmm0,1
+       pxor    xmm0,xmm3
+       psllq   xmm0,5
+       pxor    xmm0,xmm3
+       psllq   xmm0,57
+       movdqa  xmm4,xmm0
+       pslldq  xmm0,8
+       psrldq  xmm4,8
+       pxor    xmm0,xmm3
+       pxor    xmm1,xmm4
+
+
+       movdqa  xmm4,xmm0
+       psrlq   xmm0,5
+       pxor    xmm0,xmm4
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+       pxor    xmm4,xmm1
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+       movdqu  XMMWORD PTR[rcx],xmm2
+       movdqu  XMMWORD PTR[16+rcx],xmm0
+       DB      0F3h,0C3h               ;repret
+gcm_init_clmul ENDP
+PUBLIC gcm_gmult_clmul
+
+ALIGN  16
+gcm_gmult_clmul        PROC PUBLIC
+       movdqu  xmm0,XMMWORD PTR[rcx]
+       movdqa  xmm5,XMMWORD PTR[$L$bswap_mask]
+       movdqu  xmm2,XMMWORD PTR[rdx]
+DB     102,15,56,0,197
+       movdqa  xmm1,xmm0
+       pshufd  xmm3,xmm0,78
+       pshufd  xmm4,xmm2,78
+       pxor    xmm3,xmm0
+       pxor    xmm4,xmm2
+DB     102,15,58,68,194,0
+DB     102,15,58,68,202,17
+DB     102,15,58,68,220,0
+       pxor    xmm3,xmm0
+       pxor    xmm3,xmm1
+
+       movdqa  xmm4,xmm3
+       psrldq  xmm3,8
+       pslldq  xmm4,8
+       pxor    xmm1,xmm3
+       pxor    xmm0,xmm4
+
+       movdqa  xmm3,xmm0
+       psllq   xmm0,1
+       pxor    xmm0,xmm3
+       psllq   xmm0,5
+       pxor    xmm0,xmm3
+       psllq   xmm0,57
+       movdqa  xmm4,xmm0
+       pslldq  xmm0,8
+       psrldq  xmm4,8
+       pxor    xmm0,xmm3
+       pxor    xmm1,xmm4
+
+
+       movdqa  xmm4,xmm0
+       psrlq   xmm0,5
+       pxor    xmm0,xmm4
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+       pxor    xmm4,xmm1
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+DB     102,15,56,0,197
+       movdqu  XMMWORD PTR[rcx],xmm0
+       DB      0F3h,0C3h               ;repret
+gcm_gmult_clmul        ENDP
+PUBLIC gcm_ghash_clmul
+
+ALIGN  16
+gcm_ghash_clmul        PROC PUBLIC
+$L$SEH_begin_gcm_ghash_clmul::
+
+DB     048h,083h,0ech,058h
+
+DB     00fh,029h,034h,024h
+
+DB     00fh,029h,07ch,024h,010h
+
+DB     044h,00fh,029h,044h,024h,020h
+
+DB     044h,00fh,029h,04ch,024h,030h
+
+DB     044h,00fh,029h,054h,024h,040h
+
+       movdqa  xmm5,XMMWORD PTR[$L$bswap_mask]
+
+       movdqu  xmm0,XMMWORD PTR[rcx]
+       movdqu  xmm2,XMMWORD PTR[rdx]
+DB     102,15,56,0,197
+
+       sub     r9,010h
+       jz      $L$odd_tail
+
+       movdqu  xmm8,XMMWORD PTR[16+rdx]
+
+
+
+
+
+       movdqu  xmm3,XMMWORD PTR[r8]
+       movdqu  xmm6,XMMWORD PTR[16+r8]
+DB     102,15,56,0,221
+DB     102,15,56,0,245
+       pxor    xmm0,xmm3
+       movdqa  xmm7,xmm6
+       pshufd  xmm3,xmm6,78
+       pshufd  xmm4,xmm2,78
+       pxor    xmm3,xmm6
+       pxor    xmm4,xmm2
+DB     102,15,58,68,242,0
+DB     102,15,58,68,250,17
+DB     102,15,58,68,220,0
+       pxor    xmm3,xmm6
+       pxor    xmm3,xmm7
+
+       movdqa  xmm4,xmm3
+       psrldq  xmm3,8
+       pslldq  xmm4,8
+       pxor    xmm7,xmm3
+       pxor    xmm6,xmm4
+       movdqa  xmm1,xmm0
+       pshufd  xmm3,xmm0,78
+       pshufd  xmm4,xmm8,78
+       pxor    xmm3,xmm0
+       pxor    xmm4,xmm8
+
+       lea     r8,QWORD PTR[32+r8]
+       sub     r9,020h
+       jbe     $L$even_tail
+
+$L$mod_loop::
+DB     102,65,15,58,68,192,0
+DB     102,65,15,58,68,200,17
+DB     102,15,58,68,220,0
+       pxor    xmm3,xmm0
+       pxor    xmm3,xmm1
+
+       movdqa  xmm4,xmm3
+       psrldq  xmm3,8
+       pslldq  xmm4,8
+       pxor    xmm1,xmm3
+       pxor    xmm0,xmm4
+       movdqu  xmm3,XMMWORD PTR[r8]
+       pxor    xmm0,xmm6
+       pxor    xmm1,xmm7
+
+       movdqu  xmm6,XMMWORD PTR[16+r8]
+DB     102,15,56,0,221
+DB     102,15,56,0,245
+
+       movdqa  xmm7,xmm6
+       pshufd  xmm9,xmm6,78
+       pshufd  xmm10,xmm2,78
+       pxor    xmm9,xmm6
+       pxor    xmm10,xmm2
+       pxor    xmm1,xmm3
+
+       movdqa  xmm3,xmm0
+       psllq   xmm0,1
+       pxor    xmm0,xmm3
+       psllq   xmm0,5
+       pxor    xmm0,xmm3
+DB     102,15,58,68,242,0
+       psllq   xmm0,57
+       movdqa  xmm4,xmm0
+       pslldq  xmm0,8
+       psrldq  xmm4,8
+       pxor    xmm0,xmm3
+       pxor    xmm1,xmm4
+
+DB     102,15,58,68,250,17
+       movdqa  xmm4,xmm0
+       psrlq   xmm0,5
+       pxor    xmm0,xmm4
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+       pxor    xmm4,xmm1
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+
+DB     102,69,15,58,68,202,0
+       movdqa  xmm1,xmm0
+       pshufd  xmm3,xmm0,78
+       pshufd  xmm4,xmm8,78
+       pxor    xmm3,xmm0
+       pxor    xmm4,xmm8
+
+       pxor    xmm9,xmm6
+       pxor    xmm9,xmm7
+       movdqa  xmm10,xmm9
+       psrldq  xmm9,8
+       pslldq  xmm10,8
+       pxor    xmm7,xmm9
+       pxor    xmm6,xmm10
+
+       lea     r8,QWORD PTR[32+r8]
+       sub     r9,020h
+       ja      $L$mod_loop
+
+$L$even_tail::
+DB     102,65,15,58,68,192,0
+DB     102,65,15,58,68,200,17
+DB     102,15,58,68,220,0
+       pxor    xmm3,xmm0
+       pxor    xmm3,xmm1
+
+       movdqa  xmm4,xmm3
+       psrldq  xmm3,8
+       pslldq  xmm4,8
+       pxor    xmm1,xmm3
+       pxor    xmm0,xmm4
+       pxor    xmm0,xmm6
+       pxor    xmm1,xmm7
+
+       movdqa  xmm3,xmm0
+       psllq   xmm0,1
+       pxor    xmm0,xmm3
+       psllq   xmm0,5
+       pxor    xmm0,xmm3
+       psllq   xmm0,57
+       movdqa  xmm4,xmm0
+       pslldq  xmm0,8
+       psrldq  xmm4,8
+       pxor    xmm0,xmm3
+       pxor    xmm1,xmm4
+
+
+       movdqa  xmm4,xmm0
+       psrlq   xmm0,5
+       pxor    xmm0,xmm4
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+       pxor    xmm4,xmm1
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+       test    r9,r9
+       jnz     $L$done
+
+$L$odd_tail::
+       movdqu  xmm3,XMMWORD PTR[r8]
+DB     102,15,56,0,221
+       pxor    xmm0,xmm3
+       movdqa  xmm1,xmm0
+       pshufd  xmm3,xmm0,78
+       pshufd  xmm4,xmm2,78
+       pxor    xmm3,xmm0
+       pxor    xmm4,xmm2
+DB     102,15,58,68,194,0
+DB     102,15,58,68,202,17
+DB     102,15,58,68,220,0
+       pxor    xmm3,xmm0
+       pxor    xmm3,xmm1
+
+       movdqa  xmm4,xmm3
+       psrldq  xmm3,8
+       pslldq  xmm4,8
+       pxor    xmm1,xmm3
+       pxor    xmm0,xmm4
+
+       movdqa  xmm3,xmm0
+       psllq   xmm0,1
+       pxor    xmm0,xmm3
+       psllq   xmm0,5
+       pxor    xmm0,xmm3
+       psllq   xmm0,57
+       movdqa  xmm4,xmm0
+       pslldq  xmm0,8
+       psrldq  xmm4,8
+       pxor    xmm0,xmm3
+       pxor    xmm1,xmm4
+
+
+       movdqa  xmm4,xmm0
+       psrlq   xmm0,5
+       pxor    xmm0,xmm4
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+       pxor    xmm4,xmm1
+       psrlq   xmm0,1
+       pxor    xmm0,xmm4
+$L$done::
+DB     102,15,56,0,197
+       movdqu  XMMWORD PTR[rcx],xmm0
+       movaps  xmm6,XMMWORD PTR[rsp]
+       movaps  xmm7,XMMWORD PTR[16+rsp]
+       movaps  xmm8,XMMWORD PTR[32+rsp]
+       movaps  xmm9,XMMWORD PTR[48+rsp]
+       movaps  xmm10,XMMWORD PTR[64+rsp]
+       add     rsp,058h
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_gcm_ghash_clmul::
+gcm_ghash_clmul        ENDP
+ALIGN  64
+$L$bswap_mask::
+DB     15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
+$L$0x1c2_polynomial::
+DB     1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0c2h
+ALIGN  64
+
+$L$rem_4bit::
+       DD      0,0,0,471859200,0,943718400,0,610271232
+       DD      0,1887436800,0,1822425088,0,1220542464,0,1423966208
+       DD      0,3774873600,0,4246732800,0,3644850176,0,3311403008
+       DD      0,2441084928,0,2376073216,0,2847932416,0,3051356160
+
+$L$rem_8bit::
+       DW      00000h,001C2h,00384h,00246h,00708h,006CAh,0048Ch,0054Eh
+       DW      00E10h,00FD2h,00D94h,00C56h,00918h,008DAh,00A9Ch,00B5Eh
+       DW      01C20h,01DE2h,01FA4h,01E66h,01B28h,01AEAh,018ACh,0196Eh
+       DW      01230h,013F2h,011B4h,01076h,01538h,014FAh,016BCh,0177Eh
+       DW      03840h,03982h,03BC4h,03A06h,03F48h,03E8Ah,03CCCh,03D0Eh
+       DW      03650h,03792h,035D4h,03416h,03158h,0309Ah,032DCh,0331Eh
+       DW      02460h,025A2h,027E4h,02626h,02368h,022AAh,020ECh,0212Eh
+       DW      02A70h,02BB2h,029F4h,02836h,02D78h,02CBAh,02EFCh,02F3Eh
+       DW      07080h,07142h,07304h,072C6h,07788h,0764Ah,0740Ch,075CEh
+       DW      07E90h,07F52h,07D14h,07CD6h,07998h,0785Ah,07A1Ch,07BDEh
+       DW      06CA0h,06D62h,06F24h,06EE6h,06BA8h,06A6Ah,0682Ch,069EEh
+       DW      062B0h,06372h,06134h,060F6h,065B8h,0647Ah,0663Ch,067FEh
+       DW      048C0h,04902h,04B44h,04A86h,04FC8h,04E0Ah,04C4Ch,04D8Eh
+       DW      046D0h,04712h,04554h,04496h,041D8h,0401Ah,0425Ch,0439Eh
+       DW      054E0h,05522h,05764h,056A6h,053E8h,0522Ah,0506Ch,051AEh
+       DW      05AF0h,05B32h,05974h,058B6h,05DF8h,05C3Ah,05E7Ch,05FBEh
+       DW      0E100h,0E0C2h,0E284h,0E346h,0E608h,0E7CAh,0E58Ch,0E44Eh
+       DW      0EF10h,0EED2h,0EC94h,0ED56h,0E818h,0E9DAh,0EB9Ch,0EA5Eh
+       DW      0FD20h,0FCE2h,0FEA4h,0FF66h,0FA28h,0FBEAh,0F9ACh,0F86Eh
+       DW      0F330h,0F2F2h,0F0B4h,0F176h,0F438h,0F5FAh,0F7BCh,0F67Eh
+       DW      0D940h,0D882h,0DAC4h,0DB06h,0DE48h,0DF8Ah,0DDCCh,0DC0Eh
+       DW      0D750h,0D692h,0D4D4h,0D516h,0D058h,0D19Ah,0D3DCh,0D21Eh
+       DW      0C560h,0C4A2h,0C6E4h,0C726h,0C268h,0C3AAh,0C1ECh,0C02Eh
+       DW      0CB70h,0CAB2h,0C8F4h,0C936h,0CC78h,0CDBAh,0CFFCh,0CE3Eh
+       DW      09180h,09042h,09204h,093C6h,09688h,0974Ah,0950Ch,094CEh
+       DW      09F90h,09E52h,09C14h,09DD6h,09898h,0995Ah,09B1Ch,09ADEh
+       DW      08DA0h,08C62h,08E24h,08FE6h,08AA8h,08B6Ah,0892Ch,088EEh
+       DW      083B0h,08272h,08034h,081F6h,084B8h,0857Ah,0873Ch,086FEh
+       DW      0A9C0h,0A802h,0AA44h,0AB86h,0AEC8h,0AF0Ah,0AD4Ch,0AC8Eh
+       DW      0A7D0h,0A612h,0A454h,0A596h,0A0D8h,0A11Ah,0A35Ch,0A29Eh
+       DW      0B5E0h,0B422h,0B664h,0B7A6h,0B2E8h,0B32Ah,0B16Ch,0B0AEh
+       DW      0BBF0h,0BA32h,0B874h,0B9B6h,0BCF8h,0BD3Ah,0BF7Ch,0BEBEh
+
+DB     71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52
+DB     44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
+DB     60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
+DB     114,103,62,0
+ALIGN  64
+EXTERN __imp_RtlVirtualUnwind:NEAR
+
+ALIGN  16
+se_handler     PROC PRIVATE
+       push    rsi
+       push    rdi
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       pushfq
+       sub     rsp,64
+
+       mov     rax,QWORD PTR[120+r8]
+       mov     rbx,QWORD PTR[248+r8]
+
+       mov     rsi,QWORD PTR[8+r9]
+       mov     r11,QWORD PTR[56+r9]
+
+       mov     r10d,DWORD PTR[r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jb      $L$in_prologue
+
+       mov     rax,QWORD PTR[152+r8]
+
+       mov     r10d,DWORD PTR[4+r11]
+       lea     r10,QWORD PTR[r10*1+rsi]
+       cmp     rbx,r10
+       jae     $L$in_prologue
+
+       lea     rax,QWORD PTR[24+rax]
+
+       mov     rbx,QWORD PTR[((-8))+rax]
+       mov     rbp,QWORD PTR[((-16))+rax]
+       mov     r12,QWORD PTR[((-24))+rax]
+       mov     QWORD PTR[144+r8],rbx
+       mov     QWORD PTR[160+r8],rbp
+       mov     QWORD PTR[216+r8],r12
+
+$L$in_prologue::
+       mov     rdi,QWORD PTR[8+rax]
+       mov     rsi,QWORD PTR[16+rax]
+       mov     QWORD PTR[152+r8],rax
+       mov     QWORD PTR[168+r8],rsi
+       mov     QWORD PTR[176+r8],rdi
+
+       mov     rdi,QWORD PTR[40+r9]
+       mov     rsi,r8
+       mov     ecx,154
+       DD      0a548f3fch
+
+
+       mov     rsi,r9
+       xor     rcx,rcx
+       mov     rdx,QWORD PTR[8+rsi]
+       mov     r8,QWORD PTR[rsi]
+       mov     r9,QWORD PTR[16+rsi]
+       mov     r10,QWORD PTR[40+rsi]
+       lea     r11,QWORD PTR[56+rsi]
+       lea     r12,QWORD PTR[24+rsi]
+       mov     QWORD PTR[32+rsp],r10
+       mov     QWORD PTR[40+rsp],r11
+       mov     QWORD PTR[48+rsp],r12
+       mov     QWORD PTR[56+rsp],rcx
+       call    QWORD PTR[__imp_RtlVirtualUnwind]
+
+       mov     eax,1
+       add     rsp,64
+       popfq
+       pop     r15
+       pop     r14
+       pop     r13
+       pop     r12
+       pop     rbp
+       pop     rbx
+       pop     rdi
+       pop     rsi
+       DB      0F3h,0C3h               ;repret
+se_handler     ENDP
+
+.text$ ENDS
+.pdata SEGMENT READONLY ALIGN(4)
+ALIGN  4
+       DD      imagerel $L$SEH_begin_gcm_gmult_4bit
+       DD      imagerel $L$SEH_end_gcm_gmult_4bit
+       DD      imagerel $L$SEH_info_gcm_gmult_4bit
+
+       DD      imagerel $L$SEH_begin_gcm_ghash_4bit
+       DD      imagerel $L$SEH_end_gcm_ghash_4bit
+       DD      imagerel $L$SEH_info_gcm_ghash_4bit
+
+       DD      imagerel $L$SEH_begin_gcm_ghash_clmul
+       DD      imagerel $L$SEH_end_gcm_ghash_clmul
+       DD      imagerel $L$SEH_info_gcm_ghash_clmul
+
+.pdata ENDS
+.xdata SEGMENT READONLY ALIGN(8)
+ALIGN  8
+$L$SEH_info_gcm_gmult_4bit::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$gmult_prologue,imagerel $L$gmult_epilogue
+
+$L$SEH_info_gcm_ghash_4bit::
+DB     9,0,0,0
+       DD      imagerel se_handler
+       DD      imagerel $L$ghash_prologue,imagerel $L$ghash_epilogue
+
+$L$SEH_info_gcm_ghash_clmul::
+DB     001h,01fh,00bh,000h
+DB     01fh,0a8h,004h,000h
+
+DB     019h,098h,003h,000h
+
+DB     013h,088h,002h,000h
+
+DB     00dh,078h,001h,000h
+
+DB     008h,068h,000h,000h
+
+DB     004h,0a2h,000h,000h
+
+
+.xdata ENDS
+END
diff --git a/deps/openssl/asm/x64-win32-masm/sha/sha256-x86_64.asm b/deps/openssl/asm/x64-win32-masm/sha/sha256-x86_64.asm
new file mode 100644 (file)
index 0000000..f685c2f
--- /dev/null
@@ -0,0 +1,1893 @@
+OPTION DOTNAME
+.text$ SEGMENT ALIGN(64) 'CODE'
+
+PUBLIC sha256_block_data_order
+
+ALIGN  16
+sha256_block_data_order        PROC PUBLIC
+       mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
+       mov     QWORD PTR[16+rsp],rsi
+       mov     rax,rsp
+$L$SEH_begin_sha256_block_data_order::
+       mov     rdi,rcx
+       mov     rsi,rdx
+       mov     rdx,r8
+       mov     rcx,r9
+
+
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       mov     r11,rsp
+       shl     rdx,4
+       sub     rsp,16*4+4*8
+       lea     rdx,QWORD PTR[rdx*4+rsi]
+       and     rsp,-64
+       mov     QWORD PTR[((64+0))+rsp],rdi
+       mov     QWORD PTR[((64+8))+rsp],rsi
+       mov     QWORD PTR[((64+16))+rsp],rdx
+       mov     QWORD PTR[((64+24))+rsp],r11
+$L$prologue::
+
+       lea     rbp,QWORD PTR[K256]
+
+       mov     eax,DWORD PTR[rdi]
+       mov     ebx,DWORD PTR[4+rdi]
+       mov     ecx,DWORD PTR[8+rdi]
+       mov     edx,DWORD PTR[12+rdi]
+       mov     r8d,DWORD PTR[16+rdi]
+       mov     r9d,DWORD PTR[20+rdi]
+       mov     r10d,DWORD PTR[24+rdi]
+       mov     r11d,DWORD PTR[28+rdi]
+       jmp     $L$loop
+
+ALIGN  16
+$L$loop::
+       xor     rdi,rdi
+       mov     r12d,DWORD PTR[rsi]
+       mov     r13d,r8d
+       mov     r14d,eax
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r9d
+       mov     DWORD PTR[rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       ror     r13d,5
+       add     r12d,r11d
+       xor     r14d,eax
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r8d
+       mov     r11d,ebx
+
+       ror     r14d,11
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       xor     r11d,ecx
+       xor     r14d,eax
+       add     r12d,r15d
+       mov     r15d,ebx
+
+       ror     r13d,6
+       and     r11d,eax
+       and     r15d,ecx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r11d,r15d
+
+       add     edx,r12d
+       add     r11d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r11d,r14d
+
+       mov     r12d,DWORD PTR[4+rsi]
+       mov     r13d,edx
+       mov     r14d,r11d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r8d
+       mov     DWORD PTR[4+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       ror     r13d,5
+       add     r12d,r10d
+       xor     r14d,r11d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,edx
+       mov     r10d,eax
+
+       ror     r14d,11
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       xor     r10d,ebx
+       xor     r14d,r11d
+       add     r12d,r15d
+       mov     r15d,eax
+
+       ror     r13d,6
+       and     r10d,r11d
+       and     r15d,ebx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r10d,r15d
+
+       add     ecx,r12d
+       add     r10d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r10d,r14d
+
+       mov     r12d,DWORD PTR[8+rsi]
+       mov     r13d,ecx
+       mov     r14d,r10d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,edx
+       mov     DWORD PTR[8+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       ror     r13d,5
+       add     r12d,r9d
+       xor     r14d,r10d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ecx
+       mov     r9d,r11d
+
+       ror     r14d,11
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       xor     r9d,eax
+       xor     r14d,r10d
+       add     r12d,r15d
+       mov     r15d,r11d
+
+       ror     r13d,6
+       and     r9d,r10d
+       and     r15d,eax
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r9d,r15d
+
+       add     ebx,r12d
+       add     r9d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r9d,r14d
+
+       mov     r12d,DWORD PTR[12+rsi]
+       mov     r13d,ebx
+       mov     r14d,r9d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,ecx
+       mov     DWORD PTR[12+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       ror     r13d,5
+       add     r12d,r8d
+       xor     r14d,r9d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ebx
+       mov     r8d,r10d
+
+       ror     r14d,11
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       xor     r8d,r11d
+       xor     r14d,r9d
+       add     r12d,r15d
+       mov     r15d,r10d
+
+       ror     r13d,6
+       and     r8d,r9d
+       and     r15d,r11d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r8d,r15d
+
+       add     eax,r12d
+       add     r8d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r8d,r14d
+
+       mov     r12d,DWORD PTR[16+rsi]
+       mov     r13d,eax
+       mov     r14d,r8d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,ebx
+       mov     DWORD PTR[16+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       ror     r13d,5
+       add     r12d,edx
+       xor     r14d,r8d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,eax
+       mov     edx,r9d
+
+       ror     r14d,11
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       xor     edx,r10d
+       xor     r14d,r8d
+       add     r12d,r15d
+       mov     r15d,r9d
+
+       ror     r13d,6
+       and     edx,r8d
+       and     r15d,r10d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     edx,r15d
+
+       add     r11d,r12d
+       add     edx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     edx,r14d
+
+       mov     r12d,DWORD PTR[20+rsi]
+       mov     r13d,r11d
+       mov     r14d,edx
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,eax
+       mov     DWORD PTR[20+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       ror     r13d,5
+       add     r12d,ecx
+       xor     r14d,edx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r11d
+       mov     ecx,r8d
+
+       ror     r14d,11
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       xor     ecx,r9d
+       xor     r14d,edx
+       add     r12d,r15d
+       mov     r15d,r8d
+
+       ror     r13d,6
+       and     ecx,edx
+       and     r15d,r9d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ecx,r15d
+
+       add     r10d,r12d
+       add     ecx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ecx,r14d
+
+       mov     r12d,DWORD PTR[24+rsi]
+       mov     r13d,r10d
+       mov     r14d,ecx
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r11d
+       mov     DWORD PTR[24+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       ror     r13d,5
+       add     r12d,ebx
+       xor     r14d,ecx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r10d
+       mov     ebx,edx
+
+       ror     r14d,11
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       xor     ebx,r8d
+       xor     r14d,ecx
+       add     r12d,r15d
+       mov     r15d,edx
+
+       ror     r13d,6
+       and     ebx,ecx
+       and     r15d,r8d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ebx,r15d
+
+       add     r9d,r12d
+       add     ebx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ebx,r14d
+
+       mov     r12d,DWORD PTR[28+rsi]
+       mov     r13d,r9d
+       mov     r14d,ebx
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r10d
+       mov     DWORD PTR[28+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       ror     r13d,5
+       add     r12d,eax
+       xor     r14d,ebx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r9d
+       mov     eax,ecx
+
+       ror     r14d,11
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       xor     eax,edx
+       xor     r14d,ebx
+       add     r12d,r15d
+       mov     r15d,ecx
+
+       ror     r13d,6
+       and     eax,ebx
+       and     r15d,edx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     eax,r15d
+
+       add     r8d,r12d
+       add     eax,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     eax,r14d
+
+       mov     r12d,DWORD PTR[32+rsi]
+       mov     r13d,r8d
+       mov     r14d,eax
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r9d
+       mov     DWORD PTR[32+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       ror     r13d,5
+       add     r12d,r11d
+       xor     r14d,eax
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r8d
+       mov     r11d,ebx
+
+       ror     r14d,11
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       xor     r11d,ecx
+       xor     r14d,eax
+       add     r12d,r15d
+       mov     r15d,ebx
+
+       ror     r13d,6
+       and     r11d,eax
+       and     r15d,ecx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r11d,r15d
+
+       add     edx,r12d
+       add     r11d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r11d,r14d
+
+       mov     r12d,DWORD PTR[36+rsi]
+       mov     r13d,edx
+       mov     r14d,r11d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r8d
+       mov     DWORD PTR[36+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       ror     r13d,5
+       add     r12d,r10d
+       xor     r14d,r11d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,edx
+       mov     r10d,eax
+
+       ror     r14d,11
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       xor     r10d,ebx
+       xor     r14d,r11d
+       add     r12d,r15d
+       mov     r15d,eax
+
+       ror     r13d,6
+       and     r10d,r11d
+       and     r15d,ebx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r10d,r15d
+
+       add     ecx,r12d
+       add     r10d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r10d,r14d
+
+       mov     r12d,DWORD PTR[40+rsi]
+       mov     r13d,ecx
+       mov     r14d,r10d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,edx
+       mov     DWORD PTR[40+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       ror     r13d,5
+       add     r12d,r9d
+       xor     r14d,r10d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ecx
+       mov     r9d,r11d
+
+       ror     r14d,11
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       xor     r9d,eax
+       xor     r14d,r10d
+       add     r12d,r15d
+       mov     r15d,r11d
+
+       ror     r13d,6
+       and     r9d,r10d
+       and     r15d,eax
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r9d,r15d
+
+       add     ebx,r12d
+       add     r9d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r9d,r14d
+
+       mov     r12d,DWORD PTR[44+rsi]
+       mov     r13d,ebx
+       mov     r14d,r9d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,ecx
+       mov     DWORD PTR[44+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       ror     r13d,5
+       add     r12d,r8d
+       xor     r14d,r9d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ebx
+       mov     r8d,r10d
+
+       ror     r14d,11
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       xor     r8d,r11d
+       xor     r14d,r9d
+       add     r12d,r15d
+       mov     r15d,r10d
+
+       ror     r13d,6
+       and     r8d,r9d
+       and     r15d,r11d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r8d,r15d
+
+       add     eax,r12d
+       add     r8d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r8d,r14d
+
+       mov     r12d,DWORD PTR[48+rsi]
+       mov     r13d,eax
+       mov     r14d,r8d
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,ebx
+       mov     DWORD PTR[48+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       ror     r13d,5
+       add     r12d,edx
+       xor     r14d,r8d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,eax
+       mov     edx,r9d
+
+       ror     r14d,11
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       xor     edx,r10d
+       xor     r14d,r8d
+       add     r12d,r15d
+       mov     r15d,r9d
+
+       ror     r13d,6
+       and     edx,r8d
+       and     r15d,r10d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     edx,r15d
+
+       add     r11d,r12d
+       add     edx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     edx,r14d
+
+       mov     r12d,DWORD PTR[52+rsi]
+       mov     r13d,r11d
+       mov     r14d,edx
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,eax
+       mov     DWORD PTR[52+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       ror     r13d,5
+       add     r12d,ecx
+       xor     r14d,edx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r11d
+       mov     ecx,r8d
+
+       ror     r14d,11
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       xor     ecx,r9d
+       xor     r14d,edx
+       add     r12d,r15d
+       mov     r15d,r8d
+
+       ror     r13d,6
+       and     ecx,edx
+       and     r15d,r9d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ecx,r15d
+
+       add     r10d,r12d
+       add     ecx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ecx,r14d
+
+       mov     r12d,DWORD PTR[56+rsi]
+       mov     r13d,r10d
+       mov     r14d,ecx
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r11d
+       mov     DWORD PTR[56+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       ror     r13d,5
+       add     r12d,ebx
+       xor     r14d,ecx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r10d
+       mov     ebx,edx
+
+       ror     r14d,11
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       xor     ebx,r8d
+       xor     r14d,ecx
+       add     r12d,r15d
+       mov     r15d,edx
+
+       ror     r13d,6
+       and     ebx,ecx
+       and     r15d,r8d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ebx,r15d
+
+       add     r9d,r12d
+       add     ebx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ebx,r14d
+
+       mov     r12d,DWORD PTR[60+rsi]
+       mov     r13d,r9d
+       mov     r14d,ebx
+       bswap   r12d
+       ror     r13d,14
+       mov     r15d,r10d
+       mov     DWORD PTR[60+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       ror     r13d,5
+       add     r12d,eax
+       xor     r14d,ebx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r9d
+       mov     eax,ecx
+
+       ror     r14d,11
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       xor     eax,edx
+       xor     r14d,ebx
+       add     r12d,r15d
+       mov     r15d,ecx
+
+       ror     r13d,6
+       and     eax,ebx
+       and     r15d,edx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     eax,r15d
+
+       add     r8d,r12d
+       add     eax,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     eax,r14d
+
+       jmp     $L$rounds_16_xx
+ALIGN  16
+$L$rounds_16_xx::
+       mov     r13d,DWORD PTR[4+rsp]
+       mov     r14d,DWORD PTR[56+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[36+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[rsp]
+       mov     r13d,r8d
+       add     r12d,r14d
+       mov     r14d,eax
+       ror     r13d,14
+       mov     r15d,r9d
+       mov     DWORD PTR[rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       ror     r13d,5
+       add     r12d,r11d
+       xor     r14d,eax
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r8d
+       mov     r11d,ebx
+
+       ror     r14d,11
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       xor     r11d,ecx
+       xor     r14d,eax
+       add     r12d,r15d
+       mov     r15d,ebx
+
+       ror     r13d,6
+       and     r11d,eax
+       and     r15d,ecx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r11d,r15d
+
+       add     edx,r12d
+       add     r11d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r11d,r14d
+
+       mov     r13d,DWORD PTR[8+rsp]
+       mov     r14d,DWORD PTR[60+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[40+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[4+rsp]
+       mov     r13d,edx
+       add     r12d,r14d
+       mov     r14d,r11d
+       ror     r13d,14
+       mov     r15d,r8d
+       mov     DWORD PTR[4+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       ror     r13d,5
+       add     r12d,r10d
+       xor     r14d,r11d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,edx
+       mov     r10d,eax
+
+       ror     r14d,11
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       xor     r10d,ebx
+       xor     r14d,r11d
+       add     r12d,r15d
+       mov     r15d,eax
+
+       ror     r13d,6
+       and     r10d,r11d
+       and     r15d,ebx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r10d,r15d
+
+       add     ecx,r12d
+       add     r10d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r10d,r14d
+
+       mov     r13d,DWORD PTR[12+rsp]
+       mov     r14d,DWORD PTR[rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[44+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[8+rsp]
+       mov     r13d,ecx
+       add     r12d,r14d
+       mov     r14d,r10d
+       ror     r13d,14
+       mov     r15d,edx
+       mov     DWORD PTR[8+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       ror     r13d,5
+       add     r12d,r9d
+       xor     r14d,r10d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ecx
+       mov     r9d,r11d
+
+       ror     r14d,11
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       xor     r9d,eax
+       xor     r14d,r10d
+       add     r12d,r15d
+       mov     r15d,r11d
+
+       ror     r13d,6
+       and     r9d,r10d
+       and     r15d,eax
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r9d,r15d
+
+       add     ebx,r12d
+       add     r9d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r9d,r14d
+
+       mov     r13d,DWORD PTR[16+rsp]
+       mov     r14d,DWORD PTR[4+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[48+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[12+rsp]
+       mov     r13d,ebx
+       add     r12d,r14d
+       mov     r14d,r9d
+       ror     r13d,14
+       mov     r15d,ecx
+       mov     DWORD PTR[12+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       ror     r13d,5
+       add     r12d,r8d
+       xor     r14d,r9d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ebx
+       mov     r8d,r10d
+
+       ror     r14d,11
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       xor     r8d,r11d
+       xor     r14d,r9d
+       add     r12d,r15d
+       mov     r15d,r10d
+
+       ror     r13d,6
+       and     r8d,r9d
+       and     r15d,r11d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r8d,r15d
+
+       add     eax,r12d
+       add     r8d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r8d,r14d
+
+       mov     r13d,DWORD PTR[20+rsp]
+       mov     r14d,DWORD PTR[8+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[52+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[16+rsp]
+       mov     r13d,eax
+       add     r12d,r14d
+       mov     r14d,r8d
+       ror     r13d,14
+       mov     r15d,ebx
+       mov     DWORD PTR[16+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       ror     r13d,5
+       add     r12d,edx
+       xor     r14d,r8d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,eax
+       mov     edx,r9d
+
+       ror     r14d,11
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       xor     edx,r10d
+       xor     r14d,r8d
+       add     r12d,r15d
+       mov     r15d,r9d
+
+       ror     r13d,6
+       and     edx,r8d
+       and     r15d,r10d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     edx,r15d
+
+       add     r11d,r12d
+       add     edx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     edx,r14d
+
+       mov     r13d,DWORD PTR[24+rsp]
+       mov     r14d,DWORD PTR[12+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[56+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[20+rsp]
+       mov     r13d,r11d
+       add     r12d,r14d
+       mov     r14d,edx
+       ror     r13d,14
+       mov     r15d,eax
+       mov     DWORD PTR[20+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       ror     r13d,5
+       add     r12d,ecx
+       xor     r14d,edx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r11d
+       mov     ecx,r8d
+
+       ror     r14d,11
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       xor     ecx,r9d
+       xor     r14d,edx
+       add     r12d,r15d
+       mov     r15d,r8d
+
+       ror     r13d,6
+       and     ecx,edx
+       and     r15d,r9d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ecx,r15d
+
+       add     r10d,r12d
+       add     ecx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ecx,r14d
+
+       mov     r13d,DWORD PTR[28+rsp]
+       mov     r14d,DWORD PTR[16+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[60+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[24+rsp]
+       mov     r13d,r10d
+       add     r12d,r14d
+       mov     r14d,ecx
+       ror     r13d,14
+       mov     r15d,r11d
+       mov     DWORD PTR[24+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       ror     r13d,5
+       add     r12d,ebx
+       xor     r14d,ecx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r10d
+       mov     ebx,edx
+
+       ror     r14d,11
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       xor     ebx,r8d
+       xor     r14d,ecx
+       add     r12d,r15d
+       mov     r15d,edx
+
+       ror     r13d,6
+       and     ebx,ecx
+       and     r15d,r8d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ebx,r15d
+
+       add     r9d,r12d
+       add     ebx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ebx,r14d
+
+       mov     r13d,DWORD PTR[32+rsp]
+       mov     r14d,DWORD PTR[20+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[28+rsp]
+       mov     r13d,r9d
+       add     r12d,r14d
+       mov     r14d,ebx
+       ror     r13d,14
+       mov     r15d,r10d
+       mov     DWORD PTR[28+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       ror     r13d,5
+       add     r12d,eax
+       xor     r14d,ebx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r9d
+       mov     eax,ecx
+
+       ror     r14d,11
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       xor     eax,edx
+       xor     r14d,ebx
+       add     r12d,r15d
+       mov     r15d,ecx
+
+       ror     r13d,6
+       and     eax,ebx
+       and     r15d,edx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     eax,r15d
+
+       add     r8d,r12d
+       add     eax,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     eax,r14d
+
+       mov     r13d,DWORD PTR[36+rsp]
+       mov     r14d,DWORD PTR[24+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[4+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[32+rsp]
+       mov     r13d,r8d
+       add     r12d,r14d
+       mov     r14d,eax
+       ror     r13d,14
+       mov     r15d,r9d
+       mov     DWORD PTR[32+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       ror     r13d,5
+       add     r12d,r11d
+       xor     r14d,eax
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r8d
+       mov     r11d,ebx
+
+       ror     r14d,11
+       xor     r13d,r8d
+       xor     r15d,r10d
+
+       xor     r11d,ecx
+       xor     r14d,eax
+       add     r12d,r15d
+       mov     r15d,ebx
+
+       ror     r13d,6
+       and     r11d,eax
+       and     r15d,ecx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r11d,r15d
+
+       add     edx,r12d
+       add     r11d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r11d,r14d
+
+       mov     r13d,DWORD PTR[40+rsp]
+       mov     r14d,DWORD PTR[28+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[8+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[36+rsp]
+       mov     r13d,edx
+       add     r12d,r14d
+       mov     r14d,r11d
+       ror     r13d,14
+       mov     r15d,r8d
+       mov     DWORD PTR[36+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       ror     r13d,5
+       add     r12d,r10d
+       xor     r14d,r11d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,edx
+       mov     r10d,eax
+
+       ror     r14d,11
+       xor     r13d,edx
+       xor     r15d,r9d
+
+       xor     r10d,ebx
+       xor     r14d,r11d
+       add     r12d,r15d
+       mov     r15d,eax
+
+       ror     r13d,6
+       and     r10d,r11d
+       and     r15d,ebx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r10d,r15d
+
+       add     ecx,r12d
+       add     r10d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r10d,r14d
+
+       mov     r13d,DWORD PTR[44+rsp]
+       mov     r14d,DWORD PTR[32+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[12+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[40+rsp]
+       mov     r13d,ecx
+       add     r12d,r14d
+       mov     r14d,r10d
+       ror     r13d,14
+       mov     r15d,edx
+       mov     DWORD PTR[40+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       ror     r13d,5
+       add     r12d,r9d
+       xor     r14d,r10d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ecx
+       mov     r9d,r11d
+
+       ror     r14d,11
+       xor     r13d,ecx
+       xor     r15d,r8d
+
+       xor     r9d,eax
+       xor     r14d,r10d
+       add     r12d,r15d
+       mov     r15d,r11d
+
+       ror     r13d,6
+       and     r9d,r10d
+       and     r15d,eax
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r9d,r15d
+
+       add     ebx,r12d
+       add     r9d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r9d,r14d
+
+       mov     r13d,DWORD PTR[48+rsp]
+       mov     r14d,DWORD PTR[36+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[16+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[44+rsp]
+       mov     r13d,ebx
+       add     r12d,r14d
+       mov     r14d,r9d
+       ror     r13d,14
+       mov     r15d,ecx
+       mov     DWORD PTR[44+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       ror     r13d,5
+       add     r12d,r8d
+       xor     r14d,r9d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,ebx
+       mov     r8d,r10d
+
+       ror     r14d,11
+       xor     r13d,ebx
+       xor     r15d,edx
+
+       xor     r8d,r11d
+       xor     r14d,r9d
+       add     r12d,r15d
+       mov     r15d,r10d
+
+       ror     r13d,6
+       and     r8d,r9d
+       and     r15d,r11d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     r8d,r15d
+
+       add     eax,r12d
+       add     r8d,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     r8d,r14d
+
+       mov     r13d,DWORD PTR[52+rsp]
+       mov     r14d,DWORD PTR[40+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[20+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[48+rsp]
+       mov     r13d,eax
+       add     r12d,r14d
+       mov     r14d,r8d
+       ror     r13d,14
+       mov     r15d,ebx
+       mov     DWORD PTR[48+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       ror     r13d,5
+       add     r12d,edx
+       xor     r14d,r8d
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,eax
+       mov     edx,r9d
+
+       ror     r14d,11
+       xor     r13d,eax
+       xor     r15d,ecx
+
+       xor     edx,r10d
+       xor     r14d,r8d
+       add     r12d,r15d
+       mov     r15d,r9d
+
+       ror     r13d,6
+       and     edx,r8d
+       and     r15d,r10d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     edx,r15d
+
+       add     r11d,r12d
+       add     edx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     edx,r14d
+
+       mov     r13d,DWORD PTR[56+rsp]
+       mov     r14d,DWORD PTR[44+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[24+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[52+rsp]
+       mov     r13d,r11d
+       add     r12d,r14d
+       mov     r14d,edx
+       ror     r13d,14
+       mov     r15d,eax
+       mov     DWORD PTR[52+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       ror     r13d,5
+       add     r12d,ecx
+       xor     r14d,edx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r11d
+       mov     ecx,r8d
+
+       ror     r14d,11
+       xor     r13d,r11d
+       xor     r15d,ebx
+
+       xor     ecx,r9d
+       xor     r14d,edx
+       add     r12d,r15d
+       mov     r15d,r8d
+
+       ror     r13d,6
+       and     ecx,edx
+       and     r15d,r9d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ecx,r15d
+
+       add     r10d,r12d
+       add     ecx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ecx,r14d
+
+       mov     r13d,DWORD PTR[60+rsp]
+       mov     r14d,DWORD PTR[48+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[28+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[56+rsp]
+       mov     r13d,r10d
+       add     r12d,r14d
+       mov     r14d,ecx
+       ror     r13d,14
+       mov     r15d,r11d
+       mov     DWORD PTR[56+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       ror     r13d,5
+       add     r12d,ebx
+       xor     r14d,ecx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r10d
+       mov     ebx,edx
+
+       ror     r14d,11
+       xor     r13d,r10d
+       xor     r15d,eax
+
+       xor     ebx,r8d
+       xor     r14d,ecx
+       add     r12d,r15d
+       mov     r15d,edx
+
+       ror     r13d,6
+       and     ebx,ecx
+       and     r15d,r8d
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     ebx,r15d
+
+       add     r9d,r12d
+       add     ebx,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     ebx,r14d
+
+       mov     r13d,DWORD PTR[rsp]
+       mov     r14d,DWORD PTR[52+rsp]
+       mov     r12d,r13d
+       mov     r15d,r14d
+
+       ror     r12d,11
+       xor     r12d,r13d
+       shr     r13d,3
+
+       ror     r12d,7
+       xor     r13d,r12d
+       mov     r12d,DWORD PTR[32+rsp]
+
+       ror     r15d,2
+       xor     r15d,r14d
+       shr     r14d,10
+
+       ror     r15d,17
+       add     r12d,r13d
+       xor     r14d,r15d
+
+       add     r12d,DWORD PTR[60+rsp]
+       mov     r13d,r9d
+       add     r12d,r14d
+       mov     r14d,ebx
+       ror     r13d,14
+       mov     r15d,r10d
+       mov     DWORD PTR[60+rsp],r12d
+
+       ror     r14d,9
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       ror     r13d,5
+       add     r12d,eax
+       xor     r14d,ebx
+
+       add     r12d,DWORD PTR[rdi*4+rbp]
+       and     r15d,r9d
+       mov     eax,ecx
+
+       ror     r14d,11
+       xor     r13d,r9d
+       xor     r15d,r11d
+
+       xor     eax,edx
+       xor     r14d,ebx
+       add     r12d,r15d
+       mov     r15d,ecx
+
+       ror     r13d,6
+       and     eax,ebx
+       and     r15d,edx
+
+       ror     r14d,2
+       add     r12d,r13d
+       add     eax,r15d
+
+       add     r8d,r12d
+       add     eax,r12d
+       lea     rdi,QWORD PTR[1+rdi]
+       add     eax,r14d
+
+       cmp     rdi,64
+       jb      $L$rounds_16_xx
+
+       mov     rdi,QWORD PTR[((64+0))+rsp]
+       lea     rsi,QWORD PTR[64+rsi]
+
+       add     eax,DWORD PTR[rdi]
+       add     ebx,DWORD PTR[4+rdi]
+       add     ecx,DWORD PTR[8+rdi]
+       add     edx,DWORD PTR[12+rdi]
+       add     r8d,DWORD PTR[16+rdi]
+       add     r9d,DWORD PTR[20+rdi]
+       add     r10d,DWORD PTR[24+rdi]
+       add     r11d,DWORD PTR[28+rdi]
+
+       cmp     rsi,QWORD PTR[((64+16))+rsp]
+
+       mov     DWORD PTR[rdi],eax
+       mov     DWORD PTR[4+rdi],ebx
+       mov     DWORD PTR[8+rdi],ecx
+       mov     DWORD PTR[12+rdi],edx
+       mov     DWORD PTR[16+rdi],r8d
+       mov     DWORD PTR[20+rdi],r9d
+       mov     DWORD PTR[24+rdi],r10d
+       mov     DWORD PTR[28+rdi],r11d
+       jb      $L$loop
+
+       mov     rsi,QWORD PTR[((64+24))+rsp]
+       mov     r15,QWORD PTR[rsi]
+       mov     r14,QWORD PTR[8+rsi]
+       mov     r13,QWORD PTR[16+rsi]
+       mov     r12,QWORD PTR[24+rsi]
+       mov     rbp,QWORD PTR[32+rsi]
+       mov     rbx,QWORD PTR[40+rsi]
+       lea     rsp,QWORD PTR[48+rsi]
+$L$epilogue::
+       mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
+       mov     rsi,QWORD PTR[16+rsp]
+       DB      0F3h,0C3h               ;repret
+$L$SEH_end_sha256_block_data_order::
+sha256_block_data_order        ENDP
+ALIGN  64
+
+K256::
+       DD      0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
+       DD      03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
+       DD      0d807aa98h,012835b01h,0243185beh,0550c7dc3h
+       DD      072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
+       DD      0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
+       DD      02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
+       DD      0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
+       DD      0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
+       DD      027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
+       DD      0650a7354h,0766a0abbh,081c2c92eh,092722c85h
+       DD      0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
+       DD      0d192e819h,0d6990624h,0f40e3585h,0106aa070h
+       DD      019a4c116h,01e376c08h,02748774ch,034b0bcb5h
+       DD      0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
+       DD      0748f82eeh,078a5636fh,084c87814h,08cc70208h
+       DD      090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
+EXTERN __imp_RtlVirtualUnwind:NEAR
+
+ALIGN  16
+se_handler     PROC PRIVATE
+       push    rsi
+       push    rdi
+       push    rbx
+       push    rbp
+       push    r12
+       push    r13
+       push    r14
+       push    r15
+       pushfq
+       sub     rsp,64
+
+       mov     rax,QWORD PTR[120+r8]
+       mov     rbx,QWORD PTR[248+r8]
+
+       lea     r10,QWORD PTR[$L$prologue]
+       cmp     rbx,r10
+       jb      $L$in_prologue
+
+       mov     rax,QWORD PTR[152+r8]
+
+       lea     r10,QWORD PTR[$L$epilogue]
+       cmp     rbx,r10
+       jae     $L$in_prologue
+
+       mov     rax,QWORD PTR[((64+24))+rax]
+       lea     rax,QWORD PTR[48+rax]
+
+       mov     rbx,QWORD PTR[((-8))+rax]
+       mov     rbp,QWORD PTR[((-16))+rax]
+       mov     r12,QWORD PTR[((-24))+rax]
+       mov     r13,QWORD PTR[((-32))+rax]
+       mov     r14,QWORD PTR[((-40))+rax]
+       mov     r15,QWORD PTR[((-48))+rax]
+       mov     QWORD PTR[144+r8],rbx
+       mov     QWORD PTR[160+r8],rbp
+       mov     QWORD PTR[216+r8],r12
+       mov     QWORD PTR[224+r8],r13
+       mov     QWORD PTR[232+r8],r14
+       mov     QWORD PTR[240+r8],r15
+
+$L$in_prologue::
+       mov     rdi,QWORD PTR[8+rax]
+       mov     rsi,QWORD PTR[16+rax]
+       mov     QWORD PTR[152+r8],rax
+       mov     QWORD PTR[168+r8],rsi
+       mov     QWORD PTR[176+r8],rdi
+
+       mov     rdi,QWORD PTR[40+r9]
+       mov     rsi,r8
+       mov     ecx,154
+       DD      0a548f3fch
+
+
+       mov     rsi,r9
+       xor     rcx,rcx
+       mov     rdx,QWORD PTR[8+rsi]
+       mov     r8,QWORD PTR[rsi]
+       mov     r9,QWORD PTR[16+rsi]
+       mov     r10,QWORD PTR[40+rsi]
+       lea     r11,QWORD PTR[56+rsi]
+       lea     r12,QWORD PTR[24+rsi]
+       mov     QWORD PTR[32+rsp],r10
+       mov     QWORD PTR[40+rsp],r11
+       mov     QWORD PTR[48+rsp],r12
+       mov     QWORD PTR[56+rsp],rcx
+       call    QWORD PTR[__imp_RtlVirtualUnwind]
+
+       mov     eax,1
+       add     rsp,64
+       popfq
+       pop     r15
+       pop     r14
+       pop     r13
+       pop     r12
+       pop     rbp
+       pop     rbx
+       pop     rdi
+       pop     rsi
+       DB      0F3h,0C3h               ;repret
+se_handler     ENDP
+
+.text$ ENDS
+.pdata SEGMENT READONLY ALIGN(4)
+ALIGN  4
+       DD      imagerel $L$SEH_begin_sha256_block_data_order
+       DD      imagerel $L$SEH_end_sha256_block_data_order
+       DD      imagerel $L$SEH_info_sha256_block_data_order
+
+.pdata ENDS
+.xdata SEGMENT READONLY ALIGN(8)
+ALIGN  8
+$L$SEH_info_sha256_block_data_order::
+DB     9,0,0,0
+       DD      imagerel se_handler
+
+.xdata ENDS
+END
index f685c2f..52f998e 100644 (file)
@@ -1,14 +1,14 @@
 OPTION DOTNAME
 .text$ SEGMENT ALIGN(64) 'CODE'
 
-PUBLIC sha256_block_data_order
+PUBLIC sha512_block_data_order
 
 ALIGN  16
-sha256_block_data_order        PROC PUBLIC
+sha512_block_data_order        PROC PUBLIC
        mov     QWORD PTR[8+rsp],rdi    ;WIN64 prologue
        mov     QWORD PTR[16+rsp],rsi
        mov     rax,rsp
-$L$SEH_begin_sha256_block_data_order::
+$L$SEH_begin_sha512_block_data_order::
        mov     rdi,rcx
        mov     rsi,rdx
        mov     rdx,r8
@@ -23,1741 +23,1741 @@ $L$SEH_begin_sha256_block_data_order::
        push    r15
        mov     r11,rsp
        shl     rdx,4
-       sub     rsp,16*4+4*8
-       lea     rdx,QWORD PTR[rdx*4+rsi]
+       sub     rsp,16*8+4*8
+       lea     rdx,QWORD PTR[rdx*8+rsi]
        and     rsp,-64
-       mov     QWORD PTR[((64+0))+rsp],rdi
-       mov     QWORD PTR[((64+8))+rsp],rsi
-       mov     QWORD PTR[((64+16))+rsp],rdx
-       mov     QWORD PTR[((64+24))+rsp],r11
+       mov     QWORD PTR[((128+0))+rsp],rdi
+       mov     QWORD PTR[((128+8))+rsp],rsi
+       mov     QWORD PTR[((128+16))+rsp],rdx
+       mov     QWORD PTR[((128+24))+rsp],r11
 $L$prologue::
 
-       lea     rbp,QWORD PTR[K256]
+       lea     rbp,QWORD PTR[K512]
 
-       mov     eax,DWORD PTR[rdi]
-       mov     ebx,DWORD PTR[4+rdi]
-       mov     ecx,DWORD PTR[8+rdi]
-       mov     edx,DWORD PTR[12+rdi]
-       mov     r8d,DWORD PTR[16+rdi]
-       mov     r9d,DWORD PTR[20+rdi]
-       mov     r10d,DWORD PTR[24+rdi]
-       mov     r11d,DWORD PTR[28+rdi]
+       mov     rax,QWORD PTR[rdi]
+       mov     rbx,QWORD PTR[8+rdi]
+       mov     rcx,QWORD PTR[16+rdi]
+       mov     rdx,QWORD PTR[24+rdi]
+       mov     r8,QWORD PTR[32+rdi]
+       mov     r9,QWORD PTR[40+rdi]
+       mov     r10,QWORD PTR[48+rdi]
+       mov     r11,QWORD PTR[56+rdi]
        jmp     $L$loop
 
 ALIGN  16
 $L$loop::
        xor     rdi,rdi
-       mov     r12d,DWORD PTR[rsi]
-       mov     r13d,r8d
-       mov     r14d,eax
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r9d
-       mov     DWORD PTR[rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       ror     r13d,5
-       add     r12d,r11d
-       xor     r14d,eax
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r8d
-       mov     r11d,ebx
-
-       ror     r14d,11
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       xor     r11d,ecx
-       xor     r14d,eax
-       add     r12d,r15d
-       mov     r15d,ebx
-
-       ror     r13d,6
-       and     r11d,eax
-       and     r15d,ecx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r11d,r15d
-
-       add     edx,r12d
-       add     r11d,r12d
+       mov     r12,QWORD PTR[rsi]
+       mov     r13,r8
+       mov     r14,rax
+       bswap   r12
+       ror     r13,23
+       mov     r15,r9
+       mov     QWORD PTR[rsp],r12
+
+       ror     r14,5
+       xor     r13,r8
+       xor     r15,r10
+
+       ror     r13,4
+       add     r12,r11
+       xor     r14,rax
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r8
+       mov     r11,rbx
+
+       ror     r14,6
+       xor     r13,r8
+       xor     r15,r10
+
+       xor     r11,rcx
+       xor     r14,rax
+       add     r12,r15
+       mov     r15,rbx
+
+       ror     r13,14
+       and     r11,rax
+       and     r15,rcx
+
+       ror     r14,28
+       add     r12,r13
+       add     r11,r15
+
+       add     rdx,r12
+       add     r11,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r11d,r14d
-
-       mov     r12d,DWORD PTR[4+rsi]
-       mov     r13d,edx
-       mov     r14d,r11d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r8d
-       mov     DWORD PTR[4+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       ror     r13d,5
-       add     r12d,r10d
-       xor     r14d,r11d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,edx
-       mov     r10d,eax
-
-       ror     r14d,11
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       xor     r10d,ebx
-       xor     r14d,r11d
-       add     r12d,r15d
-       mov     r15d,eax
-
-       ror     r13d,6
-       and     r10d,r11d
-       and     r15d,ebx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r10d,r15d
-
-       add     ecx,r12d
-       add     r10d,r12d
+       add     r11,r14
+
+       mov     r12,QWORD PTR[8+rsi]
+       mov     r13,rdx
+       mov     r14,r11
+       bswap   r12
+       ror     r13,23
+       mov     r15,r8
+       mov     QWORD PTR[8+rsp],r12
+
+       ror     r14,5
+       xor     r13,rdx
+       xor     r15,r9
+
+       ror     r13,4
+       add     r12,r10
+       xor     r14,r11
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rdx
+       mov     r10,rax
+
+       ror     r14,6
+       xor     r13,rdx
+       xor     r15,r9
+
+       xor     r10,rbx
+       xor     r14,r11
+       add     r12,r15
+       mov     r15,rax
+
+       ror     r13,14
+       and     r10,r11
+       and     r15,rbx
+
+       ror     r14,28
+       add     r12,r13
+       add     r10,r15
+
+       add     rcx,r12
+       add     r10,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r10d,r14d
-
-       mov     r12d,DWORD PTR[8+rsi]
-       mov     r13d,ecx
-       mov     r14d,r10d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,edx
-       mov     DWORD PTR[8+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       ror     r13d,5
-       add     r12d,r9d
-       xor     r14d,r10d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ecx
-       mov     r9d,r11d
-
-       ror     r14d,11
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       xor     r9d,eax
-       xor     r14d,r10d
-       add     r12d,r15d
-       mov     r15d,r11d
-
-       ror     r13d,6
-       and     r9d,r10d
-       and     r15d,eax
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r9d,r15d
-
-       add     ebx,r12d
-       add     r9d,r12d
+       add     r10,r14
+
+       mov     r12,QWORD PTR[16+rsi]
+       mov     r13,rcx
+       mov     r14,r10
+       bswap   r12
+       ror     r13,23
+       mov     r15,rdx
+       mov     QWORD PTR[16+rsp],r12
+
+       ror     r14,5
+       xor     r13,rcx
+       xor     r15,r8
+
+       ror     r13,4
+       add     r12,r9
+       xor     r14,r10
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rcx
+       mov     r9,r11
+
+       ror     r14,6
+       xor     r13,rcx
+       xor     r15,r8
+
+       xor     r9,rax
+       xor     r14,r10
+       add     r12,r15
+       mov     r15,r11
+
+       ror     r13,14
+       and     r9,r10
+       and     r15,rax
+
+       ror     r14,28
+       add     r12,r13
+       add     r9,r15
+
+       add     rbx,r12
+       add     r9,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r9d,r14d
-
-       mov     r12d,DWORD PTR[12+rsi]
-       mov     r13d,ebx
-       mov     r14d,r9d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,ecx
-       mov     DWORD PTR[12+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       ror     r13d,5
-       add     r12d,r8d
-       xor     r14d,r9d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ebx
-       mov     r8d,r10d
-
-       ror     r14d,11
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       xor     r8d,r11d
-       xor     r14d,r9d
-       add     r12d,r15d
-       mov     r15d,r10d
-
-       ror     r13d,6
-       and     r8d,r9d
-       and     r15d,r11d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r8d,r15d
-
-       add     eax,r12d
-       add     r8d,r12d
+       add     r9,r14
+
+       mov     r12,QWORD PTR[24+rsi]
+       mov     r13,rbx
+       mov     r14,r9
+       bswap   r12
+       ror     r13,23
+       mov     r15,rcx
+       mov     QWORD PTR[24+rsp],r12
+
+       ror     r14,5
+       xor     r13,rbx
+       xor     r15,rdx
+
+       ror     r13,4
+       add     r12,r8
+       xor     r14,r9
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rbx
+       mov     r8,r10
+
+       ror     r14,6
+       xor     r13,rbx
+       xor     r15,rdx
+
+       xor     r8,r11
+       xor     r14,r9
+       add     r12,r15
+       mov     r15,r10
+
+       ror     r13,14
+       and     r8,r9
+       and     r15,r11
+
+       ror     r14,28
+       add     r12,r13
+       add     r8,r15
+
+       add     rax,r12
+       add     r8,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r8d,r14d
-
-       mov     r12d,DWORD PTR[16+rsi]
-       mov     r13d,eax
-       mov     r14d,r8d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,ebx
-       mov     DWORD PTR[16+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       ror     r13d,5
-       add     r12d,edx
-       xor     r14d,r8d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,eax
-       mov     edx,r9d
-
-       ror     r14d,11
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       xor     edx,r10d
-       xor     r14d,r8d
-       add     r12d,r15d
-       mov     r15d,r9d
-
-       ror     r13d,6
-       and     edx,r8d
-       and     r15d,r10d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     edx,r15d
-
-       add     r11d,r12d
-       add     edx,r12d
+       add     r8,r14
+
+       mov     r12,QWORD PTR[32+rsi]
+       mov     r13,rax
+       mov     r14,r8
+       bswap   r12
+       ror     r13,23
+       mov     r15,rbx
+       mov     QWORD PTR[32+rsp],r12
+
+       ror     r14,5
+       xor     r13,rax
+       xor     r15,rcx
+
+       ror     r13,4
+       add     r12,rdx
+       xor     r14,r8
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rax
+       mov     rdx,r9
+
+       ror     r14,6
+       xor     r13,rax
+       xor     r15,rcx
+
+       xor     rdx,r10
+       xor     r14,r8
+       add     r12,r15
+       mov     r15,r9
+
+       ror     r13,14
+       and     rdx,r8
+       and     r15,r10
+
+       ror     r14,28
+       add     r12,r13
+       add     rdx,r15
+
+       add     r11,r12
+       add     rdx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     edx,r14d
-
-       mov     r12d,DWORD PTR[20+rsi]
-       mov     r13d,r11d
-       mov     r14d,edx
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,eax
-       mov     DWORD PTR[20+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       ror     r13d,5
-       add     r12d,ecx
-       xor     r14d,edx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r11d
-       mov     ecx,r8d
-
-       ror     r14d,11
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       xor     ecx,r9d
-       xor     r14d,edx
-       add     r12d,r15d
-       mov     r15d,r8d
-
-       ror     r13d,6
-       and     ecx,edx
-       and     r15d,r9d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ecx,r15d
-
-       add     r10d,r12d
-       add     ecx,r12d
+       add     rdx,r14
+
+       mov     r12,QWORD PTR[40+rsi]
+       mov     r13,r11
+       mov     r14,rdx
+       bswap   r12
+       ror     r13,23
+       mov     r15,rax
+       mov     QWORD PTR[40+rsp],r12
+
+       ror     r14,5
+       xor     r13,r11
+       xor     r15,rbx
+
+       ror     r13,4
+       add     r12,rcx
+       xor     r14,rdx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r11
+       mov     rcx,r8
+
+       ror     r14,6
+       xor     r13,r11
+       xor     r15,rbx
+
+       xor     rcx,r9
+       xor     r14,rdx
+       add     r12,r15
+       mov     r15,r8
+
+       ror     r13,14
+       and     rcx,rdx
+       and     r15,r9
+
+       ror     r14,28
+       add     r12,r13
+       add     rcx,r15
+
+       add     r10,r12
+       add     rcx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ecx,r14d
-
-       mov     r12d,DWORD PTR[24+rsi]
-       mov     r13d,r10d
-       mov     r14d,ecx
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r11d
-       mov     DWORD PTR[24+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       ror     r13d,5
-       add     r12d,ebx
-       xor     r14d,ecx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r10d
-       mov     ebx,edx
-
-       ror     r14d,11
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       xor     ebx,r8d
-       xor     r14d,ecx
-       add     r12d,r15d
-       mov     r15d,edx
-
-       ror     r13d,6
-       and     ebx,ecx
-       and     r15d,r8d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ebx,r15d
-
-       add     r9d,r12d
-       add     ebx,r12d
+       add     rcx,r14
+
+       mov     r12,QWORD PTR[48+rsi]
+       mov     r13,r10
+       mov     r14,rcx
+       bswap   r12
+       ror     r13,23
+       mov     r15,r11
+       mov     QWORD PTR[48+rsp],r12
+
+       ror     r14,5
+       xor     r13,r10
+       xor     r15,rax
+
+       ror     r13,4
+       add     r12,rbx
+       xor     r14,rcx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r10
+       mov     rbx,rdx
+
+       ror     r14,6
+       xor     r13,r10
+       xor     r15,rax
+
+       xor     rbx,r8
+       xor     r14,rcx
+       add     r12,r15
+       mov     r15,rdx
+
+       ror     r13,14
+       and     rbx,rcx
+       and     r15,r8
+
+       ror     r14,28
+       add     r12,r13
+       add     rbx,r15
+
+       add     r9,r12
+       add     rbx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ebx,r14d
-
-       mov     r12d,DWORD PTR[28+rsi]
-       mov     r13d,r9d
-       mov     r14d,ebx
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r10d
-       mov     DWORD PTR[28+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       ror     r13d,5
-       add     r12d,eax
-       xor     r14d,ebx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r9d
-       mov     eax,ecx
-
-       ror     r14d,11
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       xor     eax,edx
-       xor     r14d,ebx
-       add     r12d,r15d
-       mov     r15d,ecx
-
-       ror     r13d,6
-       and     eax,ebx
-       and     r15d,edx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     eax,r15d
-
-       add     r8d,r12d
-       add     eax,r12d
+       add     rbx,r14
+
+       mov     r12,QWORD PTR[56+rsi]
+       mov     r13,r9
+       mov     r14,rbx
+       bswap   r12
+       ror     r13,23
+       mov     r15,r10
+       mov     QWORD PTR[56+rsp],r12
+
+       ror     r14,5
+       xor     r13,r9
+       xor     r15,r11
+
+       ror     r13,4
+       add     r12,rax
+       xor     r14,rbx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r9
+       mov     rax,rcx
+
+       ror     r14,6
+       xor     r13,r9
+       xor     r15,r11
+
+       xor     rax,rdx
+       xor     r14,rbx
+       add     r12,r15
+       mov     r15,rcx
+
+       ror     r13,14
+       and     rax,rbx
+       and     r15,rdx
+
+       ror     r14,28
+       add     r12,r13
+       add     rax,r15
+
+       add     r8,r12
+       add     rax,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     eax,r14d
-
-       mov     r12d,DWORD PTR[32+rsi]
-       mov     r13d,r8d
-       mov     r14d,eax
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r9d
-       mov     DWORD PTR[32+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       ror     r13d,5
-       add     r12d,r11d
-       xor     r14d,eax
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r8d
-       mov     r11d,ebx
-
-       ror     r14d,11
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       xor     r11d,ecx
-       xor     r14d,eax
-       add     r12d,r15d
-       mov     r15d,ebx
-
-       ror     r13d,6
-       and     r11d,eax
-       and     r15d,ecx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r11d,r15d
-
-       add     edx,r12d
-       add     r11d,r12d
+       add     rax,r14
+
+       mov     r12,QWORD PTR[64+rsi]
+       mov     r13,r8
+       mov     r14,rax
+       bswap   r12
+       ror     r13,23
+       mov     r15,r9
+       mov     QWORD PTR[64+rsp],r12
+
+       ror     r14,5
+       xor     r13,r8
+       xor     r15,r10
+
+       ror     r13,4
+       add     r12,r11
+       xor     r14,rax
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r8
+       mov     r11,rbx
+
+       ror     r14,6
+       xor     r13,r8
+       xor     r15,r10
+
+       xor     r11,rcx
+       xor     r14,rax
+       add     r12,r15
+       mov     r15,rbx
+
+       ror     r13,14
+       and     r11,rax
+       and     r15,rcx
+
+       ror     r14,28
+       add     r12,r13
+       add     r11,r15
+
+       add     rdx,r12
+       add     r11,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r11d,r14d
-
-       mov     r12d,DWORD PTR[36+rsi]
-       mov     r13d,edx
-       mov     r14d,r11d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r8d
-       mov     DWORD PTR[36+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       ror     r13d,5
-       add     r12d,r10d
-       xor     r14d,r11d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,edx
-       mov     r10d,eax
-
-       ror     r14d,11
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       xor     r10d,ebx
-       xor     r14d,r11d
-       add     r12d,r15d
-       mov     r15d,eax
-
-       ror     r13d,6
-       and     r10d,r11d
-       and     r15d,ebx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r10d,r15d
-
-       add     ecx,r12d
-       add     r10d,r12d
+       add     r11,r14
+
+       mov     r12,QWORD PTR[72+rsi]
+       mov     r13,rdx
+       mov     r14,r11
+       bswap   r12
+       ror     r13,23
+       mov     r15,r8
+       mov     QWORD PTR[72+rsp],r12
+
+       ror     r14,5
+       xor     r13,rdx
+       xor     r15,r9
+
+       ror     r13,4
+       add     r12,r10
+       xor     r14,r11
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rdx
+       mov     r10,rax
+
+       ror     r14,6
+       xor     r13,rdx
+       xor     r15,r9
+
+       xor     r10,rbx
+       xor     r14,r11
+       add     r12,r15
+       mov     r15,rax
+
+       ror     r13,14
+       and     r10,r11
+       and     r15,rbx
+
+       ror     r14,28
+       add     r12,r13
+       add     r10,r15
+
+       add     rcx,r12
+       add     r10,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r10d,r14d
-
-       mov     r12d,DWORD PTR[40+rsi]
-       mov     r13d,ecx
-       mov     r14d,r10d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,edx
-       mov     DWORD PTR[40+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       ror     r13d,5
-       add     r12d,r9d
-       xor     r14d,r10d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ecx
-       mov     r9d,r11d
-
-       ror     r14d,11
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       xor     r9d,eax
-       xor     r14d,r10d
-       add     r12d,r15d
-       mov     r15d,r11d
-
-       ror     r13d,6
-       and     r9d,r10d
-       and     r15d,eax
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r9d,r15d
-
-       add     ebx,r12d
-       add     r9d,r12d
+       add     r10,r14
+
+       mov     r12,QWORD PTR[80+rsi]
+       mov     r13,rcx
+       mov     r14,r10
+       bswap   r12
+       ror     r13,23
+       mov     r15,rdx
+       mov     QWORD PTR[80+rsp],r12
+
+       ror     r14,5
+       xor     r13,rcx
+       xor     r15,r8
+
+       ror     r13,4
+       add     r12,r9
+       xor     r14,r10
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rcx
+       mov     r9,r11
+
+       ror     r14,6
+       xor     r13,rcx
+       xor     r15,r8
+
+       xor     r9,rax
+       xor     r14,r10
+       add     r12,r15
+       mov     r15,r11
+
+       ror     r13,14
+       and     r9,r10
+       and     r15,rax
+
+       ror     r14,28
+       add     r12,r13
+       add     r9,r15
+
+       add     rbx,r12
+       add     r9,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r9d,r14d
-
-       mov     r12d,DWORD PTR[44+rsi]
-       mov     r13d,ebx
-       mov     r14d,r9d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,ecx
-       mov     DWORD PTR[44+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       ror     r13d,5
-       add     r12d,r8d
-       xor     r14d,r9d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ebx
-       mov     r8d,r10d
-
-       ror     r14d,11
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       xor     r8d,r11d
-       xor     r14d,r9d
-       add     r12d,r15d
-       mov     r15d,r10d
-
-       ror     r13d,6
-       and     r8d,r9d
-       and     r15d,r11d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r8d,r15d
-
-       add     eax,r12d
-       add     r8d,r12d
+       add     r9,r14
+
+       mov     r12,QWORD PTR[88+rsi]
+       mov     r13,rbx
+       mov     r14,r9
+       bswap   r12
+       ror     r13,23
+       mov     r15,rcx
+       mov     QWORD PTR[88+rsp],r12
+
+       ror     r14,5
+       xor     r13,rbx
+       xor     r15,rdx
+
+       ror     r13,4
+       add     r12,r8
+       xor     r14,r9
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rbx
+       mov     r8,r10
+
+       ror     r14,6
+       xor     r13,rbx
+       xor     r15,rdx
+
+       xor     r8,r11
+       xor     r14,r9
+       add     r12,r15
+       mov     r15,r10
+
+       ror     r13,14
+       and     r8,r9
+       and     r15,r11
+
+       ror     r14,28
+       add     r12,r13
+       add     r8,r15
+
+       add     rax,r12
+       add     r8,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r8d,r14d
-
-       mov     r12d,DWORD PTR[48+rsi]
-       mov     r13d,eax
-       mov     r14d,r8d
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,ebx
-       mov     DWORD PTR[48+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       ror     r13d,5
-       add     r12d,edx
-       xor     r14d,r8d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,eax
-       mov     edx,r9d
-
-       ror     r14d,11
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       xor     edx,r10d
-       xor     r14d,r8d
-       add     r12d,r15d
-       mov     r15d,r9d
-
-       ror     r13d,6
-       and     edx,r8d
-       and     r15d,r10d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     edx,r15d
-
-       add     r11d,r12d
-       add     edx,r12d
+       add     r8,r14
+
+       mov     r12,QWORD PTR[96+rsi]
+       mov     r13,rax
+       mov     r14,r8
+       bswap   r12
+       ror     r13,23
+       mov     r15,rbx
+       mov     QWORD PTR[96+rsp],r12
+
+       ror     r14,5
+       xor     r13,rax
+       xor     r15,rcx
+
+       ror     r13,4
+       add     r12,rdx
+       xor     r14,r8
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rax
+       mov     rdx,r9
+
+       ror     r14,6
+       xor     r13,rax
+       xor     r15,rcx
+
+       xor     rdx,r10
+       xor     r14,r8
+       add     r12,r15
+       mov     r15,r9
+
+       ror     r13,14
+       and     rdx,r8
+       and     r15,r10
+
+       ror     r14,28
+       add     r12,r13
+       add     rdx,r15
+
+       add     r11,r12
+       add     rdx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     edx,r14d
-
-       mov     r12d,DWORD PTR[52+rsi]
-       mov     r13d,r11d
-       mov     r14d,edx
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,eax
-       mov     DWORD PTR[52+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       ror     r13d,5
-       add     r12d,ecx
-       xor     r14d,edx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r11d
-       mov     ecx,r8d
-
-       ror     r14d,11
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       xor     ecx,r9d
-       xor     r14d,edx
-       add     r12d,r15d
-       mov     r15d,r8d
-
-       ror     r13d,6
-       and     ecx,edx
-       and     r15d,r9d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ecx,r15d
-
-       add     r10d,r12d
-       add     ecx,r12d
+       add     rdx,r14
+
+       mov     r12,QWORD PTR[104+rsi]
+       mov     r13,r11
+       mov     r14,rdx
+       bswap   r12
+       ror     r13,23
+       mov     r15,rax
+       mov     QWORD PTR[104+rsp],r12
+
+       ror     r14,5
+       xor     r13,r11
+       xor     r15,rbx
+
+       ror     r13,4
+       add     r12,rcx
+       xor     r14,rdx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r11
+       mov     rcx,r8
+
+       ror     r14,6
+       xor     r13,r11
+       xor     r15,rbx
+
+       xor     rcx,r9
+       xor     r14,rdx
+       add     r12,r15
+       mov     r15,r8
+
+       ror     r13,14
+       and     rcx,rdx
+       and     r15,r9
+
+       ror     r14,28
+       add     r12,r13
+       add     rcx,r15
+
+       add     r10,r12
+       add     rcx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ecx,r14d
-
-       mov     r12d,DWORD PTR[56+rsi]
-       mov     r13d,r10d
-       mov     r14d,ecx
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r11d
-       mov     DWORD PTR[56+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       ror     r13d,5
-       add     r12d,ebx
-       xor     r14d,ecx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r10d
-       mov     ebx,edx
-
-       ror     r14d,11
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       xor     ebx,r8d
-       xor     r14d,ecx
-       add     r12d,r15d
-       mov     r15d,edx
-
-       ror     r13d,6
-       and     ebx,ecx
-       and     r15d,r8d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ebx,r15d
-
-       add     r9d,r12d
-       add     ebx,r12d
+       add     rcx,r14
+
+       mov     r12,QWORD PTR[112+rsi]
+       mov     r13,r10
+       mov     r14,rcx
+       bswap   r12
+       ror     r13,23
+       mov     r15,r11
+       mov     QWORD PTR[112+rsp],r12
+
+       ror     r14,5
+       xor     r13,r10
+       xor     r15,rax
+
+       ror     r13,4
+       add     r12,rbx
+       xor     r14,rcx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r10
+       mov     rbx,rdx
+
+       ror     r14,6
+       xor     r13,r10
+       xor     r15,rax
+
+       xor     rbx,r8
+       xor     r14,rcx
+       add     r12,r15
+       mov     r15,rdx
+
+       ror     r13,14
+       and     rbx,rcx
+       and     r15,r8
+
+       ror     r14,28
+       add     r12,r13
+       add     rbx,r15
+
+       add     r9,r12
+       add     rbx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ebx,r14d
-
-       mov     r12d,DWORD PTR[60+rsi]
-       mov     r13d,r9d
-       mov     r14d,ebx
-       bswap   r12d
-       ror     r13d,14
-       mov     r15d,r10d
-       mov     DWORD PTR[60+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       ror     r13d,5
-       add     r12d,eax
-       xor     r14d,ebx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r9d
-       mov     eax,ecx
-
-       ror     r14d,11
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       xor     eax,edx
-       xor     r14d,ebx
-       add     r12d,r15d
-       mov     r15d,ecx
-
-       ror     r13d,6
-       and     eax,ebx
-       and     r15d,edx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     eax,r15d
-
-       add     r8d,r12d
-       add     eax,r12d
+       add     rbx,r14
+
+       mov     r12,QWORD PTR[120+rsi]
+       mov     r13,r9
+       mov     r14,rbx
+       bswap   r12
+       ror     r13,23
+       mov     r15,r10
+       mov     QWORD PTR[120+rsp],r12
+
+       ror     r14,5
+       xor     r13,r9
+       xor     r15,r11
+
+       ror     r13,4
+       add     r12,rax
+       xor     r14,rbx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r9
+       mov     rax,rcx
+
+       ror     r14,6
+       xor     r13,r9
+       xor     r15,r11
+
+       xor     rax,rdx
+       xor     r14,rbx
+       add     r12,r15
+       mov     r15,rcx
+
+       ror     r13,14
+       and     rax,rbx
+       and     r15,rdx
+
+       ror     r14,28
+       add     r12,r13
+       add     rax,r15
+
+       add     r8,r12
+       add     rax,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     eax,r14d
+       add     rax,r14
 
        jmp     $L$rounds_16_xx
 ALIGN  16
 $L$rounds_16_xx::
-       mov     r13d,DWORD PTR[4+rsp]
-       mov     r14d,DWORD PTR[56+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[36+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[rsp]
-       mov     r13d,r8d
-       add     r12d,r14d
-       mov     r14d,eax
-       ror     r13d,14
-       mov     r15d,r9d
-       mov     DWORD PTR[rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       ror     r13d,5
-       add     r12d,r11d
-       xor     r14d,eax
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r8d
-       mov     r11d,ebx
-
-       ror     r14d,11
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       xor     r11d,ecx
-       xor     r14d,eax
-       add     r12d,r15d
-       mov     r15d,ebx
-
-       ror     r13d,6
-       and     r11d,eax
-       and     r15d,ecx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r11d,r15d
-
-       add     edx,r12d
-       add     r11d,r12d
+       mov     r13,QWORD PTR[8+rsp]
+       mov     r14,QWORD PTR[112+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[72+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[rsp]
+       mov     r13,r8
+       add     r12,r14
+       mov     r14,rax
+       ror     r13,23
+       mov     r15,r9
+       mov     QWORD PTR[rsp],r12
+
+       ror     r14,5
+       xor     r13,r8
+       xor     r15,r10
+
+       ror     r13,4
+       add     r12,r11
+       xor     r14,rax
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r8
+       mov     r11,rbx
+
+       ror     r14,6
+       xor     r13,r8
+       xor     r15,r10
+
+       xor     r11,rcx
+       xor     r14,rax
+       add     r12,r15
+       mov     r15,rbx
+
+       ror     r13,14
+       and     r11,rax
+       and     r15,rcx
+
+       ror     r14,28
+       add     r12,r13
+       add     r11,r15
+
+       add     rdx,r12
+       add     r11,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r11d,r14d
-
-       mov     r13d,DWORD PTR[8+rsp]
-       mov     r14d,DWORD PTR[60+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[40+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[4+rsp]
-       mov     r13d,edx
-       add     r12d,r14d
-       mov     r14d,r11d
-       ror     r13d,14
-       mov     r15d,r8d
-       mov     DWORD PTR[4+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       ror     r13d,5
-       add     r12d,r10d
-       xor     r14d,r11d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,edx
-       mov     r10d,eax
-
-       ror     r14d,11
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       xor     r10d,ebx
-       xor     r14d,r11d
-       add     r12d,r15d
-       mov     r15d,eax
-
-       ror     r13d,6
-       and     r10d,r11d
-       and     r15d,ebx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r10d,r15d
-
-       add     ecx,r12d
-       add     r10d,r12d
+       add     r11,r14
+
+       mov     r13,QWORD PTR[16+rsp]
+       mov     r14,QWORD PTR[120+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[80+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[8+rsp]
+       mov     r13,rdx
+       add     r12,r14
+       mov     r14,r11
+       ror     r13,23
+       mov     r15,r8
+       mov     QWORD PTR[8+rsp],r12
+
+       ror     r14,5
+       xor     r13,rdx
+       xor     r15,r9
+
+       ror     r13,4
+       add     r12,r10
+       xor     r14,r11
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rdx
+       mov     r10,rax
+
+       ror     r14,6
+       xor     r13,rdx
+       xor     r15,r9
+
+       xor     r10,rbx
+       xor     r14,r11
+       add     r12,r15
+       mov     r15,rax
+
+       ror     r13,14
+       and     r10,r11
+       and     r15,rbx
+
+       ror     r14,28
+       add     r12,r13
+       add     r10,r15
+
+       add     rcx,r12
+       add     r10,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r10d,r14d
-
-       mov     r13d,DWORD PTR[12+rsp]
-       mov     r14d,DWORD PTR[rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[44+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[8+rsp]
-       mov     r13d,ecx
-       add     r12d,r14d
-       mov     r14d,r10d
-       ror     r13d,14
-       mov     r15d,edx
-       mov     DWORD PTR[8+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       ror     r13d,5
-       add     r12d,r9d
-       xor     r14d,r10d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ecx
-       mov     r9d,r11d
-
-       ror     r14d,11
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       xor     r9d,eax
-       xor     r14d,r10d
-       add     r12d,r15d
-       mov     r15d,r11d
-
-       ror     r13d,6
-       and     r9d,r10d
-       and     r15d,eax
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r9d,r15d
-
-       add     ebx,r12d
-       add     r9d,r12d
+       add     r10,r14
+
+       mov     r13,QWORD PTR[24+rsp]
+       mov     r14,QWORD PTR[rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[88+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[16+rsp]
+       mov     r13,rcx
+       add     r12,r14
+       mov     r14,r10
+       ror     r13,23
+       mov     r15,rdx
+       mov     QWORD PTR[16+rsp],r12
+
+       ror     r14,5
+       xor     r13,rcx
+       xor     r15,r8
+
+       ror     r13,4
+       add     r12,r9
+       xor     r14,r10
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rcx
+       mov     r9,r11
+
+       ror     r14,6
+       xor     r13,rcx
+       xor     r15,r8
+
+       xor     r9,rax
+       xor     r14,r10
+       add     r12,r15
+       mov     r15,r11
+
+       ror     r13,14
+       and     r9,r10
+       and     r15,rax
+
+       ror     r14,28
+       add     r12,r13
+       add     r9,r15
+
+       add     rbx,r12
+       add     r9,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r9d,r14d
-
-       mov     r13d,DWORD PTR[16+rsp]
-       mov     r14d,DWORD PTR[4+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[48+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[12+rsp]
-       mov     r13d,ebx
-       add     r12d,r14d
-       mov     r14d,r9d
-       ror     r13d,14
-       mov     r15d,ecx
-       mov     DWORD PTR[12+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       ror     r13d,5
-       add     r12d,r8d
-       xor     r14d,r9d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ebx
-       mov     r8d,r10d
-
-       ror     r14d,11
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       xor     r8d,r11d
-       xor     r14d,r9d
-       add     r12d,r15d
-       mov     r15d,r10d
-
-       ror     r13d,6
-       and     r8d,r9d
-       and     r15d,r11d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r8d,r15d
-
-       add     eax,r12d
-       add     r8d,r12d
+       add     r9,r14
+
+       mov     r13,QWORD PTR[32+rsp]
+       mov     r14,QWORD PTR[8+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[96+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[24+rsp]
+       mov     r13,rbx
+       add     r12,r14
+       mov     r14,r9
+       ror     r13,23
+       mov     r15,rcx
+       mov     QWORD PTR[24+rsp],r12
+
+       ror     r14,5
+       xor     r13,rbx
+       xor     r15,rdx
+
+       ror     r13,4
+       add     r12,r8
+       xor     r14,r9
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rbx
+       mov     r8,r10
+
+       ror     r14,6
+       xor     r13,rbx
+       xor     r15,rdx
+
+       xor     r8,r11
+       xor     r14,r9
+       add     r12,r15
+       mov     r15,r10
+
+       ror     r13,14
+       and     r8,r9
+       and     r15,r11
+
+       ror     r14,28
+       add     r12,r13
+       add     r8,r15
+
+       add     rax,r12
+       add     r8,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r8d,r14d
-
-       mov     r13d,DWORD PTR[20+rsp]
-       mov     r14d,DWORD PTR[8+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[52+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[16+rsp]
-       mov     r13d,eax
-       add     r12d,r14d
-       mov     r14d,r8d
-       ror     r13d,14
-       mov     r15d,ebx
-       mov     DWORD PTR[16+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       ror     r13d,5
-       add     r12d,edx
-       xor     r14d,r8d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,eax
-       mov     edx,r9d
-
-       ror     r14d,11
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       xor     edx,r10d
-       xor     r14d,r8d
-       add     r12d,r15d
-       mov     r15d,r9d
-
-       ror     r13d,6
-       and     edx,r8d
-       and     r15d,r10d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     edx,r15d
-
-       add     r11d,r12d
-       add     edx,r12d
+       add     r8,r14
+
+       mov     r13,QWORD PTR[40+rsp]
+       mov     r14,QWORD PTR[16+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[104+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[32+rsp]
+       mov     r13,rax
+       add     r12,r14
+       mov     r14,r8
+       ror     r13,23
+       mov     r15,rbx
+       mov     QWORD PTR[32+rsp],r12
+
+       ror     r14,5
+       xor     r13,rax
+       xor     r15,rcx
+
+       ror     r13,4
+       add     r12,rdx
+       xor     r14,r8
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rax
+       mov     rdx,r9
+
+       ror     r14,6
+       xor     r13,rax
+       xor     r15,rcx
+
+       xor     rdx,r10
+       xor     r14,r8
+       add     r12,r15
+       mov     r15,r9
+
+       ror     r13,14
+       and     rdx,r8
+       and     r15,r10
+
+       ror     r14,28
+       add     r12,r13
+       add     rdx,r15
+
+       add     r11,r12
+       add     rdx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     edx,r14d
-
-       mov     r13d,DWORD PTR[24+rsp]
-       mov     r14d,DWORD PTR[12+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[56+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[20+rsp]
-       mov     r13d,r11d
-       add     r12d,r14d
-       mov     r14d,edx
-       ror     r13d,14
-       mov     r15d,eax
-       mov     DWORD PTR[20+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       ror     r13d,5
-       add     r12d,ecx
-       xor     r14d,edx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r11d
-       mov     ecx,r8d
-
-       ror     r14d,11
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       xor     ecx,r9d
-       xor     r14d,edx
-       add     r12d,r15d
-       mov     r15d,r8d
-
-       ror     r13d,6
-       and     ecx,edx
-       and     r15d,r9d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ecx,r15d
-
-       add     r10d,r12d
-       add     ecx,r12d
+       add     rdx,r14
+
+       mov     r13,QWORD PTR[48+rsp]
+       mov     r14,QWORD PTR[24+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[112+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[40+rsp]
+       mov     r13,r11
+       add     r12,r14
+       mov     r14,rdx
+       ror     r13,23
+       mov     r15,rax
+       mov     QWORD PTR[40+rsp],r12
+
+       ror     r14,5
+       xor     r13,r11
+       xor     r15,rbx
+
+       ror     r13,4
+       add     r12,rcx
+       xor     r14,rdx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r11
+       mov     rcx,r8
+
+       ror     r14,6
+       xor     r13,r11
+       xor     r15,rbx
+
+       xor     rcx,r9
+       xor     r14,rdx
+       add     r12,r15
+       mov     r15,r8
+
+       ror     r13,14
+       and     rcx,rdx
+       and     r15,r9
+
+       ror     r14,28
+       add     r12,r13
+       add     rcx,r15
+
+       add     r10,r12
+       add     rcx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ecx,r14d
-
-       mov     r13d,DWORD PTR[28+rsp]
-       mov     r14d,DWORD PTR[16+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[60+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[24+rsp]
-       mov     r13d,r10d
-       add     r12d,r14d
-       mov     r14d,ecx
-       ror     r13d,14
-       mov     r15d,r11d
-       mov     DWORD PTR[24+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       ror     r13d,5
-       add     r12d,ebx
-       xor     r14d,ecx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r10d
-       mov     ebx,edx
-
-       ror     r14d,11
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       xor     ebx,r8d
-       xor     r14d,ecx
-       add     r12d,r15d
-       mov     r15d,edx
-
-       ror     r13d,6
-       and     ebx,ecx
-       and     r15d,r8d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ebx,r15d
-
-       add     r9d,r12d
-       add     ebx,r12d
+       add     rcx,r14
+
+       mov     r13,QWORD PTR[56+rsp]
+       mov     r14,QWORD PTR[32+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[120+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[48+rsp]
+       mov     r13,r10
+       add     r12,r14
+       mov     r14,rcx
+       ror     r13,23
+       mov     r15,r11
+       mov     QWORD PTR[48+rsp],r12
+
+       ror     r14,5
+       xor     r13,r10
+       xor     r15,rax
+
+       ror     r13,4
+       add     r12,rbx
+       xor     r14,rcx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r10
+       mov     rbx,rdx
+
+       ror     r14,6
+       xor     r13,r10
+       xor     r15,rax
+
+       xor     rbx,r8
+       xor     r14,rcx
+       add     r12,r15
+       mov     r15,rdx
+
+       ror     r13,14
+       and     rbx,rcx
+       and     r15,r8
+
+       ror     r14,28
+       add     r12,r13
+       add     rbx,r15
+
+       add     r9,r12
+       add     rbx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ebx,r14d
-
-       mov     r13d,DWORD PTR[32+rsp]
-       mov     r14d,DWORD PTR[20+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[28+rsp]
-       mov     r13d,r9d
-       add     r12d,r14d
-       mov     r14d,ebx
-       ror     r13d,14
-       mov     r15d,r10d
-       mov     DWORD PTR[28+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       ror     r13d,5
-       add     r12d,eax
-       xor     r14d,ebx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r9d
-       mov     eax,ecx
-
-       ror     r14d,11
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       xor     eax,edx
-       xor     r14d,ebx
-       add     r12d,r15d
-       mov     r15d,ecx
-
-       ror     r13d,6
-       and     eax,ebx
-       and     r15d,edx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     eax,r15d
-
-       add     r8d,r12d
-       add     eax,r12d
+       add     rbx,r14
+
+       mov     r13,QWORD PTR[64+rsp]
+       mov     r14,QWORD PTR[40+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[56+rsp]
+       mov     r13,r9
+       add     r12,r14
+       mov     r14,rbx
+       ror     r13,23
+       mov     r15,r10
+       mov     QWORD PTR[56+rsp],r12
+
+       ror     r14,5
+       xor     r13,r9
+       xor     r15,r11
+
+       ror     r13,4
+       add     r12,rax
+       xor     r14,rbx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r9
+       mov     rax,rcx
+
+       ror     r14,6
+       xor     r13,r9
+       xor     r15,r11
+
+       xor     rax,rdx
+       xor     r14,rbx
+       add     r12,r15
+       mov     r15,rcx
+
+       ror     r13,14
+       and     rax,rbx
+       and     r15,rdx
+
+       ror     r14,28
+       add     r12,r13
+       add     rax,r15
+
+       add     r8,r12
+       add     rax,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     eax,r14d
-
-       mov     r13d,DWORD PTR[36+rsp]
-       mov     r14d,DWORD PTR[24+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[4+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[32+rsp]
-       mov     r13d,r8d
-       add     r12d,r14d
-       mov     r14d,eax
-       ror     r13d,14
-       mov     r15d,r9d
-       mov     DWORD PTR[32+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       ror     r13d,5
-       add     r12d,r11d
-       xor     r14d,eax
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r8d
-       mov     r11d,ebx
-
-       ror     r14d,11
-       xor     r13d,r8d
-       xor     r15d,r10d
-
-       xor     r11d,ecx
-       xor     r14d,eax
-       add     r12d,r15d
-       mov     r15d,ebx
-
-       ror     r13d,6
-       and     r11d,eax
-       and     r15d,ecx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r11d,r15d
-
-       add     edx,r12d
-       add     r11d,r12d
+       add     rax,r14
+
+       mov     r13,QWORD PTR[72+rsp]
+       mov     r14,QWORD PTR[48+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[8+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[64+rsp]
+       mov     r13,r8
+       add     r12,r14
+       mov     r14,rax
+       ror     r13,23
+       mov     r15,r9
+       mov     QWORD PTR[64+rsp],r12
+
+       ror     r14,5
+       xor     r13,r8
+       xor     r15,r10
+
+       ror     r13,4
+       add     r12,r11
+       xor     r14,rax
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r8
+       mov     r11,rbx
+
+       ror     r14,6
+       xor     r13,r8
+       xor     r15,r10
+
+       xor     r11,rcx
+       xor     r14,rax
+       add     r12,r15
+       mov     r15,rbx
+
+       ror     r13,14
+       and     r11,rax
+       and     r15,rcx
+
+       ror     r14,28
+       add     r12,r13
+       add     r11,r15
+
+       add     rdx,r12
+       add     r11,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r11d,r14d
-
-       mov     r13d,DWORD PTR[40+rsp]
-       mov     r14d,DWORD PTR[28+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[8+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[36+rsp]
-       mov     r13d,edx
-       add     r12d,r14d
-       mov     r14d,r11d
-       ror     r13d,14
-       mov     r15d,r8d
-       mov     DWORD PTR[36+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       ror     r13d,5
-       add     r12d,r10d
-       xor     r14d,r11d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,edx
-       mov     r10d,eax
-
-       ror     r14d,11
-       xor     r13d,edx
-       xor     r15d,r9d
-
-       xor     r10d,ebx
-       xor     r14d,r11d
-       add     r12d,r15d
-       mov     r15d,eax
-
-       ror     r13d,6
-       and     r10d,r11d
-       and     r15d,ebx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r10d,r15d
-
-       add     ecx,r12d
-       add     r10d,r12d
+       add     r11,r14
+
+       mov     r13,QWORD PTR[80+rsp]
+       mov     r14,QWORD PTR[56+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[16+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[72+rsp]
+       mov     r13,rdx
+       add     r12,r14
+       mov     r14,r11
+       ror     r13,23
+       mov     r15,r8
+       mov     QWORD PTR[72+rsp],r12
+
+       ror     r14,5
+       xor     r13,rdx
+       xor     r15,r9
+
+       ror     r13,4
+       add     r12,r10
+       xor     r14,r11
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rdx
+       mov     r10,rax
+
+       ror     r14,6
+       xor     r13,rdx
+       xor     r15,r9
+
+       xor     r10,rbx
+       xor     r14,r11
+       add     r12,r15
+       mov     r15,rax
+
+       ror     r13,14
+       and     r10,r11
+       and     r15,rbx
+
+       ror     r14,28
+       add     r12,r13
+       add     r10,r15
+
+       add     rcx,r12
+       add     r10,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r10d,r14d
-
-       mov     r13d,DWORD PTR[44+rsp]
-       mov     r14d,DWORD PTR[32+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[12+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[40+rsp]
-       mov     r13d,ecx
-       add     r12d,r14d
-       mov     r14d,r10d
-       ror     r13d,14
-       mov     r15d,edx
-       mov     DWORD PTR[40+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       ror     r13d,5
-       add     r12d,r9d
-       xor     r14d,r10d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ecx
-       mov     r9d,r11d
-
-       ror     r14d,11
-       xor     r13d,ecx
-       xor     r15d,r8d
-
-       xor     r9d,eax
-       xor     r14d,r10d
-       add     r12d,r15d
-       mov     r15d,r11d
-
-       ror     r13d,6
-       and     r9d,r10d
-       and     r15d,eax
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r9d,r15d
-
-       add     ebx,r12d
-       add     r9d,r12d
+       add     r10,r14
+
+       mov     r13,QWORD PTR[88+rsp]
+       mov     r14,QWORD PTR[64+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[24+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[80+rsp]
+       mov     r13,rcx
+       add     r12,r14
+       mov     r14,r10
+       ror     r13,23
+       mov     r15,rdx
+       mov     QWORD PTR[80+rsp],r12
+
+       ror     r14,5
+       xor     r13,rcx
+       xor     r15,r8
+
+       ror     r13,4
+       add     r12,r9
+       xor     r14,r10
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rcx
+       mov     r9,r11
+
+       ror     r14,6
+       xor     r13,rcx
+       xor     r15,r8
+
+       xor     r9,rax
+       xor     r14,r10
+       add     r12,r15
+       mov     r15,r11
+
+       ror     r13,14
+       and     r9,r10
+       and     r15,rax
+
+       ror     r14,28
+       add     r12,r13
+       add     r9,r15
+
+       add     rbx,r12
+       add     r9,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r9d,r14d
-
-       mov     r13d,DWORD PTR[48+rsp]
-       mov     r14d,DWORD PTR[36+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[16+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[44+rsp]
-       mov     r13d,ebx
-       add     r12d,r14d
-       mov     r14d,r9d
-       ror     r13d,14
-       mov     r15d,ecx
-       mov     DWORD PTR[44+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       ror     r13d,5
-       add     r12d,r8d
-       xor     r14d,r9d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,ebx
-       mov     r8d,r10d
-
-       ror     r14d,11
-       xor     r13d,ebx
-       xor     r15d,edx
-
-       xor     r8d,r11d
-       xor     r14d,r9d
-       add     r12d,r15d
-       mov     r15d,r10d
-
-       ror     r13d,6
-       and     r8d,r9d
-       and     r15d,r11d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     r8d,r15d
-
-       add     eax,r12d
-       add     r8d,r12d
+       add     r9,r14
+
+       mov     r13,QWORD PTR[96+rsp]
+       mov     r14,QWORD PTR[72+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[32+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[88+rsp]
+       mov     r13,rbx
+       add     r12,r14
+       mov     r14,r9
+       ror     r13,23
+       mov     r15,rcx
+       mov     QWORD PTR[88+rsp],r12
+
+       ror     r14,5
+       xor     r13,rbx
+       xor     r15,rdx
+
+       ror     r13,4
+       add     r12,r8
+       xor     r14,r9
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rbx
+       mov     r8,r10
+
+       ror     r14,6
+       xor     r13,rbx
+       xor     r15,rdx
+
+       xor     r8,r11
+       xor     r14,r9
+       add     r12,r15
+       mov     r15,r10
+
+       ror     r13,14
+       and     r8,r9
+       and     r15,r11
+
+       ror     r14,28
+       add     r12,r13
+       add     r8,r15
+
+       add     rax,r12
+       add     r8,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     r8d,r14d
-
-       mov     r13d,DWORD PTR[52+rsp]
-       mov     r14d,DWORD PTR[40+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[20+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[48+rsp]
-       mov     r13d,eax
-       add     r12d,r14d
-       mov     r14d,r8d
-       ror     r13d,14
-       mov     r15d,ebx
-       mov     DWORD PTR[48+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       ror     r13d,5
-       add     r12d,edx
-       xor     r14d,r8d
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,eax
-       mov     edx,r9d
-
-       ror     r14d,11
-       xor     r13d,eax
-       xor     r15d,ecx
-
-       xor     edx,r10d
-       xor     r14d,r8d
-       add     r12d,r15d
-       mov     r15d,r9d
-
-       ror     r13d,6
-       and     edx,r8d
-       and     r15d,r10d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     edx,r15d
-
-       add     r11d,r12d
-       add     edx,r12d
+       add     r8,r14
+
+       mov     r13,QWORD PTR[104+rsp]
+       mov     r14,QWORD PTR[80+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[40+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[96+rsp]
+       mov     r13,rax
+       add     r12,r14
+       mov     r14,r8
+       ror     r13,23
+       mov     r15,rbx
+       mov     QWORD PTR[96+rsp],r12
+
+       ror     r14,5
+       xor     r13,rax
+       xor     r15,rcx
+
+       ror     r13,4
+       add     r12,rdx
+       xor     r14,r8
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,rax
+       mov     rdx,r9
+
+       ror     r14,6
+       xor     r13,rax
+       xor     r15,rcx
+
+       xor     rdx,r10
+       xor     r14,r8
+       add     r12,r15
+       mov     r15,r9
+
+       ror     r13,14
+       and     rdx,r8
+       and     r15,r10
+
+       ror     r14,28
+       add     r12,r13
+       add     rdx,r15
+
+       add     r11,r12
+       add     rdx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     edx,r14d
-
-       mov     r13d,DWORD PTR[56+rsp]
-       mov     r14d,DWORD PTR[44+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[24+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[52+rsp]
-       mov     r13d,r11d
-       add     r12d,r14d
-       mov     r14d,edx
-       ror     r13d,14
-       mov     r15d,eax
-       mov     DWORD PTR[52+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       ror     r13d,5
-       add     r12d,ecx
-       xor     r14d,edx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r11d
-       mov     ecx,r8d
-
-       ror     r14d,11
-       xor     r13d,r11d
-       xor     r15d,ebx
-
-       xor     ecx,r9d
-       xor     r14d,edx
-       add     r12d,r15d
-       mov     r15d,r8d
-
-       ror     r13d,6
-       and     ecx,edx
-       and     r15d,r9d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ecx,r15d
-
-       add     r10d,r12d
-       add     ecx,r12d
+       add     rdx,r14
+
+       mov     r13,QWORD PTR[112+rsp]
+       mov     r14,QWORD PTR[88+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[48+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[104+rsp]
+       mov     r13,r11
+       add     r12,r14
+       mov     r14,rdx
+       ror     r13,23
+       mov     r15,rax
+       mov     QWORD PTR[104+rsp],r12
+
+       ror     r14,5
+       xor     r13,r11
+       xor     r15,rbx
+
+       ror     r13,4
+       add     r12,rcx
+       xor     r14,rdx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r11
+       mov     rcx,r8
+
+       ror     r14,6
+       xor     r13,r11
+       xor     r15,rbx
+
+       xor     rcx,r9
+       xor     r14,rdx
+       add     r12,r15
+       mov     r15,r8
+
+       ror     r13,14
+       and     rcx,rdx
+       and     r15,r9
+
+       ror     r14,28
+       add     r12,r13
+       add     rcx,r15
+
+       add     r10,r12
+       add     rcx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ecx,r14d
-
-       mov     r13d,DWORD PTR[60+rsp]
-       mov     r14d,DWORD PTR[48+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[28+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[56+rsp]
-       mov     r13d,r10d
-       add     r12d,r14d
-       mov     r14d,ecx
-       ror     r13d,14
-       mov     r15d,r11d
-       mov     DWORD PTR[56+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       ror     r13d,5
-       add     r12d,ebx
-       xor     r14d,ecx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r10d
-       mov     ebx,edx
-
-       ror     r14d,11
-       xor     r13d,r10d
-       xor     r15d,eax
-
-       xor     ebx,r8d
-       xor     r14d,ecx
-       add     r12d,r15d
-       mov     r15d,edx
-
-       ror     r13d,6
-       and     ebx,ecx
-       and     r15d,r8d
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     ebx,r15d
-
-       add     r9d,r12d
-       add     ebx,r12d
+       add     rcx,r14
+
+       mov     r13,QWORD PTR[120+rsp]
+       mov     r14,QWORD PTR[96+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[56+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[112+rsp]
+       mov     r13,r10
+       add     r12,r14
+       mov     r14,rcx
+       ror     r13,23
+       mov     r15,r11
+       mov     QWORD PTR[112+rsp],r12
+
+       ror     r14,5
+       xor     r13,r10
+       xor     r15,rax
+
+       ror     r13,4
+       add     r12,rbx
+       xor     r14,rcx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r10
+       mov     rbx,rdx
+
+       ror     r14,6
+       xor     r13,r10
+       xor     r15,rax
+
+       xor     rbx,r8
+       xor     r14,rcx
+       add     r12,r15
+       mov     r15,rdx
+
+       ror     r13,14
+       and     rbx,rcx
+       and     r15,r8
+
+       ror     r14,28
+       add     r12,r13
+       add     rbx,r15
+
+       add     r9,r12
+       add     rbx,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     ebx,r14d
-
-       mov     r13d,DWORD PTR[rsp]
-       mov     r14d,DWORD PTR[52+rsp]
-       mov     r12d,r13d
-       mov     r15d,r14d
-
-       ror     r12d,11
-       xor     r12d,r13d
-       shr     r13d,3
-
-       ror     r12d,7
-       xor     r13d,r12d
-       mov     r12d,DWORD PTR[32+rsp]
-
-       ror     r15d,2
-       xor     r15d,r14d
-       shr     r14d,10
-
-       ror     r15d,17
-       add     r12d,r13d
-       xor     r14d,r15d
-
-       add     r12d,DWORD PTR[60+rsp]
-       mov     r13d,r9d
-       add     r12d,r14d
-       mov     r14d,ebx
-       ror     r13d,14
-       mov     r15d,r10d
-       mov     DWORD PTR[60+rsp],r12d
-
-       ror     r14d,9
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       ror     r13d,5
-       add     r12d,eax
-       xor     r14d,ebx
-
-       add     r12d,DWORD PTR[rdi*4+rbp]
-       and     r15d,r9d
-       mov     eax,ecx
-
-       ror     r14d,11
-       xor     r13d,r9d
-       xor     r15d,r11d
-
-       xor     eax,edx
-       xor     r14d,ebx
-       add     r12d,r15d
-       mov     r15d,ecx
-
-       ror     r13d,6
-       and     eax,ebx
-       and     r15d,edx
-
-       ror     r14d,2
-       add     r12d,r13d
-       add     eax,r15d
-
-       add     r8d,r12d
-       add     eax,r12d
+       add     rbx,r14
+
+       mov     r13,QWORD PTR[rsp]
+       mov     r14,QWORD PTR[104+rsp]
+       mov     r12,r13
+       mov     r15,r14
+
+       ror     r12,7
+       xor     r12,r13
+       shr     r13,7
+
+       ror     r12,1
+       xor     r13,r12
+       mov     r12,QWORD PTR[64+rsp]
+
+       ror     r15,42
+       xor     r15,r14
+       shr     r14,6
+
+       ror     r15,19
+       add     r12,r13
+       xor     r14,r15
+
+       add     r12,QWORD PTR[120+rsp]
+       mov     r13,r9
+       add     r12,r14
+       mov     r14,rbx
+       ror     r13,23
+       mov     r15,r10
+       mov     QWORD PTR[120+rsp],r12
+
+       ror     r14,5
+       xor     r13,r9
+       xor     r15,r11
+
+       ror     r13,4
+       add     r12,rax
+       xor     r14,rbx
+
+       add     r12,QWORD PTR[rdi*8+rbp]
+       and     r15,r9
+       mov     rax,rcx
+
+       ror     r14,6
+       xor     r13,r9
+       xor     r15,r11
+
+       xor     rax,rdx
+       xor     r14,rbx
+       add     r12,r15
+       mov     r15,rcx
+
+       ror     r13,14
+       and     rax,rbx
+       and     r15,rdx
+
+       ror     r14,28
+       add     r12,r13
+       add     rax,r15
+
+       add     r8,r12
+       add     rax,r12
        lea     rdi,QWORD PTR[1+rdi]
-       add     eax,r14d
+       add     rax,r14
 
-       cmp     rdi,64
+       cmp     rdi,80
        jb      $L$rounds_16_xx
 
-       mov     rdi,QWORD PTR[((64+0))+rsp]
-       lea     rsi,QWORD PTR[64+rsi]
-
-       add     eax,DWORD PTR[rdi]
-       add     ebx,DWORD PTR[4+rdi]
-       add     ecx,DWORD PTR[8+rdi]
-       add     edx,DWORD PTR[12+rdi]
-       add     r8d,DWORD PTR[16+rdi]
-       add     r9d,DWORD PTR[20+rdi]
-       add     r10d,DWORD PTR[24+rdi]
-       add     r11d,DWORD PTR[28+rdi]
-
-       cmp     rsi,QWORD PTR[((64+16))+rsp]
-
-       mov     DWORD PTR[rdi],eax
-       mov     DWORD PTR[4+rdi],ebx
-       mov     DWORD PTR[8+rdi],ecx
-       mov     DWORD PTR[12+rdi],edx
-       mov     DWORD PTR[16+rdi],r8d
-       mov     DWORD PTR[20+rdi],r9d
-       mov     DWORD PTR[24+rdi],r10d
-       mov     DWORD PTR[28+rdi],r11d
+       mov     rdi,QWORD PTR[((128+0))+rsp]
+       lea     rsi,QWORD PTR[128+rsi]
+
+       add     rax,QWORD PTR[rdi]
+       add     rbx,QWORD PTR[8+rdi]
+       add     rcx,QWORD PTR[16+rdi]
+       add     rdx,QWORD PTR[24+rdi]
+       add     r8,QWORD PTR[32+rdi]
+       add     r9,QWORD PTR[40+rdi]
+       add     r10,QWORD PTR[48+rdi]
+       add     r11,QWORD PTR[56+rdi]
+
+       cmp     rsi,QWORD PTR[((128+16))+rsp]
+
+       mov     QWORD PTR[rdi],rax
+       mov     QWORD PTR[8+rdi],rbx
+       mov     QWORD PTR[16+rdi],rcx
+       mov     QWORD PTR[24+rdi],rdx
+       mov     QWORD PTR[32+rdi],r8
+       mov     QWORD PTR[40+rdi],r9
+       mov     QWORD PTR[48+rdi],r10
+       mov     QWORD PTR[56+rdi],r11
        jb      $L$loop
 
-       mov     rsi,QWORD PTR[((64+24))+rsp]
+       mov     rsi,QWORD PTR[((128+24))+rsp]
        mov     r15,QWORD PTR[rsi]
        mov     r14,QWORD PTR[8+rsi]
        mov     r13,QWORD PTR[16+rsi]
@@ -1769,27 +1769,51 @@ $L$epilogue::
        mov     rdi,QWORD PTR[8+rsp]    ;WIN64 epilogue
        mov     rsi,QWORD PTR[16+rsp]
        DB      0F3h,0C3h               ;repret
-$L$SEH_end_sha256_block_data_order::
-sha256_block_data_order        ENDP
+$L$SEH_end_sha512_block_data_order::
+sha512_block_data_order        ENDP
 ALIGN  64
 
-K256::
-       DD      0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
-       DD      03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
-       DD      0d807aa98h,012835b01h,0243185beh,0550c7dc3h
-       DD      072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
-       DD      0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
-       DD      02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
-       DD      0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
-       DD      0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
-       DD      027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
-       DD      0650a7354h,0766a0abbh,081c2c92eh,092722c85h
-       DD      0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
-       DD      0d192e819h,0d6990624h,0f40e3585h,0106aa070h
-       DD      019a4c116h,01e376c08h,02748774ch,034b0bcb5h
-       DD      0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
-       DD      0748f82eeh,078a5636fh,084c87814h,08cc70208h
-       DD      090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
+K512::
+       DQ      0428a2f98d728ae22h,07137449123ef65cdh
+       DQ      0b5c0fbcfec4d3b2fh,0e9b5dba58189dbbch
+       DQ      03956c25bf348b538h,059f111f1b605d019h
+       DQ      0923f82a4af194f9bh,0ab1c5ed5da6d8118h
+       DQ      0d807aa98a3030242h,012835b0145706fbeh
+       DQ      0243185be4ee4b28ch,0550c7dc3d5ffb4e2h
+       DQ      072be5d74f27b896fh,080deb1fe3b1696b1h
+       DQ      09bdc06a725c71235h,0c19bf174cf692694h
+       DQ      0e49b69c19ef14ad2h,0efbe4786384f25e3h
+       DQ      00fc19dc68b8cd5b5h,0240ca1cc77ac9c65h
+       DQ      02de92c6f592b0275h,04a7484aa6ea6e483h
+       DQ      05cb0a9dcbd41fbd4h,076f988da831153b5h
+       DQ      0983e5152ee66dfabh,0a831c66d2db43210h
+       DQ      0b00327c898fb213fh,0bf597fc7beef0ee4h
+       DQ      0c6e00bf33da88fc2h,0d5a79147930aa725h
+       DQ      006ca6351e003826fh,0142929670a0e6e70h
+       DQ      027b70a8546d22ffch,02e1b21385c26c926h
+       DQ      04d2c6dfc5ac42aedh,053380d139d95b3dfh
+       DQ      0650a73548baf63deh,0766a0abb3c77b2a8h
+       DQ      081c2c92e47edaee6h,092722c851482353bh
+       DQ      0a2bfe8a14cf10364h,0a81a664bbc423001h
+       DQ      0c24b8b70d0f89791h,0c76c51a30654be30h
+       DQ      0d192e819d6ef5218h,0d69906245565a910h
+       DQ      0f40e35855771202ah,0106aa07032bbd1b8h
+       DQ      019a4c116b8d2d0c8h,01e376c085141ab53h
+       DQ      02748774cdf8eeb99h,034b0bcb5e19b48a8h
+       DQ      0391c0cb3c5c95a63h,04ed8aa4ae3418acbh
+       DQ      05b9cca4f7763e373h,0682e6ff3d6b2b8a3h
+       DQ      0748f82ee5defb2fch,078a5636f43172f60h
+       DQ      084c87814a1f0ab72h,08cc702081a6439ech
+       DQ      090befffa23631e28h,0a4506cebde82bde9h
+       DQ      0bef9a3f7b2c67915h,0c67178f2e372532bh
+       DQ      0ca273eceea26619ch,0d186b8c721c0c207h
+       DQ      0eada7dd6cde0eb1eh,0f57d4f7fee6ed178h
+       DQ      006f067aa72176fbah,00a637dc5a2c898a6h
+       DQ      0113f9804bef90daeh,01b710b35131c471bh
+       DQ      028db77f523047d84h,032caab7b40c72493h
+       DQ      03c9ebe0a15c9bebch,0431d67c49c100d4ch
+       DQ      04cc5d4becb3e42b6h,0597f299cfc657e2ah
+       DQ      05fcb6fab3ad6faech,06c44198c4a475817h
 EXTERN __imp_RtlVirtualUnwind:NEAR
 
 ALIGN  16
@@ -1818,7 +1842,7 @@ se_handler        PROC PRIVATE
        cmp     rbx,r10
        jae     $L$in_prologue
 
-       mov     rax,QWORD PTR[((64+24))+rax]
+       mov     rax,QWORD PTR[((128+24))+rax]
        lea     rax,QWORD PTR[48+rax]
 
        mov     rbx,QWORD PTR[((-8))+rax]
@@ -1878,14 +1902,14 @@ se_handler      ENDP
 .text$ ENDS
 .pdata SEGMENT READONLY ALIGN(4)
 ALIGN  4
-       DD      imagerel $L$SEH_begin_sha256_block_data_order
-       DD      imagerel $L$SEH_end_sha256_block_data_order
-       DD      imagerel $L$SEH_info_sha256_block_data_order
+       DD      imagerel $L$SEH_begin_sha512_block_data_order
+       DD      imagerel $L$SEH_end_sha512_block_data_order
+       DD      imagerel $L$SEH_info_sha512_block_data_order
 
 .pdata ENDS
 .xdata SEGMENT READONLY ALIGN(8)
 ALIGN  8
-$L$SEH_info_sha256_block_data_order::
+$L$SEH_info_sha512_block_data_order::
 DB     9,0,0,0
        DD      imagerel se_handler
 
index f586d3d..f69b7d5 100644 (file)
@@ -2252,6 +2252,8 @@ AES_cbc_encrypt:
        jb      .L015slow_way
        testl   $15,%ecx
        jnz     .L015slow_way
+       btl     $28,(%eax)
+       jc      .L015slow_way
        leal    -324(%esp),%esi
        andl    $-64,%esi
        movl    %ebp,%eax
diff --git a/deps/openssl/asm/x86-elf-gas/aes/vpaes-x86.s b/deps/openssl/asm/x86-elf-gas/aes/vpaes-x86.s
new file mode 100644 (file)
index 0000000..c53a507
--- /dev/null
@@ -0,0 +1,661 @@
+.file  "vpaes-x86.s"
+.text
+.align 64
+.L_vpaes_consts:
+.long  218628480,235210255,168496130,67568393
+.long  252381056,17041926,33884169,51187212
+.long  252645135,252645135,252645135,252645135
+.long  1512730624,3266504856,1377990664,3401244816
+.long  830229760,1275146365,2969422977,3447763452
+.long  3411033600,2979783055,338359620,2782886510
+.long  4209124096,907596821,221174255,1006095553
+.long  191964160,3799684038,3164090317,1589111125
+.long  182528256,1777043520,2877432650,3265356744
+.long  1874708224,3503451415,3305285752,363511674
+.long  1606117888,3487855781,1093350906,2384367825
+.long  197121,67569157,134941193,202313229
+.long  67569157,134941193,202313229,197121
+.long  134941193,202313229,197121,67569157
+.long  202313229,197121,67569157,134941193
+.long  33619971,100992007,168364043,235736079
+.long  235736079,33619971,100992007,168364043
+.long  168364043,235736079,33619971,100992007
+.long  100992007,168364043,235736079,33619971
+.long  50462976,117835012,185207048,252579084
+.long  252314880,51251460,117574920,184942860
+.long  184682752,252054788,50987272,118359308
+.long  118099200,185467140,251790600,50727180
+.long  2946363062,528716217,1300004225,1881839624
+.long  1532713819,1532713819,1532713819,1532713819
+.long  3602276352,4288629033,3737020424,4153884961
+.long  1354558464,32357713,2958822624,3775749553
+.long  1201988352,132424512,1572796698,503232858
+.long  2213177600,1597421020,4103937655,675398315
+.long  2749646592,4273543773,1511898873,121693092
+.long  3040248576,1103263732,2871565598,1608280554
+.long  2236667136,2588920351,482954393,64377734
+.long  3069987328,291237287,2117370568,3650299247
+.long  533321216,3573750986,2572112006,1401264716
+.long  1339849704,2721158661,548607111,3445553514
+.long  2128193280,3054596040,2183486460,1257083700
+.long  655635200,1165381986,3923443150,2344132524
+.long  190078720,256924420,290342170,357187870
+.long  1610966272,2263057382,4103205268,309794674
+.long  2592527872,2233205587,1335446729,3402964816
+.long  3973531904,3225098121,3002836325,1918774430
+.long  3870401024,2102906079,2284471353,4117666579
+.long  617007872,1021508343,366931923,691083277
+.long  2528395776,3491914898,2968704004,1613121270
+.long  3445188352,3247741094,844474987,4093578302
+.long  651481088,1190302358,1689581232,574775300
+.long  4289380608,206939853,2555985458,2489840491
+.long  2130264064,327674451,3566485037,3349835193
+.long  2470714624,316102159,3636825756,3393945945
+.byte  86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
+.byte  111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
+.byte  83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
+.byte  114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
+.byte  118,101,114,115,105,116,121,41,0
+.align 64
+.type  _vpaes_preheat,@function
+.align 16
+_vpaes_preheat:
+       addl    (%esp),%ebp
+       movdqa  -48(%ebp),%xmm7
+       movdqa  -16(%ebp),%xmm6
+       ret
+.size  _vpaes_preheat,.-_vpaes_preheat
+.type  _vpaes_encrypt_core,@function
+.align 16
+_vpaes_encrypt_core:
+       movl    $16,%ecx
+       movl    240(%edx),%eax
+       movdqa  %xmm6,%xmm1
+       movdqa  (%ebp),%xmm2
+       pandn   %xmm0,%xmm1
+       movdqu  (%edx),%xmm5
+       psrld   $4,%xmm1
+       pand    %xmm6,%xmm0
+.byte  102,15,56,0,208
+       movdqa  16(%ebp),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm5,%xmm2
+       pxor    %xmm2,%xmm0
+       addl    $16,%edx
+       leal    192(%ebp),%ebx
+       jmp     .L000enc_entry
+.align 16
+.L001enc_loop:
+       movdqa  32(%ebp),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+       movdqa  48(%ebp),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       movdqa  64(%ebp),%xmm5
+.byte  102,15,56,0,234
+       movdqa  -64(%ebx,%ecx,1),%xmm1
+       movdqa  80(%ebp),%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm5,%xmm2
+       movdqa  (%ebx,%ecx,1),%xmm4
+       movdqa  %xmm0,%xmm3
+.byte  102,15,56,0,193
+       addl    $16,%edx
+       pxor    %xmm2,%xmm0
+.byte  102,15,56,0,220
+       addl    $16,%ecx
+       pxor    %xmm0,%xmm3
+.byte  102,15,56,0,193
+       andl    $48,%ecx
+       pxor    %xmm3,%xmm0
+       subl    $1,%eax
+.L000enc_entry:
+       movdqa  %xmm6,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm6,%xmm0
+       movdqa  -32(%ebp),%xmm5
+.byte  102,15,56,0,232
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm7,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm5,%xmm3
+       movdqa  %xmm7,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm5,%xmm4
+       movdqa  %xmm7,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm7,%xmm3
+       movdqu  (%edx),%xmm5
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       jnz     .L001enc_loop
+       movdqa  96(%ebp),%xmm4
+       movdqa  112(%ebp),%xmm0
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+.byte  102,15,56,0,195
+       movdqa  64(%ebx,%ecx,1),%xmm1
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,193
+       ret
+.size  _vpaes_encrypt_core,.-_vpaes_encrypt_core
+.type  _vpaes_decrypt_core,@function
+.align 16
+_vpaes_decrypt_core:
+       movl    240(%edx),%eax
+       leal    608(%ebp),%ebx
+       movdqa  %xmm6,%xmm1
+       movdqa  -64(%ebx),%xmm2
+       pandn   %xmm0,%xmm1
+       movl    %eax,%ecx
+       psrld   $4,%xmm1
+       movdqu  (%edx),%xmm5
+       shll    $4,%ecx
+       pand    %xmm6,%xmm0
+.byte  102,15,56,0,208
+       movdqa  -48(%ebx),%xmm0
+       xorl    $48,%ecx
+.byte  102,15,56,0,193
+       andl    $48,%ecx
+       pxor    %xmm5,%xmm2
+       movdqa  176(%ebp),%xmm5
+       pxor    %xmm2,%xmm0
+       addl    $16,%edx
+       leal    -352(%ebx,%ecx,1),%ecx
+       jmp     .L002dec_entry
+.align 16
+.L003dec_loop:
+       movdqa  -32(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  -16(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       addl    $16,%edx
+.byte  102,15,56,0,197
+       movdqa  (%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  16(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       subl    $1,%eax
+.byte  102,15,56,0,197
+       movdqa  32(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  48(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,197
+       movdqa  64(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  80(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,58,15,237,12
+.L002dec_entry:
+       movdqa  %xmm6,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm6,%xmm0
+       movdqa  -32(%ebp),%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm7,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm7,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm7,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm7,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqu  (%edx),%xmm0
+       jnz     .L003dec_loop
+       movdqa  96(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  112(%ebx),%xmm0
+       movdqa  (%ecx),%xmm2
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,194
+       ret
+.size  _vpaes_decrypt_core,.-_vpaes_decrypt_core
+.type  _vpaes_schedule_core,@function
+.align 16
+_vpaes_schedule_core:
+       addl    (%esp),%ebp
+       movdqu  (%esi),%xmm0
+       movdqa  320(%ebp),%xmm2
+       movdqa  %xmm0,%xmm3
+       leal    (%ebp),%ebx
+       movdqa  %xmm2,4(%esp)
+       call    _vpaes_schedule_transform
+       movdqa  %xmm0,%xmm7
+       testl   %edi,%edi
+       jnz     .L004schedule_am_decrypting
+       movdqu  %xmm0,(%edx)
+       jmp     .L005schedule_go
+.L004schedule_am_decrypting:
+       movdqa  256(%ebp,%ecx,1),%xmm1
+.byte  102,15,56,0,217
+       movdqu  %xmm3,(%edx)
+       xorl    $48,%ecx
+.L005schedule_go:
+       cmpl    $192,%eax
+       ja      .L006schedule_256
+       je      .L007schedule_192
+.L008schedule_128:
+       movl    $10,%eax
+.L009loop_schedule_128:
+       call    _vpaes_schedule_round
+       decl    %eax
+       jz      .L010schedule_mangle_last
+       call    _vpaes_schedule_mangle
+       jmp     .L009loop_schedule_128
+.align 16
+.L007schedule_192:
+       movdqu  8(%esi),%xmm0
+       call    _vpaes_schedule_transform
+       movdqa  %xmm0,%xmm6
+       pxor    %xmm4,%xmm4
+       movhlps %xmm4,%xmm6
+       movl    $4,%eax
+.L011loop_schedule_192:
+       call    _vpaes_schedule_round
+.byte  102,15,58,15,198,8
+       call    _vpaes_schedule_mangle
+       call    _vpaes_schedule_192_smear
+       call    _vpaes_schedule_mangle
+       call    _vpaes_schedule_round
+       decl    %eax
+       jz      .L010schedule_mangle_last
+       call    _vpaes_schedule_mangle
+       call    _vpaes_schedule_192_smear
+       jmp     .L011loop_schedule_192
+.align 16
+.L006schedule_256:
+       movdqu  16(%esi),%xmm0
+       call    _vpaes_schedule_transform
+       movl    $7,%eax
+.L012loop_schedule_256:
+       call    _vpaes_schedule_mangle
+       movdqa  %xmm0,%xmm6
+       call    _vpaes_schedule_round
+       decl    %eax
+       jz      .L010schedule_mangle_last
+       call    _vpaes_schedule_mangle
+       pshufd  $255,%xmm0,%xmm0
+       movdqa  %xmm7,20(%esp)
+       movdqa  %xmm6,%xmm7
+       call    .L_vpaes_schedule_low_round
+       movdqa  20(%esp),%xmm7
+       jmp     .L012loop_schedule_256
+.align 16
+.L010schedule_mangle_last:
+       leal    384(%ebp),%ebx
+       testl   %edi,%edi
+       jnz     .L013schedule_mangle_last_dec
+       movdqa  256(%ebp,%ecx,1),%xmm1
+.byte  102,15,56,0,193
+       leal    352(%ebp),%ebx
+       addl    $32,%edx
+.L013schedule_mangle_last_dec:
+       addl    $-16,%edx
+       pxor    336(%ebp),%xmm0
+       call    _vpaes_schedule_transform
+       movdqu  %xmm0,(%edx)
+       pxor    %xmm0,%xmm0
+       pxor    %xmm1,%xmm1
+       pxor    %xmm2,%xmm2
+       pxor    %xmm3,%xmm3
+       pxor    %xmm4,%xmm4
+       pxor    %xmm5,%xmm5
+       pxor    %xmm6,%xmm6
+       pxor    %xmm7,%xmm7
+       ret
+.size  _vpaes_schedule_core,.-_vpaes_schedule_core
+.type  _vpaes_schedule_192_smear,@function
+.align 16
+_vpaes_schedule_192_smear:
+       pshufd  $128,%xmm6,%xmm0
+       pxor    %xmm0,%xmm6
+       pshufd  $254,%xmm7,%xmm0
+       pxor    %xmm0,%xmm6
+       movdqa  %xmm6,%xmm0
+       pxor    %xmm1,%xmm1
+       movhlps %xmm1,%xmm6
+       ret
+.size  _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
+.type  _vpaes_schedule_round,@function
+.align 16
+_vpaes_schedule_round:
+       movdqa  8(%esp),%xmm2
+       pxor    %xmm1,%xmm1
+.byte  102,15,58,15,202,15
+.byte  102,15,58,15,210,15
+       pxor    %xmm1,%xmm7
+       pshufd  $255,%xmm0,%xmm0
+.byte  102,15,58,15,192,1
+       movdqa  %xmm2,8(%esp)
+.L_vpaes_schedule_low_round:
+       movdqa  %xmm7,%xmm1
+       pslldq  $4,%xmm7
+       pxor    %xmm1,%xmm7
+       movdqa  %xmm7,%xmm1
+       pslldq  $8,%xmm7
+       pxor    %xmm1,%xmm7
+       pxor    336(%ebp),%xmm7
+       movdqa  -16(%ebp),%xmm4
+       movdqa  -48(%ebp),%xmm5
+       movdqa  %xmm4,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm4,%xmm0
+       movdqa  -32(%ebp),%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm5,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm5,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm5,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm5,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqa  32(%ebp),%xmm4
+.byte  102,15,56,0,226
+       movdqa  48(%ebp),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       pxor    %xmm7,%xmm0
+       movdqa  %xmm0,%xmm7
+       ret
+.size  _vpaes_schedule_round,.-_vpaes_schedule_round
+.type  _vpaes_schedule_transform,@function
+.align 16
+_vpaes_schedule_transform:
+       movdqa  -16(%ebp),%xmm2
+       movdqa  %xmm2,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm2,%xmm0
+       movdqa  (%ebx),%xmm2
+.byte  102,15,56,0,208
+       movdqa  16(%ebx),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm2,%xmm0
+       ret
+.size  _vpaes_schedule_transform,.-_vpaes_schedule_transform
+.type  _vpaes_schedule_mangle,@function
+.align 16
+_vpaes_schedule_mangle:
+       movdqa  %xmm0,%xmm4
+       movdqa  128(%ebp),%xmm5
+       testl   %edi,%edi
+       jnz     .L014schedule_mangle_dec
+       addl    $16,%edx
+       pxor    336(%ebp),%xmm4
+.byte  102,15,56,0,229
+       movdqa  %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+       jmp     .L015schedule_mangle_both
+.align 16
+.L014schedule_mangle_dec:
+       movdqa  -16(%ebp),%xmm2
+       leal    416(%ebp),%esi
+       movdqa  %xmm2,%xmm1
+       pandn   %xmm4,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm2,%xmm4
+       movdqa  (%esi),%xmm2
+.byte  102,15,56,0,212
+       movdqa  16(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+       movdqa  32(%esi),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  48(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+       movdqa  64(%esi),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  80(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+       movdqa  96(%esi),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  112(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       addl    $-16,%edx
+.L015schedule_mangle_both:
+       movdqa  256(%ebp,%ecx,1),%xmm1
+.byte  102,15,56,0,217
+       addl    $-16,%ecx
+       andl    $48,%ecx
+       movdqu  %xmm3,(%edx)
+       ret
+.size  _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
+.globl vpaes_set_encrypt_key
+.type  vpaes_set_encrypt_key,@function
+.align 16
+vpaes_set_encrypt_key:
+.L_vpaes_set_encrypt_key_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%eax
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movl    %eax,%ebx
+       shrl    $5,%ebx
+       addl    $5,%ebx
+       movl    %ebx,240(%edx)
+       movl    $48,%ecx
+       movl    $0,%edi
+       leal    .L_vpaes_consts+0x30-.L016pic_point,%ebp
+       call    _vpaes_schedule_core
+.L016pic_point:
+       movl    48(%esp),%esp
+       xorl    %eax,%eax
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin
+.globl vpaes_set_decrypt_key
+.type  vpaes_set_decrypt_key,@function
+.align 16
+vpaes_set_decrypt_key:
+.L_vpaes_set_decrypt_key_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%eax
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movl    %eax,%ebx
+       shrl    $5,%ebx
+       addl    $5,%ebx
+       movl    %ebx,240(%edx)
+       shll    $4,%ebx
+       leal    16(%edx,%ebx,1),%edx
+       movl    $1,%edi
+       movl    %eax,%ecx
+       shrl    $1,%ecx
+       andl    $32,%ecx
+       xorl    $32,%ecx
+       leal    .L_vpaes_consts+0x30-.L017pic_point,%ebp
+       call    _vpaes_schedule_core
+.L017pic_point:
+       movl    48(%esp),%esp
+       xorl    %eax,%eax
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin
+.globl vpaes_encrypt
+.type  vpaes_encrypt,@function
+.align 16
+vpaes_encrypt:
+.L_vpaes_encrypt_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       leal    .L_vpaes_consts+0x30-.L018pic_point,%ebp
+       call    _vpaes_preheat
+.L018pic_point:
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%edi
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movdqu  (%esi),%xmm0
+       call    _vpaes_encrypt_core
+       movdqu  %xmm0,(%edi)
+       movl    48(%esp),%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  vpaes_encrypt,.-.L_vpaes_encrypt_begin
+.globl vpaes_decrypt
+.type  vpaes_decrypt,@function
+.align 16
+vpaes_decrypt:
+.L_vpaes_decrypt_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       leal    .L_vpaes_consts+0x30-.L019pic_point,%ebp
+       call    _vpaes_preheat
+.L019pic_point:
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%edi
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movdqu  (%esi),%xmm0
+       call    _vpaes_decrypt_core
+       movdqu  %xmm0,(%edi)
+       movl    48(%esp),%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  vpaes_decrypt,.-.L_vpaes_decrypt_begin
+.globl vpaes_cbc_encrypt
+.type  vpaes_cbc_encrypt,@function
+.align 16
+vpaes_cbc_encrypt:
+.L_vpaes_cbc_encrypt_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%esi
+       movl    24(%esp),%edi
+       movl    28(%esp),%eax
+       movl    32(%esp),%edx
+       subl    $16,%eax
+       jc      .L020cbc_abort
+       leal    -56(%esp),%ebx
+       movl    36(%esp),%ebp
+       andl    $-16,%ebx
+       movl    40(%esp),%ecx
+       xchgl   %esp,%ebx
+       movdqu  (%ebp),%xmm1
+       subl    %esi,%edi
+       movl    %ebx,48(%esp)
+       movl    %edi,(%esp)
+       movl    %edx,4(%esp)
+       movl    %ebp,8(%esp)
+       movl    %eax,%edi
+       leal    .L_vpaes_consts+0x30-.L021pic_point,%ebp
+       call    _vpaes_preheat
+.L021pic_point:
+       cmpl    $0,%ecx
+       je      .L022cbc_dec_loop
+       jmp     .L023cbc_enc_loop
+.align 16
+.L023cbc_enc_loop:
+       movdqu  (%esi),%xmm0
+       pxor    %xmm1,%xmm0
+       call    _vpaes_encrypt_core
+       movl    (%esp),%ebx
+       movl    4(%esp),%edx
+       movdqa  %xmm0,%xmm1
+       movdqu  %xmm0,(%ebx,%esi,1)
+       leal    16(%esi),%esi
+       subl    $16,%edi
+       jnc     .L023cbc_enc_loop
+       jmp     .L024cbc_done
+.align 16
+.L022cbc_dec_loop:
+       movdqu  (%esi),%xmm0
+       movdqa  %xmm1,16(%esp)
+       movdqa  %xmm0,32(%esp)
+       call    _vpaes_decrypt_core
+       movl    (%esp),%ebx
+       movl    4(%esp),%edx
+       pxor    16(%esp),%xmm0
+       movdqa  32(%esp),%xmm1
+       movdqu  %xmm0,(%ebx,%esi,1)
+       leal    16(%esi),%esi
+       subl    $16,%edi
+       jnc     .L022cbc_dec_loop
+.L024cbc_done:
+       movl    8(%esp),%ebx
+       movl    48(%esp),%esp
+       movdqu  %xmm1,(%ebx)
+.L020cbc_abort:
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin
diff --git a/deps/openssl/asm/x86-elf-gas/modes/ghash-x86.s b/deps/openssl/asm/x86-elf-gas/modes/ghash-x86.s
new file mode 100644 (file)
index 0000000..cb9ae20
--- /dev/null
@@ -0,0 +1,728 @@
+.file  "ghash-x86.s"
+.text
+.globl gcm_gmult_4bit_x86
+.type  gcm_gmult_4bit_x86,@function
+.align 16
+gcm_gmult_4bit_x86:
+.L_gcm_gmult_4bit_x86_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       subl    $84,%esp
+       movl    104(%esp),%edi
+       movl    108(%esp),%esi
+       movl    (%edi),%ebp
+       movl    4(%edi),%edx
+       movl    8(%edi),%ecx
+       movl    12(%edi),%ebx
+       movl    $0,16(%esp)
+       movl    $471859200,20(%esp)
+       movl    $943718400,24(%esp)
+       movl    $610271232,28(%esp)
+       movl    $1887436800,32(%esp)
+       movl    $1822425088,36(%esp)
+       movl    $1220542464,40(%esp)
+       movl    $1423966208,44(%esp)
+       movl    $3774873600,48(%esp)
+       movl    $4246732800,52(%esp)
+       movl    $3644850176,56(%esp)
+       movl    $3311403008,60(%esp)
+       movl    $2441084928,64(%esp)
+       movl    $2376073216,68(%esp)
+       movl    $2847932416,72(%esp)
+       movl    $3051356160,76(%esp)
+       movl    %ebp,(%esp)
+       movl    %edx,4(%esp)
+       movl    %ecx,8(%esp)
+       movl    %ebx,12(%esp)
+       shrl    $20,%ebx
+       andl    $240,%ebx
+       movl    4(%esi,%ebx,1),%ebp
+       movl    (%esi,%ebx,1),%edx
+       movl    12(%esi,%ebx,1),%ecx
+       movl    8(%esi,%ebx,1),%ebx
+       xorl    %eax,%eax
+       movl    $15,%edi
+       jmp     .L000x86_loop
+.align 16
+.L000x86_loop:
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       andb    $240,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       decl    %edi
+       js      .L001x86_break
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       shlb    $4,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       jmp     .L000x86_loop
+.align 16
+.L001x86_break:
+       bswap   %ebx
+       bswap   %ecx
+       bswap   %edx
+       bswap   %ebp
+       movl    104(%esp),%edi
+       movl    %ebx,12(%edi)
+       movl    %ecx,8(%edi)
+       movl    %edx,4(%edi)
+       movl    %ebp,(%edi)
+       addl    $84,%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
+.globl gcm_ghash_4bit_x86
+.type  gcm_ghash_4bit_x86,@function
+.align 16
+gcm_ghash_4bit_x86:
+.L_gcm_ghash_4bit_x86_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       subl    $84,%esp
+       movl    104(%esp),%ebx
+       movl    108(%esp),%esi
+       movl    112(%esp),%edi
+       movl    116(%esp),%ecx
+       addl    %edi,%ecx
+       movl    %ecx,116(%esp)
+       movl    (%ebx),%ebp
+       movl    4(%ebx),%edx
+       movl    8(%ebx),%ecx
+       movl    12(%ebx),%ebx
+       movl    $0,16(%esp)
+       movl    $471859200,20(%esp)
+       movl    $943718400,24(%esp)
+       movl    $610271232,28(%esp)
+       movl    $1887436800,32(%esp)
+       movl    $1822425088,36(%esp)
+       movl    $1220542464,40(%esp)
+       movl    $1423966208,44(%esp)
+       movl    $3774873600,48(%esp)
+       movl    $4246732800,52(%esp)
+       movl    $3644850176,56(%esp)
+       movl    $3311403008,60(%esp)
+       movl    $2441084928,64(%esp)
+       movl    $2376073216,68(%esp)
+       movl    $2847932416,72(%esp)
+       movl    $3051356160,76(%esp)
+.align 16
+.L002x86_outer_loop:
+       xorl    12(%edi),%ebx
+       xorl    8(%edi),%ecx
+       xorl    4(%edi),%edx
+       xorl    (%edi),%ebp
+       movl    %ebx,12(%esp)
+       movl    %ecx,8(%esp)
+       movl    %edx,4(%esp)
+       movl    %ebp,(%esp)
+       shrl    $20,%ebx
+       andl    $240,%ebx
+       movl    4(%esi,%ebx,1),%ebp
+       movl    (%esi,%ebx,1),%edx
+       movl    12(%esi,%ebx,1),%ecx
+       movl    8(%esi,%ebx,1),%ebx
+       xorl    %eax,%eax
+       movl    $15,%edi
+       jmp     .L003x86_loop
+.align 16
+.L003x86_loop:
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       andb    $240,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       decl    %edi
+       js      .L004x86_break
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       shlb    $4,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       jmp     .L003x86_loop
+.align 16
+.L004x86_break:
+       bswap   %ebx
+       bswap   %ecx
+       bswap   %edx
+       bswap   %ebp
+       movl    112(%esp),%edi
+       leal    16(%edi),%edi
+       cmpl    116(%esp),%edi
+       movl    %edi,112(%esp)
+       jb      .L002x86_outer_loop
+       movl    104(%esp),%edi
+       movl    %ebx,12(%edi)
+       movl    %ecx,8(%edi)
+       movl    %edx,4(%edi)
+       movl    %ebp,(%edi)
+       addl    $84,%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
+.type  _mmx_gmult_4bit_inner,@function
+.align 16
+_mmx_gmult_4bit_inner:
+       xorl    %ecx,%ecx
+       movl    %ebx,%edx
+       movb    %dl,%cl
+       shlb    $4,%cl
+       andl    $240,%edx
+       movq    8(%esi,%ecx,1),%mm0
+       movq    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    14(%edi),%cl
+       psllq   $60,%mm2
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    13(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    12(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    11(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    10(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    9(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    8(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    7(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    6(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    5(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    4(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    3(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    2(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    1(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    (%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       movl    4(%eax,%ebp,8),%edi
+       psrlq   $32,%mm0
+       movd    %mm1,%edx
+       psrlq   $32,%mm1
+       movd    %mm0,%ecx
+       movd    %mm1,%ebp
+       shll    $4,%edi
+       bswap   %ebx
+       bswap   %edx
+       bswap   %ecx
+       xorl    %edi,%ebp
+       bswap   %ebp
+       ret
+.size  _mmx_gmult_4bit_inner,.-_mmx_gmult_4bit_inner
+.globl gcm_gmult_4bit_mmx
+.type  gcm_gmult_4bit_mmx,@function
+.align 16
+gcm_gmult_4bit_mmx:
+.L_gcm_gmult_4bit_mmx_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%edi
+       movl    24(%esp),%esi
+       call    .L005pic_point
+.L005pic_point:
+       popl    %eax
+       leal    .Lrem_4bit-.L005pic_point(%eax),%eax
+       movzbl  15(%edi),%ebx
+       call    _mmx_gmult_4bit_inner
+       movl    20(%esp),%edi
+       emms
+       movl    %ebx,12(%edi)
+       movl    %edx,4(%edi)
+       movl    %ecx,8(%edi)
+       movl    %ebp,(%edi)
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
+.globl gcm_ghash_4bit_mmx
+.type  gcm_ghash_4bit_mmx,@function
+.align 16
+gcm_ghash_4bit_mmx:
+.L_gcm_ghash_4bit_mmx_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%ebp
+       movl    24(%esp),%esi
+       movl    28(%esp),%edi
+       movl    32(%esp),%ecx
+       call    .L006pic_point
+.L006pic_point:
+       popl    %eax
+       leal    .Lrem_4bit-.L006pic_point(%eax),%eax
+       addl    %edi,%ecx
+       movl    %ecx,32(%esp)
+       subl    $20,%esp
+       movl    12(%ebp),%ebx
+       movl    4(%ebp),%edx
+       movl    8(%ebp),%ecx
+       movl    (%ebp),%ebp
+       jmp     .L007mmx_outer_loop
+.align 16
+.L007mmx_outer_loop:
+       xorl    12(%edi),%ebx
+       xorl    4(%edi),%edx
+       xorl    8(%edi),%ecx
+       xorl    (%edi),%ebp
+       movl    %edi,48(%esp)
+       movl    %ebx,12(%esp)
+       movl    %edx,4(%esp)
+       movl    %ecx,8(%esp)
+       movl    %ebp,(%esp)
+       movl    %esp,%edi
+       shrl    $24,%ebx
+       call    _mmx_gmult_4bit_inner
+       movl    48(%esp),%edi
+       leal    16(%edi),%edi
+       cmpl    52(%esp),%edi
+       jb      .L007mmx_outer_loop
+       movl    40(%esp),%edi
+       emms
+       movl    %ebx,12(%edi)
+       movl    %edx,4(%edi)
+       movl    %ecx,8(%edi)
+       movl    %ebp,(%edi)
+       addl    $20,%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.size  gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
+.align 64
+.Lrem_4bit:
+.long  0,0,0,29491200,0,58982400,0,38141952
+.long  0,117964800,0,113901568,0,76283904,0,88997888
+.long  0,235929600,0,265420800,0,227803136,0,206962688
+.long  0,152567808,0,148504576,0,177995776,0,190709760
+.align 64
+.L008rem_8bit:
+.value 0,450,900,582,1800,1738,1164,1358
+.value 3600,4050,3476,3158,2328,2266,2716,2910
+.value 7200,7650,8100,7782,6952,6890,6316,6510
+.value 4656,5106,4532,4214,5432,5370,5820,6014
+.value 14400,14722,15300,14854,16200,16010,15564,15630
+.value 13904,14226,13780,13334,12632,12442,13020,13086
+.value 9312,9634,10212,9766,9064,8874,8428,8494
+.value 10864,11186,10740,10294,11640,11450,12028,12094
+.value 28800,28994,29444,29382,30600,30282,29708,30158
+.value 32400,32594,32020,31958,31128,30810,31260,31710
+.value 27808,28002,28452,28390,27560,27242,26668,27118
+.value 25264,25458,24884,24822,26040,25722,26172,26622
+.value 18624,18690,19268,19078,20424,19978,19532,19854
+.value 18128,18194,17748,17558,16856,16410,16988,17310
+.value 21728,21794,22372,22182,21480,21034,20588,20910
+.value 23280,23346,22900,22710,24056,23610,24188,24510
+.value 57600,57538,57988,58182,58888,59338,58764,58446
+.value 61200,61138,60564,60758,59416,59866,60316,59998
+.value 64800,64738,65188,65382,64040,64490,63916,63598
+.value 62256,62194,61620,61814,62520,62970,63420,63102
+.value 55616,55426,56004,56070,56904,57226,56780,56334
+.value 55120,54930,54484,54550,53336,53658,54236,53790
+.value 50528,50338,50916,50982,49768,50090,49644,49198
+.value 52080,51890,51444,51510,52344,52666,53244,52798
+.value 37248,36930,37380,37830,38536,38730,38156,38094
+.value 40848,40530,39956,40406,39064,39258,39708,39646
+.value 36256,35938,36388,36838,35496,35690,35116,35054
+.value 33712,33394,32820,33270,33976,34170,34620,34558
+.value 43456,43010,43588,43910,44744,44810,44364,44174
+.value 42960,42514,42068,42390,41176,41242,41820,41630
+.value 46560,46114,46692,47014,45800,45866,45420,45230
+.value 48112,47666,47220,47542,48376,48442,49020,48830
+.byte  71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
+.byte  82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
+.byte  112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
+.byte  0
index f9cd038..145355e 100644 (file)
@@ -61,6 +61,7 @@ OPENSSL_ia32_cpuid:
        movzbl  %cl,%esi
        incl    %esi
        movl    $1,%eax
+       xorl    %ecx,%ecx
        .byte   0x0f,0xa2
        btl     $28,%edx
        jnc     .L002generic
@@ -82,6 +83,7 @@ OPENSSL_ia32_cpuid:
        andl    $4095,%edi
 .L003nocacheinfo:
        movl    $1,%eax
+       xorl    %ecx,%ecx
        .byte   0x0f,0xa2
        andl    $3220176895,%edx
        cmpl    $0,%ebp
index a58ea6f..15d5d7b 100644 (file)
@@ -2219,6 +2219,8 @@ L014picked_te:
        jb      L015slow_way
        testl   $15,%ecx
        jnz     L015slow_way
+       btl     $28,(%eax)
+       jc      L015slow_way
        leal    -324(%esp),%esi
        andl    $-64,%esi
        movl    %ebp,%eax
diff --git a/deps/openssl/asm/x86-macosx-gas/aes/vpaes-x86.s b/deps/openssl/asm/x86-macosx-gas/aes/vpaes-x86.s
new file mode 100644 (file)
index 0000000..f6d164f
--- /dev/null
@@ -0,0 +1,635 @@
+.file  "vpaes-x86.s"
+.text
+.align 6,0x90
+L_vpaes_consts:
+.long  218628480,235210255,168496130,67568393
+.long  252381056,17041926,33884169,51187212
+.long  252645135,252645135,252645135,252645135
+.long  1512730624,3266504856,1377990664,3401244816
+.long  830229760,1275146365,2969422977,3447763452
+.long  3411033600,2979783055,338359620,2782886510
+.long  4209124096,907596821,221174255,1006095553
+.long  191964160,3799684038,3164090317,1589111125
+.long  182528256,1777043520,2877432650,3265356744
+.long  1874708224,3503451415,3305285752,363511674
+.long  1606117888,3487855781,1093350906,2384367825
+.long  197121,67569157,134941193,202313229
+.long  67569157,134941193,202313229,197121
+.long  134941193,202313229,197121,67569157
+.long  202313229,197121,67569157,134941193
+.long  33619971,100992007,168364043,235736079
+.long  235736079,33619971,100992007,168364043
+.long  168364043,235736079,33619971,100992007
+.long  100992007,168364043,235736079,33619971
+.long  50462976,117835012,185207048,252579084
+.long  252314880,51251460,117574920,184942860
+.long  184682752,252054788,50987272,118359308
+.long  118099200,185467140,251790600,50727180
+.long  2946363062,528716217,1300004225,1881839624
+.long  1532713819,1532713819,1532713819,1532713819
+.long  3602276352,4288629033,3737020424,4153884961
+.long  1354558464,32357713,2958822624,3775749553
+.long  1201988352,132424512,1572796698,503232858
+.long  2213177600,1597421020,4103937655,675398315
+.long  2749646592,4273543773,1511898873,121693092
+.long  3040248576,1103263732,2871565598,1608280554
+.long  2236667136,2588920351,482954393,64377734
+.long  3069987328,291237287,2117370568,3650299247
+.long  533321216,3573750986,2572112006,1401264716
+.long  1339849704,2721158661,548607111,3445553514
+.long  2128193280,3054596040,2183486460,1257083700
+.long  655635200,1165381986,3923443150,2344132524
+.long  190078720,256924420,290342170,357187870
+.long  1610966272,2263057382,4103205268,309794674
+.long  2592527872,2233205587,1335446729,3402964816
+.long  3973531904,3225098121,3002836325,1918774430
+.long  3870401024,2102906079,2284471353,4117666579
+.long  617007872,1021508343,366931923,691083277
+.long  2528395776,3491914898,2968704004,1613121270
+.long  3445188352,3247741094,844474987,4093578302
+.long  651481088,1190302358,1689581232,574775300
+.long  4289380608,206939853,2555985458,2489840491
+.long  2130264064,327674451,3566485037,3349835193
+.long  2470714624,316102159,3636825756,3393945945
+.byte  86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
+.byte  111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
+.byte  83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
+.byte  114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
+.byte  118,101,114,115,105,116,121,41,0
+.align 6,0x90
+.align 4
+__vpaes_preheat:
+       addl    (%esp),%ebp
+       movdqa  -48(%ebp),%xmm7
+       movdqa  -16(%ebp),%xmm6
+       ret
+.align 4
+__vpaes_encrypt_core:
+       movl    $16,%ecx
+       movl    240(%edx),%eax
+       movdqa  %xmm6,%xmm1
+       movdqa  (%ebp),%xmm2
+       pandn   %xmm0,%xmm1
+       movdqu  (%edx),%xmm5
+       psrld   $4,%xmm1
+       pand    %xmm6,%xmm0
+.byte  102,15,56,0,208
+       movdqa  16(%ebp),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm5,%xmm2
+       pxor    %xmm2,%xmm0
+       addl    $16,%edx
+       leal    192(%ebp),%ebx
+       jmp     L000enc_entry
+.align 4,0x90
+L001enc_loop:
+       movdqa  32(%ebp),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+       movdqa  48(%ebp),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       movdqa  64(%ebp),%xmm5
+.byte  102,15,56,0,234
+       movdqa  -64(%ebx,%ecx,1),%xmm1
+       movdqa  80(%ebp),%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm5,%xmm2
+       movdqa  (%ebx,%ecx,1),%xmm4
+       movdqa  %xmm0,%xmm3
+.byte  102,15,56,0,193
+       addl    $16,%edx
+       pxor    %xmm2,%xmm0
+.byte  102,15,56,0,220
+       addl    $16,%ecx
+       pxor    %xmm0,%xmm3
+.byte  102,15,56,0,193
+       andl    $48,%ecx
+       pxor    %xmm3,%xmm0
+       subl    $1,%eax
+L000enc_entry:
+       movdqa  %xmm6,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm6,%xmm0
+       movdqa  -32(%ebp),%xmm5
+.byte  102,15,56,0,232
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm7,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm5,%xmm3
+       movdqa  %xmm7,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm5,%xmm4
+       movdqa  %xmm7,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm7,%xmm3
+       movdqu  (%edx),%xmm5
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       jnz     L001enc_loop
+       movdqa  96(%ebp),%xmm4
+       movdqa  112(%ebp),%xmm0
+.byte  102,15,56,0,226
+       pxor    %xmm5,%xmm4
+.byte  102,15,56,0,195
+       movdqa  64(%ebx,%ecx,1),%xmm1
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,193
+       ret
+.align 4
+__vpaes_decrypt_core:
+       movl    240(%edx),%eax
+       leal    608(%ebp),%ebx
+       movdqa  %xmm6,%xmm1
+       movdqa  -64(%ebx),%xmm2
+       pandn   %xmm0,%xmm1
+       movl    %eax,%ecx
+       psrld   $4,%xmm1
+       movdqu  (%edx),%xmm5
+       shll    $4,%ecx
+       pand    %xmm6,%xmm0
+.byte  102,15,56,0,208
+       movdqa  -48(%ebx),%xmm0
+       xorl    $48,%ecx
+.byte  102,15,56,0,193
+       andl    $48,%ecx
+       pxor    %xmm5,%xmm2
+       movdqa  176(%ebp),%xmm5
+       pxor    %xmm2,%xmm0
+       addl    $16,%edx
+       leal    -352(%ebx,%ecx,1),%ecx
+       jmp     L002dec_entry
+.align 4,0x90
+L003dec_loop:
+       movdqa  -32(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  -16(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       addl    $16,%edx
+.byte  102,15,56,0,197
+       movdqa  (%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  16(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       subl    $1,%eax
+.byte  102,15,56,0,197
+       movdqa  32(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  48(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,197
+       movdqa  64(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  80(%ebx),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,58,15,237,12
+L002dec_entry:
+       movdqa  %xmm6,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm6,%xmm0
+       movdqa  -32(%ebp),%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm7,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm7,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm7,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm7,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqu  (%edx),%xmm0
+       jnz     L003dec_loop
+       movdqa  96(%ebx),%xmm4
+.byte  102,15,56,0,226
+       pxor    %xmm0,%xmm4
+       movdqa  112(%ebx),%xmm0
+       movdqa  (%ecx),%xmm2
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+.byte  102,15,56,0,194
+       ret
+.align 4
+__vpaes_schedule_core:
+       addl    (%esp),%ebp
+       movdqu  (%esi),%xmm0
+       movdqa  320(%ebp),%xmm2
+       movdqa  %xmm0,%xmm3
+       leal    (%ebp),%ebx
+       movdqa  %xmm2,4(%esp)
+       call    __vpaes_schedule_transform
+       movdqa  %xmm0,%xmm7
+       testl   %edi,%edi
+       jnz     L004schedule_am_decrypting
+       movdqu  %xmm0,(%edx)
+       jmp     L005schedule_go
+L004schedule_am_decrypting:
+       movdqa  256(%ebp,%ecx,1),%xmm1
+.byte  102,15,56,0,217
+       movdqu  %xmm3,(%edx)
+       xorl    $48,%ecx
+L005schedule_go:
+       cmpl    $192,%eax
+       ja      L006schedule_256
+       je      L007schedule_192
+L008schedule_128:
+       movl    $10,%eax
+L009loop_schedule_128:
+       call    __vpaes_schedule_round
+       decl    %eax
+       jz      L010schedule_mangle_last
+       call    __vpaes_schedule_mangle
+       jmp     L009loop_schedule_128
+.align 4,0x90
+L007schedule_192:
+       movdqu  8(%esi),%xmm0
+       call    __vpaes_schedule_transform
+       movdqa  %xmm0,%xmm6
+       pxor    %xmm4,%xmm4
+       movhlps %xmm4,%xmm6
+       movl    $4,%eax
+L011loop_schedule_192:
+       call    __vpaes_schedule_round
+.byte  102,15,58,15,198,8
+       call    __vpaes_schedule_mangle
+       call    __vpaes_schedule_192_smear
+       call    __vpaes_schedule_mangle
+       call    __vpaes_schedule_round
+       decl    %eax
+       jz      L010schedule_mangle_last
+       call    __vpaes_schedule_mangle
+       call    __vpaes_schedule_192_smear
+       jmp     L011loop_schedule_192
+.align 4,0x90
+L006schedule_256:
+       movdqu  16(%esi),%xmm0
+       call    __vpaes_schedule_transform
+       movl    $7,%eax
+L012loop_schedule_256:
+       call    __vpaes_schedule_mangle
+       movdqa  %xmm0,%xmm6
+       call    __vpaes_schedule_round
+       decl    %eax
+       jz      L010schedule_mangle_last
+       call    __vpaes_schedule_mangle
+       pshufd  $255,%xmm0,%xmm0
+       movdqa  %xmm7,20(%esp)
+       movdqa  %xmm6,%xmm7
+       call    L_vpaes_schedule_low_round
+       movdqa  20(%esp),%xmm7
+       jmp     L012loop_schedule_256
+.align 4,0x90
+L010schedule_mangle_last:
+       leal    384(%ebp),%ebx
+       testl   %edi,%edi
+       jnz     L013schedule_mangle_last_dec
+       movdqa  256(%ebp,%ecx,1),%xmm1
+.byte  102,15,56,0,193
+       leal    352(%ebp),%ebx
+       addl    $32,%edx
+L013schedule_mangle_last_dec:
+       addl    $-16,%edx
+       pxor    336(%ebp),%xmm0
+       call    __vpaes_schedule_transform
+       movdqu  %xmm0,(%edx)
+       pxor    %xmm0,%xmm0
+       pxor    %xmm1,%xmm1
+       pxor    %xmm2,%xmm2
+       pxor    %xmm3,%xmm3
+       pxor    %xmm4,%xmm4
+       pxor    %xmm5,%xmm5
+       pxor    %xmm6,%xmm6
+       pxor    %xmm7,%xmm7
+       ret
+.align 4
+__vpaes_schedule_192_smear:
+       pshufd  $128,%xmm6,%xmm0
+       pxor    %xmm0,%xmm6
+       pshufd  $254,%xmm7,%xmm0
+       pxor    %xmm0,%xmm6
+       movdqa  %xmm6,%xmm0
+       pxor    %xmm1,%xmm1
+       movhlps %xmm1,%xmm6
+       ret
+.align 4
+__vpaes_schedule_round:
+       movdqa  8(%esp),%xmm2
+       pxor    %xmm1,%xmm1
+.byte  102,15,58,15,202,15
+.byte  102,15,58,15,210,15
+       pxor    %xmm1,%xmm7
+       pshufd  $255,%xmm0,%xmm0
+.byte  102,15,58,15,192,1
+       movdqa  %xmm2,8(%esp)
+L_vpaes_schedule_low_round:
+       movdqa  %xmm7,%xmm1
+       pslldq  $4,%xmm7
+       pxor    %xmm1,%xmm7
+       movdqa  %xmm7,%xmm1
+       pslldq  $8,%xmm7
+       pxor    %xmm1,%xmm7
+       pxor    336(%ebp),%xmm7
+       movdqa  -16(%ebp),%xmm4
+       movdqa  -48(%ebp),%xmm5
+       movdqa  %xmm4,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm4,%xmm0
+       movdqa  -32(%ebp),%xmm2
+.byte  102,15,56,0,208
+       pxor    %xmm1,%xmm0
+       movdqa  %xmm5,%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       movdqa  %xmm5,%xmm4
+.byte  102,15,56,0,224
+       pxor    %xmm2,%xmm4
+       movdqa  %xmm5,%xmm2
+.byte  102,15,56,0,211
+       pxor    %xmm0,%xmm2
+       movdqa  %xmm5,%xmm3
+.byte  102,15,56,0,220
+       pxor    %xmm1,%xmm3
+       movdqa  32(%ebp),%xmm4
+.byte  102,15,56,0,226
+       movdqa  48(%ebp),%xmm0
+.byte  102,15,56,0,195
+       pxor    %xmm4,%xmm0
+       pxor    %xmm7,%xmm0
+       movdqa  %xmm0,%xmm7
+       ret
+.align 4
+__vpaes_schedule_transform:
+       movdqa  -16(%ebp),%xmm2
+       movdqa  %xmm2,%xmm1
+       pandn   %xmm0,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm2,%xmm0
+       movdqa  (%ebx),%xmm2
+.byte  102,15,56,0,208
+       movdqa  16(%ebx),%xmm0
+.byte  102,15,56,0,193
+       pxor    %xmm2,%xmm0
+       ret
+.align 4
+__vpaes_schedule_mangle:
+       movdqa  %xmm0,%xmm4
+       movdqa  128(%ebp),%xmm5
+       testl   %edi,%edi
+       jnz     L014schedule_mangle_dec
+       addl    $16,%edx
+       pxor    336(%ebp),%xmm4
+.byte  102,15,56,0,229
+       movdqa  %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+.byte  102,15,56,0,229
+       pxor    %xmm4,%xmm3
+       jmp     L015schedule_mangle_both
+.align 4,0x90
+L014schedule_mangle_dec:
+       movdqa  -16(%ebp),%xmm2
+       leal    416(%ebp),%esi
+       movdqa  %xmm2,%xmm1
+       pandn   %xmm4,%xmm1
+       psrld   $4,%xmm1
+       pand    %xmm2,%xmm4
+       movdqa  (%esi),%xmm2
+.byte  102,15,56,0,212
+       movdqa  16(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+       movdqa  32(%esi),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  48(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+       movdqa  64(%esi),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  80(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+.byte  102,15,56,0,221
+       movdqa  96(%esi),%xmm2
+.byte  102,15,56,0,212
+       pxor    %xmm3,%xmm2
+       movdqa  112(%esi),%xmm3
+.byte  102,15,56,0,217
+       pxor    %xmm2,%xmm3
+       addl    $-16,%edx
+L015schedule_mangle_both:
+       movdqa  256(%ebp,%ecx,1),%xmm1
+.byte  102,15,56,0,217
+       addl    $-16,%ecx
+       andl    $48,%ecx
+       movdqu  %xmm3,(%edx)
+       ret
+.globl _vpaes_set_encrypt_key
+.align 4
+_vpaes_set_encrypt_key:
+L_vpaes_set_encrypt_key_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%eax
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movl    %eax,%ebx
+       shrl    $5,%ebx
+       addl    $5,%ebx
+       movl    %ebx,240(%edx)
+       movl    $48,%ecx
+       movl    $0,%edi
+       leal    L_vpaes_consts+0x30-L016pic_point,%ebp
+       call    __vpaes_schedule_core
+L016pic_point:
+       movl    48(%esp),%esp
+       xorl    %eax,%eax
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.globl _vpaes_set_decrypt_key
+.align 4
+_vpaes_set_decrypt_key:
+L_vpaes_set_decrypt_key_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%eax
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movl    %eax,%ebx
+       shrl    $5,%ebx
+       addl    $5,%ebx
+       movl    %ebx,240(%edx)
+       shll    $4,%ebx
+       leal    16(%edx,%ebx,1),%edx
+       movl    $1,%edi
+       movl    %eax,%ecx
+       shrl    $1,%ecx
+       andl    $32,%ecx
+       xorl    $32,%ecx
+       leal    L_vpaes_consts+0x30-L017pic_point,%ebp
+       call    __vpaes_schedule_core
+L017pic_point:
+       movl    48(%esp),%esp
+       xorl    %eax,%eax
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.globl _vpaes_encrypt
+.align 4
+_vpaes_encrypt:
+L_vpaes_encrypt_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       leal    L_vpaes_consts+0x30-L018pic_point,%ebp
+       call    __vpaes_preheat
+L018pic_point:
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%edi
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movdqu  (%esi),%xmm0
+       call    __vpaes_encrypt_core
+       movdqu  %xmm0,(%edi)
+       movl    48(%esp),%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.globl _vpaes_decrypt
+.align 4
+_vpaes_decrypt:
+L_vpaes_decrypt_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       leal    L_vpaes_consts+0x30-L019pic_point,%ebp
+       call    __vpaes_preheat
+L019pic_point:
+       movl    20(%esp),%esi
+       leal    -56(%esp),%ebx
+       movl    24(%esp),%edi
+       andl    $-16,%ebx
+       movl    28(%esp),%edx
+       xchgl   %esp,%ebx
+       movl    %ebx,48(%esp)
+       movdqu  (%esi),%xmm0
+       call    __vpaes_decrypt_core
+       movdqu  %xmm0,(%edi)
+       movl    48(%esp),%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.globl _vpaes_cbc_encrypt
+.align 4
+_vpaes_cbc_encrypt:
+L_vpaes_cbc_encrypt_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%esi
+       movl    24(%esp),%edi
+       movl    28(%esp),%eax
+       movl    32(%esp),%edx
+       subl    $16,%eax
+       jc      L020cbc_abort
+       leal    -56(%esp),%ebx
+       movl    36(%esp),%ebp
+       andl    $-16,%ebx
+       movl    40(%esp),%ecx
+       xchgl   %esp,%ebx
+       movdqu  (%ebp),%xmm1
+       subl    %esi,%edi
+       movl    %ebx,48(%esp)
+       movl    %edi,(%esp)
+       movl    %edx,4(%esp)
+       movl    %ebp,8(%esp)
+       movl    %eax,%edi
+       leal    L_vpaes_consts+0x30-L021pic_point,%ebp
+       call    __vpaes_preheat
+L021pic_point:
+       cmpl    $0,%ecx
+       je      L022cbc_dec_loop
+       jmp     L023cbc_enc_loop
+.align 4,0x90
+L023cbc_enc_loop:
+       movdqu  (%esi),%xmm0
+       pxor    %xmm1,%xmm0
+       call    __vpaes_encrypt_core
+       movl    (%esp),%ebx
+       movl    4(%esp),%edx
+       movdqa  %xmm0,%xmm1
+       movdqu  %xmm0,(%ebx,%esi,1)
+       leal    16(%esi),%esi
+       subl    $16,%edi
+       jnc     L023cbc_enc_loop
+       jmp     L024cbc_done
+.align 4,0x90
+L022cbc_dec_loop:
+       movdqu  (%esi),%xmm0
+       movdqa  %xmm1,16(%esp)
+       movdqa  %xmm0,32(%esp)
+       call    __vpaes_decrypt_core
+       movl    (%esp),%ebx
+       movl    4(%esp),%edx
+       pxor    16(%esp),%xmm0
+       movdqa  32(%esp),%xmm1
+       movdqu  %xmm0,(%ebx,%esi,1)
+       leal    16(%esi),%esi
+       subl    $16,%edi
+       jnc     L022cbc_dec_loop
+L024cbc_done:
+       movl    8(%esp),%ebx
+       movl    48(%esp),%esp
+       movdqu  %xmm1,(%ebx)
+L020cbc_abort:
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
diff --git a/deps/openssl/asm/x86-macosx-gas/modes/ghash-x86.s b/deps/openssl/asm/x86-macosx-gas/modes/ghash-x86.s
new file mode 100644 (file)
index 0000000..dc6ba14
--- /dev/null
@@ -0,0 +1,718 @@
+.file  "ghash-x86.s"
+.text
+.globl _gcm_gmult_4bit_x86
+.align 4
+_gcm_gmult_4bit_x86:
+L_gcm_gmult_4bit_x86_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       subl    $84,%esp
+       movl    104(%esp),%edi
+       movl    108(%esp),%esi
+       movl    (%edi),%ebp
+       movl    4(%edi),%edx
+       movl    8(%edi),%ecx
+       movl    12(%edi),%ebx
+       movl    $0,16(%esp)
+       movl    $471859200,20(%esp)
+       movl    $943718400,24(%esp)
+       movl    $610271232,28(%esp)
+       movl    $1887436800,32(%esp)
+       movl    $1822425088,36(%esp)
+       movl    $1220542464,40(%esp)
+       movl    $1423966208,44(%esp)
+       movl    $3774873600,48(%esp)
+       movl    $4246732800,52(%esp)
+       movl    $3644850176,56(%esp)
+       movl    $3311403008,60(%esp)
+       movl    $2441084928,64(%esp)
+       movl    $2376073216,68(%esp)
+       movl    $2847932416,72(%esp)
+       movl    $3051356160,76(%esp)
+       movl    %ebp,(%esp)
+       movl    %edx,4(%esp)
+       movl    %ecx,8(%esp)
+       movl    %ebx,12(%esp)
+       shrl    $20,%ebx
+       andl    $240,%ebx
+       movl    4(%esi,%ebx,1),%ebp
+       movl    (%esi,%ebx,1),%edx
+       movl    12(%esi,%ebx,1),%ecx
+       movl    8(%esi,%ebx,1),%ebx
+       xorl    %eax,%eax
+       movl    $15,%edi
+       jmp     L000x86_loop
+.align 4,0x90
+L000x86_loop:
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       andb    $240,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       decl    %edi
+       js      L001x86_break
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       shlb    $4,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       jmp     L000x86_loop
+.align 4,0x90
+L001x86_break:
+       bswap   %ebx
+       bswap   %ecx
+       bswap   %edx
+       bswap   %ebp
+       movl    104(%esp),%edi
+       movl    %ebx,12(%edi)
+       movl    %ecx,8(%edi)
+       movl    %edx,4(%edi)
+       movl    %ebp,(%edi)
+       addl    $84,%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.globl _gcm_ghash_4bit_x86
+.align 4
+_gcm_ghash_4bit_x86:
+L_gcm_ghash_4bit_x86_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       subl    $84,%esp
+       movl    104(%esp),%ebx
+       movl    108(%esp),%esi
+       movl    112(%esp),%edi
+       movl    116(%esp),%ecx
+       addl    %edi,%ecx
+       movl    %ecx,116(%esp)
+       movl    (%ebx),%ebp
+       movl    4(%ebx),%edx
+       movl    8(%ebx),%ecx
+       movl    12(%ebx),%ebx
+       movl    $0,16(%esp)
+       movl    $471859200,20(%esp)
+       movl    $943718400,24(%esp)
+       movl    $610271232,28(%esp)
+       movl    $1887436800,32(%esp)
+       movl    $1822425088,36(%esp)
+       movl    $1220542464,40(%esp)
+       movl    $1423966208,44(%esp)
+       movl    $3774873600,48(%esp)
+       movl    $4246732800,52(%esp)
+       movl    $3644850176,56(%esp)
+       movl    $3311403008,60(%esp)
+       movl    $2441084928,64(%esp)
+       movl    $2376073216,68(%esp)
+       movl    $2847932416,72(%esp)
+       movl    $3051356160,76(%esp)
+.align 4,0x90
+L002x86_outer_loop:
+       xorl    12(%edi),%ebx
+       xorl    8(%edi),%ecx
+       xorl    4(%edi),%edx
+       xorl    (%edi),%ebp
+       movl    %ebx,12(%esp)
+       movl    %ecx,8(%esp)
+       movl    %edx,4(%esp)
+       movl    %ebp,(%esp)
+       shrl    $20,%ebx
+       andl    $240,%ebx
+       movl    4(%esi,%ebx,1),%ebp
+       movl    (%esi,%ebx,1),%edx
+       movl    12(%esi,%ebx,1),%ecx
+       movl    8(%esi,%ebx,1),%ebx
+       xorl    %eax,%eax
+       movl    $15,%edi
+       jmp     L003x86_loop
+.align 4,0x90
+L003x86_loop:
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       andb    $240,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       decl    %edi
+       js      L004x86_break
+       movb    %bl,%al
+       shrdl   $4,%ecx,%ebx
+       andb    $15,%al
+       shrdl   $4,%edx,%ecx
+       shrdl   $4,%ebp,%edx
+       shrl    $4,%ebp
+       xorl    16(%esp,%eax,4),%ebp
+       movb    (%esp,%edi,1),%al
+       shlb    $4,%al
+       xorl    8(%esi,%eax,1),%ebx
+       xorl    12(%esi,%eax,1),%ecx
+       xorl    (%esi,%eax,1),%edx
+       xorl    4(%esi,%eax,1),%ebp
+       jmp     L003x86_loop
+.align 4,0x90
+L004x86_break:
+       bswap   %ebx
+       bswap   %ecx
+       bswap   %edx
+       bswap   %ebp
+       movl    112(%esp),%edi
+       leal    16(%edi),%edi
+       cmpl    116(%esp),%edi
+       movl    %edi,112(%esp)
+       jb      L002x86_outer_loop
+       movl    104(%esp),%edi
+       movl    %ebx,12(%edi)
+       movl    %ecx,8(%edi)
+       movl    %edx,4(%edi)
+       movl    %ebp,(%edi)
+       addl    $84,%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.align 4
+__mmx_gmult_4bit_inner:
+       xorl    %ecx,%ecx
+       movl    %ebx,%edx
+       movb    %dl,%cl
+       shlb    $4,%cl
+       andl    $240,%edx
+       movq    8(%esi,%ecx,1),%mm0
+       movq    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    14(%edi),%cl
+       psllq   $60,%mm2
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    13(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    12(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    11(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    10(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    9(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    8(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    7(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    6(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    5(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    4(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    3(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    2(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    1(%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       movb    (%edi),%cl
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movl    %ecx,%edx
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       shlb    $4,%cl
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%ecx,1),%mm0
+       psllq   $60,%mm2
+       andl    $240,%edx
+       pxor    (%eax,%ebp,8),%mm1
+       andl    $15,%ebx
+       pxor    (%esi,%ecx,1),%mm1
+       movd    %mm0,%ebp
+       pxor    %mm2,%mm0
+       psrlq   $4,%mm0
+       movq    %mm1,%mm2
+       psrlq   $4,%mm1
+       pxor    8(%esi,%edx,1),%mm0
+       psllq   $60,%mm2
+       pxor    (%eax,%ebx,8),%mm1
+       andl    $15,%ebp
+       pxor    (%esi,%edx,1),%mm1
+       movd    %mm0,%ebx
+       pxor    %mm2,%mm0
+       movl    4(%eax,%ebp,8),%edi
+       psrlq   $32,%mm0
+       movd    %mm1,%edx
+       psrlq   $32,%mm1
+       movd    %mm0,%ecx
+       movd    %mm1,%ebp
+       shll    $4,%edi
+       bswap   %ebx
+       bswap   %edx
+       bswap   %ecx
+       xorl    %edi,%ebp
+       bswap   %ebp
+       ret
+.globl _gcm_gmult_4bit_mmx
+.align 4
+_gcm_gmult_4bit_mmx:
+L_gcm_gmult_4bit_mmx_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%edi
+       movl    24(%esp),%esi
+       call    L005pic_point
+L005pic_point:
+       popl    %eax
+       leal    Lrem_4bit-L005pic_point(%eax),%eax
+       movzbl  15(%edi),%ebx
+       call    __mmx_gmult_4bit_inner
+       movl    20(%esp),%edi
+       emms
+       movl    %ebx,12(%edi)
+       movl    %edx,4(%edi)
+       movl    %ecx,8(%edi)
+       movl    %ebp,(%edi)
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.globl _gcm_ghash_4bit_mmx
+.align 4
+_gcm_ghash_4bit_mmx:
+L_gcm_ghash_4bit_mmx_begin:
+       pushl   %ebp
+       pushl   %ebx
+       pushl   %esi
+       pushl   %edi
+       movl    20(%esp),%ebp
+       movl    24(%esp),%esi
+       movl    28(%esp),%edi
+       movl    32(%esp),%ecx
+       call    L006pic_point
+L006pic_point:
+       popl    %eax
+       leal    Lrem_4bit-L006pic_point(%eax),%eax
+       addl    %edi,%ecx
+       movl    %ecx,32(%esp)
+       subl    $20,%esp
+       movl    12(%ebp),%ebx
+       movl    4(%ebp),%edx
+       movl    8(%ebp),%ecx
+       movl    (%ebp),%ebp
+       jmp     L007mmx_outer_loop
+.align 4,0x90
+L007mmx_outer_loop:
+       xorl    12(%edi),%ebx
+       xorl    4(%edi),%edx
+       xorl    8(%edi),%ecx
+       xorl    (%edi),%ebp
+       movl    %edi,48(%esp)
+       movl    %ebx,12(%esp)
+       movl    %edx,4(%esp)
+       movl    %ecx,8(%esp)
+       movl    %ebp,(%esp)
+       movl    %esp,%edi
+       shrl    $24,%ebx
+       call    __mmx_gmult_4bit_inner
+       movl    48(%esp),%edi
+       leal    16(%edi),%edi
+       cmpl    52(%esp),%edi
+       jb      L007mmx_outer_loop
+       movl    40(%esp),%edi
+       emms
+       movl    %ebx,12(%edi)
+       movl    %edx,4(%edi)
+       movl    %ecx,8(%edi)
+       movl    %ebp,(%edi)
+       addl    $20,%esp
+       popl    %edi
+       popl    %esi
+       popl    %ebx
+       popl    %ebp
+       ret
+.align 6,0x90
+Lrem_4bit:
+.long  0,0,0,29491200,0,58982400,0,38141952
+.long  0,117964800,0,113901568,0,76283904,0,88997888
+.long  0,235929600,0,265420800,0,227803136,0,206962688
+.long  0,152567808,0,148504576,0,177995776,0,190709760
+.align 6,0x90
+L008rem_8bit:
+.value 0,450,900,582,1800,1738,1164,1358
+.value 3600,4050,3476,3158,2328,2266,2716,2910
+.value 7200,7650,8100,7782,6952,6890,6316,6510
+.value 4656,5106,4532,4214,5432,5370,5820,6014
+.value 14400,14722,15300,14854,16200,16010,15564,15630
+.value 13904,14226,13780,13334,12632,12442,13020,13086
+.value 9312,9634,10212,9766,9064,8874,8428,8494
+.value 10864,11186,10740,10294,11640,11450,12028,12094
+.value 28800,28994,29444,29382,30600,30282,29708,30158
+.value 32400,32594,32020,31958,31128,30810,31260,31710
+.value 27808,28002,28452,28390,27560,27242,26668,27118
+.value 25264,25458,24884,24822,26040,25722,26172,26622
+.value 18624,18690,19268,19078,20424,19978,19532,19854
+.value 18128,18194,17748,17558,16856,16410,16988,17310
+.value 21728,21794,22372,22182,21480,21034,20588,20910
+.value 23280,23346,22900,22710,24056,23610,24188,24510
+.value 57600,57538,57988,58182,58888,59338,58764,58446
+.value 61200,61138,60564,60758,59416,59866,60316,59998
+.value 64800,64738,65188,65382,64040,64490,63916,63598
+.value 62256,62194,61620,61814,62520,62970,63420,63102
+.value 55616,55426,56004,56070,56904,57226,56780,56334
+.value 55120,54930,54484,54550,53336,53658,54236,53790
+.value 50528,50338,50916,50982,49768,50090,49644,49198
+.value 52080,51890,51444,51510,52344,52666,53244,52798
+.value 37248,36930,37380,37830,38536,38730,38156,38094
+.value 40848,40530,39956,40406,39064,39258,39708,39646
+.value 36256,35938,36388,36838,35496,35690,35116,35054
+.value 33712,33394,32820,33270,33976,34170,34620,34558
+.value 43456,43010,43588,43910,44744,44810,44364,44174
+.value 42960,42514,42068,42390,41176,41242,41820,41630
+.value 46560,46114,46692,47014,45800,45866,45420,45230
+.value 48112,47666,47220,47542,48376,48442,49020,48830
+.byte  71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
+.byte  82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
+.byte  112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
+.byte  0
index db36e6f..35fcafa 100644 (file)
@@ -60,6 +60,7 @@ L_OPENSSL_ia32_cpuid_begin:
        movzbl  %cl,%esi
        incl    %esi
        movl    $1,%eax
+       xorl    %ecx,%ecx
        .byte   0x0f,0xa2
        btl     $28,%edx
        jnc     L002generic
@@ -81,6 +82,7 @@ L001intel:
        andl    $4095,%edi
 L003nocacheinfo:
        movl    $1,%eax
+       xorl    %ecx,%ecx
        .byte   0x0f,0xa2
        andl    $3220176895,%edx
        cmpl    $0,%ebp
index e4ac96e..5e53b1c 100644 (file)
@@ -2241,6 +2241,8 @@ $L014picked_te:
        jb      $L015slow_way
        test    ecx,15
        jnz     $L015slow_way
+       bt      DWORD PTR [eax],28
+       jc      $L015slow_way
        lea     esi,DWORD PTR [esp-324]
        and     esi,-64
        mov     eax,ebp
diff --git a/deps/openssl/asm/x86-win32-masm/aes/vpaes-x86.asm b/deps/openssl/asm/x86-win32-masm/aes/vpaes-x86.asm
new file mode 100644 (file)
index 0000000..621f58f
--- /dev/null
@@ -0,0 +1,662 @@
+TITLE  vpaes-x86.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
+
+.MODEL FLAT
+OPTION DOTNAME
+IF @Version LT 800
+.text$ SEGMENT PAGE 'CODE'
+ELSE
+.text$ SEGMENT ALIGN(64) 'CODE'
+ENDIF
+ALIGN  64
+$L_vpaes_consts::
+DD     218628480,235210255,168496130,67568393
+DD     252381056,17041926,33884169,51187212
+DD     252645135,252645135,252645135,252645135
+DD     1512730624,3266504856,1377990664,3401244816
+DD     830229760,1275146365,2969422977,3447763452
+DD     3411033600,2979783055,338359620,2782886510
+DD     4209124096,907596821,221174255,1006095553
+DD     191964160,3799684038,3164090317,1589111125
+DD     182528256,1777043520,2877432650,3265356744
+DD     1874708224,3503451415,3305285752,363511674
+DD     1606117888,3487855781,1093350906,2384367825
+DD     197121,67569157,134941193,202313229
+DD     67569157,134941193,202313229,197121
+DD     134941193,202313229,197121,67569157
+DD     202313229,197121,67569157,134941193
+DD     33619971,100992007,168364043,235736079
+DD     235736079,33619971,100992007,168364043
+DD     168364043,235736079,33619971,100992007
+DD     100992007,168364043,235736079,33619971
+DD     50462976,117835012,185207048,252579084
+DD     252314880,51251460,117574920,184942860
+DD     184682752,252054788,50987272,118359308
+DD     118099200,185467140,251790600,50727180
+DD     2946363062,528716217,1300004225,1881839624
+DD     1532713819,1532713819,1532713819,1532713819
+DD     3602276352,4288629033,3737020424,4153884961
+DD     1354558464,32357713,2958822624,3775749553
+DD     1201988352,132424512,1572796698,503232858
+DD     2213177600,1597421020,4103937655,675398315
+DD     2749646592,4273543773,1511898873,121693092
+DD     3040248576,1103263732,2871565598,1608280554
+DD     2236667136,2588920351,482954393,64377734
+DD     3069987328,291237287,2117370568,3650299247
+DD     533321216,3573750986,2572112006,1401264716
+DD     1339849704,2721158661,548607111,3445553514
+DD     2128193280,3054596040,2183486460,1257083700
+DD     655635200,1165381986,3923443150,2344132524
+DD     190078720,256924420,290342170,357187870
+DD     1610966272,2263057382,4103205268,309794674
+DD     2592527872,2233205587,1335446729,3402964816
+DD     3973531904,3225098121,3002836325,1918774430
+DD     3870401024,2102906079,2284471353,4117666579
+DD     617007872,1021508343,366931923,691083277
+DD     2528395776,3491914898,2968704004,1613121270
+DD     3445188352,3247741094,844474987,4093578302
+DD     651481088,1190302358,1689581232,574775300
+DD     4289380608,206939853,2555985458,2489840491
+DD     2130264064,327674451,3566485037,3349835193
+DD     2470714624,316102159,3636825756,3393945945
+DB     86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
+DB     111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
+DB     83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
+DB     114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
+DB     118,101,114,115,105,116,121,41,0
+ALIGN  64
+ALIGN  16
+__vpaes_preheat        PROC PRIVATE
+       add     ebp,DWORD PTR [esp]
+       movdqa  xmm7,XMMWORD PTR [ebp-48]
+       movdqa  xmm6,XMMWORD PTR [ebp-16]
+       ret
+__vpaes_preheat ENDP
+ALIGN  16
+__vpaes_encrypt_core   PROC PRIVATE
+       mov     ecx,16
+       mov     eax,DWORD PTR 240[edx]
+       movdqa  xmm1,xmm6
+       movdqa  xmm2,XMMWORD PTR [ebp]
+       pandn   xmm1,xmm0
+       movdqu  xmm5,XMMWORD PTR [edx]
+       psrld   xmm1,4
+       pand    xmm0,xmm6
+DB     102,15,56,0,208
+       movdqa  xmm0,XMMWORD PTR 16[ebp]
+DB     102,15,56,0,193
+       pxor    xmm2,xmm5
+       pxor    xmm0,xmm2
+       add     edx,16
+       lea     ebx,DWORD PTR 192[ebp]
+       jmp     $L000enc_entry
+ALIGN  16
+$L001enc_loop:
+       movdqa  xmm4,XMMWORD PTR 32[ebp]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm5
+       movdqa  xmm0,XMMWORD PTR 48[ebp]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+       movdqa  xmm5,XMMWORD PTR 64[ebp]
+DB     102,15,56,0,234
+       movdqa  xmm1,XMMWORD PTR [ecx*1+ebx-64]
+       movdqa  xmm2,XMMWORD PTR 80[ebp]
+DB     102,15,56,0,211
+       pxor    xmm2,xmm5
+       movdqa  xmm4,XMMWORD PTR [ecx*1+ebx]
+       movdqa  xmm3,xmm0
+DB     102,15,56,0,193
+       add     edx,16
+       pxor    xmm0,xmm2
+DB     102,15,56,0,220
+       add     ecx,16
+       pxor    xmm3,xmm0
+DB     102,15,56,0,193
+       and     ecx,48
+       pxor    xmm0,xmm3
+       sub     eax,1
+$L000enc_entry:
+       movdqa  xmm1,xmm6
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm6
+       movdqa  xmm5,XMMWORD PTR [ebp-32]
+DB     102,15,56,0,232
+       pxor    xmm0,xmm1
+       movdqa  xmm3,xmm7
+DB     102,15,56,0,217
+       pxor    xmm3,xmm5
+       movdqa  xmm4,xmm7
+DB     102,15,56,0,224
+       pxor    xmm4,xmm5
+       movdqa  xmm2,xmm7
+DB     102,15,56,0,211
+       pxor    xmm2,xmm0
+       movdqa  xmm3,xmm7
+       movdqu  xmm5,XMMWORD PTR [edx]
+DB     102,15,56,0,220
+       pxor    xmm3,xmm1
+       jnz     $L001enc_loop
+       movdqa  xmm4,XMMWORD PTR 96[ebp]
+       movdqa  xmm0,XMMWORD PTR 112[ebp]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm5
+DB     102,15,56,0,195
+       movdqa  xmm1,XMMWORD PTR 64[ecx*1+ebx]
+       pxor    xmm0,xmm4
+DB     102,15,56,0,193
+       ret
+__vpaes_encrypt_core ENDP
+ALIGN  16
+__vpaes_decrypt_core   PROC PRIVATE
+       mov     eax,DWORD PTR 240[edx]
+       lea     ebx,DWORD PTR 608[ebp]
+       movdqa  xmm1,xmm6
+       movdqa  xmm2,XMMWORD PTR [ebx-64]
+       pandn   xmm1,xmm0
+       mov     ecx,eax
+       psrld   xmm1,4
+       movdqu  xmm5,XMMWORD PTR [edx]
+       shl     ecx,4
+       pand    xmm0,xmm6
+DB     102,15,56,0,208
+       movdqa  xmm0,XMMWORD PTR [ebx-48]
+       xor     ecx,48
+DB     102,15,56,0,193
+       and     ecx,48
+       pxor    xmm2,xmm5
+       movdqa  xmm5,XMMWORD PTR 176[ebp]
+       pxor    xmm0,xmm2
+       add     edx,16
+       lea     ecx,DWORD PTR [ecx*1+ebx-352]
+       jmp     $L002dec_entry
+ALIGN  16
+$L003dec_loop:
+       movdqa  xmm4,XMMWORD PTR [ebx-32]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR [ebx-16]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+       add     edx,16
+DB     102,15,56,0,197
+       movdqa  xmm4,XMMWORD PTR [ebx]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR 16[ebx]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+       sub     eax,1
+DB     102,15,56,0,197
+       movdqa  xmm4,XMMWORD PTR 32[ebx]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR 48[ebx]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+DB     102,15,56,0,197
+       movdqa  xmm4,XMMWORD PTR 64[ebx]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR 80[ebx]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+DB     102,15,58,15,237,12
+$L002dec_entry:
+       movdqa  xmm1,xmm6
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm6
+       movdqa  xmm2,XMMWORD PTR [ebp-32]
+DB     102,15,56,0,208
+       pxor    xmm0,xmm1
+       movdqa  xmm3,xmm7
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+       movdqa  xmm4,xmm7
+DB     102,15,56,0,224
+       pxor    xmm4,xmm2
+       movdqa  xmm2,xmm7
+DB     102,15,56,0,211
+       pxor    xmm2,xmm0
+       movdqa  xmm3,xmm7
+DB     102,15,56,0,220
+       pxor    xmm3,xmm1
+       movdqu  xmm0,XMMWORD PTR [edx]
+       jnz     $L003dec_loop
+       movdqa  xmm4,XMMWORD PTR 96[ebx]
+DB     102,15,56,0,226
+       pxor    xmm4,xmm0
+       movdqa  xmm0,XMMWORD PTR 112[ebx]
+       movdqa  xmm2,XMMWORD PTR [ecx]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+DB     102,15,56,0,194
+       ret
+__vpaes_decrypt_core ENDP
+ALIGN  16
+__vpaes_schedule_core  PROC PRIVATE
+       add     ebp,DWORD PTR [esp]
+       movdqu  xmm0,XMMWORD PTR [esi]
+       movdqa  xmm2,XMMWORD PTR 320[ebp]
+       movdqa  xmm3,xmm0
+       lea     ebx,DWORD PTR [ebp]
+       movdqa  XMMWORD PTR 4[esp],xmm2
+       call    __vpaes_schedule_transform
+       movdqa  xmm7,xmm0
+       test    edi,edi
+       jnz     $L004schedule_am_decrypting
+       movdqu  XMMWORD PTR [edx],xmm0
+       jmp     $L005schedule_go
+$L004schedule_am_decrypting:
+       movdqa  xmm1,XMMWORD PTR 256[ecx*1+ebp]
+DB     102,15,56,0,217
+       movdqu  XMMWORD PTR [edx],xmm3
+       xor     ecx,48
+$L005schedule_go:
+       cmp     eax,192
+       ja      $L006schedule_256
+       je      $L007schedule_192
+$L008schedule_128:
+       mov     eax,10
+$L009loop_schedule_128:
+       call    __vpaes_schedule_round
+       dec     eax
+       jz      $L010schedule_mangle_last
+       call    __vpaes_schedule_mangle
+       jmp     $L009loop_schedule_128
+ALIGN  16
+$L007schedule_192:
+       movdqu  xmm0,XMMWORD PTR 8[esi]
+       call    __vpaes_schedule_transform
+       movdqa  xmm6,xmm0
+       pxor    xmm4,xmm4
+       movhlps xmm6,xmm4
+       mov     eax,4
+$L011loop_schedule_192:
+       call    __vpaes_schedule_round
+DB     102,15,58,15,198,8
+       call    __vpaes_schedule_mangle
+       call    __vpaes_schedule_192_smear
+       call    __vpaes_schedule_mangle
+       call    __vpaes_schedule_round
+       dec     eax
+       jz      $L010schedule_mangle_last
+       call    __vpaes_schedule_mangle
+       call    __vpaes_schedule_192_smear
+       jmp     $L011loop_schedule_192
+ALIGN  16
+$L006schedule_256:
+       movdqu  xmm0,XMMWORD PTR 16[esi]
+       call    __vpaes_schedule_transform
+       mov     eax,7
+$L012loop_schedule_256:
+       call    __vpaes_schedule_mangle
+       movdqa  xmm6,xmm0
+       call    __vpaes_schedule_round
+       dec     eax
+       jz      $L010schedule_mangle_last
+       call    __vpaes_schedule_mangle
+       pshufd  xmm0,xmm0,255
+       movdqa  XMMWORD PTR 20[esp],xmm7
+       movdqa  xmm7,xmm6
+       call    $L_vpaes_schedule_low_round
+       movdqa  xmm7,XMMWORD PTR 20[esp]
+       jmp     $L012loop_schedule_256
+ALIGN  16
+$L010schedule_mangle_last:
+       lea     ebx,DWORD PTR 384[ebp]
+       test    edi,edi
+       jnz     $L013schedule_mangle_last_dec
+       movdqa  xmm1,XMMWORD PTR 256[ecx*1+ebp]
+DB     102,15,56,0,193
+       lea     ebx,DWORD PTR 352[ebp]
+       add     edx,32
+$L013schedule_mangle_last_dec:
+       add     edx,-16
+       pxor    xmm0,XMMWORD PTR 336[ebp]
+       call    __vpaes_schedule_transform
+       movdqu  XMMWORD PTR [edx],xmm0
+       pxor    xmm0,xmm0
+       pxor    xmm1,xmm1
+       pxor    xmm2,xmm2
+       pxor    xmm3,xmm3
+       pxor    xmm4,xmm4
+       pxor    xmm5,xmm5
+       pxor    xmm6,xmm6
+       pxor    xmm7,xmm7
+       ret
+__vpaes_schedule_core ENDP
+ALIGN  16
+__vpaes_schedule_192_smear     PROC PRIVATE
+       pshufd  xmm0,xmm6,128
+       pxor    xmm6,xmm0
+       pshufd  xmm0,xmm7,254
+       pxor    xmm6,xmm0
+       movdqa  xmm0,xmm6
+       pxor    xmm1,xmm1
+       movhlps xmm6,xmm1
+       ret
+__vpaes_schedule_192_smear ENDP
+ALIGN  16
+__vpaes_schedule_round PROC PRIVATE
+       movdqa  xmm2,XMMWORD PTR 8[esp]
+       pxor    xmm1,xmm1
+DB     102,15,58,15,202,15
+DB     102,15,58,15,210,15
+       pxor    xmm7,xmm1
+       pshufd  xmm0,xmm0,255
+DB     102,15,58,15,192,1
+       movdqa  XMMWORD PTR 8[esp],xmm2
+$L_vpaes_schedule_low_round::
+       movdqa  xmm1,xmm7
+       pslldq  xmm7,4
+       pxor    xmm7,xmm1
+       movdqa  xmm1,xmm7
+       pslldq  xmm7,8
+       pxor    xmm7,xmm1
+       pxor    xmm7,XMMWORD PTR 336[ebp]
+       movdqa  xmm4,XMMWORD PTR [ebp-16]
+       movdqa  xmm5,XMMWORD PTR [ebp-48]
+       movdqa  xmm1,xmm4
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm4
+       movdqa  xmm2,XMMWORD PTR [ebp-32]
+DB     102,15,56,0,208
+       pxor    xmm0,xmm1
+       movdqa  xmm3,xmm5
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+       movdqa  xmm4,xmm5
+DB     102,15,56,0,224
+       pxor    xmm4,xmm2
+       movdqa  xmm2,xmm5
+DB     102,15,56,0,211
+       pxor    xmm2,xmm0
+       movdqa  xmm3,xmm5
+DB     102,15,56,0,220
+       pxor    xmm3,xmm1
+       movdqa  xmm4,XMMWORD PTR 32[ebp]
+DB     102,15,56,0,226
+       movdqa  xmm0,XMMWORD PTR 48[ebp]
+DB     102,15,56,0,195
+       pxor    xmm0,xmm4
+       pxor    xmm0,xmm7
+       movdqa  xmm7,xmm0
+       ret
+__vpaes_schedule_round ENDP
+ALIGN  16
+__vpaes_schedule_transform     PROC PRIVATE
+       movdqa  xmm2,XMMWORD PTR [ebp-16]
+       movdqa  xmm1,xmm2
+       pandn   xmm1,xmm0
+       psrld   xmm1,4
+       pand    xmm0,xmm2
+       movdqa  xmm2,XMMWORD PTR [ebx]
+DB     102,15,56,0,208
+       movdqa  xmm0,XMMWORD PTR 16[ebx]
+DB     102,15,56,0,193
+       pxor    xmm0,xmm2
+       ret
+__vpaes_schedule_transform ENDP
+ALIGN  16
+__vpaes_schedule_mangle        PROC PRIVATE
+       movdqa  xmm4,xmm0
+       movdqa  xmm5,XMMWORD PTR 128[ebp]
+       test    edi,edi
+       jnz     $L014schedule_mangle_dec
+       add     edx,16
+       pxor    xmm4,XMMWORD PTR 336[ebp]
+DB     102,15,56,0,229
+       movdqa  xmm3,xmm4
+DB     102,15,56,0,229
+       pxor    xmm3,xmm4
+DB     102,15,56,0,229
+       pxor    xmm3,xmm4
+       jmp     $L015schedule_mangle_both
+ALIGN  16
+$L014schedule_mangle_dec:
+       movdqa  xmm2,XMMWORD PTR [ebp-16]
+       lea     esi,DWORD PTR 416[ebp]
+       movdqa  xmm1,xmm2
+       pandn   xmm1,xmm4
+       psrld   xmm1,4
+       pand    xmm4,xmm2
+       movdqa  xmm2,XMMWORD PTR [esi]
+DB     102,15,56,0,212
+       movdqa  xmm3,XMMWORD PTR 16[esi]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+DB     102,15,56,0,221
+       movdqa  xmm2,XMMWORD PTR 32[esi]
+DB     102,15,56,0,212
+       pxor    xmm2,xmm3
+       movdqa  xmm3,XMMWORD PTR 48[esi]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+DB     102,15,56,0,221
+       movdqa  xmm2,XMMWORD PTR 64[esi]
+DB     102,15,56,0,212
+       pxor    xmm2,xmm3
+       movdqa  xmm3,XMMWORD PTR 80[esi]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+DB     102,15,56,0,221
+       movdqa  xmm2,XMMWORD PTR 96[esi]
+DB     102,15,56,0,212
+       pxor    xmm2,xmm3
+       movdqa  xmm3,XMMWORD PTR 112[esi]
+DB     102,15,56,0,217
+       pxor    xmm3,xmm2
+       add     edx,-16
+$L015schedule_mangle_both:
+       movdqa  xmm1,XMMWORD PTR 256[ecx*1+ebp]
+DB     102,15,56,0,217
+       add     ecx,-16
+       and     ecx,48
+       movdqu  XMMWORD PTR [edx],xmm3
+       ret
+__vpaes_schedule_mangle ENDP
+ALIGN  16
+_vpaes_set_encrypt_key PROC PUBLIC
+$L_vpaes_set_encrypt_key_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       mov     esi,DWORD PTR 20[esp]
+       lea     ebx,DWORD PTR [esp-56]
+       mov     eax,DWORD PTR 24[esp]
+       and     ebx,-16
+       mov     edx,DWORD PTR 28[esp]
+       xchg    ebx,esp
+       mov     DWORD PTR 48[esp],ebx
+       mov     ebx,eax
+       shr     ebx,5
+       add     ebx,5
+       mov     DWORD PTR 240[edx],ebx
+       mov     ecx,48
+       mov     edi,0
+       mov     ebp,OFFSET ($L_vpaes_consts+030h-$L016pic_point)
+       call    __vpaes_schedule_core
+$L016pic_point:
+       mov     esp,DWORD PTR 48[esp]
+       xor     eax,eax
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_vpaes_set_encrypt_key ENDP
+ALIGN  16
+_vpaes_set_decrypt_key PROC PUBLIC
+$L_vpaes_set_decrypt_key_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       mov     esi,DWORD PTR 20[esp]
+       lea     ebx,DWORD PTR [esp-56]
+       mov     eax,DWORD PTR 24[esp]
+       and     ebx,-16
+       mov     edx,DWORD PTR 28[esp]
+       xchg    ebx,esp
+       mov     DWORD PTR 48[esp],ebx
+       mov     ebx,eax
+       shr     ebx,5
+       add     ebx,5
+       mov     DWORD PTR 240[edx],ebx
+       shl     ebx,4
+       lea     edx,DWORD PTR 16[ebx*1+edx]
+       mov     edi,1
+       mov     ecx,eax
+       shr     ecx,1
+       and     ecx,32
+       xor     ecx,32
+       mov     ebp,OFFSET ($L_vpaes_consts+030h-$L017pic_point)
+       call    __vpaes_schedule_core
+$L017pic_point:
+       mov     esp,DWORD PTR 48[esp]
+       xor     eax,eax
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_vpaes_set_decrypt_key ENDP
+ALIGN  16
+_vpaes_encrypt PROC PUBLIC
+$L_vpaes_encrypt_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       mov     ebp,OFFSET ($L_vpaes_consts+030h-$L018pic_point)
+       call    __vpaes_preheat
+$L018pic_point:
+       mov     esi,DWORD PTR 20[esp]
+       lea     ebx,DWORD PTR [esp-56]
+       mov     edi,DWORD PTR 24[esp]
+       and     ebx,-16
+       mov     edx,DWORD PTR 28[esp]
+       xchg    ebx,esp
+       mov     DWORD PTR 48[esp],ebx
+       movdqu  xmm0,XMMWORD PTR [esi]
+       call    __vpaes_encrypt_core
+       movdqu  XMMWORD PTR [edi],xmm0
+       mov     esp,DWORD PTR 48[esp]
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_vpaes_encrypt ENDP
+ALIGN  16
+_vpaes_decrypt PROC PUBLIC
+$L_vpaes_decrypt_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       mov     ebp,OFFSET ($L_vpaes_consts+030h-$L019pic_point)
+       call    __vpaes_preheat
+$L019pic_point:
+       mov     esi,DWORD PTR 20[esp]
+       lea     ebx,DWORD PTR [esp-56]
+       mov     edi,DWORD PTR 24[esp]
+       and     ebx,-16
+       mov     edx,DWORD PTR 28[esp]
+       xchg    ebx,esp
+       mov     DWORD PTR 48[esp],ebx
+       movdqu  xmm0,XMMWORD PTR [esi]
+       call    __vpaes_decrypt_core
+       movdqu  XMMWORD PTR [edi],xmm0
+       mov     esp,DWORD PTR 48[esp]
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_vpaes_decrypt ENDP
+ALIGN  16
+_vpaes_cbc_encrypt     PROC PUBLIC
+$L_vpaes_cbc_encrypt_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       mov     esi,DWORD PTR 20[esp]
+       mov     edi,DWORD PTR 24[esp]
+       mov     eax,DWORD PTR 28[esp]
+       mov     edx,DWORD PTR 32[esp]
+       sub     eax,16
+       jc      $L020cbc_abort
+       lea     ebx,DWORD PTR [esp-56]
+       mov     ebp,DWORD PTR 36[esp]
+       and     ebx,-16
+       mov     ecx,DWORD PTR 40[esp]
+       xchg    ebx,esp
+       movdqu  xmm1,XMMWORD PTR [ebp]
+       sub     edi,esi
+       mov     DWORD PTR 48[esp],ebx
+       mov     DWORD PTR [esp],edi
+       mov     DWORD PTR 4[esp],edx
+       mov     DWORD PTR 8[esp],ebp
+       mov     edi,eax
+       mov     ebp,OFFSET ($L_vpaes_consts+030h-$L021pic_point)
+       call    __vpaes_preheat
+$L021pic_point:
+       cmp     ecx,0
+       je      $L022cbc_dec_loop
+       jmp     $L023cbc_enc_loop
+ALIGN  16
+$L023cbc_enc_loop:
+       movdqu  xmm0,XMMWORD PTR [esi]
+       pxor    xmm0,xmm1
+       call    __vpaes_encrypt_core
+       mov     ebx,DWORD PTR [esp]
+       mov     edx,DWORD PTR 4[esp]
+       movdqa  xmm1,xmm0
+       movdqu  XMMWORD PTR [esi*1+ebx],xmm0
+       lea     esi,DWORD PTR 16[esi]
+       sub     edi,16
+       jnc     $L023cbc_enc_loop
+       jmp     $L024cbc_done
+ALIGN  16
+$L022cbc_dec_loop:
+       movdqu  xmm0,XMMWORD PTR [esi]
+       movdqa  XMMWORD PTR 16[esp],xmm1
+       movdqa  XMMWORD PTR 32[esp],xmm0
+       call    __vpaes_decrypt_core
+       mov     ebx,DWORD PTR [esp]
+       mov     edx,DWORD PTR 4[esp]
+       pxor    xmm0,XMMWORD PTR 16[esp]
+       movdqa  xmm1,XMMWORD PTR 32[esp]
+       movdqu  XMMWORD PTR [esi*1+ebx],xmm0
+       lea     esi,DWORD PTR 16[esi]
+       sub     edi,16
+       jnc     $L022cbc_dec_loop
+$L024cbc_done:
+       mov     ebx,DWORD PTR 8[esp]
+       mov     esp,DWORD PTR 48[esp]
+       movdqu  XMMWORD PTR [ebx],xmm1
+$L020cbc_abort:
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_vpaes_cbc_encrypt ENDP
+.text$ ENDS
+END
diff --git a/deps/openssl/asm/x86-win32-masm/modes/ghash-x86.asm b/deps/openssl/asm/x86-win32-masm/modes/ghash-x86.asm
new file mode 100644 (file)
index 0000000..d5041d2
--- /dev/null
@@ -0,0 +1,738 @@
+TITLE  ghash-x86.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
+
+.MODEL FLAT
+OPTION DOTNAME
+IF @Version LT 800
+.text$ SEGMENT PAGE 'CODE'
+ELSE
+.text$ SEGMENT ALIGN(64) 'CODE'
+ENDIF
+ALIGN  16
+_gcm_gmult_4bit_x86    PROC PUBLIC
+$L_gcm_gmult_4bit_x86_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       sub     esp,84
+       mov     edi,DWORD PTR 104[esp]
+       mov     esi,DWORD PTR 108[esp]
+       mov     ebp,DWORD PTR [edi]
+       mov     edx,DWORD PTR 4[edi]
+       mov     ecx,DWORD PTR 8[edi]
+       mov     ebx,DWORD PTR 12[edi]
+       mov     DWORD PTR 16[esp],0
+       mov     DWORD PTR 20[esp],471859200
+       mov     DWORD PTR 24[esp],943718400
+       mov     DWORD PTR 28[esp],610271232
+       mov     DWORD PTR 32[esp],1887436800
+       mov     DWORD PTR 36[esp],1822425088
+       mov     DWORD PTR 40[esp],1220542464
+       mov     DWORD PTR 44[esp],1423966208
+       mov     DWORD PTR 48[esp],3774873600
+       mov     DWORD PTR 52[esp],4246732800
+       mov     DWORD PTR 56[esp],3644850176
+       mov     DWORD PTR 60[esp],3311403008
+       mov     DWORD PTR 64[esp],2441084928
+       mov     DWORD PTR 68[esp],2376073216
+       mov     DWORD PTR 72[esp],2847932416
+       mov     DWORD PTR 76[esp],3051356160
+       mov     DWORD PTR [esp],ebp
+       mov     DWORD PTR 4[esp],edx
+       mov     DWORD PTR 8[esp],ecx
+       mov     DWORD PTR 12[esp],ebx
+       shr     ebx,20
+       and     ebx,240
+       mov     ebp,DWORD PTR 4[ebx*1+esi]
+       mov     edx,DWORD PTR [ebx*1+esi]
+       mov     ecx,DWORD PTR 12[ebx*1+esi]
+       mov     ebx,DWORD PTR 8[ebx*1+esi]
+       xor     eax,eax
+       mov     edi,15
+       jmp     $L000x86_loop
+ALIGN  16
+$L000x86_loop:
+       mov     al,bl
+       shrd    ebx,ecx,4
+       and     al,15
+       shrd    ecx,edx,4
+       shrd    edx,ebp,4
+       shr     ebp,4
+       xor     ebp,DWORD PTR 16[eax*4+esp]
+       mov     al,BYTE PTR [edi*1+esp]
+       and     al,240
+       xor     ebx,DWORD PTR 8[eax*1+esi]
+       xor     ecx,DWORD PTR 12[eax*1+esi]
+       xor     edx,DWORD PTR [eax*1+esi]
+       xor     ebp,DWORD PTR 4[eax*1+esi]
+       dec     edi
+       js      $L001x86_break
+       mov     al,bl
+       shrd    ebx,ecx,4
+       and     al,15
+       shrd    ecx,edx,4
+       shrd    edx,ebp,4
+       shr     ebp,4
+       xor     ebp,DWORD PTR 16[eax*4+esp]
+       mov     al,BYTE PTR [edi*1+esp]
+       shl     al,4
+       xor     ebx,DWORD PTR 8[eax*1+esi]
+       xor     ecx,DWORD PTR 12[eax*1+esi]
+       xor     edx,DWORD PTR [eax*1+esi]
+       xor     ebp,DWORD PTR 4[eax*1+esi]
+       jmp     $L000x86_loop
+ALIGN  16
+$L001x86_break:
+       bswap   ebx
+       bswap   ecx
+       bswap   edx
+       bswap   ebp
+       mov     edi,DWORD PTR 104[esp]
+       mov     DWORD PTR 12[edi],ebx
+       mov     DWORD PTR 8[edi],ecx
+       mov     DWORD PTR 4[edi],edx
+       mov     DWORD PTR [edi],ebp
+       add     esp,84
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_gcm_gmult_4bit_x86 ENDP
+ALIGN  16
+_gcm_ghash_4bit_x86    PROC PUBLIC
+$L_gcm_ghash_4bit_x86_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       sub     esp,84
+       mov     ebx,DWORD PTR 104[esp]
+       mov     esi,DWORD PTR 108[esp]
+       mov     edi,DWORD PTR 112[esp]
+       mov     ecx,DWORD PTR 116[esp]
+       add     ecx,edi
+       mov     DWORD PTR 116[esp],ecx
+       mov     ebp,DWORD PTR [ebx]
+       mov     edx,DWORD PTR 4[ebx]
+       mov     ecx,DWORD PTR 8[ebx]
+       mov     ebx,DWORD PTR 12[ebx]
+       mov     DWORD PTR 16[esp],0
+       mov     DWORD PTR 20[esp],471859200
+       mov     DWORD PTR 24[esp],943718400
+       mov     DWORD PTR 28[esp],610271232
+       mov     DWORD PTR 32[esp],1887436800
+       mov     DWORD PTR 36[esp],1822425088
+       mov     DWORD PTR 40[esp],1220542464
+       mov     DWORD PTR 44[esp],1423966208
+       mov     DWORD PTR 48[esp],3774873600
+       mov     DWORD PTR 52[esp],4246732800
+       mov     DWORD PTR 56[esp],3644850176
+       mov     DWORD PTR 60[esp],3311403008
+       mov     DWORD PTR 64[esp],2441084928
+       mov     DWORD PTR 68[esp],2376073216
+       mov     DWORD PTR 72[esp],2847932416
+       mov     DWORD PTR 76[esp],3051356160
+ALIGN  16
+$L002x86_outer_loop:
+       xor     ebx,DWORD PTR 12[edi]
+       xor     ecx,DWORD PTR 8[edi]
+       xor     edx,DWORD PTR 4[edi]
+       xor     ebp,DWORD PTR [edi]
+       mov     DWORD PTR 12[esp],ebx
+       mov     DWORD PTR 8[esp],ecx
+       mov     DWORD PTR 4[esp],edx
+       mov     DWORD PTR [esp],ebp
+       shr     ebx,20
+       and     ebx,240
+       mov     ebp,DWORD PTR 4[ebx*1+esi]
+       mov     edx,DWORD PTR [ebx*1+esi]
+       mov     ecx,DWORD PTR 12[ebx*1+esi]
+       mov     ebx,DWORD PTR 8[ebx*1+esi]
+       xor     eax,eax
+       mov     edi,15
+       jmp     $L003x86_loop
+ALIGN  16
+$L003x86_loop:
+       mov     al,bl
+       shrd    ebx,ecx,4
+       and     al,15
+       shrd    ecx,edx,4
+       shrd    edx,ebp,4
+       shr     ebp,4
+       xor     ebp,DWORD PTR 16[eax*4+esp]
+       mov     al,BYTE PTR [edi*1+esp]
+       and     al,240
+       xor     ebx,DWORD PTR 8[eax*1+esi]
+       xor     ecx,DWORD PTR 12[eax*1+esi]
+       xor     edx,DWORD PTR [eax*1+esi]
+       xor     ebp,DWORD PTR 4[eax*1+esi]
+       dec     edi
+       js      $L004x86_break
+       mov     al,bl
+       shrd    ebx,ecx,4
+       and     al,15
+       shrd    ecx,edx,4
+       shrd    edx,ebp,4
+       shr     ebp,4
+       xor     ebp,DWORD PTR 16[eax*4+esp]
+       mov     al,BYTE PTR [edi*1+esp]
+       shl     al,4
+       xor     ebx,DWORD PTR 8[eax*1+esi]
+       xor     ecx,DWORD PTR 12[eax*1+esi]
+       xor     edx,DWORD PTR [eax*1+esi]
+       xor     ebp,DWORD PTR 4[eax*1+esi]
+       jmp     $L003x86_loop
+ALIGN  16
+$L004x86_break:
+       bswap   ebx
+       bswap   ecx
+       bswap   edx
+       bswap   ebp
+       mov     edi,DWORD PTR 112[esp]
+       lea     edi,DWORD PTR 16[edi]
+       cmp     edi,DWORD PTR 116[esp]
+       mov     DWORD PTR 112[esp],edi
+       jb      $L002x86_outer_loop
+       mov     edi,DWORD PTR 104[esp]
+       mov     DWORD PTR 12[edi],ebx
+       mov     DWORD PTR 8[edi],ecx
+       mov     DWORD PTR 4[edi],edx
+       mov     DWORD PTR [edi],ebp
+       add     esp,84
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_gcm_ghash_4bit_x86 ENDP
+ALIGN  16
+__mmx_gmult_4bit_inner PROC PRIVATE
+       xor     ecx,ecx
+       mov     edx,ebx
+       mov     cl,dl
+       shl     cl,4
+       and     edx,240
+       movq    mm0,QWORD PTR 8[ecx*1+esi]
+       movq    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 14[edi]
+       psllq   mm2,60
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 13[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 12[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 11[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 10[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 9[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 8[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 7[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 6[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 5[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 4[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 3[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 2[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR 1[edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       mov     cl,BYTE PTR [edi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       mov     edx,ecx
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       shl     cl,4
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[ecx*1+esi]
+       psllq   mm2,60
+       and     edx,240
+       pxor    mm1,QWORD PTR [ebp*8+eax]
+       and     ebx,15
+       pxor    mm1,QWORD PTR [ecx*1+esi]
+       movd    ebp,mm0
+       pxor    mm0,mm2
+       psrlq   mm0,4
+       movq    mm2,mm1
+       psrlq   mm1,4
+       pxor    mm0,QWORD PTR 8[edx*1+esi]
+       psllq   mm2,60
+       pxor    mm1,QWORD PTR [ebx*8+eax]
+       and     ebp,15
+       pxor    mm1,QWORD PTR [edx*1+esi]
+       movd    ebx,mm0
+       pxor    mm0,mm2
+       mov     edi,DWORD PTR 4[ebp*8+eax]
+       psrlq   mm0,32
+       movd    edx,mm1
+       psrlq   mm1,32
+       movd    ecx,mm0
+       movd    ebp,mm1
+       shl     edi,4
+       bswap   ebx
+       bswap   edx
+       bswap   ecx
+       xor     ebp,edi
+       bswap   ebp
+       ret
+__mmx_gmult_4bit_inner ENDP
+ALIGN  16
+_gcm_gmult_4bit_mmx    PROC PUBLIC
+$L_gcm_gmult_4bit_mmx_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       mov     edi,DWORD PTR 20[esp]
+       mov     esi,DWORD PTR 24[esp]
+       call    $L005pic_point
+$L005pic_point:
+       pop     eax
+       lea     eax,DWORD PTR ($Lrem_4bit-$L005pic_point)[eax]
+       movzx   ebx,BYTE PTR 15[edi]
+       call    __mmx_gmult_4bit_inner
+       mov     edi,DWORD PTR 20[esp]
+       emms
+       mov     DWORD PTR 12[edi],ebx
+       mov     DWORD PTR 4[edi],edx
+       mov     DWORD PTR 8[edi],ecx
+       mov     DWORD PTR [edi],ebp
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_gcm_gmult_4bit_mmx ENDP
+ALIGN  16
+_gcm_ghash_4bit_mmx    PROC PUBLIC
+$L_gcm_ghash_4bit_mmx_begin::
+       push    ebp
+       push    ebx
+       push    esi
+       push    edi
+       mov     ebp,DWORD PTR 20[esp]
+       mov     esi,DWORD PTR 24[esp]
+       mov     edi,DWORD PTR 28[esp]
+       mov     ecx,DWORD PTR 32[esp]
+       call    $L006pic_point
+$L006pic_point:
+       pop     eax
+       lea     eax,DWORD PTR ($Lrem_4bit-$L006pic_point)[eax]
+       add     ecx,edi
+       mov     DWORD PTR 32[esp],ecx
+       sub     esp,20
+       mov     ebx,DWORD PTR 12[ebp]
+       mov     edx,DWORD PTR 4[ebp]
+       mov     ecx,DWORD PTR 8[ebp]
+       mov     ebp,DWORD PTR [ebp]
+       jmp     $L007mmx_outer_loop
+ALIGN  16
+$L007mmx_outer_loop:
+       xor     ebx,DWORD PTR 12[edi]
+       xor     edx,DWORD PTR 4[edi]
+       xor     ecx,DWORD PTR 8[edi]
+       xor     ebp,DWORD PTR [edi]
+       mov     DWORD PTR 48[esp],edi
+       mov     DWORD PTR 12[esp],ebx
+       mov     DWORD PTR 4[esp],edx
+       mov     DWORD PTR 8[esp],ecx
+       mov     DWORD PTR [esp],ebp
+       mov     edi,esp
+       shr     ebx,24
+       call    __mmx_gmult_4bit_inner
+       mov     edi,DWORD PTR 48[esp]
+       lea     edi,DWORD PTR 16[edi]
+       cmp     edi,DWORD PTR 52[esp]
+       jb      $L007mmx_outer_loop
+       mov     edi,DWORD PTR 40[esp]
+       emms
+       mov     DWORD PTR 12[edi],ebx
+       mov     DWORD PTR 4[edi],edx
+       mov     DWORD PTR 8[edi],ecx
+       mov     DWORD PTR [edi],ebp
+       add     esp,20
+       pop     edi
+       pop     esi
+       pop     ebx
+       pop     ebp
+       ret
+_gcm_ghash_4bit_mmx ENDP
+ALIGN  64
+$Lrem_4bit::
+DD     0,0,0,29491200,0,58982400,0,38141952
+DD     0,117964800,0,113901568,0,76283904,0,88997888
+DD     0,235929600,0,265420800,0,227803136,0,206962688
+DD     0,152567808,0,148504576,0,177995776,0,190709760
+ALIGN  64
+$L008rem_8bit:
+DW     0,450,900,582,1800,1738,1164,1358
+DW     3600,4050,3476,3158,2328,2266,2716,2910
+DW     7200,7650,8100,7782,6952,6890,6316,6510
+DW     4656,5106,4532,4214,5432,5370,5820,6014
+DW     14400,14722,15300,14854,16200,16010,15564,15630
+DW     13904,14226,13780,13334,12632,12442,13020,13086
+DW     9312,9634,10212,9766,9064,8874,8428,8494
+DW     10864,11186,10740,10294,11640,11450,12028,12094
+DW     28800,28994,29444,29382,30600,30282,29708,30158
+DW     32400,32594,32020,31958,31128,30810,31260,31710
+DW     27808,28002,28452,28390,27560,27242,26668,27118
+DW     25264,25458,24884,24822,26040,25722,26172,26622
+DW     18624,18690,19268,19078,20424,19978,19532,19854
+DW     18128,18194,17748,17558,16856,16410,16988,17310
+DW     21728,21794,22372,22182,21480,21034,20588,20910
+DW     23280,23346,22900,22710,24056,23610,24188,24510
+DW     57600,57538,57988,58182,58888,59338,58764,58446
+DW     61200,61138,60564,60758,59416,59866,60316,59998
+DW     64800,64738,65188,65382,64040,64490,63916,63598
+DW     62256,62194,61620,61814,62520,62970,63420,63102
+DW     55616,55426,56004,56070,56904,57226,56780,56334
+DW     55120,54930,54484,54550,53336,53658,54236,53790
+DW     50528,50338,50916,50982,49768,50090,49644,49198
+DW     52080,51890,51444,51510,52344,52666,53244,52798
+DW     37248,36930,37380,37830,38536,38730,38156,38094
+DW     40848,40530,39956,40406,39064,39258,39708,39646
+DW     36256,35938,36388,36838,35496,35690,35116,35054
+DW     33712,33394,32820,33270,33976,34170,34620,34558
+DW     43456,43010,43588,43910,44744,44810,44364,44174
+DW     42960,42514,42068,42390,41176,41242,41820,41630
+DW     46560,46114,46692,47014,45800,45866,45420,45230
+DW     48112,47666,47220,47542,48376,48442,49020,48830
+DB     71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
+DB     82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
+DB     112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
+DB     0
+.text$ ENDS
+END
index b9b1c25..c361e17 100644 (file)
@@ -69,6 +69,7 @@ $L_OPENSSL_ia32_cpuid_begin::
        movzx   esi,cl
        inc     esi
        mov     eax,1
+       xor     ecx,ecx
        cpuid
        bt      edx,28
        jnc     $L002generic
@@ -90,6 +91,7 @@ $L001intel:
        and     edi,4095
 $L003nocacheinfo:
        mov     eax,1
+       xor     ecx,ecx
        cpuid
        and     edx,3220176895
        cmp     ebp,0
index 5dd3d41..9bf2369 100644 (file)
   * - elder Alpha because it lacks byte load/store instructions;
   */
 # undef RC4_INT
-# if defined(__arm__) || defined(__mips__)
+# if defined(__arm__)
 #  define RC4_INT unsigned char
 # else
 #  define RC4_INT unsigned int
 #  define RC4_CHUNK unsigned long long
 # elif (defined(_M_X64) || defined(__x86_64__)) && !defined(_WIN32)
 #  define RC4_CHUNK unsigned long
-# elif defined(__arm__) || defined(__mips__)
+# elif defined(__arm__)
 #  define RC4_CHUNK unsigned long
 # else
    /* On x86 RC4_CHUNK is not defined */
 #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
 # define CONFIG_HEADER_BF_LOCL_H
 # undef BF_PTR
-# if defined(__arm__) || defined(__mips__)
+# if defined(__arm__)
 #  define BF_PTR
 # endif
 #endif /* HEADER_BF_LOCL_H */
index 77af4de..3dc9106 100644 (file)
           # Enable asm
           'defines': [
             'AES_ASM',
+            'VPAES_ASM',
             'BF_ASM',
             'BNCO_ASM',
             'BN_ASM',
             'CPUID_ASM',
             'DES_ASM',
             'LIB_BN_ASM',
+            'MD5_ASM',
             'OPENSSL_BN_ASM',
+            'OPENSSL_BN_ASM_MONT',
             'OPENSSL_CPUID_OBJ',
             'RIP_ASM',
+            'RMD160_ASM',
+            'SHA1_ASM',
+            'SHA256_ASM',
+            'SHA512_ASM',
+            'GHASH_ASM',
             'WHIRLPOOL_ASM',
             'WP_ASM'
           ],
               'sources': [
                 'asm/x86-elf-gas/aes/aes-586.s',
                 'asm/x86-elf-gas/aes/aesni-x86.s',
+                'asm/x86-elf-gas/aes/vpaes-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',
                 'asm/x86-elf-gas/sha/sha256-586.s',
                 'asm/x86-elf-gas/sha/sha512-586.s',
                 'asm/x86-elf-gas/whrlpool/wp-mmx.s',
+                'asm/x86-elf-gas/modes/ghash-x86.s',
                 'asm/x86-elf-gas/x86cpuid.s',
                 'openssl/crypto/whrlpool/wp_block.c'
               ]
             }],
             ['OS!="win" and OS!="mac" and target_arch=="x64"', {
+              'defines': [
+                'OPENSSL_BN_ASM_MONT5',
+                'OPENSSL_BN_ASM_GF2m',
+                'OPENSSL_IA32_SSE2',
+                'BSAES_ASM',
+              ],
               'sources': [
                 'asm/x64-elf-gas/aes/aes-x86_64.s',
                 'asm/x64-elf-gas/aes/aesni-x86_64.s',
+                'asm/x64-elf-gas/aes/vpaes-x86_64.s',
+                'asm/x64-elf-gas/aes/bsaes-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/bn/x86_64-mont5.s',
+                'asm/x64-elf-gas/bn/x86_64-gf2m.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/sha256-x86_64.s',
                 'asm/x64-elf-gas/sha/sha512-x86_64.s',
                 'asm/x64-elf-gas/whrlpool/wp-x86_64.s',
+                'asm/x64-elf-gas/modes/ghash-x86_64.s',
                 'asm/x64-elf-gas/x86_64cpuid.s',
                 # Non-generated asm
                 'openssl/crypto/bn/asm/x86_64-gcc.c',
               'sources': [
                 'asm/x86-macosx-gas/aes/aes-586.s',
                 'asm/x86-macosx-gas/aes/aesni-x86.s',
+                'asm/x86-macosx-gas/aes/vpaes-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',
                 'asm/x86-macosx-gas/sha/sha256-586.s',
                 'asm/x86-macosx-gas/sha/sha512-586.s',
                 'asm/x86-macosx-gas/whrlpool/wp-mmx.s',
+                'asm/x86-macosx-gas/modes/ghash-x86.s',
                 'asm/x86-macosx-gas/x86cpuid.s',
                 'openssl/crypto/whrlpool/wp_block.c'
               ]
             }],
             ['OS=="mac" and target_arch=="x64"', {
+              'defines': [
+                'OPENSSL_BN_ASM_MONT5',
+                'OPENSSL_BN_ASM_GF2m',
+                'OPENSSL_IA32_SSE2',
+                'BSAES_ASM',
+              ],
               'sources': [
                 'asm/x64-macosx-gas/aes/aes-x86_64.s',
                 'asm/x64-macosx-gas/aes/aesni-x86_64.s',
+                'asm/x64-macosx-gas/aes/vpaes-x86_64.s',
+                'asm/x64-macosx-gas/aes/bsaes-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/bn/x86_64-mont5.s',
+                'asm/x64-macosx-gas/bn/x86_64-gf2m.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/sha256-x86_64.s',
                 'asm/x64-macosx-gas/sha/sha512-x86_64.s',
                 'asm/x64-macosx-gas/whrlpool/wp-x86_64.s',
+                'asm/x64-macosx-gas/modes/ghash-x86_64.s',
                 'asm/x64-macosx-gas/x86_64cpuid.s',
                 # Non-generated asm
                 'openssl/crypto/bn/asm/x86_64-gcc.c',
               'sources': [
                 'asm/x86-win32-masm/aes/aes-586.asm',
                 'asm/x86-win32-masm/aes/aesni-x86.asm',
+                'asm/x86-win32-masm/aes/vpaes-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',
                 'asm/x86-win32-masm/sha/sha256-586.asm',
                 'asm/x86-win32-masm/sha/sha512-586.asm',
                 'asm/x86-win32-masm/whrlpool/wp-mmx.asm',
+                'asm/x86-win32-masm/modes/ghash-x86.asm',
                 'asm/x86-win32-masm/x86cpuid.asm',
                 'openssl/crypto/whrlpool/wp_block.c'
               ],
               ]
             }],
             ['OS=="win" and target_arch=="x64"', {
+              'defines': [
+                'OPENSSL_BN_ASM_MONT5',
+                'OPENSSL_BN_ASM_GF2m',
+                'OPENSSL_IA32_SSE2',
+                'BSAES_ASM',
+              ],
               'sources': [
                 'asm/x64-win32-masm/aes/aes-x86_64.asm',
                 'asm/x64-win32-masm/aes/aesni-x86_64.asm',
+                'asm/x64-win32-masm/aes/vpaes-x86_64.asm',
+                'asm/x64-win32-masm/aes/bsaes-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/bn/x86_64-mont5.asm',
+                'asm/x64-win32-masm/bn/x86_64-gf2m.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/sha256-x86_64.asm',
                 'asm/x64-win32-masm/sha/sha512-x86_64.asm',
                 'asm/x64-win32-masm/whrlpool/wp-x86_64.asm',
+                'asm/x64-win32-masm/modes/ghash-x86_64.asm',
                 'asm/x64-win32-masm/x86_64cpuid.asm',
                 # Non-generated asm
                 'openssl/crypto/bn/asm/x86_64-win32-masm.asm',
index ca82ad2..4fcfd1d 100644 (file)
@@ -2,9 +2,60 @@
  OpenSSL CHANGES
  _______________
 
+ Changes between 1.0.1f and 1.0.1g [7 Apr 2014]
+
+  *) A missing bounds check in the handling of the TLS heartbeat extension
+     can be used to reveal up to 64k of memory to a connected client or
+     server.
+
+     Thanks for Neel Mehta of Google Security for discovering this bug and to
+     Adam Langley <agl@chromium.org> and Bodo Moeller <bmoeller@acm.org> for
+     preparing the fix (CVE-2014-0160)
+     [Adam Langley, Bodo Moeller]
+
+  *) Fix for the attack described in the paper "Recovering OpenSSL
+     ECDSA Nonces Using the FLUSH+RELOAD Cache Side-channel Attack"
+     by Yuval Yarom and Naomi Benger. Details can be obtained from:
+     http://eprint.iacr.org/2014/140
+
+     Thanks to Yuval Yarom and Naomi Benger for discovering this
+     flaw and to Yuval Yarom for supplying a fix (CVE-2014-0076)
+     [Yuval Yarom and Naomi Benger]
+
+  *) TLS pad extension: draft-agl-tls-padding-03
+
+     Workaround for the "TLS hang bug" (see FAQ and PR#2771): if the
+     TLS client Hello record length value would otherwise be > 255 and
+     less that 512 pad with a dummy extension containing zeroes so it
+     is at least 512 bytes long.
+
+     [Adam Langley, Steve Henson]
+
+ Changes between 1.0.1e and 1.0.1f [6 Jan 2014]
+
+  *) Fix for TLS record tampering bug. A carefully crafted invalid 
+     handshake could crash OpenSSL with a NULL pointer exception.
+     Thanks to Anton Johansson for reporting this issues.
+     (CVE-2013-4353)
+
+  *) Keep original DTLS digest and encryption contexts in retransmission
+     structures so we can use the previous session parameters if they need
+     to be resent. (CVE-2013-6450)
+     [Steve Henson]
+
+  *) Add option SSL_OP_SAFARI_ECDHE_ECDSA_BUG (part of SSL_OP_ALL) which
+     avoids preferring ECDHE-ECDSA ciphers when the client appears to be
+     Safari on OS X.  Safari on OS X 10.8..10.8.3 advertises support for
+     several ECDHE-ECDSA ciphers, but fails to negotiate them.  The bug
+     is fixed in OS X 10.8.4, but Apple have ruled out both hot fixing
+     10.8..10.8.3 and forcing users to upgrade to 10.8.4 or newer.
+     [Rob Stradling, Adam Langley]
+
  Changes between 1.0.1d and 1.0.1e [11 Feb 2013]
 
-  *)
+  *) Correct fix for CVE-2013-0169. The original didn't work on AES-NI
+     supporting platforms or when small records were transferred.
+     [Andy Polyakov, Steve Henson]
 
  Changes between 1.0.1c and 1.0.1d [5 Feb 2013]
 
        Add command line options to s_client/s_server.
      [Steve Henson]
 
+ Changes between 1.0.0j and 1.0.0k [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]
+
+  *) Return an error when checking OCSP signatures when key is NULL.
+     This fixes a DoS attack. (CVE-2013-0166)
+     [Steve Henson]
+
+  *) 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.
+     (This is a backport)
+     [Rob Stradling <rob.stradling@comodo.com>]
+
+  *) Fix possible deadlock when decoding public keys.
+     [Steve Henson]
+
+ Changes between 1.0.0i and 1.0.0j [10 May 2012]
+
+  [NB: OpenSSL 1.0.0i and later 1.0.0 patch levels were released after
+  OpenSSL 1.0.1.]
+
+  *) Sanity check record length before skipping explicit IV in 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]
+
+ Changes between 1.0.0h and 1.0.0i [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]
+
  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
   *) Change 'Configure' script to enable Camellia by default.
      [NTT]
 
+ Changes between 0.9.8x and 0.9.8y [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]
+
+  *) Return an error when checking OCSP signatures when key is NULL.
+     This fixes a DoS attack. (CVE-2013-0166)
+     [Steve Henson]
+
+  *) 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.
+     (This is a backport)
+     [Rob Stradling <rob.stradling@comodo.com>]
+
+  *) Fix possible deadlock when decoding public keys.
+     [Steve Henson]
+
+ Changes between 0.9.8w and 0.9.8x [10 May 2012]
+
+  *) Sanity check record length before skipping explicit IV in 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]
+
+ Changes between 0.9.8v and 0.9.8w [23 Apr 2012]
+
+  *) The fix for CVE-2012-2110 did not take into account that the 
+     'len' argument to BUF_MEM_grow and BUF_MEM_grow_clean is an
+     int in OpenSSL 0.9.8, making it still vulnerable. Fix by 
+     rejecting negative len parameter. (CVE-2012-2131)
+     [Tomas Hoger <thoger@redhat.com>]
+
+ Changes between 0.9.8u and 0.9.8v [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]
+
+ Changes between 0.9.8t and 0.9.8u [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 0.9.8s and 0.9.8t [18 Jan 2012]
 
   *) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109.
      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
index 9c803dc..de78469 100755 (executable)
@@ -178,7 +178,7 @@ my %table=(
 "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:$gcc_devteam_warn -Wno-error=overlength-strings -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-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-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)",
@@ -526,7 +526,7 @@ my %table=(
 # '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",
 # 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",
+"debug-VC-WIN32","cl:-W3 -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",
 
 # Borland C++ 4.5
index 35780f8..59d1353 100644 (file)
@@ -768,6 +768,9 @@ openssl-security@openssl.org if you don't get a prompt reply at least
 acknowledging receipt then resend or mail it directly to one of the
 more active team members (e.g. Steve).
 
+Note that bugs only present in the openssl utility are not in general
+considered to be security issues. 
+
 [PROG] ========================================================================
 
 * Is OpenSSL thread-safe?
index 54e3541..4a40b70 100644 (file)
@@ -4,7 +4,7 @@
 ## Makefile for OpenSSL
 ##
 
-VERSION=1.0.1e
+VERSION=1.0.1g
 MAJOR=1
 MINOR=0.1
 SHLIB_VERSION_NUMBER=1.0.0
@@ -304,7 +304,8 @@ libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
                        FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \
                        export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \
                fi; \
-               $(MAKE) -e SHLIBDIRS=crypto build-shared; \
+               $(MAKE) -e SHLIBDIRS=crypto  CC="$${CC:-$(CC)}" build-shared && \
+               (touch -c fips_premain_dso$(EXE_EXT) || :); \
        else \
                echo "There's no support for shared libraries on this platform" >&2; \
                exit 1; \
diff --git a/deps/openssl/openssl/Makefile.bak b/deps/openssl/openssl/Makefile.bak
new file mode 100644 (file)
index 0000000..67af132
--- /dev/null
@@ -0,0 +1,686 @@
+### Generated automatically from Makefile.org by Configure.
+
+##
+## Makefile for OpenSSL
+##
+
+VERSION=1.0.1g-dev
+MAJOR=1
+MINOR=0.1
+SHLIB_VERSION_NUMBER=1.0.0
+SHLIB_VERSION_HISTORY=
+SHLIB_MAJOR=1
+SHLIB_MINOR=0.0
+SHLIB_EXT=
+PLATFORM=gcc
+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
+CONFIGURE_ARGS=gcc
+SHLIB_TARGET=
+
+# HERE indicates where this Makefile lives.  This can be used to indicate
+# where sub-Makefiles are expected to be.  Currently has very limited usage,
+# and should probably not be bothered with at all.
+HERE=.
+
+# INSTALL_PREFIX is for package builders so that they can configure
+# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
+# Normally it is left empty.
+INSTALL_PREFIX=
+INSTALLTOP=/usr/local/ssl
+
+# Do not edit this manually. Use Configure --openssldir=DIR do change this!
+OPENSSLDIR=/usr/local/ssl
+
+# NO_IDEA - Define to build without the IDEA algorithm
+# NO_RC4  - Define to build without the RC4 algorithm
+# NO_RC2  - Define to build without the RC2 algorithm
+# THREADS - Define when building with threads, you will probably also need any
+#           system defines as well, i.e. _REENTERANT for Solaris 2.[34]
+# TERMIO  - Define the termio terminal subsystem, needed if sgtty is missing.
+# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
+# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
+# DEVRANDOM - Give this the value of the 'random device' if your OS supports
+#           one.  32 bytes will be read from this when the random
+#           number generator is initalised.
+# SSL_FORBID_ENULL - define if you want the server to be not able to use the
+#           NULL encryption ciphers.
+#
+# LOCK_DEBUG - turns on lots of lock debug output :-)
+# REF_CHECK - turn on some xyz_free() assertions.
+# REF_PRINT - prints some stuff on structure free.
+# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
+# MFUNC - Make all Malloc/Free/Realloc calls call
+#       CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
+#       call application defined callbacks via CRYPTO_set_mem_functions()
+# MD5_ASM needs to be defined to use the x86 assembler for MD5
+# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
+# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
+# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8.  It must
+# equal 4.
+# PKCS1_CHECK - pkcs1 tests.
+
+CC= gcc
+CFLAG= -O3
+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
+PEX_LIBS= 
+EX_LIBS= 
+EXE_EXT= 
+ARFLAGS= 
+AR= ar $(ARFLAGS) r
+RANLIB= /usr/bin/ranlib
+NM= nm
+PERL= /usr/bin/perl
+TAR= tar
+TARFLAGS= --no-recursion --record-size=10240
+MAKEDEPPROG= gcc
+LIBDIR=lib
+
+# We let the C compiler driver to take care of .s files. This is done in
+# order to be excused from maintaining a separate set of architecture
+# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
+# gcc, then the driver will automatically translate it to -xarch=v8plus
+# and pass it down to assembler.
+AS=$(CC) -c
+ASFLAG=$(CFLAG)
+
+# For x86 assembler: Set PROCESSOR to 386 if you want to support
+# the 80386.
+PROCESSOR= 
+
+# CPUID module collects small commonly used assembler snippets
+CPUID_OBJ= mem_clr.o
+BN_ASM= bn_asm.o
+DES_ENC= des_enc.o fcrypt_b.o
+AES_ENC= aes_core.o aes_cbc.o
+BF_ENC= bf_enc.o
+CAST_ENC= c_enc.o
+RC4_ENC= rc4_enc.o rc4_skey.o
+RC5_ENC= rc5_enc.o
+MD5_ASM_OBJ= 
+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
+KRB5_INCLUDES=
+LIBKRB5=
+
+# Zlib stuff
+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
+
+# dirs in crypto to build
+SDIRS=  \
+       objects \
+       md4 md5 sha mdc2 hmac ripemd whrlpool \
+       des aes rc2 rc4 idea bf cast camellia seed modes \
+       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
+# keep in mind that the above list is adjusted by ./Configure
+# according to no-xxx arguments...
+
+# tests to perform.  "alltests" is a special word indicating that all tests
+# should be performed.
+TESTS = alltests
+
+MAKEFILE= Makefile
+
+MANDIR=$(OPENSSLDIR)/man
+MAN1=1
+MAN3=3
+MANSUFFIX=
+HTMLSUFFIX=html
+HTMLDIR=$(OPENSSLDIR)/html
+SHELL=/bin/sh
+
+TOP=    .
+ONEDIRS=out tmp
+EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
+WDIRS=  windows
+LIBS=   libcrypto.a libssl.a
+SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
+SHARED_SSL=libssl$(SHLIB_EXT)
+SHARED_LIBS=
+SHARED_LIBS_LINK_EXTS=
+SHARED_LDFLAGS=
+
+GENERAL=        Makefile
+BASENAME=       openssl
+NAME=           $(BASENAME)-$(VERSION)
+TARFILE=        $(NAME).tar
+WTARFILE=       $(NAME)-win.tar
+EXHEADER=       e_os2.h
+HEADER=         e_os.h
+
+all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
+
+# as we stick to -e, CLEARENV ensures that local variables in lower
+# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
+# shell, which [annoyingly enough] terminates unset with error if VAR
+# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh,
+# which terminates unset with error if no variable was present:-(
+CLEARENV=      TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS}     \
+               $${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES}       \
+               $${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC}           \
+               $${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL} \
+               $${EXHEADER+EXHEADER} $${HEADER+HEADER}         \
+               $${GENERAL+GENERAL} $${CFLAGS+CFLAGS}           \
+               $${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS}           \
+               $${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS} \
+               $${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS}     \
+               $${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
+
+BUILDENV=      PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
+               CC='$(CC)' CFLAG='$(CFLAG)'                     \
+               AS='$(CC)' ASFLAG='$(CFLAG) -c'                 \
+               AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)'        \
+               CROSS_COMPILE='$(CROSS_COMPILE)'        \
+               PERL='$(PERL)' ENGDIRS='$(ENGDIRS)'             \
+               SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)'     \
+               INSTALL_PREFIX='$(INSTALL_PREFIX)'              \
+               INSTALLTOP='$(INSTALLTOP)' OPENSSLDIR='$(OPENSSLDIR)'   \
+               LIBDIR='$(LIBDIR)'                              \
+               MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD $(MAKEDEPPROG)' \
+               DEPFLAG='-DOPENSSL_NO_DEPRECATED $(DEPFLAG)'    \
+               MAKEDEPPROG='$(MAKEDEPPROG)'                    \
+               SHARED_LDFLAGS='$(SHARED_LDFLAGS)'              \
+               KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)'   \
+               ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)'     \
+               EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)'       \
+               SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
+               PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)'     \
+               CPUID_OBJ='$(CPUID_OBJ)'                        \
+               BN_ASM='$(BN_ASM)' DES_ENC='$(DES_ENC)'         \
+               AES_ENC='$(AES_ENC)' CMLL_ENC='$(CMLL_ENC)'     \
+               BF_ENC='$(BF_ENC)' CAST_ENC='$(CAST_ENC)'       \
+               RC4_ENC='$(RC4_ENC)' RC5_ENC='$(RC5_ENC)'       \
+               SHA1_ASM_OBJ='$(SHA1_ASM_OBJ)'                  \
+               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.
+
+# BUILD_CMD is a generic macro to build a given target in a given
+# subdirectory.  The target must be given through the shell variable
+# `target' and the subdirectory to build in must be given through `dir'.
+# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
+# BUILD_ONE_CMD instead.
+#
+# BUILD_ONE_CMD is a macro to build a given target in a given
+# subdirectory if that subdirectory is part of $(DIRS).  It requires
+# exactly the same shell variables as BUILD_CMD.
+#
+# RECURSIVE_BUILD_CMD is a macro to build a given target in all
+# subdirectories defined in $(DIRS).  It requires that the target
+# is given through the shell variable `target'.
+BUILD_CMD=  if [ -d "$$dir" ]; then \
+           (   cd $$dir && echo "making $$target in $$dir..." && \
+               $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
+           ) || exit 1; \
+           fi
+RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done
+BUILD_ONE_CMD=\
+       if expr " $(DIRS) " : ".* $$dir " >/dev/null 2>&1; then \
+               $(BUILD_CMD); \
+       fi
+
+reflect:
+       @[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
+
+sub_all: build_all
+build_all: build_libs build_apps build_tests build_tools
+
+build_libs: build_crypto build_ssl build_engines
+
+build_crypto:
+       @dir=crypto; target=all; $(BUILD_ONE_CMD)
+build_ssl:
+       @dir=ssl; target=all; $(BUILD_ONE_CMD)
+build_engines:
+       @dir=engines; target=all; $(BUILD_ONE_CMD)
+build_apps:
+       @dir=apps; target=all; $(BUILD_ONE_CMD)
+build_tests:
+       @dir=test; target=all; $(BUILD_ONE_CMD)
+build_tools:
+       @dir=tools; target=all; $(BUILD_ONE_CMD)
+
+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)
+       @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  CC="$${CC:-$(CC)}" build-shared && \
+               (touch -c fips_premain_dso$(EXE_EXT) || :); \
+       else \
+               echo "There's no support for shared libraries on this platform" >&2; \
+               exit 1; \
+       fi
+
+libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
+       @if [ "$(SHLIB_TARGET)" != "" ]; then \
+               $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
+       else \
+               echo "There's no support for shared libraries on this platform" >&2; \
+               exit 1; \
+       fi
+
+clean-shared:
+       @set -e; for i in $(SHLIBDIRS); do \
+               if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
+                       tmp="$(SHARED_LIBS_LINK_EXTS)"; \
+                       for j in $${tmp:-x}; do \
+                               ( set -x; rm -f lib$$i$$j ); \
+                       done; \
+               fi; \
+               ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
+               if [ "$(PLATFORM)" = "Cygwin" ]; then \
+                       ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
+               fi; \
+       done
+
+link-shared:
+       @ set -e; for i in $(SHLIBDIRS); do \
+               $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
+                       LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
+                       LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
+                       symlink.$(SHLIB_TARGET); \
+               libs="$$libs -l$$i"; \
+       done
+
+build-shared: do_$(SHLIB_TARGET) link-shared
+
+do_$(SHLIB_TARGET):
+       @ set -e; libs='-L. $(SHLIBDEPS)'; for i in $(SHLIBDIRS); do \
+               if [ "$$i" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
+               $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
+                       LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
+                       LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
+                       LIBDEPS="$$libs $(EX_LIBS)" \
+                       link_a.$(SHLIB_TARGET); \
+               libs="-l$$i $$libs"; \
+       done
+
+libcrypto.pc: Makefile
+       @ ( echo 'prefix=$(INSTALLTOP)'; \
+           echo 'exec_prefix=$${prefix}'; \
+           echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+           echo 'includedir=$${prefix}/include'; \
+           echo ''; \
+           echo 'Name: OpenSSL-libcrypto'; \
+           echo 'Description: OpenSSL cryptography library'; \
+           echo 'Version: '$(VERSION); \
+           echo 'Requires: '; \
+           echo 'Libs: -L$${libdir} -lcrypto'; \
+           echo 'Libs.private: $(EX_LIBS)'; \
+           echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
+
+libssl.pc: Makefile
+       @ ( echo 'prefix=$(INSTALLTOP)'; \
+           echo 'exec_prefix=$${prefix}'; \
+           echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+           echo 'includedir=$${prefix}/include'; \
+           echo ''; \
+           echo 'Name: OpenSSL'; \
+           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 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
+
+openssl.pc: Makefile
+       @ ( echo 'prefix=$(INSTALLTOP)'; \
+           echo 'exec_prefix=$${prefix}'; \
+           echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
+           echo 'includedir=$${prefix}/include'; \
+           echo ''; \
+           echo 'Name: OpenSSL'; \
+           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 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
+
+Makefile: Makefile.org Configure config
+       @echo "Makefile is older than Makefile.org, Configure or config."
+       @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
+       @false
+
+libclean:
+       rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
+
+clean: libclean
+       rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
+       @set -e; target=clean; $(RECURSIVE_BUILD_CMD)
+       rm -f $(LIBS)
+       rm -f openssl.pc libssl.pc libcrypto.pc
+       rm -f speed.* .pure
+       rm -f $(TARFILE)
+       @set -e; for i in $(ONEDIRS) ;\
+       do \
+       rm -fr $$i/*; \
+       done
+
+makefile.one: files
+       $(PERL) util/mk1mf.pl >makefile.one; \
+       sh util/do_ms.sh
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
+       @set -e; target=files; $(RECURSIVE_BUILD_CMD)
+
+links:
+       @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
+       @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
+       @set -e; target=links; $(RECURSIVE_BUILD_CMD)
+
+gentests:
+       @(cd test && echo "generating dummy tests (if needed)..." && \
+       $(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on generate );
+
+dclean:
+       rm -rf *.bak include/openssl certs/.0
+       @set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
+
+rehash: rehash.time
+rehash.time: certs apps
+       @if [ -z "$(CROSS_COMPILE)" ]; then \
+               (OPENSSL="`pwd`/util/opensslwrap.sh"; \
+               [ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
+               OPENSSL_DEBUG_MEMORY=on; \
+               export OPENSSL OPENSSL_DEBUG_MEMORY; \
+               $(PERL) tools/c_rehash certs/demo) && \
+               touch rehash.time; \
+       else :; fi
+
+test:   tests
+
+tests: rehash
+       @(cd test && echo "testing..." && \
+       $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf tests );
+       OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a
+
+report:
+       @$(PERL) util/selftest.pl
+
+depend:
+       @set -e; target=depend; $(RECURSIVE_BUILD_CMD)
+
+lint:
+       @set -e; target=lint; $(RECURSIVE_BUILD_CMD)
+
+tags:
+       rm -f 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)
+
+stacks:
+       $(PERL) util/mkstack.pl -write
+
+util/libeay.num::
+       $(PERL) util/mkdef.pl crypto update
+
+util/ssleay.num::
+       $(PERL) util/mkdef.pl ssl update
+
+crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
+       $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
+crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
+       $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
+crypto/objects/obj_xref.h: crypto/objects/objxref.pl crypto/objects/obj_xref.txt crypto/objects/obj_mac.num
+       $(PERL) crypto/objects/objxref.pl crypto/objects/obj_mac.num crypto/objects/obj_xref.txt >crypto/objects/obj_xref.h
+
+apps/openssl-vms.cnf: apps/openssl.cnf
+       $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
+
+crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
+       $(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
+
+
+TABLE: Configure
+       (echo 'Output of `Configure TABLE'"':"; \
+       $(PERL) Configure TABLE) > TABLE
+
+update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h crypto/objects/obj_xref.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend
+
+# Build distribution tar-file. As the list of files returned by "find" is
+# pretty long, on several platforms a "too many arguments" error or similar
+# would occur. Therefore the list of files is temporarily stored into a file
+# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
+# tar does not support the --files-from option.
+tar:
+       find . -type d -print | xargs chmod 755
+       find . -type f -print | xargs chmod a+r
+       find . -type f -perm -0100 -print | xargs chmod a+x
+       find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
+       $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
+       tardy --user_number=0  --user_name=openssl \
+             --group_number=0 --group_name=openssl \
+             --prefix=openssl-$(VERSION) - |\
+       gzip --best >../$(TARFILE).gz; \
+       rm -f ../$(TARFILE).list; \
+       ls -l ../$(TARFILE).gz
+
+tar-snap:
+       @$(TAR) $(TARFLAGS) -cvf - \
+               `find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \! -name '*.so' \! -name '*.so.*'  \! -name 'openssl' \! -name '*test' \! -name '.#*' \! -name '*~' | sort` |\
+       tardy --user_number=0  --user_name=openssl \
+             --group_number=0 --group_name=openssl \
+             --prefix=openssl-$(VERSION) - > ../$(TARFILE);\
+       ls -l ../$(TARFILE)
+
+dist:   
+       $(PERL) Configure dist
+       @$(MAKE) dist_pem_h
+       @$(MAKE) SDIRS='$(SDIRS)' clean
+       @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar
+
+dist_pem_h:
+       (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
+
+install: all install_docs install_sw
+
+install_sw:
+       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
+               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
+               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
+               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
+               $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
+               $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
+               $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
+               $(INSTALL_PREFIX)$(OPENSSLDIR)/private
+       @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
+       do \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+       @set -e; target=install; $(RECURSIVE_BUILD_CMD)
+       @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
+       do \
+               if [ -f "$$i" ]; then \
+               (       echo installing $$i; \
+                       cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+                       $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+                       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+                       mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i ); \
+               fi; \
+       done;
+       @set -e; if [ -n "$(SHARED_LIBS)" ]; then \
+               tmp="$(SHARED_LIBS)"; \
+               for i in $${tmp:-x}; \
+               do \
+                       if [ -f "$$i" -o -f "$$i.a" ]; then \
+                       (       echo installing $$i; \
+                               if [ "$(PLATFORM)" != "Cygwin" ]; then \
+                                       cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+                                       chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+                                       mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
+                               else \
+                                       c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
+                                       cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
+                                       chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
+                                       mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
+                                       cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+                                       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
+                                       mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
+                               fi ); \
+                               if expr $(PLATFORM) : 'mingw' > /dev/null; then \
+                               (       case $$i in \
+                                               *crypto*) i=libeay32.dll;; \
+                                               *ssl*)    i=ssleay32.dll;; \
+                                       esac; \
+                                       echo installing $$i; \
+                                       cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
+                                       chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
+                                       mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
+                               fi; \
+                       fi; \
+               done; \
+               (       here="`pwd`"; \
+                       cd $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR); \
+                       $(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \
+               if [ "$(INSTALLTOP)" != "/usr" ]; then \
+                       echo 'OpenSSL shared libraries have been installed in:'; \
+                       echo '  $(INSTALLTOP)'; \
+                       echo ''; \
+                       sed -e '1,/^$$/d' doc/openssl-shared.txt; \
+               fi; \
+       fi
+       cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
+       cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
+       cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
+
+install_html_docs:
+       here="`pwd`"; \
+       for subdir in apps crypto ssl; do \
+               mkdir -p $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
+               for i in doc/$$subdir/*.pod; do \
+                       fn=`basename $$i .pod`; \
+                       echo "installing html/$$fn.$(HTMLSUFFIX)"; \
+                       cat $$i \
+                       | sed -r 's/L<([^)]*)(\([0-9]\))?\|([^)]*)(\([0-9]\))?>/L<\1|\3>/g' \
+                       | pod2html --podroot=doc --htmlroot=.. --podpath=apps:crypto:ssl \
+                       | sed -r 's/<!DOCTYPE.*//g' \
+                       > $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/$$fn.$(HTMLSUFFIX); \
+                       $(PERL) util/extract-names.pl < $$i | \
+                               grep -v $$filecase "^$$fn\$$" | \
+                               (cd $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
+                                while read n; do \
+                                       PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$(HTMLSUFFIX) "$$n".$(HTMLSUFFIX); \
+                                done); \
+               done; \
+       done
+
+install_docs:
+       @$(PERL) $(TOP)/util/mkdir-p.pl \
+               $(INSTALL_PREFIX)$(MANDIR)/man1 \
+               $(INSTALL_PREFIX)$(MANDIR)/man3 \
+               $(INSTALL_PREFIX)$(MANDIR)/man5 \
+               $(INSTALL_PREFIX)$(MANDIR)/man7
+       @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
+       here="`pwd`"; \
+       filecase=; \
+       if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
+               filecase=-i; \
+       fi; \
+       set -e; for i in doc/apps/*.pod; do \
+               fn=`basename $$i .pod`; \
+               sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
+               echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
+               (cd `$(PERL) util/dirname.pl $$i`; \
+               sh -c "$$pod2man \
+                       --section=$$sec --center=OpenSSL \
+                       --release=$(VERSION) `basename $$i`") \
+                       >  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
+               $(PERL) util/extract-names.pl < $$i | \
+                       (grep -v $$filecase "^$$fn\$$"; true) | \
+                       (grep -v "[     ]"; true) | \
+                       (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
+                        while read n; do \
+                               PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
+                        done); \
+       done; \
+       set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \
+               fn=`basename $$i .pod`; \
+               sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
+               echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
+               (cd `$(PERL) util/dirname.pl $$i`; \
+               sh -c "$$pod2man \
+                       --section=$$sec --center=OpenSSL \
+                       --release=$(VERSION) `basename $$i`") \
+                       >  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
+               $(PERL) util/extract-names.pl < $$i | \
+                       (grep -v $$filecase "^$$fn\$$"; true) | \
+                       (grep -v "[     ]"; true) | \
+                       (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
+                        while read n; do \
+                               PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
+                        done); \
+       done
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
index 2db31ea..c92806f 100644 (file)
@@ -302,7 +302,8 @@ libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
                        FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \
                        export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \
                fi; \
-               $(MAKE) -e SHLIBDIRS=crypto build-shared; \
+               $(MAKE) -e SHLIBDIRS=crypto  CC="$${CC:-$(CC)}" build-shared && \
+               (touch -c fips_premain_dso$(EXE_EXT) || :); \
        else \
                echo "There's no support for shared libraries on this platform" >&2; \
                exit 1; \
index 0269f22..ed486d1 100644 (file)
@@ -5,11 +5,24 @@
   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:
+  Major changes between OpenSSL 1.0.1f and OpenSSL 1.0.1g [7 Apr 2014]
+
+      o Fix for CVE-2014-0160
+      o Add TLS padding extension workaround for broken servers.
+      o Fix for CVE-2014-0076
+
+  Major changes between OpenSSL 1.0.1e and OpenSSL 1.0.1f [6 Jan 2014]
+
+      o Don't include gmt_unix_time in TLS server and client random values
+      o Fix for TLS record tampering bug CVE-2013-4353
+      o Fix for TLS version checking bug CVE-2013-6449
+      o Fix for DTLS retransmission bug CVE-2013-6450
+
+  Major changes between OpenSSL 1.0.1d and OpenSSL 1.0.1e [11 Feb 2013]:
 
       o Corrected fix for CVE-2013-0169
 
-  Major changes between OpenSSL 1.0.1c and OpenSSL 1.0.1d:
+  Major changes between OpenSSL 1.0.1c and OpenSSL 1.0.1d [4 Feb 2013]:
 
       o Fix renegotiation in TLS 1.1, 1.2 by using the correct TLS version.
       o Include the fips configuration module.
       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:
+  Major changes between OpenSSL 1.0.1b and OpenSSL 1.0.1c [10 May 2012]:
 
       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:
+  Major changes between OpenSSL 1.0.1a and OpenSSL 1.0.1b [26 Apr 2012]:
 
       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:
+  Major changes between OpenSSL 1.0.1 and OpenSSL 1.0.1a [19 Apr 2012]:
 
       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:
+  Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.1 [14 Mar 2012]:
 
       o TLS/DTLS heartbeat support.
       o SCTP support.
       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:
+  Major changes between OpenSSL 1.0.0j and OpenSSL 1.0.0k [5 Feb 2013]:
+
+      o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
+      o Fix OCSP bad key DoS attack CVE-2013-0166
+
+  Major changes between OpenSSL 1.0.0i and OpenSSL 1.0.0j [10 May 2012]:
+
+      o Fix DTLS record length checking bug CVE-2012-2333
+
+  Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.0i [19 Apr 2012]:
+
+      o Fix for ASN1 overflow bug CVE-2012-2110
+
+  Major changes between OpenSSL 1.0.0g and OpenSSL 1.0.0h [12 Mar 2012]:
 
       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:
+  Major changes between OpenSSL 1.0.0f and OpenSSL 1.0.0g [18 Jan 2012]:
 
       o Fix for DTLS DoS issue CVE-2012-0050
 
-  Major changes between OpenSSL 1.0.0e and OpenSSL 1.0.0f:
+  Major changes between OpenSSL 1.0.0e and OpenSSL 1.0.0f [4 Jan 2012]:
 
       o Fix for DTLS plaintext recovery attack CVE-2011-4108
       o Clear block padding bytes of SSL 3.0 records CVE-2011-4576
@@ -65,7 +91,7 @@
       o Check parameters are not NULL in GOST ENGINE CVE-2012-0027
       o Check for malformed RFC3779 data CVE-2011-4577
 
-  Major changes between OpenSSL 1.0.0d and OpenSSL 1.0.0e:
+  Major changes between OpenSSL 1.0.0d and OpenSSL 1.0.0e [6 Sep 2011]:
 
       o Fix for CRL vulnerability issue CVE-2011-3207
       o Fix for ECDH crashes CVE-2011-3210
       o Support ECDH ciphersuites for certificates using SHA2 algorithms.
       o Various DTLS fixes.
 
-  Major changes between OpenSSL 1.0.0c and OpenSSL 1.0.0d:
+  Major changes between OpenSSL 1.0.0c and OpenSSL 1.0.0d [8 Feb 2011]:
 
       o Fix for security issue CVE-2011-0014
 
-  Major changes between OpenSSL 1.0.0b and OpenSSL 1.0.0c:
+  Major changes between OpenSSL 1.0.0b and OpenSSL 1.0.0c [2 Dec 2010]:
 
       o Fix for security issue CVE-2010-4180
       o Fix for CVE-2010-4252
       o Fix various platform compilation issues.
       o Corrected fix for security issue CVE-2010-3864.
 
-  Major changes between OpenSSL 1.0.0a and OpenSSL 1.0.0b:
+  Major changes between OpenSSL 1.0.0a and OpenSSL 1.0.0b [16 Nov 2010]:
 
       o Fix for security issue CVE-2010-3864.
       o Fix for CVE-2010-2939
       o Fix WIN32 build system for GOST ENGINE.
 
-  Major changes between OpenSSL 1.0.0 and OpenSSL 1.0.0a:
+  Major changes between OpenSSL 1.0.0 and OpenSSL 1.0.0a [1 Jun 2010]:
 
       o Fix for security issue CVE-2010-1633.
       o GOST MAC and CFB fixes.
 
-  Major changes between OpenSSL 0.9.8n and OpenSSL 1.0.0:
+  Major changes between OpenSSL 0.9.8n and OpenSSL 1.0.0 [29 Mar 2010]:
 
       o RFC3280 path validation: sufficient to process PKITS tests.
       o Integrated support for PVK files and keyblobs.
       o Opaque PRF Input TLS extension support.
       o Updated time routines to avoid OS limitations.
 
-  Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r:
+  Major changes between OpenSSL 0.9.8x and OpenSSL 0.9.8y [5 Feb 2013]:
+
+      o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
+      o Fix OCSP bad key DoS attack CVE-2013-0166
+
+  Major changes between OpenSSL 0.9.8w and OpenSSL 0.9.8x [10 May 2012]:
+
+      o Fix DTLS record length checking bug CVE-2012-2333
+
+  Major changes between OpenSSL 0.9.8v and OpenSSL 0.9.8w [23 Apr 2012]:
+
+      o Fix for CVE-2012-2131 (corrected fix for 0.9.8 and CVE-2012-2110)
+
+  Major changes between OpenSSL 0.9.8u and OpenSSL 0.9.8v [19 Apr 2012]:
+
+      o Fix for ASN1 overflow bug CVE-2012-2110
+
+  Major changes between OpenSSL 0.9.8t and OpenSSL 0.9.8u [12 Mar 2012]:
+
+      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 0.9.8s and OpenSSL 0.9.8t [18 Jan 2012]:
+
+      o Fix for DTLS DoS issue CVE-2012-0050
+
+  Major changes between OpenSSL 0.9.8r and OpenSSL 0.9.8s [4 Jan 2012]:
+
+      o Fix for DTLS plaintext recovery attack CVE-2011-4108
+      o Fix policy check double free error CVE-2011-4109
+      o Clear block padding bytes of SSL 3.0 records CVE-2011-4576
+      o Only allow one SGC handshake restart for SSL/TLS CVE-2011-4619
+      o Check for malformed RFC3779 data CVE-2011-4577
+
+  Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r [8 Feb 2011]:
 
       o Fix for security issue CVE-2011-0014
 
-  Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q:
+  Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q [2 Dec 2010]:
 
       o Fix for security issue CVE-2010-4180
       o Fix for CVE-2010-4252
 
-  Major changes between OpenSSL 0.9.8o and OpenSSL 0.9.8p:
+  Major changes between OpenSSL 0.9.8o and OpenSSL 0.9.8p [16 Nov 2010]:
 
       o Fix for security issue CVE-2010-3864.
 
-  Major changes between OpenSSL 0.9.8n and OpenSSL 0.9.8o:
+  Major changes between OpenSSL 0.9.8n and OpenSSL 0.9.8o [1 Jun 2010]:
 
       o Fix for security issue CVE-2010-0742.
       o Various DTLS fixes.
       o Fix for no-rc4 compilation.
       o Chil ENGINE unload workaround.
 
-  Major changes between OpenSSL 0.9.8m and OpenSSL 0.9.8n:
+  Major changes between OpenSSL 0.9.8m and OpenSSL 0.9.8n [24 Mar 2010]:
 
       o CFB cipher definition fixes.
       o Fix security issues CVE-2010-0740 and CVE-2010-0433.
 
-  Major changes between OpenSSL 0.9.8l and OpenSSL 0.9.8m:
+  Major changes between OpenSSL 0.9.8l and OpenSSL 0.9.8m [25 Feb 2010]:
 
       o Cipher definition fixes.
       o Workaround for slow RAND_poll() on some WIN32 versions.
       o Ticket and SNI coexistence fixes.
       o Many fixes to DTLS handling. 
 
-  Major changes between OpenSSL 0.9.8k and OpenSSL 0.9.8l:
+  Major changes between OpenSSL 0.9.8k and OpenSSL 0.9.8l [5 Nov 2009]:
 
       o Temporary work around for CVE-2009-3555: disable renegotiation.
 
-  Major changes between OpenSSL 0.9.8j and OpenSSL 0.9.8k:
+  Major changes between OpenSSL 0.9.8j and OpenSSL 0.9.8k [25 Mar 2009]:
 
       o Fix various build issues.
       o Fix security issues (CVE-2009-0590, CVE-2009-0591, CVE-2009-0789)
 
-  Major changes between OpenSSL 0.9.8i and OpenSSL 0.9.8j:
+  Major changes between OpenSSL 0.9.8i and OpenSSL 0.9.8j [7 Jan 2009]:
 
       o Fix security issue (CVE-2008-5077)
       o Merge FIPS 140-2 branch code.
 
-  Major changes between OpenSSL 0.9.8g and OpenSSL 0.9.8h:
+  Major changes between OpenSSL 0.9.8g and OpenSSL 0.9.8h [28 May 2008]:
 
       o CryptoAPI ENGINE support.
       o Various precautionary measures.
       o Fix for bugs affecting certificate request creation.
       o Support for local machine keyset attribute in PKCS#12 files.
 
-  Major changes between OpenSSL 0.9.8f and OpenSSL 0.9.8g:
+  Major changes between OpenSSL 0.9.8f and OpenSSL 0.9.8g [19 Oct 2007]:
 
       o Backport of CMS functionality to 0.9.8.
       o Fixes for bugs introduced with 0.9.8f.
 
-  Major changes between OpenSSL 0.9.8e and OpenSSL 0.9.8f:
+  Major changes between OpenSSL 0.9.8e and OpenSSL 0.9.8f [11 Oct 2007]:
 
       o Add gcc 4.2 support.
       o Add support for AES and SSE2 assembly lanugauge optimization
       o RFC4507bis support.
       o TLS Extensions support.
 
-  Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e:
+  Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e [23 Feb 2007]:
 
       o Various ciphersuite selection fixes.
       o RFC3779 support.
 
-  Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d:
+  Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d [28 Sep 2006]:
 
       o Introduce limits to prevent malicious key DoS  (CVE-2006-2940)
       o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
       o Changes to ciphersuite selection algorithm
 
-  Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c:
+  Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c [5 Sep 2006]:
 
       o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
       o New cipher Camellia
 
-  Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b:
+  Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b [4 May 2006]:
 
       o Cipher string fixes.
       o Fixes for VC++ 2005.
       o Built in dynamic engine compilation support on Win32.
       o Fixes auto dynamic engine loading in Win32.
 
-  Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a:
+  Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a [11 Oct 2005]:
 
       o Fix potential SSL 2.0 rollback, CVE-2005-2969
       o Extended Windows CE support
 
-  Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8:
+  Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8 [5 Jul 2005]:
 
       o Major work on the BIGNUM library for higher efficiency and to
         make operations more streamlined and less contradictory.  This
       o Added initial support for Win64.
       o Added alternate pkg-config files.
 
-  Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m:
+  Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m [23 Feb 2007]:
 
       o FIPS 1.1.1 module linking.
       o Various ciphersuite selection fixes.
 
-  Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
+  Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l [28 Sep 2006]:
 
       o Introduce limits to prevent malicious key DoS  (CVE-2006-2940)
       o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
 
-  Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k:
+  Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k [5 Sep 2006]:
 
       o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
 
-  Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j:
+  Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j [4 May 2006]:
 
       o Visual C++ 2005 fixes.
       o Update Windows build system for FIPS.
 
-  Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i:
+  Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i [14 Oct 2005]:
 
       o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build.
 
-  Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h:
+  Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h [11 Oct 2005]:
 
       o Fix SSL 2.0 Rollback, CVE-2005-2969
       o Allow use of fixed-length exponent on DSA signing
       o Default fixed-window RSA, DSA, DH private-key operations
 
-  Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g:
+  Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g [11 Apr 2005]:
 
       o More compilation issues fixed.
       o Adaptation to more modern Kerberos API.
       o More constification.
       o Added processing of proxy certificates (RFC 3820).
 
-  Major changes between OpenSSL 0.9.7e and OpenSSL 0.9.7f:
+  Major changes between OpenSSL 0.9.7e and OpenSSL 0.9.7f [22 Mar 2005]:
 
       o Several compilation issues fixed.
       o Many memory allocation failure checks added.
       o Mandatory basic checks on certificates.
       o Performance improvements.
 
-  Major changes between OpenSSL 0.9.7d and OpenSSL 0.9.7e:
+  Major changes between OpenSSL 0.9.7d and OpenSSL 0.9.7e [25 Oct 2004]:
 
       o Fix race condition in CRL checking code.
       o Fixes to PKCS#7 (S/MIME) code.
 
-  Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d:
+  Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d [17 Mar 2004]:
 
       o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug
       o Security: Fix null-pointer assignment in do_change_cipher_spec()
       o Multiple X509 verification fixes
       o Speed up HMAC and other operations
 
-  Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c:
+  Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c [30 Sep 2003]:
 
       o Security: fix various ASN1 parsing bugs.
       o New -ignore_err option to OCSP utility.
       o Various interop and bug fixes in S/MIME code.
       o SSL/TLS protocol fix for unrequested client certificates.
 
-  Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b:
+  Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b [10 Apr 2003]:
 
       o Security: counter the Klima-Pokorny-Rosa extension of
         Bleichbacher's attack 
       o ASN.1: treat domainComponent correctly.
       o Documentation: fixes and additions.
 
-  Major changes between OpenSSL 0.9.7 and OpenSSL 0.9.7a:
+  Major changes between OpenSSL 0.9.7 and OpenSSL 0.9.7a [19 Feb 2003]:
 
       o Security: Important security related bugfixes.
       o Enhanced compatibility with MIT Kerberos.
       o SSL/TLS: now handles manual certificate chain building.
       o SSL/TLS: certain session ID malfunctions corrected.
 
-  Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.7:
+  Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.7 [30 Dec 2002]:
 
       o New library section OCSP.
       o Complete rewrite of ASN1 code.
       o SSL/TLS: add callback to retrieve SSL/TLS messages.
       o SSL/TLS: support AES cipher suites (RFC3268).
 
-  Major changes between OpenSSL 0.9.6j and OpenSSL 0.9.6k:
+  Major changes between OpenSSL 0.9.6j and OpenSSL 0.9.6k [30 Sep 2003]:
 
       o Security: fix various ASN1 parsing bugs.
       o SSL/TLS protocol fix for unrequested client certificates.
 
-  Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j:
+  Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j [10 Apr 2003]:
 
       o Security: counter the Klima-Pokorny-Rosa extension of
         Bleichbacher's attack 
       o Security: make RSA blinding default.
       o Build: shared library support fixes.
 
-  Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i:
+  Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i [19 Feb 2003]:
 
       o Important security related bugfixes.
 
-  Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h:
+  Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h [5 Dec 2002]:
 
       o New configuration targets for Tandem OSS and A/UX.
       o New OIDs for Microsoft attributes.
       o Fixes for smaller building problems.
       o Updates of manuals, FAQ and other instructive documents.
 
-  Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g:
+  Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g [9 Aug 2002]:
 
       o Important building fixes on Unix.
 
-  Major changes between OpenSSL 0.9.6e and OpenSSL 0.9.6f:
+  Major changes between OpenSSL 0.9.6e and OpenSSL 0.9.6f [8 Aug 2002]:
 
       o Various important bugfixes.
 
-  Major changes between OpenSSL 0.9.6d and OpenSSL 0.9.6e:
+  Major changes between OpenSSL 0.9.6d and OpenSSL 0.9.6e [30 Jul 2002]:
 
       o Important security related bugfixes.
       o Various SSL/TLS library bugfixes.
 
-  Major changes between OpenSSL 0.9.6c and OpenSSL 0.9.6d:
+  Major changes between OpenSSL 0.9.6c and OpenSSL 0.9.6d [9 May 2002]:
 
       o Various SSL/TLS library bugfixes.
       o Fix DH parameter generation for 'non-standard' generators.
 
-  Major changes between OpenSSL 0.9.6b and OpenSSL 0.9.6c:
+  Major changes between OpenSSL 0.9.6b and OpenSSL 0.9.6c [21 Dec 2001]:
 
       o Various SSL/TLS library bugfixes.
       o BIGNUM library fixes.
         Broadcom and Cryptographic Appliance's keyserver
         [in 0.9.6c-engine release].
 
-  Major changes between OpenSSL 0.9.6a and OpenSSL 0.9.6b:
+  Major changes between OpenSSL 0.9.6a and OpenSSL 0.9.6b [9 Jul 2001]:
 
       o Security fix: PRNG improvements.
       o Security fix: RSA OAEP check.
       o Increase default size for BIO buffering filter.
       o Compatibility fixes in some scripts.
 
-  Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.6a:
+  Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.6a [5 Apr 2001]:
 
       o Security fix: change behavior of OpenSSL to avoid using
         environment variables when running as root.
       o New function BN_rand_range().
       o Add "-rand" option to openssl s_client and s_server.
 
-  Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6:
+  Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6 [10 Oct 2000]:
 
       o Some documentation for BIO and SSL libraries.
       o Enhanced chain verification using key identifiers.
     [1] The support for external crypto devices is currently a separate
         distribution.  See the file README.ENGINE.
 
-  Major changes between OpenSSL 0.9.5 and OpenSSL 0.9.5a:
+  Major changes between OpenSSL 0.9.5 and OpenSSL 0.9.5a [1 Apr 2000]:
 
       o Bug fixes for Win32, SuSE Linux, NeXTSTEP and FreeBSD 2.2.8 
       o Shared library support for HPUX and Solaris-gcc
       o New 'rand' application
       o New way to check for existence of algorithms from scripts
 
-  Major changes between OpenSSL 0.9.4 and OpenSSL 0.9.5:
+  Major changes between OpenSSL 0.9.4 and OpenSSL 0.9.5 [25 May 2000]:
 
       o S/MIME support in new 'smime' command
       o Documentation for the OpenSSL command line application
       o Enhanced support for Alpha Linux
       o Experimental MacOS support
 
-  Major changes between OpenSSL 0.9.3 and OpenSSL 0.9.4:
+  Major changes between OpenSSL 0.9.3 and OpenSSL 0.9.4 [9 Aug 1999]:
 
       o Transparent support for PKCS#8 format private keys: these are used
         by several software packages and are more secure than the standard
       o New pipe-like BIO that allows using the SSL library when actual I/O
         must be handled by the application (BIO pair)
 
-  Major changes between OpenSSL 0.9.2b and OpenSSL 0.9.3:
+  Major changes between OpenSSL 0.9.2b and OpenSSL 0.9.3 [24 May 1999]:
       o Lots of enhancements and cleanups to the Configuration mechanism
       o RSA OEAP related fixes
       o Added `openssl ca -revoke' option for revoking a certificate
       o Sparc assembler bignum implementation, optimized hash functions
       o Option to disable selected ciphers
 
-  Major changes between OpenSSL 0.9.1c and OpenSSL 0.9.2b:
+  Major changes between OpenSSL 0.9.1c and OpenSSL 0.9.2b [22 Mar 1999]:
       o Fixed a security hole related to session resumption
       o Fixed RSA encryption routines for the p < q case
       o "ALL" in cipher lists now means "everything except NULL ciphers"
       o Lots of memory leak fixes.
       o Lots of bug fixes.
 
-  Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c:
+  Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c [23 Dec 1998]:
       o Integration of the popular NO_RSA/NO_DSA patches
       o Initial support for compression inside the SSL record layer
       o Added BIO proxy and filtering functionality
index ad2d90f..10b74d1 100644 (file)
@@ -1,5 +1,5 @@
 
- OpenSSL 1.0.1e 11 Feb 2013
+ OpenSSL 1.0.1g 7 Apr 2014
 
  Copyright (c) 1998-2011 The OpenSSL Project
  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
index 95f499e..72657ea 100644 (file)
@@ -577,14 +577,15 @@ openssl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
 openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
 openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
-openssl.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
-openssl.o: ../include/openssl/sha.h ../include/openssl/srtp.h
-openssl.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
-openssl.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
-openssl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
-openssl.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
-openssl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
-openssl.o: ../include/openssl/x509v3.h apps.h openssl.c progs.h s_apps.h
+openssl.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+openssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+openssl.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+openssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+openssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+openssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+openssl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+openssl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+openssl.o: openssl.c progs.h s_apps.h
 passwd.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
 passwd.o: ../include/openssl/buffer.h ../include/openssl/conf.h
 passwd.o: ../include/openssl/crypto.h ../include/openssl/des.h
diff --git a/deps/openssl/openssl/apps/Makefile.save b/deps/openssl/openssl/apps/Makefile.save
new file mode 100644 (file)
index 0000000..72657ea
--- /dev/null
@@ -0,0 +1,1056 @@
+#
+#  apps/Makefile
+#
+
+DIR=           apps
+TOP=           ..
+CC=            cc
+INCLUDES=      -I$(TOP) -I../include $(KRB5_INCLUDES)
+CFLAG=         -g -static
+MAKEFILE=      Makefile
+PERL=          perl
+RM=            rm -f
+# KRB5 stuff
+KRB5_INCLUDES=
+LIBKRB5=
+
+PEX_LIBS=
+EX_LIBS= 
+EXE_EXT= 
+
+SHLIB_TARGET=
+
+CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile makeapps.com install.com
+
+DLIBCRYPTO=../libcrypto.a
+DLIBSSL=../libssl.a
+LIBCRYPTO=-L.. -lcrypto
+LIBSSL=-L.. -lssl
+
+PROGRAM= openssl
+
+SCRIPTS=CA.sh CA.pl tsget
+
+EXE= $(PROGRAM)$(EXE_EXT)
+
+E_EXE= verify asn1pars req dgst dh dhparam enc passwd gendh errstr \
+       ca crl rsa rsautl dsa dsaparam ec ecparam \
+       x509 genrsa gendsa genpkey s_server s_client speed \
+       s_time version pkcs7 cms crl2pkcs7 sess_id ciphers nseq pkcs12 \
+       pkcs8 pkey pkeyparam pkeyutl spkac smime rand engine ocsp prime ts srp
+
+PROGS= $(PROGRAM).c
+
+A_OBJ=apps.o
+A_SRC=apps.c
+S_OBJ= s_cb.o s_socket.o
+S_SRC= s_cb.c s_socket.c
+RAND_OBJ=app_rand.o
+RAND_SRC=app_rand.c
+
+E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o \
+       ca.o pkcs7.o crl2p7.o crl.o \
+       rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o \
+       x509.o genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o \
+       s_time.o $(A_OBJ) $(S_OBJ) $(RAND_OBJ) version.o sess_id.o \
+       ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o \
+       spkac.o smime.o cms.o rand.o engine.o ocsp.o prime.o ts.o srp.o
+
+E_SRC= verify.c asn1pars.c req.c dgst.c dh.c enc.c passwd.c gendh.c errstr.c ca.c \
+       pkcs7.c crl2p7.c crl.c \
+       rsa.c rsautl.c dsa.c dsaparam.c ec.c ecparam.c \
+       x509.c genrsa.c gendsa.c genpkey.c s_server.c s_client.c speed.c \
+       s_time.c $(A_SRC) $(S_SRC) $(RAND_SRC) version.c sess_id.c \
+       ciphers.c nseq.c pkcs12.c pkcs8.c pkey.c pkeyparam.c pkeyutl.c \
+       spkac.c smime.c cms.c rand.c engine.c ocsp.c prime.c ts.c srp.c
+
+SRC=$(E_SRC)
+
+EXHEADER=
+HEADER=        apps.h progs.h s_apps.h \
+       testdsa.h testrsa.h \
+       $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       @(cd ..; $(MAKE) DIRS=$(DIR) all)
+
+all:   exe
+
+exe:   $(EXE)
+
+req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
+       shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
+               shlib_target="$(SHLIB_TARGET)"; \
+       fi; \
+       $(MAKE) -f $(TOP)/Makefile.shared -e \
+               APPNAME=req OBJECTS="sreq.o $(A_OBJ) $(RAND_OBJ)" \
+               LIBDEPS="$(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)" \
+               link_app.$${shlib_target}
+
+sreq.o: req.c 
+       $(CC) -c $(INCLUDES) $(CFLAG) -o sreq.o req.c
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @set -e; for i in $(EXE); \
+       do  \
+       (echo installing $$i; \
+        cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
+        chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
+        mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
+        done;
+       @set -e; for i in $(SCRIPTS); \
+       do  \
+       (echo installing $$i; \
+        cp $$i $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new; \
+        chmod 755 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new; \
+        mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i ); \
+        done
+       @cp openssl.cnf $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new; \
+       chmod 644 $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new; \
+       mv -f  $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+links:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @if [ -z "$(THIS)" ]; then \
+           $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; \
+       else \
+           $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC); \
+       fi
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+       rm -f CA.pl
+
+clean:
+       rm -f *.o *.obj *.dll lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
+       rm -f req
+
+$(DLIBSSL):
+       (cd ..; $(MAKE) DIRS=ssl all)
+
+$(DLIBCRYPTO):
+       (cd ..; $(MAKE) DIRS=crypto all)
+
+$(EXE): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
+       $(RM) $(EXE)
+       shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
+               shlib_target="$(SHLIB_TARGET)"; \
+       elif [ -n "$(FIPSCANLIB)" ]; then \
+         FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; export CC FIPSLD_CC; \
+       fi; \
+       LIBRARIES="$(LIBSSL) $(LIBKRB5) $(LIBCRYPTO)" ; \
+       $(MAKE) -f $(TOP)/Makefile.shared -e \
+               APPNAME=$(EXE) OBJECTS="$(PROGRAM).o $(E_OBJ)" \
+               LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
+               link_app.$${shlib_target}
+       @(cd ..; $(MAKE) rehash)
+
+progs.h: progs.pl
+       $(PERL) progs.pl $(E_EXE) >progs.h
+       $(RM) $(PROGRAM).o
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+app_rand.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+app_rand.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+app_rand.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+app_rand.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+app_rand.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+app_rand.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+app_rand.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+app_rand.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+app_rand.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+app_rand.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+app_rand.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+app_rand.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+app_rand.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+app_rand.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h
+app_rand.o: app_rand.c apps.h
+apps.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+apps.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+apps.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+apps.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+apps.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+apps.o: ../include/openssl/engine.h ../include/openssl/err.h
+apps.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+apps.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+apps.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+apps.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+apps.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+apps.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
+apps.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+apps.o: ../include/openssl/sha.h ../include/openssl/stack.h
+apps.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+apps.o: ../include/openssl/ui.h ../include/openssl/x509.h
+apps.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.c apps.h
+asn1pars.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+asn1pars.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+asn1pars.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+asn1pars.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+asn1pars.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+asn1pars.o: ../include/openssl/err.h ../include/openssl/evp.h
+asn1pars.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+asn1pars.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+asn1pars.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+asn1pars.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+asn1pars.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+asn1pars.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+asn1pars.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+asn1pars.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+asn1pars.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+asn1pars.o: asn1pars.c
+ca.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ca.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ca.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ca.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ca.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ca.o: ../include/openssl/engine.h ../include/openssl/err.h
+ca.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+ca.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ca.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+ca.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ca.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ca.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+ca.o: ../include/openssl/sha.h ../include/openssl/stack.h
+ca.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+ca.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+ca.o: ../include/openssl/x509v3.h apps.h ca.c
+ciphers.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ciphers.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ciphers.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ciphers.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ciphers.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ciphers.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ciphers.o: ../include/openssl/err.h ../include/openssl/evp.h
+ciphers.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+ciphers.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ciphers.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+ciphers.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ciphers.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ciphers.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ciphers.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+ciphers.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+ciphers.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+ciphers.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+ciphers.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ciphers.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+ciphers.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+ciphers.o: ../include/openssl/x509v3.h apps.h ciphers.c
+cms.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+cms.o: ../include/openssl/buffer.h ../include/openssl/cms.h
+cms.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+cms.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+cms.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+cms.o: ../include/openssl/engine.h ../include/openssl/err.h
+cms.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+cms.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+cms.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+cms.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+cms.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+cms.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+cms.o: ../include/openssl/sha.h ../include/openssl/stack.h
+cms.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+cms.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+cms.o: ../include/openssl/x509v3.h apps.h cms.c
+crl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+crl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+crl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+crl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+crl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+crl.o: ../include/openssl/err.h ../include/openssl/evp.h
+crl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+crl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+crl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+crl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+crl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+crl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+crl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+crl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+crl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h crl.c
+crl2p7.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+crl2p7.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+crl2p7.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+crl2p7.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+crl2p7.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+crl2p7.o: ../include/openssl/err.h ../include/openssl/evp.h
+crl2p7.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+crl2p7.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+crl2p7.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+crl2p7.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+crl2p7.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+crl2p7.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+crl2p7.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+crl2p7.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+crl2p7.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+crl2p7.o: crl2p7.c
+dgst.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+dgst.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+dgst.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+dgst.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+dgst.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+dgst.o: ../include/openssl/err.h ../include/openssl/evp.h
+dgst.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
+dgst.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+dgst.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+dgst.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+dgst.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+dgst.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+dgst.o: ../include/openssl/sha.h ../include/openssl/stack.h
+dgst.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+dgst.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+dgst.o: ../include/openssl/x509v3.h apps.h dgst.c
+dh.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+dh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+dh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+dh.o: ../include/openssl/dh.h ../include/openssl/e_os2.h
+dh.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+dh.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+dh.o: ../include/openssl/err.h ../include/openssl/evp.h
+dh.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+dh.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+dh.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+dh.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+dh.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+dh.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+dh.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+dh.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+dh.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h dh.c
+dsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+dsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+dsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+dsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+dsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+dsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+dsa.o: ../include/openssl/err.h ../include/openssl/evp.h
+dsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+dsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+dsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+dsa.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+dsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+dsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+dsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+dsa.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+dsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h dsa.c
+dsaparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+dsaparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+dsaparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+dsaparam.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+dsaparam.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+dsaparam.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+dsaparam.o: ../include/openssl/engine.h ../include/openssl/err.h
+dsaparam.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+dsaparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+dsaparam.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+dsaparam.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+dsaparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+dsaparam.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+dsaparam.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+dsaparam.o: ../include/openssl/sha.h ../include/openssl/stack.h
+dsaparam.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+dsaparam.o: ../include/openssl/ui.h ../include/openssl/x509.h
+dsaparam.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+dsaparam.o: dsaparam.c
+ec.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ec.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ec.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+ec.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ec.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ec.o: ../include/openssl/err.h ../include/openssl/evp.h
+ec.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ec.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+ec.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ec.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ec.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ec.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ec.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ec.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+ec.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ec.c
+ecparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ecparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ecparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ecparam.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ecparam.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ecparam.o: ../include/openssl/engine.h ../include/openssl/err.h
+ecparam.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+ecparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ecparam.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+ecparam.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ecparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ecparam.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+ecparam.o: ../include/openssl/sha.h ../include/openssl/stack.h
+ecparam.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+ecparam.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+ecparam.o: ../include/openssl/x509v3.h apps.h ecparam.c
+enc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+enc.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+enc.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+enc.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+enc.o: ../include/openssl/engine.h ../include/openssl/err.h
+enc.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+enc.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+enc.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+enc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+enc.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+enc.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h enc.c
+engine.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+engine.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+engine.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+engine.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+engine.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+engine.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+engine.o: ../include/openssl/err.h ../include/openssl/evp.h
+engine.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+engine.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+engine.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+engine.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+engine.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+engine.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+engine.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+engine.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+engine.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+engine.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+engine.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+engine.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+engine.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+engine.o: ../include/openssl/x509v3.h apps.h engine.c
+errstr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+errstr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+errstr.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+errstr.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+errstr.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+errstr.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+errstr.o: ../include/openssl/err.h ../include/openssl/evp.h
+errstr.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+errstr.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+errstr.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+errstr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+errstr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+errstr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+errstr.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+errstr.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+errstr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+errstr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+errstr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+errstr.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+errstr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+errstr.o: ../include/openssl/x509v3.h apps.h errstr.c
+gendh.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+gendh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+gendh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+gendh.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+gendh.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+gendh.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+gendh.o: ../include/openssl/engine.h ../include/openssl/err.h
+gendh.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+gendh.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+gendh.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+gendh.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+gendh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+gendh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+gendh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+gendh.o: ../include/openssl/sha.h ../include/openssl/stack.h
+gendh.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+gendh.o: ../include/openssl/ui.h ../include/openssl/x509.h
+gendh.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+gendh.o: gendh.c
+gendsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+gendsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+gendsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+gendsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+gendsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+gendsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+gendsa.o: ../include/openssl/err.h ../include/openssl/evp.h
+gendsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+gendsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+gendsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+gendsa.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+gendsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+gendsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+gendsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+gendsa.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+gendsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+gendsa.o: gendsa.c
+genpkey.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+genpkey.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+genpkey.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+genpkey.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+genpkey.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+genpkey.o: ../include/openssl/err.h ../include/openssl/evp.h
+genpkey.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+genpkey.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+genpkey.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+genpkey.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+genpkey.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+genpkey.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+genpkey.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+genpkey.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+genpkey.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+genpkey.o: genpkey.c
+genrsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+genrsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+genrsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+genrsa.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+genrsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+genrsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+genrsa.o: ../include/openssl/engine.h ../include/openssl/err.h
+genrsa.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+genrsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+genrsa.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+genrsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+genrsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+genrsa.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+genrsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+genrsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
+genrsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+genrsa.o: ../include/openssl/ui.h ../include/openssl/x509.h
+genrsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+genrsa.o: genrsa.c
+nseq.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+nseq.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+nseq.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+nseq.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+nseq.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+nseq.o: ../include/openssl/err.h ../include/openssl/evp.h
+nseq.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+nseq.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+nseq.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+nseq.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+nseq.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+nseq.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+nseq.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+nseq.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+nseq.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h nseq.c
+ocsp.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ocsp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ocsp.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ocsp.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ocsp.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ocsp.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ocsp.o: ../include/openssl/engine.h ../include/openssl/err.h
+ocsp.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+ocsp.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ocsp.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ocsp.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+ocsp.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ocsp.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ocsp.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+ocsp.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ocsp.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ocsp.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ocsp.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ocsp.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ocsp.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+ocsp.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ocsp.c
+openssl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+openssl.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+openssl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+openssl.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+openssl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+openssl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+openssl.o: ../include/openssl/err.h ../include/openssl/evp.h
+openssl.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+openssl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+openssl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+openssl.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+openssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+openssl.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+openssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+openssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+openssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+openssl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+openssl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+openssl.o: openssl.c progs.h s_apps.h
+passwd.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+passwd.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+passwd.o: ../include/openssl/crypto.h ../include/openssl/des.h
+passwd.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
+passwd.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+passwd.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+passwd.o: ../include/openssl/err.h ../include/openssl/evp.h
+passwd.o: ../include/openssl/lhash.h ../include/openssl/md5.h
+passwd.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+passwd.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+passwd.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+passwd.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+passwd.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+passwd.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+passwd.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+passwd.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
+passwd.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+passwd.o: passwd.c
+pkcs12.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+pkcs12.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+pkcs12.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+pkcs12.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+pkcs12.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkcs12.o: ../include/openssl/err.h ../include/openssl/evp.h
+pkcs12.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+pkcs12.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+pkcs12.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+pkcs12.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+pkcs12.o: ../include/openssl/pem2.h ../include/openssl/pkcs12.h
+pkcs12.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+pkcs12.o: ../include/openssl/sha.h ../include/openssl/stack.h
+pkcs12.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+pkcs12.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+pkcs12.o: ../include/openssl/x509v3.h apps.h pkcs12.c
+pkcs7.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+pkcs7.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+pkcs7.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+pkcs7.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+pkcs7.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkcs7.o: ../include/openssl/err.h ../include/openssl/evp.h
+pkcs7.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+pkcs7.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+pkcs7.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+pkcs7.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+pkcs7.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+pkcs7.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+pkcs7.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+pkcs7.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+pkcs7.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+pkcs7.o: pkcs7.c
+pkcs8.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+pkcs8.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+pkcs8.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+pkcs8.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+pkcs8.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkcs8.o: ../include/openssl/err.h ../include/openssl/evp.h
+pkcs8.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+pkcs8.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+pkcs8.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+pkcs8.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+pkcs8.o: ../include/openssl/pem2.h ../include/openssl/pkcs12.h
+pkcs8.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+pkcs8.o: ../include/openssl/sha.h ../include/openssl/stack.h
+pkcs8.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+pkcs8.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+pkcs8.o: ../include/openssl/x509v3.h apps.h pkcs8.c
+pkey.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+pkey.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+pkey.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+pkey.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+pkey.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkey.o: ../include/openssl/err.h ../include/openssl/evp.h
+pkey.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+pkey.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+pkey.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+pkey.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+pkey.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+pkey.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+pkey.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+pkey.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+pkey.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h pkey.c
+pkeyparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+pkeyparam.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+pkeyparam.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+pkeyparam.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+pkeyparam.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkeyparam.o: ../include/openssl/err.h ../include/openssl/evp.h
+pkeyparam.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+pkeyparam.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+pkeyparam.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+pkeyparam.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+pkeyparam.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+pkeyparam.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+pkeyparam.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+pkeyparam.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+pkeyparam.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+pkeyparam.o: pkeyparam.c
+pkeyutl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+pkeyutl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+pkeyutl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+pkeyutl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+pkeyutl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+pkeyutl.o: ../include/openssl/err.h ../include/openssl/evp.h
+pkeyutl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+pkeyutl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+pkeyutl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+pkeyutl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+pkeyutl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+pkeyutl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+pkeyutl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+pkeyutl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+pkeyutl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+pkeyutl.o: pkeyutl.c
+prime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+prime.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+prime.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+prime.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+prime.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+prime.o: ../include/openssl/engine.h ../include/openssl/evp.h
+prime.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+prime.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+prime.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+prime.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+prime.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+prime.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+prime.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+prime.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+prime.o: prime.c
+rand.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+rand.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+rand.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+rand.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+rand.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+rand.o: ../include/openssl/err.h ../include/openssl/evp.h
+rand.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+rand.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+rand.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+rand.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+rand.o: ../include/openssl/rand.h ../include/openssl/safestack.h
+rand.o: ../include/openssl/sha.h ../include/openssl/stack.h
+rand.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+rand.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+rand.o: ../include/openssl/x509v3.h apps.h rand.c
+req.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+req.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+req.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+req.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+req.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+req.o: ../include/openssl/engine.h ../include/openssl/err.h
+req.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+req.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+req.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+req.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+req.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+req.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+req.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+req.o: ../include/openssl/sha.h ../include/openssl/stack.h
+req.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+req.o: ../include/openssl/ui.h ../include/openssl/x509.h
+req.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h req.c
+rsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+rsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+rsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+rsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+rsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+rsa.o: ../include/openssl/engine.h ../include/openssl/err.h
+rsa.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+rsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+rsa.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+rsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+rsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+rsa.o: ../include/openssl/pkcs7.h ../include/openssl/rsa.h
+rsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+rsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+rsa.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+rsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h rsa.c
+rsautl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+rsautl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+rsautl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+rsautl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+rsautl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+rsautl.o: ../include/openssl/err.h ../include/openssl/evp.h
+rsautl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+rsautl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+rsautl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+rsautl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+rsautl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+rsautl.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+rsautl.o: ../include/openssl/sha.h ../include/openssl/stack.h
+rsautl.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+rsautl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+rsautl.o: ../include/openssl/x509v3.h apps.h rsautl.c
+s_cb.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s_cb.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s_cb.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+s_cb.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s_cb.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s_cb.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+s_cb.o: ../include/openssl/err.h ../include/openssl/evp.h
+s_cb.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+s_cb.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+s_cb.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+s_cb.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s_cb.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s_cb.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s_cb.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s_cb.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s_cb.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s_cb.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s_cb.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s_cb.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s_cb.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+s_cb.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+s_cb.o: s_apps.h s_cb.c
+s_client.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s_client.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+s_client.o: ../include/openssl/comp.h ../include/openssl/conf.h
+s_client.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+s_client.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+s_client.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+s_client.o: ../include/openssl/engine.h ../include/openssl/err.h
+s_client.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s_client.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s_client.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s_client.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+s_client.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+s_client.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+s_client.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+s_client.o: ../include/openssl/rand.h ../include/openssl/safestack.h
+s_client.o: ../include/openssl/sha.h ../include/openssl/srp.h
+s_client.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s_client.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s_client.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s_client.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s_client.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+s_client.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+s_client.o: s_apps.h s_client.c timeouts.h
+s_server.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s_server.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h
+s_server.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+s_server.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
+s_server.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+s_server.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+s_server.o: ../include/openssl/engine.h ../include/openssl/err.h
+s_server.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s_server.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s_server.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s_server.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+s_server.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+s_server.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+s_server.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+s_server.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+s_server.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s_server.o: ../include/openssl/srp.h ../include/openssl/srtp.h
+s_server.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s_server.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s_server.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s_server.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+s_server.o: ../include/openssl/ui.h ../include/openssl/x509.h
+s_server.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+s_server.o: s_apps.h s_server.c timeouts.h
+s_socket.o: ../e_os.h ../e_os2.h ../include/openssl/asn1.h
+s_socket.o: ../include/openssl/bio.h ../include/openssl/buffer.h
+s_socket.o: ../include/openssl/comp.h ../include/openssl/conf.h
+s_socket.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+s_socket.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+s_socket.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+s_socket.o: ../include/openssl/engine.h ../include/openssl/evp.h
+s_socket.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+s_socket.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+s_socket.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+s_socket.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s_socket.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s_socket.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s_socket.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+s_socket.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s_socket.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s_socket.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s_socket.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s_socket.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+s_socket.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+s_socket.o: ../include/openssl/x509v3.h apps.h s_apps.h s_socket.c
+s_time.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s_time.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s_time.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+s_time.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s_time.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s_time.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+s_time.o: ../include/openssl/err.h ../include/openssl/evp.h
+s_time.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+s_time.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+s_time.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+s_time.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s_time.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s_time.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s_time.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+s_time.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s_time.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s_time.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s_time.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s_time.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+s_time.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+s_time.o: ../include/openssl/x509v3.h apps.h s_apps.h s_time.c
+sess_id.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+sess_id.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+sess_id.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+sess_id.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+sess_id.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+sess_id.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+sess_id.o: ../include/openssl/err.h ../include/openssl/evp.h
+sess_id.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+sess_id.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+sess_id.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+sess_id.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+sess_id.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+sess_id.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+sess_id.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+sess_id.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+sess_id.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+sess_id.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+sess_id.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+sess_id.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+sess_id.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+sess_id.o: ../include/openssl/x509v3.h apps.h sess_id.c
+smime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+smime.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+smime.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+smime.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+smime.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+smime.o: ../include/openssl/err.h ../include/openssl/evp.h
+smime.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+smime.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+smime.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+smime.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+smime.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+smime.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+smime.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+smime.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+smime.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+smime.o: smime.c
+speed.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
+speed.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
+speed.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+speed.o: ../include/openssl/camellia.h ../include/openssl/cast.h
+speed.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+speed.o: ../include/openssl/des.h ../include/openssl/des_old.h
+speed.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+speed.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+speed.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+speed.o: ../include/openssl/err.h ../include/openssl/evp.h
+speed.o: ../include/openssl/hmac.h ../include/openssl/idea.h
+speed.o: ../include/openssl/lhash.h ../include/openssl/md4.h
+speed.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
+speed.o: ../include/openssl/modes.h ../include/openssl/obj_mac.h
+speed.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+speed.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+speed.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+speed.o: ../include/openssl/rand.h ../include/openssl/rc2.h
+speed.o: ../include/openssl/rc4.h ../include/openssl/ripemd.h
+speed.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+speed.o: ../include/openssl/seed.h ../include/openssl/sha.h
+speed.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+speed.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+speed.o: ../include/openssl/ui_compat.h ../include/openssl/whrlpool.h
+speed.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+speed.o: ../include/openssl/x509v3.h apps.h speed.c testdsa.h testrsa.h
+spkac.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+spkac.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+spkac.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+spkac.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+spkac.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+spkac.o: ../include/openssl/err.h ../include/openssl/evp.h
+spkac.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+spkac.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+spkac.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+spkac.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+spkac.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+spkac.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+spkac.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+spkac.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+spkac.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+spkac.o: spkac.c
+srp.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+srp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+srp.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+srp.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+srp.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+srp.o: ../include/openssl/engine.h ../include/openssl/err.h
+srp.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+srp.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+srp.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+srp.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+srp.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+srp.o: ../include/openssl/sha.h ../include/openssl/srp.h
+srp.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+srp.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+srp.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h srp.c
+ts.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ts.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ts.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ts.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ts.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ts.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ts.o: ../include/openssl/engine.h ../include/openssl/err.h
+ts.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+ts.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ts.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+ts.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ts.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ts.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+ts.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+ts.o: ../include/openssl/sha.h ../include/openssl/stack.h
+ts.o: ../include/openssl/symhacks.h ../include/openssl/ts.h
+ts.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+ts.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ts.c
+verify.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+verify.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+verify.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+verify.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+verify.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+verify.o: ../include/openssl/err.h ../include/openssl/evp.h
+verify.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+verify.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+verify.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+verify.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+verify.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+verify.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+verify.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+verify.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+verify.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+verify.o: verify.c
+version.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+version.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
+version.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+version.o: ../include/openssl/crypto.h ../include/openssl/des.h
+version.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
+version.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+version.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+version.o: ../include/openssl/evp.h ../include/openssl/idea.h
+version.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+version.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+version.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+version.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+version.o: ../include/openssl/rc4.h ../include/openssl/safestack.h
+version.o: ../include/openssl/sha.h ../include/openssl/stack.h
+version.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+version.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
+version.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+version.o: ../include/openssl/x509v3.h apps.h version.c
+x509.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+x509.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+x509.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+x509.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+x509.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+x509.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+x509.o: ../include/openssl/err.h ../include/openssl/evp.h
+x509.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+x509.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+x509.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+x509.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+x509.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+x509.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+x509.o: ../include/openssl/sha.h ../include/openssl/stack.h
+x509.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+x509.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+x509.o: ../include/openssl/x509v3.h apps.h x509.c
index 1096eee..b76db10 100644 (file)
@@ -586,12 +586,12 @@ int password_callback(char *buf, int bufsiz, int verify,
 
                if (ok >= 0)
                        ok = UI_add_input_string(ui,prompt,ui_flags,buf,
-                               PW_MIN_LENGTH,BUFSIZ-1);
+                               PW_MIN_LENGTH,bufsiz-1);
                if (ok >= 0 && verify)
                        {
                        buff = (char *)OPENSSL_malloc(bufsiz);
                        ok = UI_add_verify_string(ui,prompt,ui_flags,buff,
-                               PW_MIN_LENGTH,BUFSIZ-1, buf);
+                               PW_MIN_LENGTH,bufsiz-1, buf);
                        }
                if (ok >= 0)
                        do
@@ -2841,7 +2841,7 @@ double app_tminterval(int stop,int usertime)
 
        if (proc==NULL)
                {
-               if (GetVersion() < 0x80000000)
+               if (check_winnt())
                        proc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,
                                                GetCurrentProcessId());
                if (proc==NULL) proc = (HANDLE)-1;
index c1ca99d..3aeb46c 100644 (file)
@@ -188,6 +188,7 @@ extern BIO *bio_err;
                        do { CONF_modules_unload(1); destroy_ui_method(); \
                        OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \
                        CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \
+                       RAND_cleanup(); \
                        ERR_free_strings(); zlib_cleanup();} while(0)
 #  else
 #    define apps_startup() \
@@ -198,6 +199,7 @@ extern BIO *bio_err;
                        do { CONF_modules_unload(1); destroy_ui_method(); \
                        OBJ_cleanup(); EVP_cleanup(); \
                        CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \
+                       RAND_cleanup(); \
                        ERR_free_strings(); zlib_cleanup(); } while(0)
 #  endif
 #endif
index c395b2a..8797d30 100644 (file)
@@ -81,6 +81,9 @@ static const char *crl_usage[]={
 " -in arg         - input file - default stdin\n",
 " -out arg        - output file - default stdout\n",
 " -hash           - print hash value\n",
+#ifndef OPENSSL_NO_MD5
+" -hash_old       - print old-style (MD5) hash value\n",
+#endif
 " -fingerprint    - print the crl fingerprint\n",
 " -issuer         - print issuer DN\n",
 " -lastupdate     - lastUpdate field\n",
@@ -108,6 +111,9 @@ int MAIN(int argc, char **argv)
        int informat,outformat;
        char *infile=NULL,*outfile=NULL;
        int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
+#ifndef OPENSSL_NO_MD5
+       int hash_old=0;
+#endif
        int fingerprint = 0, crlnumber = 0;
        const char **pp;
        X509_STORE *store = NULL;
@@ -192,6 +198,10 @@ int MAIN(int argc, char **argv)
                        text = 1;
                else if (strcmp(*argv,"-hash") == 0)
                        hash= ++num;
+#ifndef OPENSSL_NO_MD5
+               else if (strcmp(*argv,"-hash_old") == 0)
+                       hash_old= ++num;
+#endif
                else if (strcmp(*argv,"-nameopt") == 0)
                        {
                        if (--argc < 1) goto bad;
@@ -304,6 +314,14 @@ bad:
                                BIO_printf(bio_out,"%08lx\n",
                                        X509_NAME_hash(X509_CRL_get_issuer(x)));
                                }
+#ifndef OPENSSL_NO_MD5
+                       if (hash_old == i)
+                               {
+                               BIO_printf(bio_out,"%08lx\n",
+                                       X509_NAME_hash_old(
+                                               X509_CRL_get_issuer(x)));
+                               }
+#endif
                        if (lastupdate == i)
                                {
                                BIO_printf(bio_out,"lastUpdate=");
index 81bd870..f4aec77 100644 (file)
@@ -427,9 +427,9 @@ int MAIN(int argc, char **argv)
                        goto end;
                        }
                if (do_verify)
-                       r = EVP_DigestVerifyInit(mctx, &pctx, md, e, sigkey);
+                       r = EVP_DigestVerifyInit(mctx, &pctx, md, NULL, sigkey);
                else
-                       r = EVP_DigestSignInit(mctx, &pctx, md, e, sigkey);
+                       r = EVP_DigestSignInit(mctx, &pctx, md, NULL, sigkey);
                if (!r)
                        {
                        BIO_printf(bio_err, "Error setting context\n");
index 465480b..976ebef 100644 (file)
  *                    in the asn1 der encoding
  *                    possible values: named_curve (default)
  *                                     explicit
- * -no_seed         - if 'explicit' parameters are choosen do not use the seed
+ * -no_seed         - if 'explicit' parameters are chosen do not use the seed
  * -genkey          - generate ec key
  * -rand file       - files to use for random number input
  * -engine e        - use engine e, possibly a hardware device
@@ -286,7 +286,7 @@ bad:
                BIO_printf(bio_err, "                                   "
                                " explicit\n");
                BIO_printf(bio_err, " -no_seed          if 'explicit'"
-                               " parameters are choosen do not"
+                               " parameters are chosen do not"
                                " use the seed\n");
                BIO_printf(bio_err, " -genkey           generate ec"
                                " key\n");
index 1c880d9..71e1e48 100644 (file)
 #include "apps.h"
 #include <openssl/bio.h>
 #include <openssl/crypto.h>
+#include <openssl/rand.h>
 #include <openssl/lhash.h>
 #include <openssl/conf.h>
 #include <openssl/x509.h>
index b54c6f8..4d62a7b 100644 (file)
@@ -112,7 +112,7 @@ int MAIN(int argc, char **argv)
     int maciter = PKCS12_DEFAULT_ITER;
     int twopass = 0;
     int keytype = 0;
-    int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
+    int cert_pbe;
     int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
     int ret = 1;
     int macver = 1;
@@ -130,6 +130,13 @@ int MAIN(int argc, char **argv)
 
     apps_startup();
 
+#ifdef OPENSSL_FIPS
+    if (FIPS_mode())
+       cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
+    else
+#endif
+    cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
+
     enc = EVP_des_ede3_cbc();
     if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
 
index 8552658..5e034a8 100644 (file)
@@ -644,6 +644,11 @@ bad:
                if (inrand)
                        app_RAND_load_files(inrand);
 
+               if (!NCONF_get_number(req_conf,SECTION,BITS, &newkey))
+                       {
+                       newkey=DEFAULT_KEY_LENGTH;
+                       }
+
                if (keyalg)
                        {
                        genctx = set_keygen_ctx(bio_err, keyalg, &pkey_type, &newkey,
@@ -652,12 +657,6 @@ bad:
                                goto end;
                        }
        
-               if (newkey <= 0)
-                       {
-                       if (!NCONF_get_number(req_conf,SECTION,BITS, &newkey))
-                               newkey=DEFAULT_KEY_LENGTH;
-                       }
-
                if (newkey < MIN_KEY_LENGTH && (pkey_type == EVP_PKEY_RSA || pkey_type == EVP_PKEY_DSA))
                        {
                        BIO_printf(bio_err,"private key length is too short,\n");
@@ -1649,6 +1648,8 @@ static EVP_PKEY_CTX *set_keygen_ctx(BIO *err, const char *gstr, int *pkey_type,
                                keylen = atol(p + 1);
                                *pkeylen = keylen;
                                }
+                       else
+                               keylen = *pkeylen;
                        }
                else if (p)
                        paramfile = p + 1;
index 88b9bc6..41fa2a6 100755 (executable)
@@ -739,7 +739,7 @@ case "$GUESSOS" in
                            libc=/usr/lib/libc.so
                        else                                    # OpenBSD
                            # ld searches for highest libc.so.* and so do we
-                           libc=`(ls /usr/lib/libc.so.* | tail -1) 2>/dev/null`
+                           libc=`(ls /usr/lib/libc.so.* /lib/libc.so.* | tail -1) 2>/dev/null`
                        fi
                        case "`(file -L $libc) 2>/dev/null`" in
                        *ELF*)  OUT="BSD-x86-elf" ;;
index 947dd5d..a90809b 100644 (file)
@@ -77,7 +77,9 @@ 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
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) alphacpuid.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
 
 testapps:
        [ -z "$(THIS)" ] || (   if echo $(SDIRS) | fgrep ' des '; \
diff --git a/deps/openssl/openssl/crypto/Makefile.save b/deps/openssl/openssl/crypto/Makefile.save
new file mode 100644 (file)
index 0000000..a90809b
--- /dev/null
@@ -0,0 +1,219 @@
+#
+# OpenSSL/crypto/Makefile
+#
+
+DIR=           crypto
+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)
+CFLAG=         -g
+MAKEDEPPROG=   makedepend
+MAKEDEPEND=    $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
+MAKEFILE=       Makefile
+RM=             rm -f
+AR=            ar r
+
+RECURSIVE_MAKE=        [ -n "$(SDIRS)" ] && for i in $(SDIRS) ; do \
+                   (cd $$i && echo "making $$target in $(DIR)/$$i..." && \
+                   $(MAKE) -e TOP=../.. DIR=$$i INCLUDES='$(INCLUDES)' $$target ) || exit 1; \
+               done;
+
+PEX_LIBS=
+EX_LIBS=
+CFLAGS= $(INCLUDE) $(CFLAG)
+ASFLAGS= $(INCLUDE) $(ASFLAG)
+AFLAGS=$(ASFLAGS)
+CPUID_OBJ=mem_clr.o
+
+LIBS=
+
+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)
+
+SRC= $(LIBSRC)
+
+EXHEADER= crypto.h opensslv.h opensslconf.h ebcdic.h symhacks.h \
+       ossl_typ.h
+HEADER=        cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       @(cd ..; $(MAKE) DIRS=$(DIR) all)
+
+all: shared
+
+buildinf.h: ../Makefile
+       ( echo "#ifndef MK1MF_BUILD"; \
+       echo '  /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
+       echo '  #define CFLAGS "$(CC) $(CFLAG)"'; \
+       echo '  #define PLATFORM "$(PLATFORM)"'; \
+       echo "  #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
+       echo '#endif' ) >buildinf.h
+
+x86cpuid.s:    x86cpuid.pl perlasm/x86asm.pl
+       $(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+applink.o:     $(TOP)/ms/applink.c
+       $(CC) $(CFLAGS) -c -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) > $@
+
+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
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) alphacpuid.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
+
+testapps:
+       [ -z "$(THIS)" ] || (   if echo $(SDIRS) | fgrep ' des '; \
+                               then cd des && $(MAKE) -e des; fi )
+       [ -z "$(THIS)" ] || ( cd pkcs7 && $(MAKE) -e testapps );
+       @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
+
+subdirs:
+       @target=all; $(RECURSIVE_MAKE)
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+       @target=files; $(RECURSIVE_MAKE)
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
+       @target=links; $(RECURSIVE_MAKE)
+
+# lib: $(LIB): are splitted to avoid end-less loop
+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
+       if [ -n "$(SHARED_LIBS)" ]; then \
+               (cd ..; $(MAKE) $(SHARED_LIB)); \
+       fi
+
+libs:
+       @target=lib; $(RECURSIVE_MAKE)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ;\
+       do \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+       @target=install; $(RECURSIVE_MAKE)
+
+lint:
+       @target=lint; $(RECURSIVE_MAKE)
+
+depend:
+       @[ -z "$(THIS)" -o -f buildinf.h ] || touch buildinf.h # fake buildinf.h if it does not exist
+       @[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+       @[ -z "$(THIS)" -o -s buildinf.h ] || rm buildinf.h
+       @[ -z "$(THIS)" ] || (set -e; target=depend; $(RECURSIVE_MAKE) )
+       @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
+
+clean:
+       rm -f buildinf.h *.s *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+       @target=clean; $(RECURSIVE_MAKE)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+       rm -f opensslconf.h
+       @target=dclean; $(RECURSIVE_MAKE)
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+cpt_err.o: ../include/openssl/bio.h ../include/openssl/crypto.h
+cpt_err.o: ../include/openssl/e_os2.h ../include/openssl/err.h
+cpt_err.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
+cpt_err.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+cpt_err.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+cpt_err.o: ../include/openssl/symhacks.h cpt_err.c
+cryptlib.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
+cryptlib.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+cryptlib.o: ../include/openssl/err.h ../include/openssl/lhash.h
+cryptlib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+cryptlib.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+cryptlib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.c
+cryptlib.o: cryptlib.h
+cversion.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
+cversion.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+cversion.o: ../include/openssl/err.h ../include/openssl/lhash.h
+cversion.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+cversion.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+cversion.o: ../include/openssl/stack.h ../include/openssl/symhacks.h buildinf.h
+cversion.o: cryptlib.h cversion.c
+ebcdic.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h ebcdic.c
+ex_data.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
+ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+ex_data.o: ../include/openssl/err.h ../include/openssl/lhash.h
+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
+mem.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+mem.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+mem.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
+mem.o: mem.c
+mem_clr.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+mem_clr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+mem_clr.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+mem_clr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h mem_clr.c
+mem_dbg.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
+mem_dbg.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+mem_dbg.o: ../include/openssl/err.h ../include/openssl/lhash.h
+mem_dbg.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+mem_dbg.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+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
+o_time.o: o_time.h
+uid.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+uid.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+uid.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+uid.o: ../include/openssl/stack.h ../include/openssl/symhacks.h uid.c
diff --git a/deps/openssl/openssl/crypto/aes/Makefile.save b/deps/openssl/openssl/crypto/aes/Makefile.save
new file mode 100644 (file)
index 0000000..45ede0a
--- /dev/null
@@ -0,0 +1,153 @@
+#
+# crypto/aes/Makefile
+#
+
+DIR=   aes
+TOP=   ../..
+CC=    cc
+CPP=   $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+AES_ENC=aes_core.o aes_cbc.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+#TEST=aestest.c
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=aes_core.c aes_misc.c aes_ecb.c aes_cbc.c aes_cfb.c aes_ofb.c \
+       aes_ctr.c aes_ige.c aes_wrap.c
+LIBOBJ=aes_misc.o aes_ecb.o aes_cfb.o aes_ofb.o aes_ctr.o aes_ige.o aes_wrap.o \
+       $(AES_ENC)
+
+SRC= $(LIBSRC)
+
+EXHEADER= aes.h
+HEADER= aes_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+aes-ia64.s: asm/aes-ia64.S
+       $(CC) $(CFLAGS) -E 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) > $@
+
+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
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+aes_cbc.o: ../../include/openssl/aes.h ../../include/openssl/modes.h
+aes_cbc.o: ../../include/openssl/opensslconf.h aes_cbc.c
+aes_cfb.o: ../../include/openssl/aes.h ../../include/openssl/modes.h
+aes_cfb.o: ../../include/openssl/opensslconf.h aes_cfb.c
+aes_core.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
+aes_core.o: ../../include/openssl/opensslconf.h aes_core.c aes_locl.h
+aes_ctr.o: ../../include/openssl/aes.h ../../include/openssl/modes.h
+aes_ctr.o: ../../include/openssl/opensslconf.h aes_ctr.c
+aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
+aes_ecb.o: ../../include/openssl/opensslconf.h aes_ecb.c aes_locl.h
+aes_ige.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/bio.h
+aes_ige.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+aes_ige.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+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_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
+aes_wrap.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+aes_wrap.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+aes_wrap.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+aes_wrap.o: ../../include/openssl/opensslconf.h
+aes_wrap.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+aes_wrap.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+aes_wrap.o: ../../include/openssl/symhacks.h ../cryptlib.h aes_wrap.c
index 6eb4790..687ed81 100755 (executable)
@@ -2054,8 +2054,8 @@ my $mark=&DWP(76+240,"esp");      # copy of aes_key->rounds
        &test   ($s2,15);
        &jnz    (&label("slow_way"));
                                        if (!$x86only) {
-       #&bt    (&DWP(0,$s0),28);       # check for hyper-threading bit
-       #&jc    (&label("slow_way"));
+       &bt     (&DWP(0,$s0),28);       # check for hyper-threading bit
+       &jc     (&label("slow_way"));
                                        }
        # pre-allocate aligned stack frame...
        &lea    ($acc,&DWP(-80-244,"esp"));
index c36b6a2..714dcfb 100644 (file)
@@ -1015,7 +1015,8 @@ foreach (split("\n",$code)) {
                $SIZE_T==4 ? sprintf("extru%s,%d,8,",$1,31-$2)
                :            sprintf("extrd,u%s,%d,8,",$1,63-$2)/e;
 
-       s/,\*/,/ if ($SIZE_T==4);
+       s/,\*/,/                        if ($SIZE_T==4);
+       s/\bbv\b(.*\(%r2\))/bve$1/      if ($SIZE_T==8);
        print $_,"\n";
 }
 close STDOUT;
index 9fa4ff5..34cbb5d 100755 (executable)
@@ -1684,8 +1684,8 @@ AES_cbc_encrypt:
        jb      .Lcbc_slow_prologue
        test    \$15,%rdx
        jnz     .Lcbc_slow_prologue
-       #bt     \$28,%r10d
-       #jc     .Lcbc_slow_prologue
+       bt      \$28,%r10d
+       jc      .Lcbc_slow_prologue
 
        # allocate aligned stack frame...
        lea     -88-248(%rsp),$key
index ceb02b5..41b90f0 100644 (file)
@@ -83,9 +83,9 @@
 # Add decryption procedure. Performance in CPU cycles spent to decrypt
 # one byte out of 4096-byte buffer with 128-bit key is:
 #
-# Core 2       11.0
-# Nehalem      9.16
-# Atom         20.9
+# Core 2       9.83
+# Nehalem      7.74
+# Atom         19.0
 #
 # November 2011.
 #
@@ -456,6 +456,7 @@ sub MixColumns {
 # modified to emit output in order suitable for feeding back to aesenc[last]
 my @x=@_[0..7];
 my @t=@_[8..15];
+my $inv=@_[16];        # optional
 $code.=<<___;
        pshufd  \$0x93, @x[0], @t[0]    # x0 <<< 32
        pshufd  \$0x93, @x[1], @t[1]
@@ -497,7 +498,8 @@ $code.=<<___;
        pxor    @t[4], @t[0]
         pshufd \$0x4E, @x[2], @x[6]
        pxor    @t[5], @t[1]
-
+___
+$code.=<<___ if (!$inv);
        pxor    @t[3], @x[4]
        pxor    @t[7], @x[5]
        pxor    @t[6], @x[3]
@@ -505,9 +507,20 @@ $code.=<<___;
        pxor    @t[2], @x[6]
         movdqa @t[1], @x[7]
 ___
+$code.=<<___ if ($inv);
+       pxor    @x[4], @t[3]
+       pxor    @t[7], @x[5]
+       pxor    @x[3], @t[6]
+        movdqa @t[0], @x[3]
+       pxor    @t[2], @x[6]
+        movdqa @t[6], @x[2]
+        movdqa @t[1], @x[7]
+        movdqa @x[6], @x[4]
+        movdqa @t[3], @x[6]
+___
 }
 
-sub InvMixColumns {
+sub InvMixColumns_orig {
 my @x=@_[0..7];
 my @t=@_[8..15];
 
@@ -661,6 +674,54 @@ $code.=<<___;
 ___
 }
 
+sub InvMixColumns {
+my @x=@_[0..7];
+my @t=@_[8..15];
+
+# Thanks to Jussi Kivilinna for providing pointer to
+#
+# | 0e 0b 0d 09 |   | 02 03 01 01 |   | 05 00 04 00 |
+# | 09 0e 0b 0d | = | 01 02 03 01 | x | 00 05 00 04 |
+# | 0d 09 0e 0b |   | 01 01 02 03 |   | 04 00 05 00 |
+# | 0b 0d 09 0e |   | 03 01 01 02 |   | 00 04 00 05 |
+
+$code.=<<___;
+       # multiplication by 0x05-0x00-0x04-0x00
+       pshufd  \$0x4E, @x[0], @t[0]
+       pshufd  \$0x4E, @x[6], @t[6]
+       pxor    @x[0], @t[0]
+       pshufd  \$0x4E, @x[7], @t[7]
+       pxor    @x[6], @t[6]
+       pshufd  \$0x4E, @x[1], @t[1]
+       pxor    @x[7], @t[7]
+       pshufd  \$0x4E, @x[2], @t[2]
+       pxor    @x[1], @t[1]
+       pshufd  \$0x4E, @x[3], @t[3]
+       pxor    @x[2], @t[2]
+        pxor   @t[6], @x[0]
+        pxor   @t[6], @x[1]
+       pshufd  \$0x4E, @x[4], @t[4]
+       pxor    @x[3], @t[3]
+        pxor   @t[0], @x[2]
+        pxor   @t[1], @x[3]
+       pshufd  \$0x4E, @x[5], @t[5]
+       pxor    @x[4], @t[4]
+        pxor   @t[7], @x[1]
+        pxor   @t[2], @x[4]
+       pxor    @x[5], @t[5]
+
+        pxor   @t[7], @x[2]
+        pxor   @t[6], @x[3]
+        pxor   @t[6], @x[4]
+        pxor   @t[3], @x[5]
+        pxor   @t[4], @x[6]
+        pxor   @t[7], @x[4]
+        pxor   @t[7], @x[5]
+        pxor   @t[5], @x[7]
+___
+       &MixColumns     (@x,@t,1);      # flipped 2<->3 and 4<->6
+}
+
 sub aesenc {                           # not used
 my @b=@_[0..7];
 my @t=@_[8..15];
@@ -2028,6 +2089,8 @@ ___
 #      const unsigned char iv[16]);
 #
 my ($twmask,$twres,$twtmp)=@XMM[13..15];
+$arg6=~s/d$//;
+
 $code.=<<___;
 .globl bsaes_xts_encrypt
 .type  bsaes_xts_encrypt,\@abi-omnipotent
index 41f2e46..bd7f45b 100644 (file)
@@ -1060,7 +1060,7 @@ _vpaes_consts:
 .Lk_dsbo:      # decryption sbox final output
        .quad   0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
        .quad   0x12D7560F93441D00, 0xCA4B8159D8C58E9C
-.asciz "Vector Permutaion AES for x86_64/SSSE3, Mike Hamburg (Stanford University)"
+.asciz "Vector Permutation AES for x86_64/SSSE3, Mike Hamburg (Stanford University)"
 .align 64
 .size  _vpaes_consts,.-_vpaes_consts
 ___
index 5258d2f..9abaf39 100644 (file)
@@ -23,7 +23,7 @@ unsigned int _armv7_tick(void);
 
 unsigned int OPENSSL_rdtsc(void)
        {
-       if (OPENSSL_armcap_P|ARMV7_TICK)
+       if (OPENSSL_armcap_P & ARMV7_TICK)
                return _armv7_tick();
        else
                return 0;
diff --git a/deps/openssl/openssl/crypto/asn1/Makefile.save b/deps/openssl/openssl/crypto/asn1/Makefile.save
new file mode 100644 (file)
index 0000000..f778700
--- /dev/null
@@ -0,0 +1,930 @@
+#
+# OpenSSL/crypto/asn1/Makefile
+#
+
+DIR=   asn1
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c \
+       a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c \
+       a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c \
+       x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c \
+       x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c \
+       x_nx509.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
+       t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c \
+       tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c \
+       tasn_prn.c ameth_lib.c \
+       f_int.c f_string.c n_pkey.c \
+       f_enum.c x_pkey.c a_bool.c x_exten.c bio_asn1.c bio_ndef.c asn_mime.c \
+       asn1_gen.c asn1_par.c asn1_lib.c asn1_err.c a_bytes.c a_strnid.c \
+       evp_asn1.c asn_pack.c p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c
+LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o \
+       a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o \
+       a_enum.o a_utf8.o a_sign.o a_digest.o a_verify.o a_mbstr.o a_strex.o \
+       x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_bignum.o \
+       x_long.o x_name.o x_x509.o x_x509a.o x_crl.o x_info.o x_spki.o nsseq.o \
+       x_nx509.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o \
+       t_req.o t_x509.o t_x509a.o t_crl.o t_pkey.o t_spki.o t_bitst.o \
+       tasn_new.o tasn_fre.o tasn_enc.o tasn_dec.o tasn_utl.o tasn_typ.o \
+       tasn_prn.o ameth_lib.o \
+       f_int.o f_string.o n_pkey.o \
+       f_enum.o x_pkey.o a_bool.o x_exten.o bio_asn1.o bio_ndef.o asn_mime.o \
+       asn1_gen.o asn1_par.o asn1_lib.o asn1_err.o a_bytes.o a_strnid.o \
+       evp_asn1.o asn_pack.o p5_pbe.o p5_pbev2.o p8_pkey.o asn_moid.o
+
+SRC= $(LIBSRC)
+
+EXHEADER=  asn1.h asn1_mac.h asn1t.h
+HEADER=        $(EXHEADER) asn1_locl.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+test:  test.c
+       cc -g -I../../include -c test.c
+       cc -g -I../../include -o test test.o -L../.. -lcrypto
+
+pk:    pk.c
+       cc -g -I../../include -c pk.c
+       cc -g -I../../include -o pk pk.o -L../.. -lcrypto
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by top Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+a_bitstr.o: ../../e_os.h ../../include/openssl/asn1.h
+a_bitstr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_bitstr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_bitstr.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_bitstr.o: ../../include/openssl/opensslconf.h
+a_bitstr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_bitstr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_bitstr.o: ../../include/openssl/symhacks.h ../cryptlib.h a_bitstr.c
+a_bool.o: ../../e_os.h ../../include/openssl/asn1.h
+a_bool.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+a_bool.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_bool.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_bool.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+a_bool.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_bool.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_bool.o: ../../include/openssl/symhacks.h ../cryptlib.h a_bool.c
+a_bytes.o: ../../e_os.h ../../include/openssl/asn1.h
+a_bytes.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_bytes.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_bytes.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_bytes.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_bytes.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_bytes.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_bytes.o: ../cryptlib.h a_bytes.c
+a_d2i_fp.o: ../../e_os.h ../../include/openssl/asn1.h
+a_d2i_fp.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
+a_d2i_fp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_d2i_fp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_d2i_fp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+a_d2i_fp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_d2i_fp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_d2i_fp.o: ../../include/openssl/symhacks.h ../cryptlib.h a_d2i_fp.c
+a_digest.o: ../../e_os.h ../../include/openssl/asn1.h
+a_digest.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_digest.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+a_digest.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+a_digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+a_digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+a_digest.o: ../../include/openssl/opensslconf.h
+a_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+a_digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+a_digest.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+a_digest.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_digest.c
+a_dup.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+a_dup.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_dup.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_dup.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+a_dup.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_dup.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_dup.o: ../../include/openssl/symhacks.h ../cryptlib.h a_dup.c
+a_enum.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+a_enum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+a_enum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_enum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_enum.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_enum.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_enum.o: ../cryptlib.h a_enum.c
+a_gentm.o: ../../e_os.h ../../include/openssl/asn1.h
+a_gentm.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_gentm.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_gentm.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_gentm.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_gentm.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_gentm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_gentm.o: ../cryptlib.h ../o_time.h a_gentm.c
+a_i2d_fp.o: ../../e_os.h ../../include/openssl/asn1.h
+a_i2d_fp.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_i2d_fp.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_i2d_fp.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_i2d_fp.o: ../../include/openssl/opensslconf.h
+a_i2d_fp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_i2d_fp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_i2d_fp.o: ../../include/openssl/symhacks.h ../cryptlib.h a_i2d_fp.c
+a_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+a_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+a_int.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_int.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_int.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_int.o: ../cryptlib.h a_int.c
+a_mbstr.o: ../../e_os.h ../../include/openssl/asn1.h
+a_mbstr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_mbstr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_mbstr.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_mbstr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_mbstr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_mbstr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_mbstr.o: ../cryptlib.h a_mbstr.c
+a_object.o: ../../e_os.h ../../include/openssl/asn1.h
+a_object.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+a_object.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_object.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_object.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+a_object.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+a_object.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_object.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_object.o: ../../include/openssl/symhacks.h ../cryptlib.h a_object.c
+a_octet.o: ../../e_os.h ../../include/openssl/asn1.h
+a_octet.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_octet.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_octet.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_octet.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_octet.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_octet.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_octet.o: ../cryptlib.h a_octet.c
+a_print.o: ../../e_os.h ../../include/openssl/asn1.h
+a_print.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_print.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_print.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_print.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_print.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_print.o: ../cryptlib.h a_print.c
+a_set.o: ../../e_os.h ../../include/openssl/asn1.h
+a_set.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
+a_set.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_set.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_set.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+a_set.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_set.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_set.o: ../../include/openssl/symhacks.h ../cryptlib.h a_set.c
+a_sign.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+a_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+a_sign.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+a_sign.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+a_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+a_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+a_sign.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_sign.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+a_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+a_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+a_sign.o: ../cryptlib.h a_sign.c asn1_locl.h
+a_strex.o: ../../e_os.h ../../include/openssl/asn1.h
+a_strex.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_strex.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+a_strex.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+a_strex.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+a_strex.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+a_strex.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_strex.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+a_strex.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+a_strex.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_strex.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+a_strex.o: ../cryptlib.h a_strex.c charmap.h
+a_strnid.o: ../../e_os.h ../../include/openssl/asn1.h
+a_strnid.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_strnid.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_strnid.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_strnid.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+a_strnid.o: ../../include/openssl/opensslconf.h
+a_strnid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_strnid.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_strnid.o: ../../include/openssl/symhacks.h ../cryptlib.h a_strnid.c
+a_time.o: ../../e_os.h ../../include/openssl/asn1.h
+a_time.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+a_time.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_time.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_time.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+a_time.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_time.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_time.o: ../../include/openssl/symhacks.h ../cryptlib.h ../o_time.h a_time.c
+a_type.o: ../../e_os.h ../../include/openssl/asn1.h
+a_type.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+a_type.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_type.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_type.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+a_type.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+a_type.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_type.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_type.o: ../../include/openssl/symhacks.h ../cryptlib.h a_type.c
+a_utctm.o: ../../e_os.h ../../include/openssl/asn1.h
+a_utctm.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+a_utctm.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+a_utctm.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+a_utctm.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+a_utctm.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+a_utctm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+a_utctm.o: ../cryptlib.h ../o_time.h a_utctm.c
+a_utf8.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+a_utf8.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_utf8.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+a_utf8.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+a_utf8.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_utf8.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+a_utf8.o: ../../include/openssl/symhacks.h ../cryptlib.h a_utf8.c
+a_verify.o: ../../e_os.h ../../include/openssl/asn1.h
+a_verify.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+a_verify.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+a_verify.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+a_verify.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+a_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+a_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+a_verify.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+a_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+a_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+a_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+a_verify.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+a_verify.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_verify.c
+a_verify.o: asn1_locl.h
+ameth_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+ameth_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+ameth_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ameth_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ameth_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ameth_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+ameth_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ameth_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ameth_lib.o: ../../include/openssl/opensslconf.h
+ameth_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ameth_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ameth_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ameth_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ameth_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h ameth_lib.c
+ameth_lib.o: asn1_locl.h
+asn1_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+asn1_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+asn1_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+asn1_err.o: ../../include/openssl/opensslconf.h
+asn1_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+asn1_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+asn1_err.o: ../../include/openssl/symhacks.h asn1_err.c
+asn1_gen.o: ../../e_os.h ../../include/openssl/asn1.h
+asn1_gen.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+asn1_gen.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+asn1_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+asn1_gen.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+asn1_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+asn1_gen.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+asn1_gen.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+asn1_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+asn1_gen.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+asn1_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+asn1_gen.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+asn1_gen.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+asn1_gen.o: ../cryptlib.h asn1_gen.c
+asn1_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+asn1_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
+asn1_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+asn1_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+asn1_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+asn1_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+asn1_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+asn1_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_lib.c
+asn1_par.o: ../../e_os.h ../../include/openssl/asn1.h
+asn1_par.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+asn1_par.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+asn1_par.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+asn1_par.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+asn1_par.o: ../../include/openssl/opensslconf.h
+asn1_par.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+asn1_par.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+asn1_par.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_par.c
+asn_mime.o: ../../e_os.h ../../include/openssl/asn1.h
+asn_mime.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+asn_mime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+asn_mime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+asn_mime.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+asn_mime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+asn_mime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+asn_mime.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+asn_mime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+asn_mime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+asn_mime.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+asn_mime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+asn_mime.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+asn_mime.o: ../cryptlib.h asn1_locl.h asn_mime.c
+asn_moid.o: ../../e_os.h ../../include/openssl/asn1.h
+asn_moid.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+asn_moid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+asn_moid.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+asn_moid.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+asn_moid.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+asn_moid.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+asn_moid.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+asn_moid.o: ../../include/openssl/opensslconf.h
+asn_moid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+asn_moid.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+asn_moid.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+asn_moid.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+asn_moid.o: ../../include/openssl/x509_vfy.h ../cryptlib.h asn_moid.c
+asn_pack.o: ../../e_os.h ../../include/openssl/asn1.h
+asn_pack.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+asn_pack.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+asn_pack.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+asn_pack.o: ../../include/openssl/opensslconf.h
+asn_pack.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+asn_pack.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+asn_pack.o: ../../include/openssl/symhacks.h ../cryptlib.h asn_pack.c
+bio_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+bio_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+bio_asn1.o: ../../include/openssl/opensslconf.h
+bio_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bio_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_asn1.o: ../../include/openssl/symhacks.h bio_asn1.c
+bio_ndef.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+bio_ndef.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+bio_ndef.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bio_ndef.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bio_ndef.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bio_ndef.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_ndef.o: ../../include/openssl/symhacks.h bio_ndef.c
+d2i_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+d2i_pr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+d2i_pr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+d2i_pr.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+d2i_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+d2i_pr.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+d2i_pr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+d2i_pr.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+d2i_pr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h asn1_locl.h d2i_pr.c
+d2i_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+d2i_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+d2i_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+d2i_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+d2i_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+d2i_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+d2i_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+d2i_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+d2i_pu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+d2i_pu.o: ../cryptlib.h d2i_pu.c
+evp_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_asn1.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
+evp_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+evp_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+evp_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+evp_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+evp_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+evp_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_asn1.c
+f_enum.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+f_enum.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+f_enum.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+f_enum.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+f_enum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+f_enum.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+f_enum.o: ../../include/openssl/symhacks.h ../cryptlib.h f_enum.c
+f_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+f_int.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+f_int.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+f_int.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+f_int.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+f_int.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+f_int.o: ../../include/openssl/symhacks.h ../cryptlib.h f_int.c
+f_string.o: ../../e_os.h ../../include/openssl/asn1.h
+f_string.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+f_string.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+f_string.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+f_string.o: ../../include/openssl/opensslconf.h
+f_string.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+f_string.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+f_string.o: ../../include/openssl/symhacks.h ../cryptlib.h f_string.c
+i2d_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+i2d_pr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+i2d_pr.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+i2d_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+i2d_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+i2d_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+i2d_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+i2d_pr.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+i2d_pr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+i2d_pr.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+i2d_pr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h asn1_locl.h i2d_pr.c
+i2d_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+i2d_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+i2d_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+i2d_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+i2d_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+i2d_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+i2d_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+i2d_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+i2d_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+i2d_pu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+i2d_pu.o: ../cryptlib.h i2d_pu.c
+n_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
+n_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
+n_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+n_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+n_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+n_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+n_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+n_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+n_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+n_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+n_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+n_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+n_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h n_pkey.c
+nsseq.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+nsseq.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+nsseq.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+nsseq.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+nsseq.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+nsseq.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+nsseq.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+nsseq.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+nsseq.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+nsseq.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+nsseq.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+nsseq.o: ../../include/openssl/x509_vfy.h nsseq.c
+p5_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
+p5_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+p5_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p5_pbe.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p5_pbe.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p5_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p5_pbe.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p5_pbe.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p5_pbe.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p5_pbe.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+p5_pbe.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p5_pbe.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p5_pbe.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p5_pbe.o: ../cryptlib.h p5_pbe.c
+p5_pbev2.o: ../../e_os.h ../../include/openssl/asn1.h
+p5_pbev2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+p5_pbev2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p5_pbev2.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p5_pbev2.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p5_pbev2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p5_pbev2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p5_pbev2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p5_pbev2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p5_pbev2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+p5_pbev2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p5_pbev2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p5_pbev2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p5_pbev2.o: ../cryptlib.h p5_pbev2.c
+p8_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
+p8_pkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+p8_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p8_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p8_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p8_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p8_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p8_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p8_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p8_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p8_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p8_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p8_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p8_pkey.c
+t_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
+t_bitst.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+t_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+t_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+t_bitst.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+t_bitst.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+t_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+t_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+t_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+t_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+t_bitst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+t_bitst.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+t_bitst.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+t_bitst.o: ../cryptlib.h t_bitst.c
+t_crl.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+t_crl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+t_crl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+t_crl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+t_crl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+t_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+t_crl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+t_crl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+t_crl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+t_crl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+t_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+t_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+t_crl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+t_crl.o: ../cryptlib.h t_crl.c
+t_pkey.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+t_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+t_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+t_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+t_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+t_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+t_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+t_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+t_pkey.o: ../cryptlib.h t_pkey.c
+t_req.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+t_req.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+t_req.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+t_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+t_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+t_req.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+t_req.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+t_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+t_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+t_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+t_req.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+t_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+t_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+t_req.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+t_req.o: ../cryptlib.h t_req.c
+t_spki.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+t_spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+t_spki.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+t_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+t_spki.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+t_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+t_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+t_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+t_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+t_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+t_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+t_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+t_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+t_spki.o: ../cryptlib.h t_spki.c
+t_x509.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+t_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+t_x509.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+t_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+t_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+t_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+t_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+t_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+t_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+t_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+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_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
+t_x509a.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+t_x509a.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+t_x509a.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+t_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+t_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+t_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+t_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+t_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+t_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+t_x509a.o: ../cryptlib.h t_x509a.c
+tasn_dec.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+tasn_dec.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tasn_dec.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tasn_dec.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+tasn_dec.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+tasn_dec.o: ../../include/openssl/opensslconf.h
+tasn_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tasn_dec.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+tasn_dec.o: ../../include/openssl/symhacks.h tasn_dec.c
+tasn_enc.o: ../../e_os.h ../../include/openssl/asn1.h
+tasn_enc.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+tasn_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+tasn_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+tasn_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tasn_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tasn_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tasn_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+tasn_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h tasn_enc.c
+tasn_fre.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+tasn_fre.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+tasn_fre.o: ../../include/openssl/e_os2.h ../../include/openssl/obj_mac.h
+tasn_fre.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tasn_fre.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tasn_fre.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+tasn_fre.o: ../../include/openssl/symhacks.h tasn_fre.c
+tasn_new.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+tasn_new.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+tasn_new.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+tasn_new.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tasn_new.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tasn_new.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tasn_new.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+tasn_new.o: ../../include/openssl/symhacks.h tasn_new.c
+tasn_prn.o: ../../e_os.h ../../include/openssl/asn1.h
+tasn_prn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+tasn_prn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+tasn_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tasn_prn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tasn_prn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+tasn_prn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+tasn_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+tasn_prn.o: ../../include/openssl/opensslconf.h
+tasn_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tasn_prn.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tasn_prn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tasn_prn.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tasn_prn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+tasn_prn.o: ../cryptlib.h asn1_locl.h tasn_prn.c
+tasn_typ.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+tasn_typ.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+tasn_typ.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+tasn_typ.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tasn_typ.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+tasn_typ.o: ../../include/openssl/symhacks.h tasn_typ.c
+tasn_utl.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+tasn_utl.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+tasn_utl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+tasn_utl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tasn_utl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tasn_utl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tasn_utl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+tasn_utl.o: ../../include/openssl/symhacks.h tasn_utl.c
+x_algor.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+x_algor.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x_algor.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x_algor.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x_algor.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+x_algor.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_algor.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_algor.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_algor.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_algor.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_algor.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_algor.o: ../../include/openssl/x509_vfy.h x_algor.c
+x_attrib.o: ../../e_os.h ../../include/openssl/asn1.h
+x_attrib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_attrib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_attrib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_attrib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_attrib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_attrib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_attrib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_attrib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_attrib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_attrib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_attrib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_attrib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_attrib.c
+x_bignum.o: ../../e_os.h ../../include/openssl/asn1.h
+x_bignum.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_bignum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+x_bignum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x_bignum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+x_bignum.o: ../../include/openssl/opensslconf.h
+x_bignum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_bignum.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+x_bignum.o: ../../include/openssl/symhacks.h ../cryptlib.h x_bignum.c
+x_crl.o: ../../e_os.h ../../include/openssl/asn1.h
+x_crl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_crl.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+x_crl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x_crl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x_crl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x_crl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+x_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+x_crl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+x_crl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+x_crl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+x_crl.o: ../../include/openssl/x509v3.h ../cryptlib.h asn1_locl.h x_crl.c
+x_exten.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+x_exten.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x_exten.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x_exten.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x_exten.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+x_exten.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_exten.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_exten.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_exten.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_exten.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_exten.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_exten.o: ../../include/openssl/x509_vfy.h x_exten.c
+x_info.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+x_info.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_info.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_info.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_info.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_info.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_info.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_info.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_info.c
+x_long.o: ../../e_os.h ../../include/openssl/asn1.h
+x_long.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_long.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+x_long.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x_long.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+x_long.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+x_long.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+x_long.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+x_long.o: ../cryptlib.h x_long.c
+x_name.o: ../../e_os.h ../../include/openssl/asn1.h
+x_name.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_name.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_name.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_name.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_name.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_name.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_name.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_name.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_name.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_name.o: ../../include/openssl/x509_vfy.h ../cryptlib.h asn1_locl.h x_name.c
+x_nx509.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+x_nx509.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x_nx509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x_nx509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x_nx509.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+x_nx509.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_nx509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_nx509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_nx509.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_nx509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_nx509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_nx509.o: ../../include/openssl/x509_vfy.h x_nx509.c
+x_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
+x_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
+x_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_pkey.c
+x_pubkey.o: ../../e_os.h ../../include/openssl/asn1.h
+x_pubkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_pubkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_pubkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+x_pubkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x_pubkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x_pubkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x_pubkey.o: ../../include/openssl/opensslconf.h
+x_pubkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_pubkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+x_pubkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+x_pubkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+x_pubkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+x_pubkey.o: ../cryptlib.h asn1_locl.h x_pubkey.c
+x_req.o: ../../e_os.h ../../include/openssl/asn1.h
+x_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_req.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_req.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_req.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_req.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_req.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_req.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_req.c
+x_sig.o: ../../e_os.h ../../include/openssl/asn1.h
+x_sig.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_sig.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_sig.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_sig.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_sig.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_sig.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_sig.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_sig.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_sig.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_sig.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_sig.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_sig.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_sig.c
+x_spki.o: ../../e_os.h ../../include/openssl/asn1.h
+x_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_spki.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_spki.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_spki.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_spki.c
+x_val.o: ../../e_os.h ../../include/openssl/asn1.h
+x_val.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_val.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_val.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_val.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_val.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_val.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_val.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_val.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_val.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_val.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_val.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_val.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_val.c
+x_x509.o: ../../e_os.h ../../include/openssl/asn1.h
+x_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_x509.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+x_x509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+x_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+x_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+x_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+x_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+x_x509.o: ../../include/openssl/x509v3.h ../cryptlib.h x_x509.c
+x_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
+x_x509a.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x_x509a.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_x509a.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x_x509a.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x_x509a.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_x509a.c
index ad0d250..297c45a 100644 (file)
@@ -116,7 +116,7 @@ int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp)
        int pad=0,ret,i,neg;
        unsigned char *p,*n,pb=0;
 
-       if ((a == NULL) || (a->data == NULL)) return(0);
+       if (a == NULL) return(0);
        neg=a->type & V_ASN1_NEG;
        if (a->length == 0)
                ret=1;
index bf63330..ead37ac 100644 (file)
@@ -566,7 +566,6 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in)
        mbflag = tag2nbyte[type];
        if(mbflag == -1) return -1;
        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);
index 1a30bf1..aa60203 100644 (file)
@@ -305,7 +305,7 @@ static ERR_STRING_DATA ASN1_str_reasons[]=
 {ERR_REASON(ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE),"unknown public key type"},
 {ERR_REASON(ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM),"unknown signature algorithm"},
 {ERR_REASON(ASN1_R_UNKNOWN_TAG)          ,"unknown tag"},
-{ERR_REASON(ASN1_R_UNKOWN_FORMAT)        ,"unkown format"},
+{ERR_REASON(ASN1_R_UNKOWN_FORMAT)        ,"unknown format"},
 {ERR_REASON(ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE),"unsupported any defined by type"},
 {ERR_REASON(ASN1_R_UNSUPPORTED_CIPHER)   ,"unsupported cipher"},
 {ERR_REASON(ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM),"unsupported encryption algorithm"},
diff --git a/deps/openssl/openssl/crypto/bf/Makefile.save b/deps/openssl/openssl/crypto/bf/Makefile.save
new file mode 100644 (file)
index 0000000..d01bfaa
--- /dev/null
@@ -0,0 +1,101 @@
+#
+# OpenSSL/crypto/blowfish/Makefile
+#
+
+DIR=   bf
+TOP=   ../..
+CC=    cc
+CPP=   $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+BF_ENC=                bf_enc.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=bftest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c 
+LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= blowfish.h
+HEADER=        bf_pi.h bf_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+bf-586.s:      asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+       $(PERL) asm/bf-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+# We need to use force because 'install' matches 'INSTALL' on case
+# insensitive systems
+FRC.install:
+install: FRC.install
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+bf_cfb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
+bf_cfb64.o: ../../include/openssl/opensslconf.h bf_cfb64.c bf_locl.h
+bf_ecb.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
+bf_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+bf_ecb.o: bf_ecb.c bf_locl.h
+bf_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
+bf_enc.o: ../../include/openssl/opensslconf.h bf_enc.c bf_locl.h
+bf_ofb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
+bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h bf_ofb64.c
+bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/crypto.h
+bf_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+bf_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bf_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bf_skey.o: ../../include/openssl/symhacks.h bf_locl.h bf_pi.h bf_skey.c
diff --git a/deps/openssl/openssl/crypto/bio/Makefile.save b/deps/openssl/openssl/crypto/bio/Makefile.save
new file mode 100644 (file)
index 0000000..c395d80
--- /dev/null
@@ -0,0 +1,222 @@
+#
+# OpenSSL/crypto/bio/Makefile
+#
+
+DIR=   bio
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= bio_lib.c bio_cb.c bio_err.c \
+       bss_mem.c bss_null.c bss_fd.c \
+       bss_file.c bss_sock.c bss_conn.c \
+       bf_null.c bf_buff.c b_print.c b_dump.c \
+       b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c \
+       bss_dgram.c
+#      bf_lbuf.c
+LIBOBJ= bio_lib.o bio_cb.o bio_err.o \
+       bss_mem.o bss_null.o bss_fd.o \
+       bss_file.o bss_sock.o bss_conn.o \
+       bf_null.o bf_buff.o b_print.o b_dump.o \
+       b_sock.o bss_acpt.o bf_nbio.o bss_log.o bss_bio.o \
+       bss_dgram.o
+#      bf_lbuf.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= bio.h
+HEADER=        bio_lcl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+b_dump.o: ../../e_os.h ../../include/openssl/bio.h
+b_dump.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+b_dump.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+b_dump.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+b_dump.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+b_dump.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+b_dump.o: ../../include/openssl/symhacks.h ../cryptlib.h b_dump.c bio_lcl.h
+b_print.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+b_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+b_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+b_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+b_print.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+b_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+b_print.o: ../../include/openssl/symhacks.h ../cryptlib.h b_print.c
+b_sock.o: ../../e_os.h ../../include/openssl/bio.h
+b_sock.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+b_sock.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+b_sock.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+b_sock.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+b_sock.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+b_sock.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+b_sock.o: ../cryptlib.h b_sock.c
+bf_buff.o: ../../e_os.h ../../include/openssl/bio.h
+bf_buff.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bf_buff.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bf_buff.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bf_buff.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bf_buff.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bf_buff.o: ../../include/openssl/symhacks.h ../cryptlib.h bf_buff.c
+bf_nbio.o: ../../e_os.h ../../include/openssl/bio.h
+bf_nbio.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bf_nbio.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bf_nbio.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bf_nbio.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bf_nbio.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+bf_nbio.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+bf_nbio.o: ../cryptlib.h bf_nbio.c
+bf_null.o: ../../e_os.h ../../include/openssl/bio.h
+bf_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bf_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bf_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bf_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bf_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bf_null.o: ../../include/openssl/symhacks.h ../cryptlib.h bf_null.c
+bio_cb.o: ../../e_os.h ../../include/openssl/bio.h
+bio_cb.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bio_cb.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bio_cb.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bio_cb.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bio_cb.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_cb.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_cb.c
+bio_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+bio_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bio_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bio_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bio_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_err.o: ../../include/openssl/symhacks.h bio_err.c
+bio_lib.o: ../../e_os.h ../../include/openssl/bio.h
+bio_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bio_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bio_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bio_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bio_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_lib.c
+bss_acpt.o: ../../e_os.h ../../include/openssl/bio.h
+bss_acpt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_acpt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_acpt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_acpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_acpt.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_acpt.o: ../../include/openssl/symhacks.h ../cryptlib.h bss_acpt.c
+bss_bio.o: ../../e_os.h ../../include/openssl/bio.h
+bss_bio.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+bss_bio.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+bss_bio.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+bss_bio.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+bss_bio.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+bss_bio.o: bss_bio.c
+bss_conn.o: ../../e_os.h ../../include/openssl/bio.h
+bss_conn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_conn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_conn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_conn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_conn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_conn.o: ../../include/openssl/symhacks.h ../cryptlib.h bss_conn.c
+bss_dgram.o: ../../e_os.h ../../include/openssl/bio.h
+bss_dgram.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_dgram.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_dgram.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_dgram.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_dgram.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_dgram.o: ../../include/openssl/symhacks.h ../cryptlib.h bss_dgram.c
+bss_fd.o: ../../e_os.h ../../include/openssl/bio.h
+bss_fd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_fd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_fd.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_fd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_fd.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_fd.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_lcl.h bss_fd.c
+bss_file.o: ../../e_os.h ../../include/openssl/bio.h
+bss_file.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_file.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_file.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_file.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_file.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_file.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_lcl.h bss_file.c
+bss_log.o: ../../e_os.h ../../include/openssl/bio.h
+bss_log.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_log.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_log.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_log.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_log.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_log.o: ../../include/openssl/symhacks.h ../cryptlib.h bss_log.c
+bss_mem.o: ../../e_os.h ../../include/openssl/bio.h
+bss_mem.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_mem.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_mem.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_mem.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_mem.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_mem.o: ../../include/openssl/symhacks.h ../cryptlib.h bss_mem.c
+bss_null.o: ../../e_os.h ../../include/openssl/bio.h
+bss_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_null.o: ../../include/openssl/symhacks.h ../cryptlib.h bss_null.c
+bss_sock.o: ../../e_os.h ../../include/openssl/bio.h
+bss_sock.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bss_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bss_sock.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bss_sock.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bss_sock.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bss_sock.o: ../../include/openssl/symhacks.h ../cryptlib.h bss_sock.c
index 8990909..54c012c 100644 (file)
@@ -906,8 +906,8 @@ BIO *BIO_new_dgram_sctp(int fd, int close_flag)
        memset(authchunks, 0, sizeof(sockopt_len));
        ret = getsockopt(fd, IPPROTO_SCTP, SCTP_LOCAL_AUTH_CHUNKS, authchunks, &sockopt_len);
        OPENSSL_assert(ret >= 0);
-       
-       for (p = (unsigned char*) authchunks + sizeof(sctp_assoc_t);
+
+       for (p = (unsigned char*) authchunks->gauth_chunks;
             p < (unsigned char*) authchunks + sockopt_len;
             p += sizeof(uint8_t))
                {
@@ -1197,7 +1197,7 @@ static int dgram_sctp_read(BIO *b, char *out, int outl)
                        ii = getsockopt(b->num, IPPROTO_SCTP, SCTP_PEER_AUTH_CHUNKS, authchunks, &optlen);
                        OPENSSL_assert(ii >= 0);
 
-                       for (p = (unsigned char*) authchunks + sizeof(sctp_assoc_t);
+                       for (p = (unsigned char*) authchunks->gauth_chunks;
                                 p < (unsigned char*) authchunks + optlen;
                                 p += sizeof(uint8_t))
                                {
index b7dce5c..2227b2b 100644 (file)
@@ -245,7 +245,7 @@ static int MS_CALLBACK slg_puts(BIO *bp, const char *str)
 
 static void xopenlog(BIO* bp, char* name, int level)
 {
-       if (GetVersion() < 0x80000000)
+       if (check_winnt())
                bp->ptr = RegisterEventSourceA(NULL,name);
        else
                bp->ptr = NULL;
index 6727734..6dd136b 100644 (file)
@@ -125,7 +125,9 @@ ppc-mont.s: asm/ppc-mont.pl;$(PERL) asm/ppc-mont.pl $(PERLASM_SCHEME) $@
 ppc64-mont.s:  asm/ppc64-mont.pl;$(PERL) asm/ppc64-mont.pl $(PERLASM_SCHEME) $@
 
 alpha-mont.s:  asm/alpha-mont.pl
-       $(PERL) $< | $(CC) -E - | tee $@ > /dev/null
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) asm/alpha-mont.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
 
 # GNU make "catch all"
 %-mont.s:      asm/%-mont.pl;  $(PERL) $< $(PERLASM_SCHEME) $@
diff --git a/deps/openssl/openssl/crypto/bn/Makefile.save b/deps/openssl/openssl/crypto/bn/Makefile.save
new file mode 100644 (file)
index 0000000..6dd136b
--- /dev/null
@@ -0,0 +1,377 @@
+#
+# OpenSSL/crypto/bn/Makefile
+#
+
+DIR=   bn
+TOP=   ../..
+CC=    cc
+CPP=    $(CC) -E
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+BN_ASM=                bn_asm.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=bntest.c exptest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \
+       bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \
+       bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c \
+       bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c \
+       bn_depr.c bn_const.c bn_x931p.c
+
+LIBOBJ=        bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \
+       bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \
+       bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o $(BN_ASM) \
+       bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o bn_gf2m.o bn_nist.o \
+       bn_depr.o bn_const.o bn_x931p.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= bn.h
+HEADER=        bn_lcl.h bn_prime.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+bn_prime.h: bn_prime.pl
+       $(PERL) bn_prime.pl >bn_prime.h
+
+divtest: divtest.c ../../libcrypto.a
+       cc -I../../include divtest.c -o divtest ../../libcrypto.a
+
+bnbug: bnbug.c ../../libcrypto.a top
+       cc -g -I../../include bnbug.c -o bnbug ../../libcrypto.a
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+bn-586.s:      asm/bn-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/bn-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+co-586.s:      asm/co-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/co-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+x86-mont.s:    asm/x86-mont.pl ../perlasm/x86asm.pl
+       $(PERL) asm/x86-mont.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+x86-gf2m.s:    asm/x86-gf2m.pl ../perlasm/x86asm.pl
+       $(PERL) asm/x86-gf2m.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+sparcv8.o:     asm/sparcv8.S
+       $(CC) $(CFLAGS) -c asm/sparcv8.S
+bn-sparcv9.o:  asm/sparcv8plus.S
+       $(CC) $(CFLAGS) -c -o $@ asm/sparcv8plus.S
+sparcv9a-mont.s:       asm/sparcv9a-mont.pl
+       $(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@
+sparcv9-mont.s:                asm/sparcv9-mont.pl
+       $(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@
+
+bn-mips3.o:    asm/mips3.s
+       @if [ "$(CC)" = "gcc" ]; then \
+               ABI=`expr "$(CFLAGS)" : ".*-mabi=\([n3264]*\)"` && \
+               as -$$ABI -O -o $@ asm/mips3.s; \
+       else    $(CC) -c $(CFLAGS) -o $@ asm/mips3.s; fi
+
+bn-mips.s:     asm/mips.pl
+       $(PERL) asm/mips.pl $(PERLASM_SCHEME) $@
+mips-mont.s:   asm/mips-mont.pl
+       $(PERL) asm/mips-mont.pl $(PERLASM_SCHEME) $@
+
+bn-s390x.o:    asm/s390x.S
+       $(CC) $(CFLAGS) -c -o $@ asm/s390x.S
+s390x-gf2m.s:  asm/s390x-gf2m.pl
+       $(PERL) asm/s390x-gf2m.pl $(PERLASM_SCHEME) $@
+
+x86_64-gcc.o:  asm/x86_64-gcc.c
+       $(CC) $(CFLAGS) -c -o $@ asm/x86_64-gcc.c
+x86_64-mont.s: asm/x86_64-mont.pl
+       $(PERL) asm/x86_64-mont.pl $(PERLASM_SCHEME) > $@
+x86_64-mont5.s:        asm/x86_64-mont5.pl
+       $(PERL) asm/x86_64-mont5.pl $(PERLASM_SCHEME) > $@
+x86_64-gf2m.s: asm/x86_64-gf2m.pl
+       $(PERL) asm/x86_64-gf2m.pl $(PERLASM_SCHEME) > $@
+modexp512-x86_64.s:    asm/modexp512-x86_64.pl
+       $(PERL) asm/modexp512-x86_64.pl $(PERLASM_SCHEME) > $@
+
+bn-ia64.s:     asm/ia64.S
+       $(CC) $(CFLAGS) -E asm/ia64.S > $@
+ia64-mont.s:   asm/ia64-mont.pl
+       $(PERL) asm/ia64-mont.pl $@ $(CFLAGS)
+
+# GNU assembler fails to compile PA-RISC2 modules, insist on calling
+# vendor assembler...
+pa-risc2W.o: asm/pa-risc2W.s
+       /usr/ccs/bin/as -o pa-risc2W.o asm/pa-risc2W.s
+pa-risc2.o: asm/pa-risc2.s
+       /usr/ccs/bin/as -o pa-risc2.o asm/pa-risc2.s
+parisc-mont.s: asm/parisc-mont.pl
+       $(PERL) asm/parisc-mont.pl $(PERLASM_SCHEME) $@
+
+# ppc - AIX, Linux, MacOS X...
+bn-ppc.s:      asm/ppc.pl;     $(PERL) asm/ppc.pl $(PERLASM_SCHEME) $@
+ppc-mont.s:    asm/ppc-mont.pl;$(PERL) asm/ppc-mont.pl $(PERLASM_SCHEME) $@
+ppc64-mont.s:  asm/ppc64-mont.pl;$(PERL) asm/ppc64-mont.pl $(PERLASM_SCHEME) $@
+
+alpha-mont.s:  asm/alpha-mont.pl
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) asm/alpha-mont.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
+
+# GNU make "catch all"
+%-mont.s:      asm/%-mont.pl;  $(PERL) $< $(PERLASM_SCHEME) $@
+%-gf2m.S:      asm/%-gf2m.pl;  $(PERL) $< $(PERLASM_SCHEME) $@
+
+armv4-gf2m.o:  armv4-gf2m.S
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+exptest:
+       rm -f exptest
+       gcc -I../../include -g2 -ggdb -o exptest exptest.c ../../libcrypto.a
+
+div:
+       rm -f a.out
+       gcc -I.. -g div.c ../../libcrypto.a
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+bn_add.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_add.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_add.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_add.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_add.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_add.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_add.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_add.c bn_lcl.h
+bn_asm.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_asm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_asm.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_asm.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_asm.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_asm.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_asm.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_asm.c bn_lcl.h
+bn_blind.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_blind.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_blind.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_blind.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_blind.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_blind.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_blind.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_blind.c bn_lcl.h
+bn_const.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+bn_const.o: ../../include/openssl/opensslconf.h
+bn_const.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_const.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_const.o: ../../include/openssl/symhacks.h bn.h bn_const.c
+bn_ctx.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_ctx.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_ctx.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_ctx.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_ctx.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_ctx.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_ctx.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_ctx.c bn_lcl.h
+bn_depr.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_depr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_depr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_depr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_depr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_depr.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+bn_depr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+bn_depr.o: ../cryptlib.h bn_depr.c bn_lcl.h
+bn_div.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_div.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_div.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_div.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_div.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_div.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_div.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_div.c bn_lcl.h
+bn_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+bn_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+bn_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+bn_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+bn_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+bn_err.o: bn_err.c
+bn_exp.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_exp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_exp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_exp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_exp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_exp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_exp.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_exp.c bn_lcl.h
+bn_exp2.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_exp2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_exp2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_exp2.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_exp2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_exp2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_exp2.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_exp2.c bn_lcl.h
+bn_gcd.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_gcd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_gcd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_gcd.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_gcd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_gcd.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_gcd.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_gcd.c bn_lcl.h
+bn_gf2m.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_gf2m.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_gf2m.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_gf2m.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_gf2m.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_gf2m.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_gf2m.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_gf2m.c bn_lcl.h
+bn_kron.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_kron.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_kron.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_kron.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_kron.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_kron.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_kron.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_kron.c bn_lcl.h
+bn_lib.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_lib.c
+bn_mod.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_mod.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_mod.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_mod.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_mod.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_mod.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_mod.c
+bn_mont.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_mont.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_mont.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_mont.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_mont.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_mont.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_mont.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_mont.c
+bn_mpi.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_mpi.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_mpi.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_mpi.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_mpi.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_mpi.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_mpi.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_mpi.c
+bn_mul.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_mul.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_mul.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_mul.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_mul.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_mul.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_mul.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_mul.c
+bn_nist.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_nist.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_nist.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_nist.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_nist.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_nist.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_nist.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_nist.c
+bn_prime.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_prime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_prime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_prime.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_prime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_prime.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+bn_prime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+bn_prime.o: ../cryptlib.h bn_lcl.h bn_prime.c bn_prime.h
+bn_print.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_print.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_print.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_print.c
+bn_rand.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_rand.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_rand.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_rand.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+bn_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+bn_rand.o: ../cryptlib.h bn_lcl.h bn_rand.c
+bn_recp.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_recp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_recp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_recp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_recp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_recp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_recp.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_recp.c
+bn_shift.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_shift.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_shift.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_shift.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_shift.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_shift.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_shift.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_shift.c
+bn_sqr.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_sqr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_sqr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_sqr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_sqr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_sqr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_sqr.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_sqr.c
+bn_sqrt.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_sqrt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_sqrt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_sqrt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_sqrt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_sqrt.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_sqrt.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_sqrt.c
+bn_word.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+bn_word.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bn_word.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bn_word.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_word.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_word.o: ../../include/openssl/symhacks.h ../cryptlib.h bn_lcl.h bn_word.c
+bn_x931p.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+bn_x931p.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+bn_x931p.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bn_x931p.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bn_x931p.o: ../../include/openssl/symhacks.h bn_x931p.c
index b944a12..caae04e 100644 (file)
@@ -133,7 +133,7 @@ $code.=<<___;
        bnez    $at,1f
        li      $t0,0
        slt     $at,$num,17     # on in-order CPU
-       bnezl   $at,bn_mul_mont_internal
+       bnez    $at,bn_mul_mont_internal
        nop
 1:     jr      $ra
        li      $a0,0
index 38b5164..d2f3ef7 100644 (file)
@@ -140,10 +140,10 @@ $code.=<<___;
        .set    reorder
        li      $minus4,-4
        and     $ta0,$a2,$minus4
-       $LD     $t0,0($a1)
        beqz    $ta0,.L_bn_mul_add_words_tail
 
 .L_bn_mul_add_words_loop:
+       $LD     $t0,0($a1)
        $MULTU  $t0,$a3
        $LD     $t1,0($a0)
        $LD     $t2,$BNSZ($a1)
@@ -200,10 +200,9 @@ $code.=<<___;
        $ADDU   $v0,$ta2
        sltu    $at,$ta3,$at
        $ST     $ta3,-$BNSZ($a0)
-       $ADDU   $v0,$at
        .set    noreorder
-       bgtzl   $ta0,.L_bn_mul_add_words_loop
-       $LD     $t0,0($a1)
+       bgtz    $ta0,.L_bn_mul_add_words_loop
+       $ADDU   $v0,$at
 
        beqz    $a2,.L_bn_mul_add_words_return
        nop
@@ -300,10 +299,10 @@ $code.=<<___;
        .set    reorder
        li      $minus4,-4
        and     $ta0,$a2,$minus4
-       $LD     $t0,0($a1)
        beqz    $ta0,.L_bn_mul_words_tail
 
 .L_bn_mul_words_loop:
+       $LD     $t0,0($a1)
        $MULTU  $t0,$a3
        $LD     $t2,$BNSZ($a1)
        $LD     $ta0,2*$BNSZ($a1)
@@ -341,10 +340,9 @@ $code.=<<___;
        $ADDU   $v0,$at
        sltu    $ta3,$v0,$at
        $ST     $v0,-$BNSZ($a0)
-       $ADDU   $v0,$ta3,$ta2
        .set    noreorder
-       bgtzl   $ta0,.L_bn_mul_words_loop
-       $LD     $t0,0($a1)
+       bgtz    $ta0,.L_bn_mul_words_loop
+       $ADDU   $v0,$ta3,$ta2
 
        beqz    $a2,.L_bn_mul_words_return
        nop
@@ -429,10 +427,10 @@ $code.=<<___;
        .set    reorder
        li      $minus4,-4
        and     $ta0,$a2,$minus4
-       $LD     $t0,0($a1)
        beqz    $ta0,.L_bn_sqr_words_tail
 
 .L_bn_sqr_words_loop:
+       $LD     $t0,0($a1)
        $MULTU  $t0,$t0
        $LD     $t2,$BNSZ($a1)
        $LD     $ta0,2*$BNSZ($a1)
@@ -463,11 +461,10 @@ $code.=<<___;
        mflo    $ta3
        mfhi    $ta2
        $ST     $ta3,-2*$BNSZ($a0)
-       $ST     $ta2,-$BNSZ($a0)
 
        .set    noreorder
-       bgtzl   $ta0,.L_bn_sqr_words_loop
-       $LD     $t0,0($a1)
+       bgtz    $ta0,.L_bn_sqr_words_loop
+       $ST     $ta2,-$BNSZ($a0)
 
        beqz    $a2,.L_bn_sqr_words_return
        nop
@@ -547,10 +544,10 @@ $code.=<<___;
        .set    reorder
        li      $minus4,-4
        and     $at,$a3,$minus4
-       $LD     $t0,0($a1)
        beqz    $at,.L_bn_add_words_tail
 
 .L_bn_add_words_loop:
+       $LD     $t0,0($a1)
        $LD     $ta0,0($a2)
        subu    $a3,4
        $LD     $t1,$BNSZ($a1)
@@ -589,11 +586,10 @@ $code.=<<___;
        $ADDU   $t3,$ta3,$v0
        sltu    $v0,$t3,$ta3
        $ST     $t3,-$BNSZ($a0)
-       $ADDU   $v0,$t9
        
        .set    noreorder
-       bgtzl   $at,.L_bn_add_words_loop
-       $LD     $t0,0($a1)
+       bgtz    $at,.L_bn_add_words_loop
+       $ADDU   $v0,$t9
 
        beqz    $a3,.L_bn_add_words_return
        nop
@@ -679,10 +675,10 @@ $code.=<<___;
        .set    reorder
        li      $minus4,-4
        and     $at,$a3,$minus4
-       $LD     $t0,0($a1)
        beqz    $at,.L_bn_sub_words_tail
 
 .L_bn_sub_words_loop:
+       $LD     $t0,0($a1)
        $LD     $ta0,0($a2)
        subu    $a3,4
        $LD     $t1,$BNSZ($a1)
@@ -722,11 +718,10 @@ $code.=<<___;
        $SUBU   $t3,$ta3,$v0
        sgtu    $v0,$t3,$ta3
        $ST     $t3,-$BNSZ($a0)
-       $ADDU   $v0,$t9
 
        .set    noreorder
-       bgtzl   $at,.L_bn_sub_words_loop
-       $LD     $t0,0($a1)
+       bgtz    $at,.L_bn_sub_words_loop
+       $ADDU   $v0,$t9
 
        beqz    $a3,.L_bn_sub_words_return
        nop
@@ -840,8 +835,9 @@ $code.=<<___;
        sltu    $ta0,$a1,$a2
        or      $t8,$ta0
        .set    noreorder
-       beqzl   $at,.L_bn_div_3_words_inner_loop
+       beqz    $at,.L_bn_div_3_words_inner_loop
        $SUBU   $v0,1
+       $ADDU   $v0,1
        .set    reorder
 .L_bn_div_3_words_inner_loop_done:
        .set    noreorder
@@ -902,7 +898,8 @@ $code.=<<___;
        and     $t2,$a0
        $SRL    $at,$a1,$t1
        .set    noreorder
-       bnezl   $t2,.+8
+       beqz    $t2,.+12
+       nop
        break   6               # signal overflow
        .set    reorder
        $SLL    $a0,$t9
@@ -917,7 +914,8 @@ $code.=<<___;
        $SRL    $DH,$a2,4*$BNSZ # bits
        sgeu    $at,$a0,$a2
        .set    noreorder
-       bnezl   $at,.+8
+       beqz    $at,.+12
+       nop
        $SUBU   $a0,$a2
        .set    reorder
 
index 4a766a8..c02ef6f 100644 (file)
@@ -40,7 +40,7 @@
 # of arithmetic operations, most notably multiplications. It requires
 # more memory references, most notably to tp[num], but this doesn't
 # seem to exhaust memory port capacity. And indeed, dedicated PA-RISC
-# 2.0 code path, provides virtually same performance as pa-risc2[W].s:
+# 2.0 code path provides virtually same performance as pa-risc2[W].s:
 # it's ~10% better for shortest key length and ~10% worse for longest
 # one.
 #
@@ -988,6 +988,8 @@ foreach (split("\n",$code)) {
        # assemble 2.0 instructions in 32-bit mode...
        s/^\s+([a-z]+)([\S]*)\s+([\S]*)/&assemble($1,$2,$3)/e if ($BN_SZ==4);
 
+       s/\bbv\b/bve/gm if ($SIZE_T==8);
+
        print $_,"\n";
 }
 close STDOUT;
index a30d4ef..226c66c 100644 (file)
@@ -31,7 +31,8 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
 ( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
 die "can't locate x86_64-xlate.pl";
 
-open STDOUT,"| \"$^X\" $xlate $flavour $output";
+open OUT,"| \"$^X\" $xlate $flavour $output";
+*STDOUT=*OUT;
 
 ($lo,$hi)=("%rax","%rdx");     $a=$lo;
 ($i0,$i1)=("%rsi","%rdi");
index 8f8dc5a..dae0fe2 100755 (executable)
@@ -901,8 +901,8 @@ $code.=<<___;
        jnz     .Lgather
 ___
 $code.=<<___ if ($win64);
-       movaps  %xmm6,(%rsp)
-       movaps  %xmm7,0x10(%rsp)
+       movaps  (%rsp),%xmm6
+       movaps  0x10(%rsp),%xmm7
        lea     0x28(%rsp),%rsp
 ___
 $code.=<<___;
index f34248e..21a1a3f 100644 (file)
@@ -538,6 +538,8 @@ BIGNUM *BN_mod_inverse(BIGNUM *ret,
 BIGNUM *BN_mod_sqrt(BIGNUM *ret,
        const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx);
 
+void   BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords);
+
 /* Deprecated versions */
 #ifndef OPENSSL_NO_DEPRECATED
 BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe,
@@ -774,11 +776,20 @@ int RAND_pseudo_bytes(unsigned char *buf,int num);
 
 #define bn_fix_top(a)          bn_check_top(a)
 
+#define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2)
+#define bn_wcheck_size(bn, words) \
+       do { \
+               const BIGNUM *_bnum2 = (bn); \
+               assert(words <= (_bnum2)->dmax && words >= (_bnum2)->top); \
+       } while(0)
+
 #else /* !BN_DEBUG */
 
 #define bn_pollute(a)
 #define bn_check_top(a)
 #define bn_fix_top(a)          bn_correct_top(a)
+#define bn_check_size(bn, bits)
+#define bn_wcheck_size(bn, words)
 
 #endif
 
index 7a5676d..5461e6e 100644 (file)
@@ -824,3 +824,55 @@ int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b,
                }
        return bn_cmp_words(a,b,cl);
        }
+
+/* 
+ * Constant-time conditional swap of a and b.  
+ * a and b are swapped if condition is not 0.  The code assumes that at most one bit of condition is set.
+ * nwords is the number of words to swap.  The code assumes that at least nwords are allocated in both a and b,
+ * and that no more than nwords are used by either a or b.
+ * a and b cannot be the same number
+ */
+void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords)
+       {
+       BN_ULONG t;
+       int i;
+
+       bn_wcheck_size(a, nwords);
+       bn_wcheck_size(b, nwords);
+
+       assert(a != b);
+       assert((condition & (condition - 1)) == 0);
+       assert(sizeof(BN_ULONG) >= sizeof(int));
+
+       condition = ((condition - 1) >> (BN_BITS2 - 1)) - 1;
+
+       t = (a->top^b->top) & condition;
+       a->top ^= t;
+       b->top ^= t;
+
+#define BN_CONSTTIME_SWAP(ind) \
+       do { \
+               t = (a->d[ind] ^ b->d[ind]) & condition; \
+               a->d[ind] ^= t; \
+               b->d[ind] ^= t; \
+       } while (0)
+
+
+       switch (nwords) {
+       default:
+               for (i = 10; i < nwords; i++) 
+                       BN_CONSTTIME_SWAP(i);
+               /* Fallthrough */
+       case 10: BN_CONSTTIME_SWAP(9); /* Fallthrough */
+       case 9: BN_CONSTTIME_SWAP(8); /* Fallthrough */
+       case 8: BN_CONSTTIME_SWAP(7); /* Fallthrough */
+       case 7: BN_CONSTTIME_SWAP(6); /* Fallthrough */
+       case 6: BN_CONSTTIME_SWAP(5); /* Fallthrough */
+       case 5: BN_CONSTTIME_SWAP(4); /* Fallthrough */
+       case 4: BN_CONSTTIME_SWAP(3); /* Fallthrough */
+       case 3: BN_CONSTTIME_SWAP(2); /* Fallthrough */
+       case 2: BN_CONSTTIME_SWAP(1); /* Fallthrough */
+       case 1: BN_CONSTTIME_SWAP(0);
+       }
+#undef BN_CONSTTIME_SWAP
+}
index 43caee4..e22968d 100644 (file)
@@ -286,26 +286,25 @@ const BIGNUM *BN_get0_nist_prime_521(void)
        }
 
 
-static void nist_cp_bn_0(BN_ULONG *buf, BN_ULONG *a, int top, int max)
+static void nist_cp_bn_0(BN_ULONG *dst, const BN_ULONG *src, int top, int max)
        {
        int i;
-       BN_ULONG *_tmp1 = (buf), *_tmp2 = (a);
 
 #ifdef BN_DEBUG
        OPENSSL_assert(top <= max);
 #endif
-       for (i = (top); i != 0; i--)
-               *_tmp1++ = *_tmp2++;
-       for (i = (max) - (top); i != 0; i--)
-               *_tmp1++ = (BN_ULONG) 0;
+       for (i = 0; i < top; i++)
+               dst[i] = src[i];
+       for (; i < max; i++)
+               dst[i] = 0;
        }
 
-static void nist_cp_bn(BN_ULONG *buf, BN_ULONG *a, int top)
+static void nist_cp_bn(BN_ULONG *dst, const BN_ULONG *src, int top)
        { 
        int i;
-       BN_ULONG *_tmp1 = (buf), *_tmp2 = (a);
-       for (i = (top); i != 0; i--)
-               *_tmp1++ = *_tmp2++;
+
+       for (i = 0; i < top; i++)
+               dst[i] = src[i];
        }
 
 #if BN_BITS2 == 64
@@ -451,8 +450,9 @@ int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
         */
        mask  = 0-(PTR_SIZE_INT)bn_sub_words(c_d,r_d,_nist_p_192[0],BN_NIST_192_TOP);
        mask &= 0-(PTR_SIZE_INT)carry;
+       res   = c_d;
        res   = (BN_ULONG *)
-        (((PTR_SIZE_INT)c_d&~mask) | ((PTR_SIZE_INT)r_d&mask));
+        (((PTR_SIZE_INT)res&~mask) | ((PTR_SIZE_INT)r_d&mask));
        nist_cp_bn(r_d, res, BN_NIST_192_TOP);
        r->top = BN_NIST_192_TOP;
        bn_correct_top(r);
@@ -479,8 +479,11 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
        int     top = a->top, i;
        int     carry;
        BN_ULONG *r_d, *a_d = a->d;
-       BN_ULONG buf[BN_NIST_224_TOP],
-                c_d[BN_NIST_224_TOP],
+       union   {
+               BN_ULONG        bn[BN_NIST_224_TOP];
+               unsigned int    ui[BN_NIST_224_TOP*sizeof(BN_ULONG)/sizeof(unsigned int)];
+               } buf;
+       BN_ULONG c_d[BN_NIST_224_TOP],
                *res;
        PTR_SIZE_INT mask;
        union { bn_addsub_f f; PTR_SIZE_INT p; } u;
@@ -519,18 +522,18 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
        /* copy upper 256 bits of 448 bit number ... */
        nist_cp_bn_0(c_d, a_d + (BN_NIST_224_TOP-1), top - (BN_NIST_224_TOP-1), BN_NIST_224_TOP);
        /* ... and right shift by 32 to obtain upper 224 bits */
-       nist_set_224(buf, c_d, 14, 13, 12, 11, 10, 9, 8);
+       nist_set_224(buf.bn, c_d, 14, 13, 12, 11, 10, 9, 8);
        /* truncate lower part to 224 bits too */
        r_d[BN_NIST_224_TOP-1] &= BN_MASK2l;
 #else
-       nist_cp_bn_0(buf, a_d + BN_NIST_224_TOP, top - BN_NIST_224_TOP, BN_NIST_224_TOP);
+       nist_cp_bn_0(buf.bn, a_d + BN_NIST_224_TOP, top - BN_NIST_224_TOP, BN_NIST_224_TOP);
 #endif
 
 #if defined(NIST_INT64) && BN_BITS2!=64
        {
        NIST_INT64              acc;    /* accumulator */
        unsigned int            *rp=(unsigned int *)r_d;
-       const unsigned int      *bp=(const unsigned int *)buf;
+       const unsigned int      *bp=(const unsigned int *)buf.ui;
 
        acc  = rp[0];   acc -= bp[7-7];
                        acc -= bp[11-7]; rp[0] = (unsigned int)acc; acc >>= 32;
@@ -565,13 +568,13 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
        {
        BN_ULONG t_d[BN_NIST_224_TOP];
 
-       nist_set_224(t_d, buf, 10, 9, 8, 7, 0, 0, 0);
+       nist_set_224(t_d, buf.bn, 10, 9, 8, 7, 0, 0, 0);
        carry = (int)bn_add_words(r_d, r_d, t_d, BN_NIST_224_TOP);
-       nist_set_224(t_d, buf, 0, 13, 12, 11, 0, 0, 0);
+       nist_set_224(t_d, buf.bn, 0, 13, 12, 11, 0, 0, 0);
        carry += (int)bn_add_words(r_d, r_d, t_d, BN_NIST_224_TOP);
-       nist_set_224(t_d, buf, 13, 12, 11, 10, 9, 8, 7);
+       nist_set_224(t_d, buf.bn, 13, 12, 11, 10, 9, 8, 7);
        carry -= (int)bn_sub_words(r_d, r_d, t_d, BN_NIST_224_TOP);
-       nist_set_224(t_d, buf, 0, 0, 0, 0, 13, 12, 11);
+       nist_set_224(t_d, buf.bn, 0, 0, 0, 0, 13, 12, 11);
        carry -= (int)bn_sub_words(r_d, r_d, t_d, BN_NIST_224_TOP);
 
 #if BN_BITS2==64
@@ -606,7 +609,8 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
        /* otherwise it's effectively same as in BN_nist_mod_192... */
        mask  = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_224[0],BN_NIST_224_TOP);
        mask &= 0-(PTR_SIZE_INT)carry;
-       res   = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) |
+       res   = c_d;
+       res   = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) |
         ((PTR_SIZE_INT)r_d&mask));
        nist_cp_bn(r_d, res, BN_NIST_224_TOP);
        r->top = BN_NIST_224_TOP;
@@ -805,7 +809,8 @@ int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
 
        mask  = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_256[0],BN_NIST_256_TOP);
        mask &= 0-(PTR_SIZE_INT)carry;
-       res   = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) |
+       res   = c_d;
+       res   = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) |
         ((PTR_SIZE_INT)r_d&mask));
        nist_cp_bn(r_d, res, BN_NIST_256_TOP);
        r->top = BN_NIST_256_TOP;
@@ -1026,7 +1031,8 @@ int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
 
        mask  = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_384[0],BN_NIST_384_TOP);
        mask &= 0-(PTR_SIZE_INT)carry;
-       res   = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) |
+       res   = c_d;
+       res   = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) |
         ((PTR_SIZE_INT)r_d&mask));
        nist_cp_bn(r_d, res, BN_NIST_384_TOP);
        r->top = BN_NIST_384_TOP;
@@ -1092,7 +1098,8 @@ int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
 
        bn_add_words(r_d,r_d,t_d,BN_NIST_521_TOP);
        mask = 0-(PTR_SIZE_INT)bn_sub_words(t_d,r_d,_nist_p_521,BN_NIST_521_TOP);
-       res  = (BN_ULONG *)(((PTR_SIZE_INT)t_d&~mask) |
+       res  = t_d;
+       res  = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) |
         ((PTR_SIZE_INT)r_d&mask));
        nist_cp_bn(r_d,res,BN_NIST_521_TOP);
        r->top = BN_NIST_521_TOP;
diff --git a/deps/openssl/openssl/crypto/buffer/Makefile.save b/deps/openssl/openssl/crypto/buffer/Makefile.save
new file mode 100644 (file)
index 0000000..2efba47
--- /dev/null
@@ -0,0 +1,97 @@
+#
+# OpenSSL/crypto/buffer/Makefile
+#
+
+DIR=   buffer
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= buffer.c buf_str.c buf_err.c
+LIBOBJ= buffer.o buf_str.o buf_err.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= buffer.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+buf_err.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+buf_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+buf_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+buf_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+buf_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+buf_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+buf_err.o: buf_err.c
+buf_str.o: ../../e_os.h ../../include/openssl/bio.h
+buf_str.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+buf_str.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+buf_str.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+buf_str.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+buf_str.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+buf_str.o: ../../include/openssl/symhacks.h ../cryptlib.h buf_str.c
+buffer.o: ../../e_os.h ../../include/openssl/bio.h
+buffer.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+buffer.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+buffer.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+buffer.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+buffer.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+buffer.o: ../../include/openssl/symhacks.h ../cryptlib.h buffer.c
index d7aa79a..d4a4ce4 100644 (file)
@@ -179,14 +179,14 @@ int BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
        return(len);
        }
 
-void BUF_reverse(unsigned char *out, unsigned char *in, size_t size)
+void BUF_reverse(unsigned char *out, const unsigned char *in, size_t size)
        {
        size_t i;
        if (in)
                {
                out += size - 1;
                for (i = 0; i < size; i++)
-                       *in++ = *out--;
+                       *out-- = *in++;
                }
        else
                {
index 178e418..f8da32b 100644 (file)
@@ -88,7 +88,7 @@ int   BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
 char * BUF_strdup(const char *str);
 char * BUF_strndup(const char *str, size_t siz);
 void * BUF_memdup(const void *data, size_t siz);
-void   BUF_reverse(unsigned char *out, unsigned char *in, size_t siz);
+void   BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz);
 
 /* safe string functions */
 size_t BUF_strlcpy(char *dst,const char *src,size_t siz);
diff --git a/deps/openssl/openssl/crypto/camellia/Makefile.save b/deps/openssl/openssl/crypto/camellia/Makefile.save
new file mode 100644 (file)
index 0000000..6ce6fc9
--- /dev/null
@@ -0,0 +1,110 @@
+#
+# crypto/camellia/Makefile
+#
+
+DIR= camellia
+TOP=   ../..
+CC=    cc
+CPP=   $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CMLL_ENC= camellia.o cmll_misc.o cmll_cbc.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+#TEST=camelliatest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=camellia.c cmll_misc.c cmll_ecb.c cmll_cbc.c cmll_ofb.c \
+          cmll_cfb.c cmll_ctr.c cmll_utl.c
+
+LIBOBJ= cmll_ecb.o cmll_ofb.o cmll_cfb.o cmll_ctr.o cmll_utl.o $(CMLL_ENC)
+
+SRC= $(LIBSRC)
+
+EXHEADER= camellia.h
+HEADER= cmll_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+cmll-x86.s:    asm/cmll-x86.pl ../perlasm/x86asm.pl
+       $(PERL) asm/cmll-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+cmll-x86_64.s:  asm/cmll-x86_64.pl
+       $(PERL) asm/cmll-x86_64.pl $(PERLASM_SCHEME) > $@
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+camellia.o: ../../include/openssl/opensslconf.h camellia.c camellia.h
+camellia.o: cmll_locl.h
+cmll_cbc.o: ../../include/openssl/camellia.h ../../include/openssl/modes.h
+cmll_cbc.o: ../../include/openssl/opensslconf.h cmll_cbc.c
+cmll_cfb.o: ../../include/openssl/camellia.h ../../include/openssl/modes.h
+cmll_cfb.o: ../../include/openssl/opensslconf.h cmll_cfb.c
+cmll_ctr.o: ../../include/openssl/camellia.h ../../include/openssl/modes.h
+cmll_ctr.o: ../../include/openssl/opensslconf.h cmll_ctr.c
+cmll_ecb.o: ../../include/openssl/camellia.h
+cmll_ecb.o: ../../include/openssl/opensslconf.h cmll_ecb.c cmll_locl.h
+cmll_misc.o: ../../include/openssl/camellia.h ../../include/openssl/crypto.h
+cmll_misc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+cmll_misc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cmll_misc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cmll_misc.o: ../../include/openssl/symhacks.h cmll_locl.h cmll_misc.c
+cmll_ofb.o: ../../include/openssl/camellia.h ../../include/openssl/modes.h
+cmll_ofb.o: ../../include/openssl/opensslconf.h cmll_ofb.c
+cmll_utl.o: ../../include/openssl/camellia.h ../../include/openssl/crypto.h
+cmll_utl.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+cmll_utl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cmll_utl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cmll_utl.o: ../../include/openssl/symhacks.h cmll_locl.h cmll_utl.c
diff --git a/deps/openssl/openssl/crypto/cast/Makefile.save b/deps/openssl/openssl/crypto/cast/Makefile.save
new file mode 100644 (file)
index 0000000..f3f4859
--- /dev/null
@@ -0,0 +1,102 @@
+#
+# OpenSSL/crypto/cast/Makefile
+#
+
+DIR=   cast
+TOP=   ../..
+CC=    cc
+CPP=   $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CAST_ENC=c_enc.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=casttest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c 
+LIBOBJ=c_skey.o c_ecb.o $(CAST_ENC) c_cfb64.o c_ofb64.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= cast.h
+HEADER=        cast_s.h cast_lcl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+cast-586.s:    asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+       $(PERL) asm/cast-586.pl $(PERLASM_SCHEME) $(CLAGS) $(PROCESSOR) > $@
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+c_cfb64.o: ../../e_os.h ../../include/openssl/cast.h
+c_cfb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+c_cfb64.o: c_cfb64.c cast_lcl.h
+c_ecb.o: ../../e_os.h ../../include/openssl/cast.h
+c_ecb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+c_ecb.o: ../../include/openssl/opensslv.h c_ecb.c cast_lcl.h
+c_enc.o: ../../e_os.h ../../include/openssl/cast.h
+c_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+c_enc.o: c_enc.c cast_lcl.h
+c_ofb64.o: ../../e_os.h ../../include/openssl/cast.h
+c_ofb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+c_ofb64.o: c_ofb64.c cast_lcl.h
+c_skey.o: ../../e_os.h ../../include/openssl/cast.h
+c_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+c_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+c_skey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+c_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+c_skey.o: c_skey.c cast_lcl.h cast_s.h
diff --git a/deps/openssl/openssl/crypto/cmac/Makefile.save b/deps/openssl/openssl/crypto/cmac/Makefile.save
new file mode 100644 (file)
index 0000000..54e7cc3
--- /dev/null
@@ -0,0 +1,111 @@
+#
+# OpenSSL/crypto/cmac/Makefile
+#
+
+DIR=   cmac
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=cmac.c cm_ameth.c cm_pmeth.c
+LIBOBJ=cmac.o cm_ameth.o cm_pmeth.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= cmac.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+cm_ameth.o: ../../e_os.h ../../include/openssl/asn1.h
+cm_ameth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cm_ameth.o: ../../include/openssl/cmac.h ../../include/openssl/crypto.h
+cm_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+cm_ameth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cm_ameth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cm_ameth.o: ../../include/openssl/opensslconf.h
+cm_ameth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cm_ameth.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cm_ameth.o: ../../include/openssl/symhacks.h ../asn1/asn1_locl.h ../cryptlib.h
+cm_ameth.o: cm_ameth.c
+cm_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
+cm_pmeth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cm_pmeth.o: ../../include/openssl/cmac.h ../../include/openssl/conf.h
+cm_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cm_pmeth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+cm_pmeth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cm_pmeth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cm_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cm_pmeth.o: ../../include/openssl/opensslconf.h
+cm_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cm_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+cm_pmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+cm_pmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+cm_pmeth.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+cm_pmeth.o: ../cryptlib.h ../evp/evp_locl.h cm_pmeth.c
+cmac.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+cmac.o: ../../include/openssl/buffer.h ../../include/openssl/cmac.h
+cmac.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cmac.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+cmac.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+cmac.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+cmac.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cmac.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cmac.o: ../../include/openssl/symhacks.h ../cryptlib.h cmac.c
diff --git a/deps/openssl/openssl/crypto/cms/Makefile.save b/deps/openssl/openssl/crypto/cms/Makefile.save
new file mode 100644 (file)
index 0000000..9820adb
--- /dev/null
@@ -0,0 +1,284 @@
+#
+# OpenSSL/crypto/cms/Makefile
+#
+
+DIR=   cms
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= cms_lib.c cms_asn1.c cms_att.c cms_io.c cms_smime.c cms_err.c \
+       cms_sd.c cms_dd.c cms_cd.c cms_env.c cms_enc.c cms_ess.c \
+       cms_pwri.c
+LIBOBJ= cms_lib.o cms_asn1.o cms_att.o cms_io.o cms_smime.o cms_err.o \
+       cms_sd.o cms_dd.o cms_cd.o cms_env.o cms_enc.o cms_ess.o \
+       cms_pwri.o
+
+SRC= $(LIBSRC)
+
+EXHEADER=  cms.h
+HEADER=        cms_lcl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+test:
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+cms_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+cms_asn1.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cms_asn1.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+cms_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+cms_asn1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+cms_asn1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cms_asn1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cms_asn1.o: ../../include/openssl/opensslconf.h
+cms_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_asn1.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+cms_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+cms_asn1.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+cms_asn1.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+cms_asn1.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+cms_asn1.o: cms.h cms_asn1.c cms_lcl.h
+cms_att.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+cms_att.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cms_att.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+cms_att.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+cms_att.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+cms_att.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+cms_att.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+cms_att.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+cms_att.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_att.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+cms_att.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+cms_att.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+cms_att.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+cms_att.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+cms_att.o: cms.h cms_att.c cms_lcl.h
+cms_cd.o: ../../e_os.h ../../include/openssl/asn1.h
+cms_cd.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+cms_cd.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+cms_cd.o: ../../include/openssl/comp.h ../../include/openssl/conf.h
+cms_cd.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cms_cd.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+cms_cd.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_cd.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cms_cd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cms_cd.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+cms_cd.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+cms_cd.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+cms_cd.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+cms_cd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cms_cd.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+cms_cd.o: ../../include/openssl/x509v3.h ../cryptlib.h cms_cd.c cms_lcl.h
+cms_dd.o: ../../e_os.h ../../include/openssl/asn1.h
+cms_dd.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+cms_dd.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+cms_dd.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+cms_dd.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+cms_dd.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+cms_dd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+cms_dd.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+cms_dd.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+cms_dd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_dd.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+cms_dd.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+cms_dd.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+cms_dd.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+cms_dd.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+cms_dd.o: ../cryptlib.h cms_dd.c cms_lcl.h
+cms_enc.o: ../../e_os.h ../../include/openssl/asn1.h
+cms_enc.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+cms_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+cms_enc.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+cms_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+cms_enc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+cms_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+cms_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+cms_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+cms_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_enc.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+cms_enc.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+cms_enc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+cms_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cms_enc.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+cms_enc.o: ../../include/openssl/x509v3.h ../cryptlib.h cms_enc.c cms_lcl.h
+cms_env.o: ../../e_os.h ../../include/openssl/aes.h
+cms_env.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+cms_env.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cms_env.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
+cms_env.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cms_env.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+cms_env.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_env.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cms_env.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cms_env.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+cms_env.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+cms_env.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+cms_env.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+cms_env.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+cms_env.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+cms_env.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+cms_env.o: ../asn1/asn1_locl.h ../cryptlib.h cms_env.c cms_lcl.h
+cms_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+cms_err.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+cms_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cms_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+cms_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cms_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cms_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+cms_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+cms_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+cms_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cms_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+cms_err.o: cms_err.c
+cms_ess.o: ../../e_os.h ../../include/openssl/asn1.h
+cms_ess.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+cms_ess.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+cms_ess.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+cms_ess.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+cms_ess.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+cms_ess.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+cms_ess.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+cms_ess.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+cms_ess.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_ess.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+cms_ess.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+cms_ess.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+cms_ess.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cms_ess.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+cms_ess.o: ../../include/openssl/x509v3.h ../cryptlib.h cms_ess.c cms_lcl.h
+cms_io.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+cms_io.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cms_io.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cms_io.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+cms_io.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_io.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cms_io.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cms_io.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+cms_io.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+cms_io.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+cms_io.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+cms_io.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cms_io.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h cms.h
+cms_io.o: cms_io.c cms_lcl.h
+cms_lib.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+cms_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cms_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cms_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+cms_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cms_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cms_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+cms_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+cms_lib.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+cms_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+cms_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cms_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h cms.h
+cms_lib.o: cms_lcl.h cms_lib.c
+cms_pwri.o: ../../e_os.h ../../include/openssl/aes.h
+cms_pwri.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+cms_pwri.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+cms_pwri.o: ../../include/openssl/cms.h ../../include/openssl/conf.h
+cms_pwri.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cms_pwri.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+cms_pwri.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+cms_pwri.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+cms_pwri.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+cms_pwri.o: ../../include/openssl/opensslconf.h
+cms_pwri.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_pwri.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+cms_pwri.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+cms_pwri.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+cms_pwri.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cms_pwri.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+cms_pwri.o: ../../include/openssl/x509v3.h ../asn1/asn1_locl.h ../cryptlib.h
+cms_pwri.o: cms_lcl.h cms_pwri.c
+cms_sd.o: ../../e_os.h ../../include/openssl/asn1.h
+cms_sd.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+cms_sd.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+cms_sd.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+cms_sd.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+cms_sd.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+cms_sd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+cms_sd.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+cms_sd.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+cms_sd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_sd.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+cms_sd.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+cms_sd.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+cms_sd.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+cms_sd.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+cms_sd.o: ../asn1/asn1_locl.h ../cryptlib.h cms_lcl.h cms_sd.c
+cms_smime.o: ../../e_os.h ../../include/openssl/asn1.h
+cms_smime.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+cms_smime.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+cms_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+cms_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+cms_smime.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+cms_smime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+cms_smime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+cms_smime.o: ../../include/openssl/objects.h
+cms_smime.o: ../../include/openssl/opensslconf.h
+cms_smime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cms_smime.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+cms_smime.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+cms_smime.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+cms_smime.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+cms_smime.o: ../cryptlib.h cms_lcl.h cms_smime.c
index b62d1bf..ba08279 100644 (file)
@@ -465,8 +465,6 @@ int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert)
        pcerts = cms_get0_certificate_choices(cms);
        if (!pcerts)
                return 0;
-       if (!pcerts)
-               return 0;
        for (i = 0; i < sk_CMS_CertificateChoices_num(*pcerts); i++)
                {
                cch = sk_CMS_CertificateChoices_value(*pcerts, i);
diff --git a/deps/openssl/openssl/crypto/comp/Makefile.save b/deps/openssl/openssl/crypto/comp/Makefile.save
new file mode 100644 (file)
index 0000000..efda832
--- /dev/null
@@ -0,0 +1,108 @@
+#
+# OpenSSL/crypto/comp/Makefile
+#
+
+DIR=   comp
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= comp_lib.c comp_err.c \
+       c_rle.c c_zlib.c
+
+LIBOBJ=        comp_lib.o comp_err.o \
+       c_rle.o c_zlib.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= comp.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+c_rle.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+c_rle.o: ../../include/openssl/comp.h ../../include/openssl/crypto.h
+c_rle.o: ../../include/openssl/e_os2.h ../../include/openssl/obj_mac.h
+c_rle.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+c_rle.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+c_rle.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+c_rle.o: ../../include/openssl/symhacks.h c_rle.c
+c_zlib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+c_zlib.o: ../../include/openssl/comp.h ../../include/openssl/crypto.h
+c_zlib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+c_zlib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+c_zlib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+c_zlib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+c_zlib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+c_zlib.o: ../../include/openssl/symhacks.h c_zlib.c
+comp_err.o: ../../include/openssl/bio.h ../../include/openssl/comp.h
+comp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+comp_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+comp_err.o: ../../include/openssl/opensslconf.h
+comp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+comp_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+comp_err.o: ../../include/openssl/symhacks.h comp_err.c
+comp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+comp_lib.o: ../../include/openssl/comp.h ../../include/openssl/crypto.h
+comp_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/obj_mac.h
+comp_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+comp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+comp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+comp_lib.o: ../../include/openssl/symhacks.h comp_lib.c
diff --git a/deps/openssl/openssl/crypto/conf/Makefile.save b/deps/openssl/openssl/crypto/conf/Makefile.save
new file mode 100644 (file)
index 0000000..78bb324
--- /dev/null
@@ -0,0 +1,152 @@
+#
+# OpenSSL/crypto/conf/Makefile
+#
+
+DIR=   conf
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c \
+        conf_mall.c conf_sap.c
+
+LIBOBJ=        conf_err.o conf_lib.o conf_api.o conf_def.o conf_mod.o \
+       conf_mall.o conf_sap.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= conf.h conf_api.h
+HEADER=        conf_def.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+conf_api.o: ../../e_os.h ../../include/openssl/bio.h
+conf_api.o: ../../include/openssl/conf.h ../../include/openssl/conf_api.h
+conf_api.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+conf_api.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+conf_api.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+conf_api.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+conf_api.o: ../../include/openssl/symhacks.h conf_api.c
+conf_def.o: ../../e_os.h ../../include/openssl/bio.h
+conf_def.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+conf_def.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
+conf_def.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+conf_def.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+conf_def.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+conf_def.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+conf_def.o: ../../include/openssl/symhacks.h ../cryptlib.h conf_def.c
+conf_def.o: conf_def.h
+conf_err.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
+conf_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+conf_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+conf_err.o: ../../include/openssl/opensslconf.h
+conf_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+conf_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+conf_err.o: ../../include/openssl/symhacks.h conf_err.c
+conf_lib.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
+conf_lib.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
+conf_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+conf_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+conf_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+conf_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+conf_lib.o: ../../include/openssl/symhacks.h conf_lib.c
+conf_mall.o: ../../e_os.h ../../include/openssl/asn1.h
+conf_mall.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+conf_mall.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+conf_mall.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+conf_mall.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+conf_mall.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+conf_mall.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+conf_mall.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+conf_mall.o: ../../include/openssl/objects.h
+conf_mall.o: ../../include/openssl/opensslconf.h
+conf_mall.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+conf_mall.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+conf_mall.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+conf_mall.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+conf_mall.o: ../../include/openssl/x509_vfy.h ../cryptlib.h conf_mall.c
+conf_mod.o: ../../e_os.h ../../include/openssl/asn1.h
+conf_mod.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+conf_mod.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+conf_mod.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+conf_mod.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+conf_mod.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+conf_mod.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+conf_mod.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+conf_mod.o: ../../include/openssl/opensslconf.h
+conf_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+conf_mod.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+conf_mod.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+conf_mod.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+conf_mod.o: ../../include/openssl/x509_vfy.h ../cryptlib.h conf_mod.c
+conf_sap.o: ../../e_os.h ../../include/openssl/asn1.h
+conf_sap.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+conf_sap.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+conf_sap.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+conf_sap.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+conf_sap.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+conf_sap.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+conf_sap.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+conf_sap.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+conf_sap.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+conf_sap.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+conf_sap.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+conf_sap.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+conf_sap.o: ../../include/openssl/x509_vfy.h ../cryptlib.h conf_sap.c
index 304c6b7..0b77d8b 100644 (file)
@@ -889,7 +889,7 @@ void OPENSSL_showfatal (const char *fmta,...)
 
 #if defined(_WIN32_WINNT) && _WIN32_WINNT>=0x0333
     /* this -------------v--- guards NT-specific calls */
-    if (GetVersion() < 0x80000000 && OPENSSL_isservice() > 0)
+    if (check_winnt() && OPENSSL_isservice() > 0)
     {  HANDLE h = RegisterEventSource(0,_T("OPENSSL"));
        const TCHAR *pmsg=buf;
        ReportEvent(h,EVENTLOG_ERROR_TYPE,0,0,0,1,0,&pmsg,0);
diff --git a/deps/openssl/openssl/crypto/des/Makefile.save b/deps/openssl/openssl/crypto/des/Makefile.save
new file mode 100644 (file)
index 0000000..a6e1001
--- /dev/null
@@ -0,0 +1,279 @@
+#
+# OpenSSL/crypto/des/Makefile
+#
+
+DIR=   des
+TOP=   ../..
+CC=    cc
+CPP=   $(CC) -E
+INCLUDES=-I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+RANLIB=                ranlib
+DES_ENC=       des_enc.o fcrypt_b.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=destest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        cbc_cksm.c cbc_enc.c  cfb64enc.c cfb_enc.c  \
+       ecb3_enc.c ecb_enc.c  enc_read.c enc_writ.c \
+       fcrypt.c ofb64enc.c ofb_enc.c  pcbc_enc.c \
+       qud_cksm.c rand_key.c rpc_enc.c  set_key.c  \
+       des_enc.c fcrypt_b.c \
+       xcbc_enc.c \
+       str2key.c  cfb64ede.c ofb64ede.c ede_cbcm_enc.c des_old.c des_old2.c \
+       read2pwd.c
+
+LIBOBJ= set_key.o  ecb_enc.o  cbc_enc.o \
+       ecb3_enc.o cfb64enc.o cfb64ede.o cfb_enc.o  ofb64ede.o \
+       enc_read.o enc_writ.o ofb64enc.o \
+       ofb_enc.o  str2key.o  pcbc_enc.o qud_cksm.o rand_key.o \
+       ${DES_ENC} \
+       fcrypt.o xcbc_enc.o rpc_enc.o  cbc_cksm.o \
+       ede_cbcm_enc.o des_old.o des_old2.o read2pwd.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= des.h des_old.h
+HEADER=        des_locl.h rpc_des.h spr.h des_ver.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+des: des.o cbc3_enc.o lib
+       $(CC) $(CFLAGS) -o des des.o cbc3_enc.o $(LIB)
+
+des_enc-sparc.S:       asm/des_enc.m4
+       m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S
+
+des-586.s:     asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+       $(PERL) asm/des-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+crypt586.s:    asm/crypt586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+       $(PERL) asm/crypt586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+# We need to use force because 'install' matches 'INSTALL' on case
+# insensitive systems
+FRC.install:
+install: FRC.install
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj des lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+cbc_cksm.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+cbc_cksm.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+cbc_cksm.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+cbc_cksm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cbc_cksm.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+cbc_cksm.o: cbc_cksm.c des_locl.h
+cbc_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+cbc_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+cbc_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+cbc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cbc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+cbc_enc.o: cbc_enc.c des_locl.h ncbc_enc.c
+cfb64ede.o: ../../e_os.h ../../include/openssl/des.h
+cfb64ede.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+cfb64ede.o: ../../include/openssl/opensslconf.h
+cfb64ede.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+cfb64ede.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cfb64ede.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+cfb64ede.o: cfb64ede.c des_locl.h
+cfb64enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+cfb64enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+cfb64enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+cfb64enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+cfb64enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+cfb64enc.o: cfb64enc.c des_locl.h
+cfb_enc.o: ../../e_os.h ../../include/openssl/des.h
+cfb_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+cfb_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/ossl_typ.h
+cfb_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cfb_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+cfb_enc.o: ../../include/openssl/ui_compat.h cfb_enc.c des_locl.h
+des_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+des_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+des_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+des_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+des_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+des_enc.o: des_enc.c des_locl.h ncbc_enc.c spr.h
+des_old.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+des_old.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+des_old.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+des_old.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+des_old.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+des_old.o: ../../include/openssl/ui_compat.h des_old.c
+des_old2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+des_old2.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+des_old2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+des_old2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+des_old2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+des_old2.o: ../../include/openssl/ui_compat.h des_old2.c
+ecb3_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+ecb3_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+ecb3_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ecb3_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ecb3_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+ecb3_enc.o: des_locl.h ecb3_enc.c
+ecb_enc.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+ecb_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+ecb_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+ecb_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecb_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecb_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+ecb_enc.o: ../../include/openssl/ui_compat.h des_locl.h des_ver.h ecb_enc.c
+ede_cbcm_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+ede_cbcm_enc.o: ../../include/openssl/e_os2.h
+ede_cbcm_enc.o: ../../include/openssl/opensslconf.h
+ede_cbcm_enc.o: ../../include/openssl/ossl_typ.h
+ede_cbcm_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ede_cbcm_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+ede_cbcm_enc.o: ../../include/openssl/ui_compat.h des_locl.h ede_cbcm_enc.c
+enc_read.o: ../../e_os.h ../../include/openssl/bio.h
+enc_read.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+enc_read.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+enc_read.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+enc_read.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+enc_read.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+enc_read.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+enc_read.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+enc_read.o: ../../include/openssl/ui_compat.h ../cryptlib.h des_locl.h
+enc_read.o: enc_read.c
+enc_writ.o: ../../e_os.h ../../include/openssl/bio.h
+enc_writ.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+enc_writ.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+enc_writ.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+enc_writ.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+enc_writ.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+enc_writ.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+enc_writ.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+enc_writ.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+enc_writ.o: ../cryptlib.h des_locl.h enc_writ.c
+fcrypt.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+fcrypt.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+fcrypt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+fcrypt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+fcrypt.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+fcrypt.o: des_locl.h fcrypt.c
+fcrypt_b.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+fcrypt_b.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+fcrypt_b.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+fcrypt_b.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+fcrypt_b.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+fcrypt_b.o: des_locl.h fcrypt_b.c
+ofb64ede.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+ofb64ede.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+ofb64ede.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ofb64ede.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ofb64ede.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+ofb64ede.o: des_locl.h ofb64ede.c
+ofb64enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+ofb64enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+ofb64enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ofb64enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ofb64enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+ofb64enc.o: des_locl.h ofb64enc.c
+ofb_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+ofb_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+ofb_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ofb_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ofb_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+ofb_enc.o: des_locl.h ofb_enc.c
+pcbc_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+pcbc_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+pcbc_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+pcbc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pcbc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+pcbc_enc.o: des_locl.h pcbc_enc.c
+qud_cksm.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+qud_cksm.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+qud_cksm.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+qud_cksm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+qud_cksm.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+qud_cksm.o: des_locl.h qud_cksm.c
+rand_key.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+rand_key.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+rand_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+rand_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rand_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+rand_key.o: ../../include/openssl/ui_compat.h rand_key.c
+read2pwd.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
+read2pwd.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+read2pwd.o: ../../include/openssl/opensslconf.h
+read2pwd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+read2pwd.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+read2pwd.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+read2pwd.o: ../../include/openssl/ui_compat.h read2pwd.c
+rpc_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+rpc_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+rpc_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+rpc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rpc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+rpc_enc.o: des_locl.h des_ver.h rpc_des.h rpc_enc.c
+set_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
+set_key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+set_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+set_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+set_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+set_key.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+set_key.o: des_locl.h set_key.c
+str2key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
+str2key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+str2key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+str2key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+str2key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+str2key.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+str2key.o: des_locl.h str2key.c
+xcbc_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+xcbc_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+xcbc_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+xcbc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+xcbc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
+xcbc_enc.o: des_locl.h xcbc_enc.c
diff --git a/deps/openssl/openssl/crypto/dh/Makefile.save b/deps/openssl/openssl/crypto/dh/Makefile.save
new file mode 100644 (file)
index 0000000..f23b4f7
--- /dev/null
@@ -0,0 +1,180 @@
+#
+# OpenSSL/crypto/dh/Makefile
+#
+
+DIR=   dh
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST= dhtest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c dh_depr.c \
+       dh_ameth.c dh_pmeth.c dh_prn.c
+LIBOBJ= dh_asn1.o dh_gen.o dh_key.o dh_lib.o dh_check.o dh_err.o dh_depr.o \
+       dh_ameth.o dh_pmeth.o dh_prn.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= dh.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+dh_ameth.o: ../../e_os.h ../../include/openssl/asn1.h
+dh_ameth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+dh_ameth.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dh_ameth.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
+dh_ameth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+dh_ameth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+dh_ameth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+dh_ameth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+dh_ameth.o: ../../include/openssl/opensslconf.h
+dh_ameth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dh_ameth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+dh_ameth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+dh_ameth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+dh_ameth.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+dh_ameth.o: dh_ameth.c
+dh_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
+dh_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+dh_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+dh_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+dh_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+dh_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+dh_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+dh_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dh_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dh_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_asn1.c
+dh_check.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+dh_check.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dh_check.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
+dh_check.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dh_check.o: ../../include/openssl/opensslconf.h
+dh_check.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dh_check.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dh_check.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_check.c
+dh_depr.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+dh_depr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dh_depr.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
+dh_depr.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dh_depr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dh_depr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dh_depr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dh_depr.o: ../cryptlib.h dh_depr.c
+dh_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+dh_err.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
+dh_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dh_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dh_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dh_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dh_err.o: dh_err.c
+dh_gen.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+dh_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dh_gen.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
+dh_gen.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dh_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dh_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dh_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dh_gen.o: ../cryptlib.h dh_gen.c
+dh_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+dh_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dh_key.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
+dh_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dh_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dh_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+dh_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dh_key.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_key.c
+dh_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+dh_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+dh_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+dh_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+dh_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+dh_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+dh_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+dh_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+dh_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dh_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+dh_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+dh_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dh_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+dh_lib.o: ../cryptlib.h dh_lib.c
+dh_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
+dh_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+dh_pmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+dh_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+dh_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+dh_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+dh_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+dh_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+dh_pmeth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+dh_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dh_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+dh_pmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+dh_pmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+dh_pmeth.o: ../../include/openssl/x509_vfy.h ../cryptlib.h ../evp/evp_locl.h
+dh_pmeth.o: dh_pmeth.c
+dh_prn.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+dh_prn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dh_prn.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
+dh_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+dh_prn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+dh_prn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+dh_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dh_prn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dh_prn.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_prn.c
diff --git a/deps/openssl/openssl/crypto/dsa/Makefile.save b/deps/openssl/openssl/crypto/dsa/Makefile.save
new file mode 100644 (file)
index 0000000..5fef4ca
--- /dev/null
@@ -0,0 +1,209 @@
+#
+# OpenSSL/crypto/dsa/Makefile
+#
+
+DIR=   dsa
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=dsatest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c dsa_sign.c \
+       dsa_err.c dsa_ossl.c dsa_depr.c dsa_ameth.c dsa_pmeth.c dsa_prn.c
+LIBOBJ= dsa_gen.o dsa_key.o dsa_lib.o dsa_asn1.o dsa_vrf.o dsa_sign.o \
+       dsa_err.o dsa_ossl.o dsa_depr.o dsa_ameth.o dsa_pmeth.o dsa_prn.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= dsa.h
+HEADER=        dsa_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+dsa_ameth.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_ameth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+dsa_ameth.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+dsa_ameth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+dsa_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+dsa_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+dsa_ameth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+dsa_ameth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+dsa_ameth.o: ../../include/openssl/objects.h
+dsa_ameth.o: ../../include/openssl/opensslconf.h
+dsa_ameth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dsa_ameth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+dsa_ameth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+dsa_ameth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+dsa_ameth.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+dsa_ameth.o: dsa_ameth.c
+dsa_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+dsa_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_asn1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dsa_asn1.o: ../../include/openssl/opensslconf.h
+dsa_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dsa_asn1.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+dsa_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dsa_asn1.o: ../cryptlib.h dsa_asn1.c
+dsa_depr.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_depr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+dsa_depr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_depr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_depr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+dsa_depr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+dsa_depr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+dsa_depr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dsa_depr.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+dsa_depr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+dsa_depr.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_depr.c
+dsa_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+dsa_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dsa_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dsa_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dsa_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dsa_err.o: dsa_err.c
+dsa_gen.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_gen.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+dsa_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_gen.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+dsa_gen.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+dsa_gen.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+dsa_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dsa_gen.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+dsa_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+dsa_gen.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_gen.c dsa_locl.h
+dsa_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+dsa_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dsa_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dsa_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+dsa_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dsa_key.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_key.c
+dsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+dsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+dsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+dsa_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+dsa_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+dsa_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+dsa_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+dsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+dsa_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+dsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dsa_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+dsa_lib.o: ../cryptlib.h dsa_lib.c
+dsa_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+dsa_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_ossl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_ossl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dsa_ossl.o: ../../include/openssl/opensslconf.h
+dsa_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dsa_ossl.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+dsa_ossl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+dsa_ossl.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_ossl.c
+dsa_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+dsa_pmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+dsa_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+dsa_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+dsa_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+dsa_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+dsa_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+dsa_pmeth.o: ../../include/openssl/objects.h
+dsa_pmeth.o: ../../include/openssl/opensslconf.h
+dsa_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dsa_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+dsa_pmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+dsa_pmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+dsa_pmeth.o: ../../include/openssl/x509_vfy.h ../cryptlib.h ../evp/evp_locl.h
+dsa_pmeth.o: dsa_locl.h dsa_pmeth.c
+dsa_prn.o: ../../e_os.h ../../include/openssl/asn1.h
+dsa_prn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+dsa_prn.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+dsa_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+dsa_prn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+dsa_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+dsa_prn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dsa_prn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dsa_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dsa_prn.o: ../cryptlib.h dsa_prn.c
+dsa_sign.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+dsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_sign.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dsa_sign.o: ../../include/openssl/opensslconf.h
+dsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dsa_sign.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+dsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dsa_sign.o: ../cryptlib.h dsa_sign.c
+dsa_vrf.o: ../../e_os.h ../../include/openssl/bio.h
+dsa_vrf.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dsa_vrf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+dsa_vrf.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dsa_vrf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dsa_vrf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dsa_vrf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dsa_vrf.o: ../cryptlib.h dsa_vrf.c
diff --git a/deps/openssl/openssl/crypto/dso/Makefile.save b/deps/openssl/openssl/crypto/dso/Makefile.save
new file mode 100644 (file)
index 0000000..fb2709e
--- /dev/null
@@ -0,0 +1,150 @@
+#
+# OpenSSL/crypto/dso/Makefile
+#
+
+DIR=   dso
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= dso_dl.c dso_dlfcn.c dso_err.c dso_lib.c dso_null.c \
+       dso_openssl.c dso_win32.c dso_vms.c dso_beos.c
+LIBOBJ= dso_dl.o dso_dlfcn.o dso_err.o dso_lib.o dso_null.o \
+       dso_openssl.o dso_win32.o dso_vms.o dso_beos.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= dso.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+dso_beos.o: ../../e_os.h ../../include/openssl/bio.h
+dso_beos.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_beos.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_beos.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_beos.o: ../../include/openssl/opensslconf.h
+dso_beos.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dso_beos.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dso_beos.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_beos.c
+dso_dl.o: ../../e_os.h ../../include/openssl/bio.h
+dso_dl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_dl.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_dl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_dl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dso_dl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dso_dl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dso_dl.o: ../cryptlib.h dso_dl.c
+dso_dlfcn.o: ../../e_os.h ../../include/openssl/bio.h
+dso_dlfcn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_dlfcn.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_dlfcn.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_dlfcn.o: ../../include/openssl/opensslconf.h
+dso_dlfcn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dso_dlfcn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dso_dlfcn.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_dlfcn.c
+dso_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+dso_err.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dso_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dso_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dso_err.o: dso_err.c
+dso_lib.o: ../../e_os.h ../../include/openssl/bio.h
+dso_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_lib.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dso_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dso_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dso_lib.o: ../cryptlib.h dso_lib.c
+dso_null.o: ../../e_os.h ../../include/openssl/bio.h
+dso_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_null.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_null.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_null.o: ../../include/openssl/opensslconf.h
+dso_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dso_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dso_null.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_null.c
+dso_openssl.o: ../../e_os.h ../../include/openssl/bio.h
+dso_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_openssl.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_openssl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_openssl.o: ../../include/openssl/opensslconf.h
+dso_openssl.o: ../../include/openssl/opensslv.h
+dso_openssl.o: ../../include/openssl/ossl_typ.h
+dso_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dso_openssl.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_openssl.c
+dso_vms.o: ../../e_os.h ../../include/openssl/bio.h
+dso_vms.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_vms.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_vms.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_vms.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+dso_vms.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+dso_vms.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+dso_vms.o: ../cryptlib.h dso_vms.c
+dso_win32.o: ../../e_os.h ../../include/openssl/bio.h
+dso_win32.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+dso_win32.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+dso_win32.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+dso_win32.o: ../../include/openssl/opensslconf.h
+dso_win32.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+dso_win32.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+dso_win32.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_win32.c
diff --git a/deps/openssl/openssl/crypto/ec/Makefile.save b/deps/openssl/openssl/crypto/ec/Makefile.save
new file mode 100644 (file)
index 0000000..f85fc84
--- /dev/null
@@ -0,0 +1,263 @@
+#
+# crypto/ec/Makefile
+#
+
+DIR=   ec
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=ectest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c\
+       ec_err.c ec_curve.c ec_check.c ec_print.c ec_asn1.c ec_key.c\
+       ec2_smpl.c ec2_mult.c ec_ameth.c ec_pmeth.c eck_prn.c \
+       ecp_nistp224.c ecp_nistp256.c ecp_nistp521.c ecp_nistputil.c \
+       ecp_oct.c ec2_oct.c ec_oct.c
+
+LIBOBJ=        ec_lib.o ecp_smpl.o ecp_mont.o ecp_nist.o ec_cvt.o ec_mult.o\
+       ec_err.o ec_curve.o ec_check.o ec_print.o ec_asn1.o ec_key.o\
+       ec2_smpl.o ec2_mult.o ec_ameth.o ec_pmeth.o eck_prn.o \
+       ecp_nistp224.o ecp_nistp256.o ecp_nistp521.o ecp_nistputil.o \
+       ecp_oct.o ec2_oct.o ec_oct.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= ec.h
+HEADER=        ec_lcl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+ec2_mult.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec2_mult.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec2_mult.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec2_mult.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec2_mult.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec2_mult.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec2_mult.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec2_mult.o: ../../include/openssl/symhacks.h ec2_mult.c ec_lcl.h
+ec2_oct.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec2_oct.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec2_oct.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec2_oct.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec2_oct.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec2_oct.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec2_oct.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec2_oct.o: ../../include/openssl/symhacks.h ec2_oct.c ec_lcl.h
+ec2_smpl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec2_smpl.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec2_smpl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec2_smpl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec2_smpl.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec2_smpl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec2_smpl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec2_smpl.o: ../../include/openssl/symhacks.h ec2_smpl.c ec_lcl.h
+ec_ameth.o: ../../e_os.h ../../include/openssl/asn1.h
+ec_ameth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+ec_ameth.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+ec_ameth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ec_ameth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ec_ameth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ec_ameth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ec_ameth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ec_ameth.o: ../../include/openssl/opensslconf.h
+ec_ameth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_ameth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ec_ameth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ec_ameth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ec_ameth.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+ec_ameth.o: ec_ameth.c
+ec_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+ec_asn1.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+ec_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ec_asn1.o: ../../include/openssl/ec.h ../../include/openssl/err.h
+ec_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ec_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ec_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_asn1.o: ../../include/openssl/symhacks.h ec_asn1.c ec_lcl.h
+ec_check.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_check.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_check.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_check.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec_check.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_check.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_check.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_check.o: ../../include/openssl/symhacks.h ec_check.c ec_lcl.h
+ec_curve.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_curve.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_curve.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_curve.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec_curve.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_curve.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_curve.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_curve.o: ../../include/openssl/symhacks.h ec_curve.c ec_lcl.h
+ec_cvt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_cvt.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_cvt.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_cvt.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec_cvt.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_cvt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_cvt.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_cvt.o: ../../include/openssl/symhacks.h ec_cvt.c ec_lcl.h
+ec_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ec_err.o: ../../include/openssl/ec.h ../../include/openssl/err.h
+ec_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+ec_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_err.o: ../../include/openssl/symhacks.h ec_err.c
+ec_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_key.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_key.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_key.o: ../../include/openssl/symhacks.h ec_key.c ec_lcl.h
+ec_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_lib.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_lib.o: ../../include/openssl/symhacks.h ec_lcl.h ec_lib.c
+ec_mult.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_mult.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_mult.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_mult.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec_mult.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_mult.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_mult.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_mult.o: ../../include/openssl/symhacks.h ec_lcl.h ec_mult.c
+ec_oct.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_oct.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_oct.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_oct.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ec_oct.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_oct.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_oct.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_oct.o: ../../include/openssl/symhacks.h ec_lcl.h ec_oct.c
+ec_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
+ec_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+ec_pmeth.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ec_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ec_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ec_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ec_pmeth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ec_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ec_pmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ec_pmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ec_pmeth.o: ../../include/openssl/x509_vfy.h ../cryptlib.h ../evp/evp_locl.h
+ec_pmeth.o: ec_pmeth.c
+ec_print.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ec_print.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ec_print.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ec_print.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ec_print.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ec_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ec_print.o: ../../include/openssl/symhacks.h ec_lcl.h ec_print.c
+eck_prn.o: ../../e_os.h ../../include/openssl/asn1.h
+eck_prn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+eck_prn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+eck_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+eck_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eck_prn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eck_prn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eck_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eck_prn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+eck_prn.o: ../../include/openssl/symhacks.h ../cryptlib.h eck_prn.c
+ecp_mont.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecp_mont.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ecp_mont.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecp_mont.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ecp_mont.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ecp_mont.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecp_mont.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecp_mont.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_mont.c
+ecp_nist.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecp_nist.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ecp_nist.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecp_nist.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ecp_nist.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ecp_nist.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecp_nist.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecp_nist.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_nist.c
+ecp_nistp224.o: ../../include/openssl/opensslconf.h ecp_nistp224.c
+ecp_nistp256.o: ../../include/openssl/opensslconf.h ecp_nistp256.c
+ecp_nistp521.o: ../../include/openssl/opensslconf.h ecp_nistp521.c
+ecp_nistputil.o: ../../include/openssl/opensslconf.h ecp_nistputil.c
+ecp_oct.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecp_oct.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ecp_oct.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecp_oct.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ecp_oct.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ecp_oct.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecp_oct.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecp_oct.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_oct.c
+ecp_smpl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecp_smpl.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ecp_smpl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecp_smpl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ecp_smpl.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
+ecp_smpl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecp_smpl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecp_smpl.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_smpl.c
index 26f4a78..1c575dc 100644 (file)
@@ -208,11 +208,15 @@ static int gf2m_Mxy(const EC_GROUP *group, const BIGNUM *x, const BIGNUM *y, BIG
        return ret;
        }
 
+
 /* Computes scalar*point and stores the result in r.
  * point can not equal r.
- * Uses algorithm 2P of
+ * Uses a modified algorithm 2P of
  *     Lopez, J. and Dahab, R.  "Fast multiplication on elliptic curves over 
  *     GF(2^m) without precomputation" (CHES '99, LNCS 1717).
+ *
+ * To protect against side-channel attack the function uses constant time swap,
+ * avoiding conditional branches.
  */
 static int ec_GF2m_montgomery_point_multiply(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
        const EC_POINT *point, BN_CTX *ctx)
@@ -246,6 +250,11 @@ static int ec_GF2m_montgomery_point_multiply(const EC_GROUP *group, EC_POINT *r,
        x2 = &r->X;
        z2 = &r->Y;
 
+       bn_wexpand(x1, group->field.top);
+       bn_wexpand(z1, group->field.top);
+       bn_wexpand(x2, group->field.top);
+       bn_wexpand(z2, group->field.top);
+
        if (!BN_GF2m_mod_arr(x1, &point->X, group->poly)) goto err; /* x1 = x */
        if (!BN_one(z1)) goto err; /* z1 = 1 */
        if (!group->meth->field_sqr(group, z2, x1, ctx)) goto err; /* z2 = x1^2 = x^2 */
@@ -270,16 +279,12 @@ static int ec_GF2m_montgomery_point_multiply(const EC_GROUP *group, EC_POINT *r,
                word = scalar->d[i];
                while (mask)
                        {
-                       if (word & mask)
-                               {
-                               if (!gf2m_Madd(group, &point->X, x1, z1, x2, z2, ctx)) goto err;
-                               if (!gf2m_Mdouble(group, x2, z2, ctx)) goto err;
-                               }
-                       else
-                               {
-                               if (!gf2m_Madd(group, &point->X, x2, z2, x1, z1, ctx)) goto err;
-                               if (!gf2m_Mdouble(group, x1, z1, ctx)) goto err;
-                               }
+                       BN_consttime_swap(word & mask, x1, x2, group->field.top);
+                       BN_consttime_swap(word & mask, z1, z2, group->field.top);
+                       if (!gf2m_Madd(group, &point->X, x2, z2, x1, z1, ctx)) goto err;
+                       if (!gf2m_Mdouble(group, x1, z1, ctx)) goto err;
+                       BN_consttime_swap(word & mask, x1, x2, group->field.top);
+                       BN_consttime_swap(word & mask, z1, z2, group->field.top);
                        mask >>= 1;
                        }
                mask = BN_TBIT;
index 83909c1..0ce4524 100644 (file)
@@ -88,7 +88,7 @@ static int eckey_param2type(int *pptype, void **ppval, EC_KEY *ec_key)
                if (!pstr)
                        return 0;
                pstr->length = i2d_ECParameters(ec_key, &pstr->data);
-               if (pstr->length < 0)
+               if (pstr->length <= 0)
                        {
                        ASN1_STRING_free(pstr);
                        ECerr(EC_F_ECKEY_PARAM2TYPE, ERR_R_EC_LIB);
index 175eec5..145807b 100644 (file)
@@ -89,7 +89,8 @@ int EC_GROUP_get_trinomial_basis(const EC_GROUP *group, unsigned int *k)
        if (group == NULL)
                return 0;
 
-       if (EC_GROUP_method_of(group)->group_set_curve != ec_GF2m_simple_group_set_curve
+       if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) !=
+           NID_X9_62_characteristic_two_field
            || !((group->poly[0] != 0) && (group->poly[1] != 0) && (group->poly[2] == 0)))
                {
                ECerr(EC_F_EC_GROUP_GET_TRINOMIAL_BASIS, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
@@ -107,7 +108,8 @@ int EC_GROUP_get_pentanomial_basis(const EC_GROUP *group, unsigned int *k1,
        if (group == NULL)
                return 0;
 
-       if (EC_GROUP_method_of(group)->group_set_curve != ec_GF2m_simple_group_set_curve
+       if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) !=
+           NID_X9_62_characteristic_two_field
            || !((group->poly[0] != 0) && (group->poly[1] != 0) && (group->poly[2] != 0) && (group->poly[3] != 0) && (group->poly[4] == 0)))
                {
                ECerr(EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
index 25247b5..de9a0cc 100644 (file)
@@ -480,10 +480,10 @@ int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx)
        if (EC_METHOD_get_field_type(EC_GROUP_method_of(a)) !=
            EC_METHOD_get_field_type(EC_GROUP_method_of(b)))
                return 1;
-       /* compare the curve name (if present) */
+       /* compare the curve name (if present in both) */
        if (EC_GROUP_get_curve_name(a) && EC_GROUP_get_curve_name(b) &&
-           EC_GROUP_get_curve_name(a) == EC_GROUP_get_curve_name(b))
-               return 0;
+           EC_GROUP_get_curve_name(a) != EC_GROUP_get_curve_name(b))
+               return 1;
 
        if (!ctx)
                ctx_new = ctx = BN_CTX_new();
@@ -993,12 +993,12 @@ int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN
        if (group->meth->point_cmp == 0)
                {
                ECerr(EC_F_EC_POINT_CMP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
-               return 0;
+               return -1;
                }
        if ((group->meth != a->meth) || (a->meth != b->meth))
                {
                ECerr(EC_F_EC_POINT_CMP, EC_R_INCOMPATIBLE_OBJECTS);
-               return 0;
+               return -1;
                }
        return group->meth->point_cmp(group, a, b, ctx);
        }
diff --git a/deps/openssl/openssl/crypto/ecdh/Makefile.save b/deps/openssl/openssl/crypto/ecdh/Makefile.save
new file mode 100644 (file)
index 0000000..ba05fea
--- /dev/null
@@ -0,0 +1,116 @@
+#
+# crypto/ecdh/Makefile
+#
+
+DIR=   ecdh
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g -Wall
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=ecdhtest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        ech_lib.c ech_ossl.c ech_key.c ech_err.c
+
+LIBOBJ=        ech_lib.o ech_ossl.o ech_key.o ech_err.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= ecdh.h
+HEADER=        ech_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+ech_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ech_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ech_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ech_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ech_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ech_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ech_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ech_err.o: ech_err.c
+ech_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ech_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ech_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ech_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ech_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ech_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ech_key.o: ech_key.c ech_locl.h
+ech_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ech_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ech_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ech_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ech_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+ech_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ech_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ech_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ech_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ech_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ech_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ech_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ech_lib.o: ech_lib.c ech_locl.h
+ech_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
+ech_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+ech_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ech_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ech_ossl.o: ../../include/openssl/ecdh.h ../../include/openssl/err.h
+ech_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ech_ossl.o: ../../include/openssl/opensslconf.h
+ech_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ech_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ech_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ech_ossl.o: ../cryptlib.h ech_locl.h ech_ossl.c
diff --git a/deps/openssl/openssl/crypto/ecdsa/Makefile.save b/deps/openssl/openssl/crypto/ecdsa/Makefile.save
new file mode 100644 (file)
index 0000000..e89e0c0
--- /dev/null
@@ -0,0 +1,140 @@
+#
+# crypto/ecdsa/Makefile
+#
+
+DIR=   ecdsa
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g -Wall
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=ecdsatest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        ecs_lib.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c ecs_err.c
+
+LIBOBJ=        ecs_lib.o ecs_asn1.o ecs_ossl.o ecs_sign.o ecs_vrf.o ecs_err.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= ecdsa.h
+HEADER=        ecs_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+ecs_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+ecs_asn1.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+ecs_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecs_asn1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ecs_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+ecs_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecs_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecs_asn1.o: ../../include/openssl/symhacks.h ecs_asn1.c ecs_locl.h
+ecs_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecs_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ecs_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdsa.h
+ecs_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+ecs_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ecs_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ecs_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ecs_err.o: ecs_err.c
+ecs_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecs_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+ecs_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ecs_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ecs_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+ecs_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ecs_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ecs_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ecs_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecs_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ecs_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ecs_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ecs_lib.o: ../../include/openssl/x509_vfy.h ecs_lib.c ecs_locl.h
+ecs_ossl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecs_ossl.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+ecs_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecs_ossl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ecs_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ecs_ossl.o: ../../include/openssl/opensslconf.h
+ecs_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecs_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ecs_ossl.o: ../../include/openssl/symhacks.h ecs_locl.h ecs_ossl.c
+ecs_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecs_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ecs_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecs_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ecs_sign.o: ../../include/openssl/engine.h ../../include/openssl/evp.h
+ecs_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ecs_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ecs_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecs_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+ecs_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ecs_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ecs_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ecs_sign.o: ecs_locl.h ecs_sign.c
+ecs_vrf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ecs_vrf.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ecs_vrf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ecs_vrf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ecs_vrf.o: ../../include/openssl/engine.h ../../include/openssl/evp.h
+ecs_vrf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ecs_vrf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ecs_vrf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ecs_vrf.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ecs_vrf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ecs_vrf.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ecs_vrf.o: ../../include/openssl/x509_vfy.h ecs_locl.h ecs_vrf.c
diff --git a/deps/openssl/openssl/crypto/engine/Makefile.save b/deps/openssl/openssl/crypto/engine/Makefile.save
new file mode 100644 (file)
index 0000000..d29bdd0
--- /dev/null
@@ -0,0 +1,447 @@
+#
+# OpenSSL/crypto/engine/Makefile
+#
+
+DIR=   engine
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST= enginetest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c \
+       eng_table.c eng_pkey.c eng_fat.c eng_all.c \
+       tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_ecdh.c tb_rand.c tb_store.c \
+       tb_cipher.c tb_digest.c tb_pkmeth.c tb_asnmth.c \
+       eng_openssl.c eng_cnf.c eng_dyn.c eng_cryptodev.c \
+       eng_rsax.c eng_rdrand.c
+LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \
+       eng_table.o eng_pkey.o eng_fat.o eng_all.o \
+       tb_rsa.o tb_dsa.o tb_ecdsa.o tb_dh.o tb_ecdh.o tb_rand.o tb_store.o \
+       tb_cipher.o tb_digest.o tb_pkmeth.o tb_asnmth.o \
+       eng_openssl.o eng_cnf.o eng_dyn.o eng_cryptodev.o \
+       eng_rsax.o eng_rdrand.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= engine.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+eng_all.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_all.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_all.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eng_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+eng_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+eng_all.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+eng_all.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_all.c eng_int.h
+eng_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_cnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_cnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+eng_cnf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+eng_cnf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+eng_cnf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+eng_cnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+eng_cnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+eng_cnf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+eng_cnf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+eng_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_cnf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_cnf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_cnf.o: ../cryptlib.h eng_cnf.c eng_int.h
+eng_cryptodev.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+eng_cryptodev.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+eng_cryptodev.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_cryptodev.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_cryptodev.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_cryptodev.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+eng_cryptodev.o: ../../include/openssl/obj_mac.h
+eng_cryptodev.o: ../../include/openssl/objects.h
+eng_cryptodev.o: ../../include/openssl/opensslconf.h
+eng_cryptodev.o: ../../include/openssl/opensslv.h
+eng_cryptodev.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+eng_cryptodev.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_cryptodev.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_cryptodev.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_cryptodev.o: eng_cryptodev.c
+eng_ctrl.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_ctrl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_ctrl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_ctrl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_ctrl.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_ctrl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_ctrl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_ctrl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eng_ctrl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_ctrl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+eng_ctrl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+eng_ctrl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+eng_ctrl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_ctrl.c eng_int.h
+eng_dyn.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_dyn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_dyn.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
+eng_dyn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+eng_dyn.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+eng_dyn.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+eng_dyn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+eng_dyn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+eng_dyn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+eng_dyn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+eng_dyn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_dyn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_dyn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_dyn.o: ../cryptlib.h eng_dyn.c eng_int.h
+eng_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+eng_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+eng_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+eng_err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+eng_err.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+eng_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+eng_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+eng_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+eng_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+eng_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_err.o: eng_err.c
+eng_fat.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_fat.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_fat.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+eng_fat.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+eng_fat.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+eng_fat.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+eng_fat.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+eng_fat.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+eng_fat.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+eng_fat.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+eng_fat.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_fat.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_fat.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_fat.o: ../cryptlib.h eng_fat.c eng_int.h
+eng_init.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_init.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_init.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_init.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_init.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_init.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_init.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_init.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eng_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_init.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+eng_init.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+eng_init.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+eng_init.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_init.c eng_int.h
+eng_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eng_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+eng_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_lib.o: ../cryptlib.h eng_int.h eng_lib.c
+eng_list.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_list.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_list.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_list.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_list.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_list.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_list.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_list.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eng_list.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_list.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+eng_list.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+eng_list.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+eng_list.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h eng_list.c
+eng_openssl.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_openssl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+eng_openssl.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
+eng_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+eng_openssl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+eng_openssl.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+eng_openssl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+eng_openssl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+eng_openssl.o: ../../include/openssl/opensslconf.h
+eng_openssl.o: ../../include/openssl/opensslv.h
+eng_openssl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+eng_openssl.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+eng_openssl.o: ../../include/openssl/rand.h ../../include/openssl/rc4.h
+eng_openssl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+eng_openssl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+eng_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+eng_openssl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_openssl.c
+eng_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eng_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+eng_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+eng_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+eng_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h eng_pkey.c
+eng_rdrand.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+eng_rdrand.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+eng_rdrand.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+eng_rdrand.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+eng_rdrand.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+eng_rdrand.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+eng_rdrand.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+eng_rdrand.o: ../../include/openssl/opensslconf.h
+eng_rdrand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_rdrand.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+eng_rdrand.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_rdrand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_rdrand.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_rdrand.o: eng_rdrand.c
+eng_rsax.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+eng_rsax.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+eng_rsax.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_rsax.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_rsax.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_rsax.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_rsax.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_rsax.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+eng_rsax.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_rsax.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+eng_rsax.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+eng_rsax.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+eng_rsax.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+eng_rsax.o: eng_rsax.c
+eng_table.o: ../../e_os.h ../../include/openssl/asn1.h
+eng_table.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+eng_table.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+eng_table.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+eng_table.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+eng_table.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+eng_table.o: ../../include/openssl/objects.h
+eng_table.o: ../../include/openssl/opensslconf.h
+eng_table.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+eng_table.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+eng_table.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+eng_table.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+eng_table.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
+eng_table.o: eng_table.c
+tb_asnmth.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_asnmth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_asnmth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_asnmth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_asnmth.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_asnmth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_asnmth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_asnmth.o: ../../include/openssl/objects.h
+tb_asnmth.o: ../../include/openssl/opensslconf.h
+tb_asnmth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_asnmth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_asnmth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_asnmth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_asnmth.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+tb_asnmth.o: eng_int.h tb_asnmth.c
+tb_cipher.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_cipher.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_cipher.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_cipher.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_cipher.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_cipher.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_cipher.o: ../../include/openssl/objects.h
+tb_cipher.o: ../../include/openssl/opensslconf.h
+tb_cipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_cipher.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_cipher.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_cipher.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_cipher.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
+tb_cipher.o: tb_cipher.c
+tb_dh.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+tb_dh.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+tb_dh.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+tb_dh.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+tb_dh.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+tb_dh.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+tb_dh.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+tb_dh.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+tb_dh.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+tb_dh.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+tb_dh.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+tb_dh.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+tb_dh.o: ../cryptlib.h eng_int.h tb_dh.c
+tb_digest.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_digest.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_digest.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_digest.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_digest.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_digest.o: ../../include/openssl/objects.h
+tb_digest.o: ../../include/openssl/opensslconf.h
+tb_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_digest.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_digest.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
+tb_digest.o: tb_digest.c
+tb_dsa.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+tb_dsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+tb_dsa.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+tb_dsa.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+tb_dsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+tb_dsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+tb_dsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+tb_dsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+tb_dsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+tb_dsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+tb_dsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+tb_dsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+tb_dsa.o: ../cryptlib.h eng_int.h tb_dsa.c
+tb_ecdh.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_ecdh.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_ecdh.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_ecdh.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_ecdh.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_ecdh.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_ecdh.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_ecdh.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tb_ecdh.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_ecdh.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_ecdh.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_ecdh.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_ecdh.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_ecdh.c
+tb_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_ecdsa.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_ecdsa.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_ecdsa.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_ecdsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tb_ecdsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_ecdsa.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_ecdsa.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_ecdsa.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_ecdsa.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_ecdsa.c
+tb_pkmeth.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_pkmeth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_pkmeth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_pkmeth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_pkmeth.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_pkmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_pkmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_pkmeth.o: ../../include/openssl/objects.h
+tb_pkmeth.o: ../../include/openssl/opensslconf.h
+tb_pkmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_pkmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_pkmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_pkmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_pkmeth.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h
+tb_pkmeth.o: tb_pkmeth.c
+tb_rand.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_rand.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_rand.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_rand.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_rand.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_rand.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_rand.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_rand.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tb_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_rand.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_rand.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_rand.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_rand.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_rand.c
+tb_rsa.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+tb_rsa.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+tb_rsa.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+tb_rsa.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+tb_rsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+tb_rsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+tb_rsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+tb_rsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+tb_rsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+tb_rsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+tb_rsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+tb_rsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+tb_rsa.o: ../cryptlib.h eng_int.h tb_rsa.c
+tb_store.o: ../../e_os.h ../../include/openssl/asn1.h
+tb_store.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+tb_store.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+tb_store.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+tb_store.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+tb_store.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+tb_store.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+tb_store.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+tb_store.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+tb_store.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+tb_store.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+tb_store.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+tb_store.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h tb_store.c
index 27846ed..95c8589 100644 (file)
@@ -408,6 +408,7 @@ ENGINE *ENGINE_by_id(const char *id)
                                !ENGINE_ctrl_cmd_string(iterator, "DIR_LOAD", "2", 0) ||
                                !ENGINE_ctrl_cmd_string(iterator, "DIR_ADD",
                                        load_dir, 0) ||
+                               !ENGINE_ctrl_cmd_string(iterator, "LIST_ADD", "1", 0) ||
                                !ENGINE_ctrl_cmd_string(iterator, "LOAD", NULL, 0))
                                goto notfound;
                return iterator;
index a9ba5ae..4e9e91d 100644 (file)
@@ -104,6 +104,7 @@ static int bind_helper(ENGINE *e)
        {
        if (!ENGINE_set_id(e, engine_e_rdrand_id) ||
            !ENGINE_set_name(e, engine_e_rdrand_name) ||
+            !ENGINE_set_flags(e, ENGINE_FLAGS_NO_REGISTER_ALL) ||
            !ENGINE_set_init_function(e, rdrand_init) ||
            !ENGINE_set_RAND(e, &rdrand_meth) )
                return 0;
diff --git a/deps/openssl/openssl/crypto/err/Makefile.save b/deps/openssl/openssl/crypto/err/Makefile.save
new file mode 100644 (file)
index 0000000..862b23b
--- /dev/null
@@ -0,0 +1,110 @@
+#
+# OpenSSL/crypto/err/Makefile
+#
+
+DIR=   err
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=err.c err_all.c err_prn.c
+LIBOBJ=err.o err_all.o err_prn.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= err.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+err.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/buffer.h
+err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+err.o: ../cryptlib.h err.c
+err_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+err_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+err_all.o: ../../include/openssl/cms.h ../../include/openssl/comp.h
+err_all.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+err_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+err_all.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+err_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+err_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+err_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+err_all.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+err_all.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
+err_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+err_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem2.h
+err_all.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+err_all.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+err_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+err_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+err_all.o: ../../include/openssl/ts.h ../../include/openssl/ui.h
+err_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+err_all.o: ../../include/openssl/x509v3.h err_all.c
+err_prn.o: ../../e_os.h ../../include/openssl/bio.h
+err_prn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+err_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+err_prn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+err_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+err_prn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+err_prn.o: ../../include/openssl/symhacks.h ../cryptlib.h err_prn.c
index 1e46ceb..5d0c6b7 100644 (file)
@@ -67,7 +67,7 @@ files:
 links:
        @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
        @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
-       [ ! -f $(TESTDATA) ] || cp $(TESTDATA) ../../test
+       @[ -f $(TESTDATA) ] && cp $(TESTDATA) ../../test && echo "$(TESTDATA) -> ../../test/$(TESTDATA)"
        @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
 
 install:
diff --git a/deps/openssl/openssl/crypto/evp/Makefile.save b/deps/openssl/openssl/crypto/evp/Makefile.save
new file mode 100644 (file)
index 0000000..5d0c6b7
--- /dev/null
@@ -0,0 +1,776 @@
+#
+# OpenSSL/crypto/evp/Makefile
+#
+
+DIR=   evp
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=evp_test.c
+TESTDATA=evptests.txt
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c evp_cnf.c \
+       e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c\
+       e_rc4.c e_aes.c names.c e_seed.c \
+       e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
+       m_null.c m_md2.c m_md4.c m_md5.c m_sha.c m_sha1.c m_wp.c \
+       m_dss.c m_dss1.c m_mdc2.c m_ripemd.c m_ecdsa.c\
+       p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \
+       bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
+       c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
+       evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c \
+       e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c evp_fips.c \
+       e_aes_cbc_hmac_sha1.c e_rc4_hmac_md5.c
+
+LIBOBJ=        encode.o digest.o evp_enc.o evp_key.o evp_acnf.o evp_cnf.o \
+       e_des.o e_bf.o e_idea.o e_des3.o e_camellia.o\
+       e_rc4.o e_aes.o names.o e_seed.o \
+       e_xcbc_d.o e_rc2.o e_cast.o e_rc5.o \
+       m_null.o m_md2.o m_md4.o m_md5.o m_sha.o m_sha1.o m_wp.o \
+       m_dss.o m_dss1.o m_mdc2.o m_ripemd.o m_ecdsa.o\
+       p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o \
+       bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o \
+       c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \
+       evp_pkey.o evp_pbe.o p5_crpt.o p5_crpt2.o \
+       e_old.o pmeth_lib.o pmeth_fn.o pmeth_gn.o m_sigver.o evp_fips.o \
+       e_aes_cbc_hmac_sha1.o e_rc4_hmac_md5.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= evp.h
+HEADER=        evp_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @[ -f $(TESTDATA) ] && cp $(TESTDATA) ../../test && echo "$(TESTDATA) -> ../../test/$(TESTDATA)"
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+bio_b64.o: ../../e_os.h ../../include/openssl/asn1.h
+bio_b64.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+bio_b64.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+bio_b64.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+bio_b64.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+bio_b64.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+bio_b64.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bio_b64.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_b64.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_b64.c
+bio_enc.o: ../../e_os.h ../../include/openssl/asn1.h
+bio_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+bio_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+bio_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+bio_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+bio_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+bio_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+bio_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_enc.c
+bio_md.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+bio_md.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bio_md.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bio_md.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+bio_md.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+bio_md.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+bio_md.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+bio_md.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+bio_md.o: ../cryptlib.h bio_md.c
+bio_ok.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+bio_ok.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+bio_ok.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+bio_ok.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+bio_ok.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+bio_ok.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+bio_ok.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+bio_ok.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_ok.o: ../../include/openssl/symhacks.h ../cryptlib.h bio_ok.c
+c_all.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+c_all.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+c_all.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+c_all.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+c_all.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+c_all.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+c_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+c_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+c_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+c_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+c_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+c_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+c_all.o: ../cryptlib.h c_all.c
+c_allc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+c_allc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+c_allc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+c_allc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+c_allc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+c_allc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+c_allc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+c_allc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+c_allc.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+c_allc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+c_allc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+c_allc.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+c_allc.o: ../cryptlib.h c_allc.c
+c_alld.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+c_alld.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+c_alld.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+c_alld.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+c_alld.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+c_alld.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+c_alld.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+c_alld.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+c_alld.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+c_alld.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+c_alld.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+c_alld.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+c_alld.o: ../cryptlib.h c_alld.c
+digest.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+digest.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+digest.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+digest.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+digest.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+digest.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+digest.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+digest.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+digest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+digest.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+digest.o: ../cryptlib.h digest.c
+e_aes.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
+e_aes.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+e_aes.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_aes.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_aes.o: ../../include/openssl/modes.h ../../include/openssl/obj_mac.h
+e_aes.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+e_aes.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_aes.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+e_aes.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+e_aes.o: ../modes/modes_lcl.h e_aes.c evp_locl.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/bio.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/crypto.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/e_os2.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/evp.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/obj_mac.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/objects.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/opensslconf.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/opensslv.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/ossl_typ.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/safestack.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/sha.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/stack.h
+e_aes_cbc_hmac_sha1.o: ../../include/openssl/symhacks.h e_aes_cbc_hmac_sha1.c
+e_aes_cbc_hmac_sha1.o: evp_locl.h
+e_bf.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_bf.o: ../../include/openssl/blowfish.h ../../include/openssl/buffer.h
+e_bf.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+e_bf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+e_bf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+e_bf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+e_bf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_bf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_bf.o: ../../include/openssl/symhacks.h ../cryptlib.h e_bf.c evp_locl.h
+e_camellia.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_camellia.o: ../../include/openssl/camellia.h ../../include/openssl/crypto.h
+e_camellia.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_camellia.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_camellia.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+e_camellia.o: ../../include/openssl/opensslconf.h
+e_camellia.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_camellia.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_camellia.o: ../../include/openssl/symhacks.h e_camellia.c evp_locl.h
+e_cast.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_cast.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
+e_cast.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+e_cast.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+e_cast.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+e_cast.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+e_cast.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_cast.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_cast.o: ../../include/openssl/symhacks.h ../cryptlib.h e_cast.c evp_locl.h
+e_des.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_des.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+e_des.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+e_des.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_des.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_des.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+e_des.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+e_des.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+e_des.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_des.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+e_des.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des.c evp_locl.h
+e_des3.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_des3.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+e_des3.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+e_des3.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_des3.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_des3.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+e_des3.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+e_des3.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+e_des3.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_des3.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+e_des3.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des3.c evp_locl.h
+e_idea.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_idea.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+e_idea.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_idea.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
+e_idea.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+e_idea.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+e_idea.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_idea.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_idea.o: ../../include/openssl/symhacks.h ../cryptlib.h e_idea.c evp_locl.h
+e_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+e_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_null.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_null.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+e_null.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+e_null.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+e_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+e_null.o: ../cryptlib.h e_null.c
+e_old.o: e_old.c
+e_rc2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_rc2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+e_rc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_rc2.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_rc2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+e_rc2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+e_rc2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
+e_rc2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_rc2.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc2.c evp_locl.h
+e_rc4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_rc4.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+e_rc4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_rc4.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_rc4.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+e_rc4.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+e_rc4.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc4.h
+e_rc4.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_rc4.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc4.c evp_locl.h
+e_rc4_hmac_md5.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_rc4_hmac_md5.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+e_rc4_hmac_md5.o: ../../include/openssl/evp.h ../../include/openssl/md5.h
+e_rc4_hmac_md5.o: ../../include/openssl/obj_mac.h
+e_rc4_hmac_md5.o: ../../include/openssl/objects.h
+e_rc4_hmac_md5.o: ../../include/openssl/opensslconf.h
+e_rc4_hmac_md5.o: ../../include/openssl/opensslv.h
+e_rc4_hmac_md5.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc4.h
+e_rc4_hmac_md5.o: ../../include/openssl/safestack.h
+e_rc4_hmac_md5.o: ../../include/openssl/stack.h
+e_rc4_hmac_md5.o: ../../include/openssl/symhacks.h e_rc4_hmac_md5.c
+e_rc5.o: ../../e_os.h ../../include/openssl/bio.h
+e_rc5.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+e_rc5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_rc5.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+e_rc5.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_rc5.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_rc5.o: ../../include/openssl/symhacks.h ../cryptlib.h e_rc5.c
+e_seed.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_seed.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+e_seed.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+e_seed.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+e_seed.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+e_seed.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_seed.o: ../../include/openssl/safestack.h ../../include/openssl/seed.h
+e_seed.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+e_seed.o: e_seed.c evp_locl.h
+e_xcbc_d.o: ../../e_os.h ../../include/openssl/asn1.h
+e_xcbc_d.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+e_xcbc_d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
+e_xcbc_d.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+e_xcbc_d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+e_xcbc_d.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+e_xcbc_d.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+e_xcbc_d.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_xcbc_d.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_xcbc_d.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+e_xcbc_d.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_xcbc_d.c
+e_xcbc_d.o: evp_locl.h
+encode.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+encode.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+encode.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+encode.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+encode.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+encode.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+encode.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+encode.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+encode.o: ../cryptlib.h encode.c
+evp_acnf.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_acnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+evp_acnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+evp_acnf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+evp_acnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+evp_acnf.o: ../../include/openssl/opensslconf.h
+evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+evp_acnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+evp_acnf.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_acnf.c
+evp_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_cnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+evp_cnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+evp_cnf.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+evp_cnf.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+evp_cnf.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_cnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+evp_cnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+evp_cnf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+evp_cnf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+evp_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+evp_cnf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+evp_cnf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+evp_cnf.o: ../../include/openssl/x509v3.h ../cryptlib.h evp_cnf.c
+evp_enc.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+evp_enc.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+evp_enc.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+evp_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+evp_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+evp_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+evp_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+evp_enc.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+evp_enc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+evp_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+evp_enc.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+evp_enc.o: ../cryptlib.h evp_enc.c evp_locl.h
+evp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+evp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+evp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+evp_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+evp_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+evp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+evp_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+evp_err.o: ../../include/openssl/symhacks.h evp_err.c
+evp_fips.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+evp_fips.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+evp_fips.o: ../../include/openssl/evp.h ../../include/openssl/obj_mac.h
+evp_fips.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+evp_fips.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+evp_fips.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+evp_fips.o: ../../include/openssl/symhacks.h evp_fips.c
+evp_key.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_key.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+evp_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+evp_key.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_key.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+evp_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+evp_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+evp_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+evp_key.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+evp_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+evp_key.o: ../../include/openssl/ui.h ../../include/openssl/x509.h
+evp_key.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_key.c
+evp_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+evp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+evp_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+evp_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+evp_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+evp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+evp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+evp_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_lib.c
+evp_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_pbe.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+evp_pbe.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+evp_pbe.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_pbe.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+evp_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+evp_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+evp_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
+evp_pbe.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+evp_pbe.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+evp_pbe.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+evp_pbe.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h evp_pbe.c
+evp_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
+evp_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+evp_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+evp_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+evp_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+evp_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+evp_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+evp_pkey.o: ../../include/openssl/opensslconf.h
+evp_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+evp_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+evp_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+evp_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+evp_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+evp_pkey.o: ../asn1/asn1_locl.h ../cryptlib.h evp_pkey.c
+m_dss.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_dss.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_dss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+m_dss.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_dss.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+m_dss.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+m_dss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_dss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+m_dss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+m_dss.o: ../cryptlib.h m_dss.c
+m_dss1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_dss1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_dss1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+m_dss1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_dss1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+m_dss1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+m_dss1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_dss1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+m_dss1.o: ../cryptlib.h m_dss1.c
+m_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h
+m_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+m_ecdsa.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+m_ecdsa.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+m_ecdsa.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+m_ecdsa.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+m_ecdsa.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+m_ecdsa.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+m_ecdsa.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+m_ecdsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+m_ecdsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+m_ecdsa.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+m_ecdsa.o: ../cryptlib.h m_ecdsa.c
+m_md2.o: ../../e_os.h ../../include/openssl/bio.h
+m_md2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_md2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+m_md2.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+m_md2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_md2.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+m_md2.o: ../../include/openssl/symhacks.h ../cryptlib.h m_md2.c
+m_md4.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_md4.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_md4.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+m_md4.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+m_md4.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_md4.o: ../../include/openssl/lhash.h ../../include/openssl/md4.h
+m_md4.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+m_md4.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+m_md4.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+m_md4.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+m_md4.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+m_md4.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+m_md4.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_md4.c
+m_md5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_md5.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_md5.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+m_md5.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+m_md5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_md5.o: ../../include/openssl/lhash.h ../../include/openssl/md5.h
+m_md5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+m_md5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+m_md5.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+m_md5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+m_md5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+m_md5.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+m_md5.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_md5.c
+m_mdc2.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_mdc2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_mdc2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+m_mdc2.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+m_mdc2.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+m_mdc2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_mdc2.o: ../../include/openssl/lhash.h ../../include/openssl/mdc2.h
+m_mdc2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+m_mdc2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+m_mdc2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+m_mdc2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+m_mdc2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+m_mdc2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+m_mdc2.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
+m_mdc2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h m_mdc2.c
+m_null.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_null.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+m_null.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+m_null.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_null.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+m_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+m_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_null.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+m_null.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+m_null.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+m_null.o: ../../include/openssl/x509_vfy.h ../cryptlib.h m_null.c
+m_ripemd.o: ../../e_os.h ../../include/openssl/asn1.h
+m_ripemd.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+m_ripemd.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+m_ripemd.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+m_ripemd.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+m_ripemd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+m_ripemd.o: ../../include/openssl/opensslconf.h
+m_ripemd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_ripemd.o: ../../include/openssl/pkcs7.h ../../include/openssl/ripemd.h
+m_ripemd.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+m_ripemd.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+m_ripemd.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+m_ripemd.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h
+m_ripemd.o: m_ripemd.c
+m_sha.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_sha.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_sha.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+m_sha.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+m_sha.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_sha.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+m_sha.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+m_sha.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_sha.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+m_sha.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+m_sha.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+m_sha.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+m_sha.o: ../cryptlib.h evp_locl.h m_sha.c
+m_sha1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_sha1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+m_sha1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+m_sha1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+m_sha1.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+m_sha1.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
+m_sha1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+m_sha1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+m_sha1.o: ../cryptlib.h m_sha1.c
+m_sigver.o: ../../e_os.h ../../include/openssl/asn1.h
+m_sigver.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+m_sigver.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+m_sigver.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+m_sigver.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+m_sigver.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+m_sigver.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+m_sigver.o: ../../include/openssl/opensslconf.h
+m_sigver.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_sigver.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+m_sigver.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+m_sigver.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+m_sigver.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h
+m_sigver.o: m_sigver.c
+m_wp.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+m_wp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+m_wp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+m_wp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+m_wp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+m_wp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+m_wp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+m_wp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+m_wp.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+m_wp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+m_wp.o: ../../include/openssl/symhacks.h ../../include/openssl/whrlpool.h
+m_wp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+m_wp.o: ../cryptlib.h evp_locl.h m_wp.c
+names.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+names.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+names.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+names.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+names.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+names.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+names.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+names.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+names.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+names.o: ../../include/openssl/x509_vfy.h ../cryptlib.h names.c
+p5_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
+p5_crpt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p5_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p5_crpt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p5_crpt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p5_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p5_crpt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+p5_crpt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+p5_crpt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p5_crpt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p5_crpt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p5_crpt.o: ../cryptlib.h p5_crpt.c
+p5_crpt2.o: ../../e_os.h ../../include/openssl/asn1.h
+p5_crpt2.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p5_crpt2.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p5_crpt2.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p5_crpt2.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
+p5_crpt2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p5_crpt2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p5_crpt2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p5_crpt2.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p5_crpt2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p5_crpt2.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p5_crpt2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_locl.h
+p5_crpt2.o: p5_crpt2.c
+p_dec.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+p_dec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p_dec.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p_dec.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p_dec.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_dec.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+p_dec.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+p_dec.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p_dec.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p_dec.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_dec.c
+p_enc.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+p_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p_enc.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_enc.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+p_enc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+p_enc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p_enc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_enc.c
+p_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+p_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
+p_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+p_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+p_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+p_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+p_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p_lib.o: ../asn1/asn1_locl.h ../cryptlib.h p_lib.c
+p_open.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+p_open.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p_open.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p_open.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p_open.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p_open.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p_open.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_open.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+p_open.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p_open.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p_open.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p_open.o: ../cryptlib.h p_open.c
+p_seal.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+p_seal.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p_seal.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p_seal.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p_seal.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+p_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+p_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_seal.c
+p_sign.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+p_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_sign.c
+p_verify.o: ../../e_os.h ../../include/openssl/asn1.h
+p_verify.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p_verify.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p_verify.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p_verify.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p_verify.o: ../../include/openssl/opensslconf.h
+p_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p_verify.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p_verify.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_verify.c
+pmeth_fn.o: ../../e_os.h ../../include/openssl/asn1.h
+pmeth_fn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pmeth_fn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pmeth_fn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pmeth_fn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pmeth_fn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pmeth_fn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pmeth_fn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+pmeth_fn.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
+pmeth_fn.o: pmeth_fn.c
+pmeth_gn.o: ../../e_os.h ../../include/openssl/asn1.h
+pmeth_gn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+pmeth_gn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+pmeth_gn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+pmeth_gn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pmeth_gn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pmeth_gn.o: ../../include/openssl/opensslconf.h
+pmeth_gn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pmeth_gn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+pmeth_gn.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_locl.h
+pmeth_gn.o: pmeth_gn.c
+pmeth_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+pmeth_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pmeth_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pmeth_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pmeth_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+pmeth_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pmeth_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pmeth_lib.o: ../../include/openssl/objects.h
+pmeth_lib.o: ../../include/openssl/opensslconf.h
+pmeth_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pmeth_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pmeth_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pmeth_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pmeth_lib.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+pmeth_lib.o: evp_locl.h pmeth_lib.c
index 72a2a67..ac6d441 100644 (file)
@@ -264,7 +264,7 @@ static int b64_read(BIO *b, char *out, int outl)
                                }
 
                        /* we fell off the end without starting */
-                       if (j == i)
+                       if ((j == i) && (num == 0))
                                {
                                /* Is this is one long chunk?, if so, keep on
                                 * reading until a new line. */
index 6fc469f..d14e8e4 100644 (file)
@@ -366,8 +366,11 @@ int EVP_Digest(const void *data, size_t count,
 
 void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx)
        {
-       EVP_MD_CTX_cleanup(ctx);
-       OPENSSL_free(ctx);
+       if (ctx)
+               {
+               EVP_MD_CTX_cleanup(ctx);
+               OPENSSL_free(ctx);
+               }
        }
 
 /* This call frees resources associated with the context */
index 1bfb5d9..c7869b6 100644 (file)
@@ -842,7 +842,10 @@ static int aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
                        gctx->ctr = NULL;
                        break;
                        }
+               else
 #endif
+               (void)0;        /* terminate potentially open 'else' */
+
                AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks);
                CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f)AES_encrypt);
 #ifdef AES_CTR_ASM
@@ -1083,14 +1086,17 @@ static int aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
                        xctx->xts.block1 = (block128_f)vpaes_decrypt;
                        }
 
-               vpaes_set_encrypt_key(key + ctx->key_len/2,
+                   vpaes_set_encrypt_key(key + ctx->key_len/2,
                                                ctx->key_len * 4, &xctx->ks2);
-               xctx->xts.block2 = (block128_f)vpaes_encrypt;
+                   xctx->xts.block2 = (block128_f)vpaes_encrypt;
 
-               xctx->xts.key1 = &xctx->ks1;
-               break;
-               }
+                   xctx->xts.key1 = &xctx->ks1;
+                   break;
+                   }
+               else
 #endif
+               (void)0;        /* terminate potentially open 'else' */
+
                if (enc)
                        {
                        AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1);
index 483e04b..fb2c884 100644 (file)
@@ -328,10 +328,11 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
 
                                if (res!=SHA_CBLOCK) continue;
 
-                               mask = 0-((inp_len+8-j)>>(sizeof(j)*8-1));
+                               /* j is not incremented yet */
+                               mask = 0-((inp_len+7-j)>>(sizeof(j)*8-1));
                                data->u[SHA_LBLOCK-1] |= bitlen&mask;
                                sha1_block_data_order(&key->md,data,1);
-                               mask &= 0-((j-inp_len-73)>>(sizeof(j)*8-1));
+                               mask &= 0-((j-inp_len-72)>>(sizeof(j)*8-1));
                                pmac->u[0] |= key->md.h0 & mask;
                                pmac->u[1] |= key->md.h1 & mask;
                                pmac->u[2] |= key->md.h2 & mask;
index 1e69972..8d7b7de 100644 (file)
@@ -101,7 +101,7 @@ static int des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
 static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
                              const unsigned char *in, size_t inl)
 {
-       if (inl>=EVP_MAXCHUNK)
+       while (inl>=EVP_MAXCHUNK)
                {
                DES_ede3_ofb64_encrypt(in, out, (long)EVP_MAXCHUNK,
                               &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3,
@@ -132,7 +132,7 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
        printf("\n");
        }
 #endif    /* KSSL_DEBUG */
-       if (inl>=EVP_MAXCHUNK)
+       while (inl>=EVP_MAXCHUNK)
                {
                DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK,
                             &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3,
@@ -151,7 +151,7 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
 static int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
                              const unsigned char *in, size_t inl)
 {
-       if (inl>=EVP_MAXCHUNK)
+       while (inl>=EVP_MAXCHUNK)
                {
                DES_ede3_cfb64_encrypt(in, out, (long)EVP_MAXCHUNK, 
                               &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3,
index 975d004..fe3c6c8 100644 (file)
@@ -85,19 +85,24 @@ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen,
        unsigned char digtmp[EVP_MAX_MD_SIZE], *p, itmp[4];
        int cplen, j, k, tkeylen, mdlen;
        unsigned long i = 1;
-       HMAC_CTX hctx;
+       HMAC_CTX hctx_tpl, hctx;
 
        mdlen = EVP_MD_size(digest);
        if (mdlen < 0)
                return 0;
 
-       HMAC_CTX_init(&hctx);
+       HMAC_CTX_init(&hctx_tpl);
        p = out;
        tkeylen = keylen;
        if(!pass)
                passlen = 0;
        else if(passlen == -1)
                passlen = strlen(pass);
+       if (!HMAC_Init_ex(&hctx_tpl, pass, passlen, digest, NULL))
+               {
+               HMAC_CTX_cleanup(&hctx_tpl);
+               return 0;
+               }
        while(tkeylen)
                {
                if(tkeylen > mdlen)
@@ -111,19 +116,36 @@ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen,
                itmp[1] = (unsigned char)((i >> 16) & 0xff);
                itmp[2] = (unsigned char)((i >> 8) & 0xff);
                itmp[3] = (unsigned char)(i & 0xff);
-               if (!HMAC_Init_ex(&hctx, pass, passlen, digest, NULL)
-                       || !HMAC_Update(&hctx, salt, saltlen)
-                       || !HMAC_Update(&hctx, itmp, 4)
-                       || !HMAC_Final(&hctx, digtmp, NULL))
+               if (!HMAC_CTX_copy(&hctx, &hctx_tpl))
                        {
+                       HMAC_CTX_cleanup(&hctx_tpl);
+                       return 0;
+                       }
+               if (!HMAC_Update(&hctx, salt, saltlen)
+                   || !HMAC_Update(&hctx, itmp, 4)
+                   || !HMAC_Final(&hctx, digtmp, NULL))
+                       {
+                       HMAC_CTX_cleanup(&hctx_tpl);
                        HMAC_CTX_cleanup(&hctx);
                        return 0;
                        }
+               HMAC_CTX_cleanup(&hctx);
                memcpy(p, digtmp, cplen);
                for(j = 1; j < iter; j++)
                        {
-                       HMAC(digest, pass, passlen,
-                                digtmp, mdlen, digtmp, NULL);
+                       if (!HMAC_CTX_copy(&hctx, &hctx_tpl))
+                               {
+                               HMAC_CTX_cleanup(&hctx_tpl);
+                               return 0;
+                               }
+                       if (!HMAC_Update(&hctx, digtmp, mdlen)
+                           || !HMAC_Final(&hctx, digtmp, NULL))
+                               {
+                               HMAC_CTX_cleanup(&hctx_tpl);
+                               HMAC_CTX_cleanup(&hctx);
+                               return 0;
+                               }
+                       HMAC_CTX_cleanup(&hctx);
                        for(k = 0; k < cplen; k++)
                                p[k] ^= digtmp[k];
                        }
@@ -131,7 +153,7 @@ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen,
                i++;
                p+= cplen;
                }
-       HMAC_CTX_cleanup(&hctx);
+       HMAC_CTX_cleanup(&hctx_tpl);
 #ifdef DEBUG_PKCS5V2
        fprintf(stderr, "Password:\n");
        h__dump (pass, passlen);
diff --git a/deps/openssl/openssl/crypto/hmac/Makefile.save b/deps/openssl/openssl/crypto/hmac/Makefile.save
new file mode 100644 (file)
index 0000000..0e91709
--- /dev/null
@@ -0,0 +1,110 @@
+#
+# OpenSSL/crypto/md/Makefile
+#
+
+DIR=   hmac
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=hmactest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=hmac.c hm_ameth.c hm_pmeth.c
+LIBOBJ=hmac.o hm_ameth.o hm_pmeth.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= hmac.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+hm_ameth.o: ../../e_os.h ../../include/openssl/asn1.h
+hm_ameth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+hm_ameth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+hm_ameth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+hm_ameth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+hm_ameth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+hm_ameth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+hm_ameth.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+hm_ameth.o: ../../include/openssl/symhacks.h ../asn1/asn1_locl.h ../cryptlib.h
+hm_ameth.o: hm_ameth.c
+hm_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
+hm_pmeth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+hm_pmeth.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+hm_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+hm_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+hm_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+hm_pmeth.o: ../../include/openssl/hmac.h ../../include/openssl/lhash.h
+hm_pmeth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+hm_pmeth.o: ../../include/openssl/opensslconf.h
+hm_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+hm_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+hm_pmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+hm_pmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+hm_pmeth.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+hm_pmeth.o: ../cryptlib.h ../evp/evp_locl.h hm_pmeth.c
+hmac.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+hmac.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+hmac.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+hmac.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
+hmac.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+hmac.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+hmac.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+hmac.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+hmac.o: ../../include/openssl/symhacks.h ../cryptlib.h hmac.c
diff --git a/deps/openssl/openssl/crypto/idea/Makefile.save b/deps/openssl/openssl/crypto/idea/Makefile.save
new file mode 100644 (file)
index 0000000..8af0acd
--- /dev/null
@@ -0,0 +1,89 @@
+#
+# OpenSSL/crypto/idea/Makefile
+#
+
+DIR=   idea
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=ideatest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c
+LIBOBJ=i_cbc.o i_cfb64.o i_ofb64.o i_ecb.o i_skey.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= idea.h
+HEADER=        idea_lcl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+i_cbc.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
+i_cbc.o: i_cbc.c idea_lcl.h
+i_cfb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
+i_cfb64.o: i_cfb64.c idea_lcl.h
+i_ecb.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
+i_ecb.o: ../../include/openssl/opensslv.h i_ecb.c idea_lcl.h
+i_ofb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
+i_ofb64.o: i_ofb64.c idea_lcl.h
+i_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+i_skey.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
+i_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+i_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+i_skey.o: ../../include/openssl/symhacks.h i_skey.c idea_lcl.h
diff --git a/deps/openssl/openssl/crypto/krb5/Makefile.save b/deps/openssl/openssl/crypto/krb5/Makefile.save
new file mode 100644 (file)
index 0000000..1407739
--- /dev/null
@@ -0,0 +1,84 @@
+#
+# OpenSSL/krb5/Makefile
+#
+
+DIR=   krb5
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= krb5_asn.c
+
+LIBOBJ= krb5_asn.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= krb5_asn.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+krb5_asn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+krb5_asn.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+krb5_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/krb5_asn.h
+krb5_asn.o: ../../include/openssl/opensslconf.h
+krb5_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+krb5_asn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+krb5_asn.o: ../../include/openssl/symhacks.h krb5_asn.c
diff --git a/deps/openssl/openssl/crypto/lhash/Makefile.save b/deps/openssl/openssl/crypto/lhash/Makefile.save
new file mode 100644 (file)
index 0000000..82bddac
--- /dev/null
@@ -0,0 +1,88 @@
+#
+# OpenSSL/crypto/lhash/Makefile
+#
+
+DIR=   lhash
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=lhash.c lh_stats.c
+LIBOBJ=lhash.o lh_stats.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= lhash.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+lh_stats.o: ../../e_os.h ../../include/openssl/bio.h
+lh_stats.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+lh_stats.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+lh_stats.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+lh_stats.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+lh_stats.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+lh_stats.o: ../../include/openssl/symhacks.h ../cryptlib.h lh_stats.c
+lhash.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+lhash.o: ../../include/openssl/e_os2.h ../../include/openssl/lhash.h
+lhash.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+lhash.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+lhash.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h lhash.c
diff --git a/deps/openssl/openssl/crypto/md4/Makefile.save b/deps/openssl/openssl/crypto/md4/Makefile.save
new file mode 100644 (file)
index 0000000..e6f1e44
--- /dev/null
@@ -0,0 +1,89 @@
+#
+# OpenSSL/crypto/md4/Makefile
+#
+
+DIR=    md4
+TOP=    ../..
+CC=     cc
+CPP=    $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=       Makefile
+AR=             ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=md4test.c
+APPS=md4.c
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=md4_dgst.c md4_one.c
+LIBOBJ=md4_dgst.o md4_one.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= md4.h
+HEADER= md4_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:    lib
+
+lib:    $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+       rm -f ../../include/openssl/$(EXHEADER) ../../test/$(TEST) ../../apps/$(APPS)
+
+clean:
+       rm -f asm/mx86unix.cpp *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+md4_dgst.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+md4_dgst.o: ../../include/openssl/md4.h ../../include/openssl/opensslconf.h
+md4_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+md4_dgst.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+md4_dgst.o: ../../include/openssl/symhacks.h ../md32_common.h md4_dgst.c
+md4_dgst.o: md4_locl.h
+md4_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+md4_one.o: ../../include/openssl/md4.h ../../include/openssl/opensslconf.h
+md4_one.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+md4_one.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+md4_one.o: ../../include/openssl/symhacks.h md4_one.c
diff --git a/deps/openssl/openssl/crypto/md5/Makefile.save b/deps/openssl/openssl/crypto/md5/Makefile.save
new file mode 100644 (file)
index 0000000..b9e2ce9
--- /dev/null
@@ -0,0 +1,102 @@
+#
+# OpenSSL/crypto/md5/Makefile
+#
+
+DIR=    md5
+TOP=    ../..
+CC=     cc
+CPP=    $(CC) -E
+INCLUDES=-I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=       Makefile
+AR=             ar r
+
+MD5_ASM_OBJ=
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=md5test.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=md5_dgst.c md5_one.c
+LIBOBJ=md5_dgst.o md5_one.o $(MD5_ASM_OBJ)
+
+SRC= $(LIBSRC)
+
+EXHEADER= md5.h
+HEADER= md5_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:    lib
+
+lib:    $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+md5-586.s:     asm/md5-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/md5-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+
+md5-x86_64.s:  asm/md5-x86_64.pl
+       $(PERL) asm/md5-x86_64.pl $(PERLASM_SCHEME) > $@
+
+md5-ia64.s: asm/md5-ia64.S
+       $(CC) $(CFLAGS) -E asm/md5-ia64.S | \
+       $(PERL) -ne 's/;\s+/;\n/g; print;' > $@
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+md5_dgst.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+md5_dgst.o: ../../include/openssl/md5.h ../../include/openssl/opensslconf.h
+md5_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+md5_dgst.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+md5_dgst.o: ../../include/openssl/symhacks.h ../md32_common.h md5_dgst.c
+md5_dgst.o: md5_locl.h
+md5_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+md5_one.o: ../../include/openssl/md5.h ../../include/openssl/opensslconf.h
+md5_one.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+md5_one.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+md5_one.o: ../../include/openssl/symhacks.h md5_one.c
diff --git a/deps/openssl/openssl/crypto/mdc2/Makefile.save b/deps/openssl/openssl/crypto/mdc2/Makefile.save
new file mode 100644 (file)
index 0000000..1415531
--- /dev/null
@@ -0,0 +1,93 @@
+#
+# OpenSSL/crypto/mdc2/Makefile
+#
+
+DIR=   mdc2
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST= mdc2test.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=mdc2dgst.c mdc2_one.c
+LIBOBJ=mdc2dgst.o mdc2_one.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= mdc2.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+mdc2_one.o: ../../e_os.h ../../include/openssl/bio.h
+mdc2_one.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+mdc2_one.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
+mdc2_one.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+mdc2_one.o: ../../include/openssl/lhash.h ../../include/openssl/mdc2.h
+mdc2_one.o: ../../include/openssl/opensslconf.h
+mdc2_one.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+mdc2_one.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+mdc2_one.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+mdc2_one.o: ../../include/openssl/ui_compat.h ../cryptlib.h mdc2_one.c
+mdc2dgst.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
+mdc2dgst.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+mdc2dgst.o: ../../include/openssl/mdc2.h ../../include/openssl/opensslconf.h
+mdc2dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+mdc2dgst.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+mdc2dgst.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+mdc2dgst.o: ../../include/openssl/ui_compat.h mdc2dgst.c
index c825b12..3d8bafd 100644 (file)
@@ -53,7 +53,10 @@ ghash-x86_64.s:      asm/ghash-x86_64.pl
 ghash-sparcv9.s:       asm/ghash-sparcv9.pl
        $(PERL) asm/ghash-sparcv9.pl $@ $(CFLAGS)
 ghash-alpha.s: asm/ghash-alpha.pl
-       $(PERL) $< | $(CC) -E - | tee $@ > /dev/null
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) asm/ghash-alpha.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
+
 ghash-parisc.s:        asm/ghash-parisc.pl
        $(PERL) asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
 
diff --git a/deps/openssl/openssl/crypto/modes/Makefile.save b/deps/openssl/openssl/crypto/modes/Makefile.save
new file mode 100644 (file)
index 0000000..3d8bafd
--- /dev/null
@@ -0,0 +1,144 @@
+#
+# OpenSSL/crypto/modes/Makefile
+#
+
+DIR=   modes
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+MODES_ASM_OBJ=
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c \
+       ccm128.c xts128.c
+LIBOBJ= cbc128.o ctr128.o cts128.o cfb128.o ofb128.o gcm128.o \
+       ccm128.o xts128.o $(MODES_ASM_OBJ)
+
+SRC= $(LIBSRC)
+
+#EXHEADER= store.h str_compat.h
+EXHEADER= modes.h
+HEADER=        modes_lcl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+ghash-ia64.s:  asm/ghash-ia64.pl
+       $(PERL) asm/ghash-ia64.pl $@ $(CFLAGS)
+ghash-x86.s:   asm/ghash-x86.pl
+       $(PERL) asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+ghash-x86_64.s:        asm/ghash-x86_64.pl
+       $(PERL) asm/ghash-x86_64.pl $(PERLASM_SCHEME) > $@
+ghash-sparcv9.s:       asm/ghash-sparcv9.pl
+       $(PERL) asm/ghash-sparcv9.pl $@ $(CFLAGS)
+ghash-alpha.s: asm/ghash-alpha.pl
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) asm/ghash-alpha.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
+
+ghash-parisc.s:        asm/ghash-parisc.pl
+       $(PERL) asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+ghash-%.S:     asm/ghash-%.pl; $(PERL) $< $(PERLASM_SCHEME) $@
+
+ghash-armv4.o: ghash-armv4.S
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+cbc128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cbc128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+cbc128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cbc128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cbc128.o: ../../include/openssl/symhacks.h cbc128.c modes_lcl.h
+ccm128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ccm128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+ccm128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ccm128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ccm128.o: ../../include/openssl/symhacks.h ccm128.c modes_lcl.h
+cfb128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cfb128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+cfb128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cfb128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cfb128.o: ../../include/openssl/symhacks.h cfb128.c modes_lcl.h
+ctr128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ctr128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+ctr128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ctr128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ctr128.o: ../../include/openssl/symhacks.h ctr128.c modes_lcl.h
+cts128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+cts128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+cts128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+cts128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+cts128.o: ../../include/openssl/symhacks.h cts128.c modes_lcl.h
+gcm128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+gcm128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+gcm128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gcm128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+gcm128.o: ../../include/openssl/symhacks.h gcm128.c modes_lcl.h
+ofb128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ofb128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+ofb128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ofb128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ofb128.o: ../../include/openssl/symhacks.h modes_lcl.h ofb128.c
+xts128.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+xts128.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+xts128.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+xts128.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+xts128.o: ../../include/openssl/symhacks.h modes_lcl.h xts128.c
index 6358b27..aa36029 100644 (file)
@@ -266,8 +266,8 @@ gcm_gmult_4bit:
        ldq     $Xlo,8($Xi)
        ldq     $Xhi,0($Xi)
 
-       br      $rem_4bit,.Lpic1
-.Lpic1:        lda     $rem_4bit,rem_4bit-.Lpic1($rem_4bit)
+       bsr     $t0,picmeup
+       nop
 ___
 
        &loop();
@@ -341,8 +341,8 @@ gcm_ghash_4bit:
        ldq     $Xhi,0($Xi)
        ldq     $Xlo,8($Xi)
 
-       br      $rem_4bit,.Lpic2
-.Lpic2:        lda     $rem_4bit,rem_4bit-.Lpic2($rem_4bit)
+       bsr     $t0,picmeup
+       nop
 
 .Louter:
        extql   $inhi,$inp,$inhi
@@ -436,11 +436,20 @@ $code.=<<___;
 .end   gcm_ghash_4bit
 
 .align 4
+.ent   picmeup
+picmeup:
+       .frame  sp,0,$t0
+       .prologue 0
+       br      $rem_4bit,.Lpic
+.Lpic: lda     $rem_4bit,12($rem_4bit)
+       ret     ($t0)
+.end   picmeup
+       nop
 rem_4bit:
-       .quad   0x0000<<48, 0x1C20<<48, 0x3840<<48, 0x2460<<48
-       .quad   0x7080<<48, 0x6CA0<<48, 0x48C0<<48, 0x54E0<<48
-       .quad   0xE100<<48, 0xFD20<<48, 0xD940<<48, 0xC560<<48
-       .quad   0x9180<<48, 0x8DA0<<48, 0xA9C0<<48, 0xB5E0<<48
+       .long   0,0x0000<<16, 0,0x1C20<<16, 0,0x3840<<16, 0,0x2460<<16
+       .long   0,0x7080<<16, 0,0x6CA0<<16, 0,0x48C0<<16, 0,0x54E0<<16
+       .long   0,0xE100<<16, 0,0xFD20<<16, 0,0xD940<<16, 0,0xC560<<16
+       .long   0,0x9180<<16, 0,0x8DA0<<16, 0,0xA9C0<<16, 0,0xB5E0<<16
 .ascii "GHASH for Alpha, CRYPTOGAMS by <appro\@openssl.org>"
 .align 4
 
index 8c7454e..d5ad96b 100644 (file)
@@ -724,6 +724,7 @@ foreach (split("\n",$code)) {
                s/cmpb,\*/comb,/;
                s/,\*/,/;
        }
+       s/\bbv\b/bve/   if ($SIZE_T==8);
        print $_,"\n";
 }
 
index 3d3782c..0e54f75 100644 (file)
@@ -117,7 +117,7 @@ void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
                        unsigned char ivec[16], block128_f block)
 {
        size_t n;
-       union { size_t align; unsigned char c[16]; } tmp;
+       union { size_t t[16/sizeof(size_t)]; unsigned char c[16]; } tmp;
 
        assert(in && out && key && ivec);
 
@@ -137,11 +137,13 @@ void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
                                out += 16;
                        }
                }
-               else {
+               else  if (16%sizeof(size_t) == 0) { /* always true */
                        while (len>=16) {
+                               size_t *out_t=(size_t *)out, *iv_t=(size_t *)iv;
+
                                (*block)(in, out, key);
-                               for(n=0; n<16; n+=sizeof(size_t))
-                                       *(size_t *)(out+n) ^= *(size_t *)(iv+n);
+                               for(n=0; n<16/sizeof(size_t); n++)
+                                       out_t[n] ^= iv_t[n];
                                iv = in;
                                len -= 16;
                                in  += 16;
@@ -165,15 +167,16 @@ void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
                                out += 16;
                        }
                }
-               else {
-                       size_t c;
+               else if (16%sizeof(size_t) == 0) { /* always true */
                        while (len>=16) {
+                               size_t c, *out_t=(size_t *)out, *ivec_t=(size_t *)ivec;
+                               const size_t *in_t=(const size_t *)in;
+
                                (*block)(in, tmp.c, key);
-                               for(n=0; n<16; n+=sizeof(size_t)) {
-                                       c = *(size_t *)(in+n);
-                                       *(size_t *)(out+n) =
-                                       *(size_t *)(tmp.c+n) ^ *(size_t *)(ivec+n);
-                                       *(size_t *)(ivec+n) = c;
+                               for(n=0; n<16/sizeof(size_t); n++) {
+                                       c = in_t[n];
+                                       out_t[n] = tmp.t[n] ^ ivec_t[n];
+                                       ivec_t[n] = c;
                                }
                                len -= 16;
                                in  += 16;
index c9b35e5..3ce11d0 100644 (file)
@@ -87,7 +87,7 @@ int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx,
                ctx->nonce.c[11] = (u8)(mlen>>(32%(sizeof(mlen)*8)));
        }
        else
-               *(u32*)(&ctx->nonce.c[8]) = 0;
+               ctx->nonce.u[1] = 0;
 
        ctx->nonce.c[12] = (u8)(mlen>>24);
        ctx->nonce.c[13] = (u8)(mlen>>16);
index c0e1f36..2d583de 100644 (file)
@@ -108,12 +108,8 @@ size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out,
        (*cbc)(in,out-16,residue,key,ivec,1);
        memcpy(out,tmp.c,residue);
 #else
-       {
-       size_t n;
-       for (n=0; n<16; n+=sizeof(size_t))
-               *(size_t *)(tmp.c+n) = 0;
+       memset(tmp.c,0,sizeof(tmp));
        memcpy(tmp.c,in,residue);
-       }
        memcpy(out,out-16,residue);
        (*cbc)(tmp.c,out-16,16,key,ivec,1);
 #endif
@@ -144,12 +140,8 @@ size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out,
 #if defined(CBC_HANDLES_TRUNCATED_IO)
        (*cbc)(in,out-16+residue,residue,key,ivec,1);
 #else
-       {
-       size_t n;
-       for (n=0; n<16; n+=sizeof(size_t))
-               *(size_t *)(tmp.c+n) = 0;
+       memset(tmp.c,0,sizeof(tmp));
        memcpy(tmp.c,in,residue);
-       }
        (*cbc)(tmp.c,out-16+residue,16,key,ivec,1);
 #endif
        return len+residue;
@@ -177,8 +169,7 @@ size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, unsigned char *out,
 
        (*block)(in,tmp.c+16,key);
 
-       for (n=0; n<16; n+=sizeof(size_t))
-               *(size_t *)(tmp.c+n) = *(size_t *)(tmp.c+16+n);
+       memcpy(tmp.c,tmp.c+16,16);
        memcpy(tmp.c,in+16,residue);
        (*block)(tmp.c,tmp.c,key);
 
@@ -220,8 +211,7 @@ size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *o
 
        (*block)(in+residue,tmp.c+16,key);
 
-       for (n=0; n<16; n+=sizeof(size_t))
-               *(size_t *)(tmp.c+n) = *(size_t *)(tmp.c+16+n);
+       memcpy(tmp.c,tmp.c+16,16);
        memcpy(tmp.c,in,residue);
        (*block)(tmp.c,tmp.c,key);
 
@@ -240,7 +230,7 @@ size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *o
 size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
                        size_t len, const void *key,
                        unsigned char ivec[16], cbc128_f cbc)
-{      size_t residue, n;
+{      size_t residue;
        union { size_t align; unsigned char c[32]; } tmp;
 
        assert (in && out && key && ivec);
@@ -257,8 +247,7 @@ size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
                out += len;
        }
 
-       for (n=16; n<32; n+=sizeof(size_t))
-               *(size_t *)(tmp.c+n) = 0;
+       memset(tmp.c,0,sizeof(tmp));
        /* this places in[16] at &tmp.c[16] and decrypted block at &tmp.c[0] */
        (*cbc)(in,tmp.c,16,key,tmp.c+16,0);
 
@@ -275,7 +264,7 @@ size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
 size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out,
                        size_t len, const void *key,
                        unsigned char ivec[16], cbc128_f cbc)
-{      size_t residue, n;
+{      size_t residue;
        union { size_t align; unsigned char c[32]; } tmp;
 
        assert (in && out && key && ivec);
@@ -297,8 +286,7 @@ size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out,
                out += len;
        }
 
-       for (n=16; n<32; n+=sizeof(size_t))
-               *(size_t *)(tmp.c+n) = 0;
+       memset(tmp.c,0,sizeof(tmp));
        /* this places in[16] at &tmp.c[16] and decrypted block at &tmp.c[0] */
        (*cbc)(in+residue,tmp.c,16,key,tmp.c+16,0);
 
index 0e6ff8b..e1dc2b0 100644 (file)
@@ -810,7 +810,11 @@ void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx,const unsigned char *iv,size_t len)
                GCM_MUL(ctx,Yi);
 
                if (is_endian.little)
+#ifdef BSWAP4
+                       ctr = BSWAP4(ctx->Yi.d[3]);
+#else
                        ctr = GETU32(ctx->Yi.c+12);
+#endif
                else
                        ctr = ctx->Yi.d[3];
        }
@@ -818,7 +822,11 @@ void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx,const unsigned char *iv,size_t len)
        (*ctx->block)(ctx->Yi.c,ctx->EK0.c,ctx->key);
        ++ctr;
        if (is_endian.little)
+#ifdef BSWAP4
+               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                PUTU32(ctx->Yi.c+12,ctr);
+#endif
        else
                ctx->Yi.d[3] = ctr;
 }
@@ -913,7 +921,11 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
        }
 
        if (is_endian.little)
+#ifdef BSWAP4
+               ctr = BSWAP4(ctx->Yi.d[3]);
+#else
                ctr = GETU32(ctx->Yi.c+12);
+#endif
        else
                ctr = ctx->Yi.d[3];
 
@@ -941,15 +953,21 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
                    size_t j=GHASH_CHUNK;
 
                    while (j) {
+                       size_t *out_t=(size_t *)out;
+                       const size_t *in_t=(const size_t *)in;
+
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
-                       for (i=0; i<16; i+=sizeof(size_t))
-                               *(size_t *)(out+i) =
-                               *(size_t *)(in+i)^*(size_t *)(ctx->EKi.c+i);
+                       for (i=0; i<16/sizeof(size_t); ++i)
+                               out_t[i] = in_t[i] ^ ctx->EKi.t[i];
                        out += 16;
                        in  += 16;
                        j   -= 16;
@@ -961,15 +979,21 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
                    size_t j=i;
 
                    while (len>=16) {
+                       size_t *out_t=(size_t *)out;
+                       const size_t *in_t=(const size_t *)in;
+
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
-                       for (i=0; i<16; i+=sizeof(size_t))
-                               *(size_t *)(out+i) =
-                               *(size_t *)(in+i)^*(size_t *)(ctx->EKi.c+i);
+                       for (i=0; i<16/sizeof(size_t); ++i)
+                               out_t[i] = in_t[i] ^ ctx->EKi.t[i];
                        out += 16;
                        in  += 16;
                        len -= 16;
@@ -978,16 +1002,22 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
                }
 #else
                while (len>=16) {
+                       size_t *out_t=(size_t *)out;
+                       const size_t *in_t=(const size_t *)in;
+
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
-                       for (i=0; i<16; i+=sizeof(size_t))
-                               *(size_t *)(ctx->Xi.c+i) ^=
-                               *(size_t *)(out+i) =
-                               *(size_t *)(in+i)^*(size_t *)(ctx->EKi.c+i);
+                       for (i=0; i<16/sizeof(size_t); ++i)
+                               ctx->Xi.t[i] ^=
+                               out_t[i] = in_t[i]^ctx->EKi.t[i];
                        GCM_MUL(ctx,Xi);
                        out += 16;
                        in  += 16;
@@ -998,7 +1028,11 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
                        while (len--) {
@@ -1016,7 +1050,11 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
                }
@@ -1060,7 +1098,11 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
        }
 
        if (is_endian.little)
+#ifdef BSWAP4
+               ctr = BSWAP4(ctx->Yi.d[3]);
+#else
                ctr = GETU32(ctx->Yi.c+12);
+#endif
        else
                ctr = ctx->Yi.d[3];
 
@@ -1091,15 +1133,21 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
 
                    GHASH(ctx,in,GHASH_CHUNK);
                    while (j) {
+                       size_t *out_t=(size_t *)out;
+                       const size_t *in_t=(const size_t *)in;
+
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
-                       for (i=0; i<16; i+=sizeof(size_t))
-                               *(size_t *)(out+i) =
-                               *(size_t *)(in+i)^*(size_t *)(ctx->EKi.c+i);
+                       for (i=0; i<16/sizeof(size_t); ++i)
+                               out_t[i] = in_t[i]^ctx->EKi.t[i];
                        out += 16;
                        in  += 16;
                        j   -= 16;
@@ -1109,15 +1157,21 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
                if ((i = (len&(size_t)-16))) {
                    GHASH(ctx,in,i);
                    while (len>=16) {
+                       size_t *out_t=(size_t *)out;
+                       const size_t *in_t=(const size_t *)in;
+
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
-                       for (i=0; i<16; i+=sizeof(size_t))
-                               *(size_t *)(out+i) =
-                               *(size_t *)(in+i)^*(size_t *)(ctx->EKi.c+i);
+                       for (i=0; i<16/sizeof(size_t); ++i)
+                               out_t[i] = in_t[i]^ctx->EKi.t[i];
                        out += 16;
                        in  += 16;
                        len -= 16;
@@ -1125,16 +1179,23 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
                }
 #else
                while (len>=16) {
+                       size_t *out_t=(size_t *)out;
+                       const size_t *in_t=(const size_t *)in;
+
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
-                       for (i=0; i<16; i+=sizeof(size_t)) {
-                               size_t c = *(size_t *)(in+i);
-                               *(size_t *)(out+i) = c^*(size_t *)(ctx->EKi.c+i);
-                               *(size_t *)(ctx->Xi.c+i) ^= c;
+                       for (i=0; i<16/sizeof(size_t); ++i) {
+                               size_t c = in[i];
+                               out[i] = c^ctx->EKi.t[i];
+                               ctx->Xi.t[i] ^= c;
                        }
                        GCM_MUL(ctx,Xi);
                        out += 16;
@@ -1146,7 +1207,11 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
                        while (len--) {
@@ -1167,7 +1232,11 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
                        (*block)(ctx->Yi.c,ctx->EKi.c,key);
                        ++ctr;
                        if (is_endian.little)
+#ifdef BSWAP4
+                               ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                                PUTU32(ctx->Yi.c+12,ctr);
+#endif
                        else
                                ctx->Yi.d[3] = ctr;
                }
@@ -1212,7 +1281,11 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,
        }
 
        if (is_endian.little)
+#ifdef BSWAP4
+               ctr = BSWAP4(ctx->Yi.d[3]);
+#else
                ctr = GETU32(ctx->Yi.c+12);
+#endif
        else
                ctr = ctx->Yi.d[3];
 
@@ -1234,7 +1307,11 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,
                (*stream)(in,out,GHASH_CHUNK/16,key,ctx->Yi.c);
                ctr += GHASH_CHUNK/16;
                if (is_endian.little)
+#ifdef BSWAP4
+                       ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                        PUTU32(ctx->Yi.c+12,ctr);
+#endif
                else
                        ctx->Yi.d[3] = ctr;
                GHASH(ctx,out,GHASH_CHUNK);
@@ -1249,7 +1326,11 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,
                (*stream)(in,out,j,key,ctx->Yi.c);
                ctr += (unsigned int)j;
                if (is_endian.little)
+#ifdef BSWAP4
+                       ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                        PUTU32(ctx->Yi.c+12,ctr);
+#endif
                else
                        ctx->Yi.d[3] = ctr;
                in  += i;
@@ -1269,7 +1350,11 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,
                (*ctx->block)(ctx->Yi.c,ctx->EKi.c,key);
                ++ctr;
                if (is_endian.little)
+#ifdef BSWAP4
+                       ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                        PUTU32(ctx->Yi.c+12,ctr);
+#endif
                else
                        ctx->Yi.d[3] = ctr;
                while (len--) {
@@ -1311,7 +1396,11 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,
        }
 
        if (is_endian.little)
+#ifdef BSWAP4
+               ctr = BSWAP4(ctx->Yi.d[3]);
+#else
                ctr = GETU32(ctx->Yi.c+12);
+#endif
        else
                ctr = ctx->Yi.d[3];
 
@@ -1336,7 +1425,11 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,
                (*stream)(in,out,GHASH_CHUNK/16,key,ctx->Yi.c);
                ctr += GHASH_CHUNK/16;
                if (is_endian.little)
+#ifdef BSWAP4
+                       ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                        PUTU32(ctx->Yi.c+12,ctr);
+#endif
                else
                        ctx->Yi.d[3] = ctr;
                out += GHASH_CHUNK;
@@ -1362,7 +1455,11 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,
                (*stream)(in,out,j,key,ctx->Yi.c);
                ctr += (unsigned int)j;
                if (is_endian.little)
+#ifdef BSWAP4
+                       ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                        PUTU32(ctx->Yi.c+12,ctr);
+#endif
                else
                        ctx->Yi.d[3] = ctr;
                out += i;
@@ -1373,7 +1470,11 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,
                (*ctx->block)(ctx->Yi.c,ctx->EKi.c,key);
                ++ctr;
                if (is_endian.little)
+#ifdef BSWAP4
+                       ctx->Yi.d[3] = BSWAP4(ctr);
+#else
                        PUTU32(ctx->Yi.c+12,ctr);
+#endif
                else
                        ctx->Yi.d[3] = ctr;
                while (len--) {
@@ -1669,6 +1770,46 @@ static const u8  IV18[]={0x93,0x13,0x22,0x5d,0xf8,0x84,0x06,0xe5,0x55,0x90,0x9c,0
                        0xa2,0x41,0x89,0x97,0x20,0x0e,0xf8,0x2e,0x44,0xae,0x7e,0x3f},
                T18[]= {0xa4,0x4a,0x82,0x66,0xee,0x1c,0x8e,0xb0,0xc8,0xb5,0xd4,0xcf,0x5a,0xe9,0xf1,0x9a};
 
+/* Test Case 19 */
+#define K19 K1
+#define P19 P1
+#define IV19 IV1
+#define C19 C1
+static const u8 A19[]= {0xd9,0x31,0x32,0x25,0xf8,0x84,0x06,0xe5,0xa5,0x59,0x09,0xc5,0xaf,0xf5,0x26,0x9a,
+                       0x86,0xa7,0xa9,0x53,0x15,0x34,0xf7,0xda,0x2e,0x4c,0x30,0x3d,0x8a,0x31,0x8a,0x72,
+                       0x1c,0x3c,0x0c,0x95,0x95,0x68,0x09,0x53,0x2f,0xcf,0x0e,0x24,0x49,0xa6,0xb5,0x25,
+                       0xb1,0x6a,0xed,0xf5,0xaa,0x0d,0xe6,0x57,0xba,0x63,0x7b,0x39,0x1a,0xaf,0xd2,0x55,
+                       0x52,0x2d,0xc1,0xf0,0x99,0x56,0x7d,0x07,0xf4,0x7f,0x37,0xa3,0x2a,0x84,0x42,0x7d,
+                       0x64,0x3a,0x8c,0xdc,0xbf,0xe5,0xc0,0xc9,0x75,0x98,0xa2,0xbd,0x25,0x55,0xd1,0xaa,
+                       0x8c,0xb0,0x8e,0x48,0x59,0x0d,0xbb,0x3d,0xa7,0xb0,0x8b,0x10,0x56,0x82,0x88,0x38,
+                       0xc5,0xf6,0x1e,0x63,0x93,0xba,0x7a,0x0a,0xbc,0xc9,0xf6,0x62,0x89,0x80,0x15,0xad},
+               T19[]= {0x5f,0xea,0x79,0x3a,0x2d,0x6f,0x97,0x4d,0x37,0xe6,0x8e,0x0c,0xb8,0xff,0x94,0x92};
+
+/* Test Case 20 */
+#define K20 K1
+#define A20 A1
+static const u8 IV20[64]={0xff,0xff,0xff,0xff},        /* this results in 0xff in counter LSB */
+               P20[288],
+               C20[]= {0x56,0xb3,0x37,0x3c,0xa9,0xef,0x6e,0x4a,0x2b,0x64,0xfe,0x1e,0x9a,0x17,0xb6,0x14,
+                       0x25,0xf1,0x0d,0x47,0xa7,0x5a,0x5f,0xce,0x13,0xef,0xc6,0xbc,0x78,0x4a,0xf2,0x4f,
+                       0x41,0x41,0xbd,0xd4,0x8c,0xf7,0xc7,0x70,0x88,0x7a,0xfd,0x57,0x3c,0xca,0x54,0x18,
+                       0xa9,0xae,0xff,0xcd,0x7c,0x5c,0xed,0xdf,0xc6,0xa7,0x83,0x97,0xb9,0xa8,0x5b,0x49,
+                       0x9d,0xa5,0x58,0x25,0x72,0x67,0xca,0xab,0x2a,0xd0,0xb2,0x3c,0xa4,0x76,0xa5,0x3c,
+                       0xb1,0x7f,0xb4,0x1c,0x4b,0x8b,0x47,0x5c,0xb4,0xf3,0xf7,0x16,0x50,0x94,0xc2,0x29,
+                       0xc9,0xe8,0xc4,0xdc,0x0a,0x2a,0x5f,0xf1,0x90,0x3e,0x50,0x15,0x11,0x22,0x13,0x76,
+                       0xa1,0xcd,0xb8,0x36,0x4c,0x50,0x61,0xa2,0x0c,0xae,0x74,0xbc,0x4a,0xcd,0x76,0xce,
+                       0xb0,0xab,0xc9,0xfd,0x32,0x17,0xef,0x9f,0x8c,0x90,0xbe,0x40,0x2d,0xdf,0x6d,0x86,
+                       0x97,0xf4,0xf8,0x80,0xdf,0xf1,0x5b,0xfb,0x7a,0x6b,0x28,0x24,0x1e,0xc8,0xfe,0x18,
+                       0x3c,0x2d,0x59,0xe3,0xf9,0xdf,0xff,0x65,0x3c,0x71,0x26,0xf0,0xac,0xb9,0xe6,0x42,
+                       0x11,0xf4,0x2b,0xae,0x12,0xaf,0x46,0x2b,0x10,0x70,0xbe,0xf1,0xab,0x5e,0x36,0x06,
+                       0x87,0x2c,0xa1,0x0d,0xee,0x15,0xb3,0x24,0x9b,0x1a,0x1b,0x95,0x8f,0x23,0x13,0x4c,
+                       0x4b,0xcc,0xb7,0xd0,0x32,0x00,0xbc,0xe4,0x20,0xa2,0xf8,0xeb,0x66,0xdc,0xf3,0x64,
+                       0x4d,0x14,0x23,0xc1,0xb5,0x69,0x90,0x03,0xc1,0x3e,0xce,0xf4,0xbf,0x38,0xa3,0xb6,
+                       0x0e,0xed,0xc3,0x40,0x33,0xba,0xc1,0x90,0x27,0x83,0xdc,0x6d,0x89,0xe2,0xe7,0x74,
+                       0x18,0x8a,0x43,0x9c,0x7e,0xbc,0xc0,0x67,0x2d,0xbd,0xa4,0xdd,0xcf,0xb2,0x79,0x46,
+                       0x13,0xb0,0xbe,0x41,0x31,0x5e,0xf7,0x78,0x70,0x8a,0x70,0xee,0x7d,0x75,0x16,0x5c},
+               T20[]= {0x8b,0x30,0x7f,0x6b,0x33,0x28,0x6d,0x0a,0xb0,0x26,0xa9,0xed,0x3f,0xe1,0xe8,0x5f};
+
 #define TEST_CASE(n)   do {                                    \
        u8 out[sizeof(P##n)];                                   \
        AES_set_encrypt_key(K##n,sizeof(K##n)*8,&key);          \
@@ -1713,6 +1854,8 @@ int main()
        TEST_CASE(16);
        TEST_CASE(17);
        TEST_CASE(18);
+       TEST_CASE(19);
+       TEST_CASE(20);
 
 #ifdef OPENSSL_CPUID_OBJ
        {
@@ -1743,11 +1886,16 @@ int main()
                        ctr_t/(double)sizeof(buf),
                        (gcm_t-ctr_t)/(double)sizeof(buf));
 #ifdef GHASH
-       GHASH(&ctx,buf.c,sizeof(buf));
+       {
+       void (*gcm_ghash_p)(u64 Xi[2],const u128 Htable[16],
+                               const u8 *inp,size_t len)       = ctx.ghash;
+
+       GHASH((&ctx),buf.c,sizeof(buf));
        start = OPENSSL_rdtsc();
-       for (i=0;i<100;++i) GHASH(&ctx,buf.c,sizeof(buf));
+       for (i=0;i<100;++i) GHASH((&ctx),buf.c,sizeof(buf));
        gcm_t = OPENSSL_rdtsc() - start;
        printf("%.2f\n",gcm_t/(double)sizeof(buf)/(double)i);
+       }
 #endif
        }
 #endif
index b6dc3c3..9d83e12 100644 (file)
@@ -29,10 +29,7 @@ typedef unsigned char u8;
 #if defined(__i386)    || defined(__i386__)    || \
     defined(__x86_64)  || defined(__x86_64__)  || \
     defined(_M_IX86)   || defined(_M_AMD64)    || defined(_M_X64) || \
-    defined(__s390__)  || defined(__s390x__)   || \
-    ( (defined(__arm__)        || defined(__arm)) && \
-      (defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
-       defined(__ARM_ARCH_7R__)        || defined(__ARM_ARCH_7M__)) )
+    defined(__s390__)  || defined(__s390x__)
 # undef STRICT_ALIGNMENT
 #endif
 
@@ -101,8 +98,8 @@ typedef struct { u64 hi,lo; } u128;
 
 struct gcm128_context {
        /* Following 6 names follow names in GCM specification */
-       union { u64 u[2]; u32 d[4]; u8 c[16]; } Yi,EKi,EK0,len,
-                                               Xi,H;
+       union { u64 u[2]; u32 d[4]; u8 c[16]; size_t t[16/sizeof(size_t)]; }
+         Yi,EKi,EK0,len,Xi,H;
        /* Relative position of Xi, H and pre-computed Htable is used
         * in some assembler modules, i.e. don't change the order! */
 #if TABLE_BITS==8
diff --git a/deps/openssl/openssl/crypto/objects/Makefile.save b/deps/openssl/openssl/crypto/objects/Makefile.save
new file mode 100644 (file)
index 0000000..a8aedbd
--- /dev/null
@@ -0,0 +1,130 @@
+#
+# OpenSSL/crypto/objects/Makefile
+#
+
+DIR=   objects
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+PERL=          perl
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        o_names.c obj_dat.c obj_lib.c obj_err.c obj_xref.c
+LIBOBJ= o_names.o obj_dat.o obj_lib.o obj_err.o obj_xref.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= objects.h obj_mac.h
+HEADER=        $(EXHEADER) obj_dat.h obj_xref.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   obj_dat.h obj_xref.h lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+obj_dat.h: obj_dat.pl obj_mac.h
+       $(PERL) obj_dat.pl obj_mac.h obj_dat.h
+
+# objects.pl both reads and writes obj_mac.num
+obj_mac.h: objects.pl objects.txt obj_mac.num
+       $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h
+       @sleep 1; touch obj_mac.h; sleep 1
+
+obj_xref.h: objxref.pl obj_xref.txt obj_mac.num
+       $(PERL) objxref.pl obj_mac.num obj_xref.txt > obj_xref.h
+       @sleep 1; touch obj_xref.h; sleep 1
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+o_names.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+o_names.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+o_names.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+o_names.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+o_names.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+o_names.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+o_names.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+o_names.o: o_names.c
+obj_dat.o: ../../e_os.h ../../include/openssl/asn1.h
+obj_dat.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+obj_dat.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+obj_dat.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+obj_dat.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+obj_dat.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+obj_dat.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+obj_dat.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+obj_dat.o: ../../include/openssl/symhacks.h ../cryptlib.h obj_dat.c obj_dat.h
+obj_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+obj_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+obj_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+obj_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+obj_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+obj_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+obj_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+obj_err.o: obj_err.c
+obj_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+obj_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+obj_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+obj_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+obj_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+obj_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+obj_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+obj_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+obj_lib.o: ../cryptlib.h obj_lib.c
+obj_xref.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+obj_xref.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+obj_xref.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+obj_xref.o: ../../include/openssl/opensslconf.h
+obj_xref.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+obj_xref.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+obj_xref.o: ../../include/openssl/symhacks.h obj_xref.c obj_xref.h
diff --git a/deps/openssl/openssl/crypto/ocsp/Makefile.save b/deps/openssl/openssl/crypto/ocsp/Makefile.save
new file mode 100644 (file)
index 0000000..60c414c
--- /dev/null
@@ -0,0 +1,213 @@
+#
+# OpenSSL/ocsp/Makefile
+#
+
+DIR=   ocsp
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c \
+       ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c
+
+LIBOBJ= ocsp_asn.o ocsp_ext.o ocsp_ht.o ocsp_lib.o ocsp_cl.o \
+       ocsp_srv.o ocsp_prn.o ocsp_vfy.o ocsp_err.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= ocsp.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+ocsp_asn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+ocsp_asn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ocsp_asn.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ocsp_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ocsp_asn.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ocsp_asn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ocsp_asn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ocsp_asn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
+ocsp_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ocsp_asn.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ocsp_asn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ocsp_asn.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ocsp_asn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+ocsp_asn.o: ocsp_asn.c
+ocsp_cl.o: ../../e_os.h ../../include/openssl/asn1.h
+ocsp_cl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ocsp_cl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ocsp_cl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ocsp_cl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ocsp_cl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ocsp_cl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ocsp_cl.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
+ocsp_cl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ocsp_cl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+ocsp_cl.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+ocsp_cl.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+ocsp_cl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ocsp_cl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ocsp_cl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+ocsp_cl.o: ../cryptlib.h ocsp_cl.c
+ocsp_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ocsp_err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+ocsp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ocsp_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ocsp_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ocsp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ocsp_err.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
+ocsp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ocsp_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ocsp_err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ocsp_err.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ocsp_err.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+ocsp_err.o: ocsp_err.c
+ocsp_ext.o: ../../e_os.h ../../include/openssl/asn1.h
+ocsp_ext.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ocsp_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ocsp_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ocsp_ext.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ocsp_ext.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ocsp_ext.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ocsp_ext.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
+ocsp_ext.o: ../../include/openssl/opensslconf.h
+ocsp_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ocsp_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+ocsp_ext.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ocsp_ext.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ocsp_ext.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ocsp_ext.o: ../../include/openssl/x509v3.h ../cryptlib.h ocsp_ext.c
+ocsp_ht.o: ../../e_os.h ../../include/openssl/asn1.h
+ocsp_ht.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ocsp_ht.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ocsp_ht.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ocsp_ht.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ocsp_ht.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ocsp_ht.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ocsp_ht.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
+ocsp_ht.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ocsp_ht.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ocsp_ht.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ocsp_ht.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ocsp_ht.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ocsp_ht.o: ../../include/openssl/x509v3.h ocsp_ht.c
+ocsp_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+ocsp_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+ocsp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+ocsp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ocsp_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ocsp_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ocsp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ocsp_lib.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
+ocsp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ocsp_lib.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+ocsp_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+ocsp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ocsp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ocsp_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ocsp_lib.o: ../../include/openssl/x509v3.h ../cryptlib.h ocsp_lib.c
+ocsp_prn.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ocsp_prn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+ocsp_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ocsp_prn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ocsp_prn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_prn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ocsp_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ocsp_prn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
+ocsp_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ocsp_prn.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+ocsp_prn.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ocsp_prn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ocsp_prn.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ocsp_prn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+ocsp_prn.o: ocsp_prn.c
+ocsp_srv.o: ../../e_os.h ../../include/openssl/asn1.h
+ocsp_srv.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ocsp_srv.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ocsp_srv.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ocsp_srv.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ocsp_srv.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ocsp_srv.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ocsp_srv.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
+ocsp_srv.o: ../../include/openssl/opensslconf.h
+ocsp_srv.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ocsp_srv.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+ocsp_srv.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+ocsp_srv.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ocsp_srv.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ocsp_srv.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ocsp_srv.o: ../../include/openssl/x509v3.h ../cryptlib.h ocsp_srv.c
+ocsp_vfy.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ocsp_vfy.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+ocsp_vfy.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ocsp_vfy.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ocsp_vfy.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ocsp_vfy.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ocsp_vfy.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ocsp_vfy.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
+ocsp_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ocsp_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+ocsp_vfy.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ocsp_vfy.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ocsp_vfy.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+ocsp_vfy.o: ocsp_vfy.c
index 5bc8e53..ebe7180 100644 (file)
  * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
  *  major minor fix final patch/beta)
  */
-#define OPENSSL_VERSION_NUMBER 0x1000105fL
+#define OPENSSL_VERSION_NUMBER 0x1000107fL
 #ifdef OPENSSL_FIPS
-#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.1e-fips 11 Feb 2013"
+#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.1g-fips 7 Apr 2014"
 #else
-#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.1e 11 Feb 2013"
+#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.1g 7 Apr 2014"
 #endif
 #define OPENSSL_VERSION_PTEXT  " part of " OPENSSL_VERSION_TEXT
 
index 477ec9b..bfc56fd 100644 (file)
@@ -97,33 +97,33 @@ OPENSSL_cleanse
        .PROC
        .CALLINFO       NO_CALLS
        .ENTRY
-       cmpib,*=        0,$len,Ldone
+       cmpib,*=        0,$len,L\$done
        nop
-       cmpib,*>>=      15,$len,Little
+       cmpib,*>>=      15,$len,L\$ittle
        ldi             $SIZE_T-1,%r1
 
-Lalign
+L\$align
        and,*<>         $inp,%r1,%r28
-       b,n             Laligned
+       b,n             L\$aligned
        stb             %r0,0($inp)
        ldo             -1($len),$len
-       b               Lalign
+       b               L\$align
        ldo             1($inp),$inp
 
-Laligned
+L\$aligned
        andcm           $len,%r1,%r28
-Lot
+L\$ot
        $ST             %r0,0($inp)
-       addib,*<>       -$SIZE_T,%r28,Lot
+       addib,*<>       -$SIZE_T,%r28,L\$ot
        ldo             $SIZE_T($inp),$inp
 
        and,*<>         $len,%r1,$len
-       b,n             Ldone
-Little
+       b,n             L\$done
+L\$ittle
        stb             %r0,0($inp)
-       addib,*<>       -1,$len,Little
+       addib,*<>       -1,$len,L\$ittle
        ldo             1($inp),$inp
-Ldone
+L\$done
        bv              ($rp)
        .EXIT
        nop
@@ -151,7 +151,7 @@ OPENSSL_instrument_bus
        ldw             0($out),$tick
        add             $diff,$tick,$tick
        stw             $tick,0($out)
-Loop
+L\$oop
        mfctl           %cr16,$tick
        sub             $tick,$lasttick,$diff
        copy            $tick,$lasttick
@@ -161,7 +161,7 @@ Loop
        add             $diff,$tick,$tick
        stw             $tick,0($out)
 
-       addib,<>        -1,$cnt,Loop
+       addib,<>        -1,$cnt,L\$oop
        addi            4,$out,$out
 
        bv              ($rp)
@@ -190,14 +190,14 @@ OPENSSL_instrument_bus2
        mfctl           %cr16,$tick
        sub             $tick,$lasttick,$diff
        copy            $tick,$lasttick
-Loop2
+L\$oop2
        copy            $diff,$lastdiff
        fdc             0($out)
        ldw             0($out),$tick
        add             $diff,$tick,$tick
        stw             $tick,0($out)
 
-       addib,=         -1,$max,Ldone2
+       addib,=         -1,$max,L\$done2
        nop
 
        mfctl           %cr16,$tick
@@ -208,17 +208,18 @@ Loop2
 
        ldi             1,%r1
        xor             %r1,$tick,$tick
-       addb,<>         $tick,$cnt,Loop2
+       addb,<>         $tick,$cnt,L\$oop2
        shladd,l        $tick,2,$out,$out
-Ldone2
+L\$done2
        bv              ($rp)
        .EXIT
        add             $rv,$cnt,$rv
        .PROCEND
 ___
 }
-$code =~ s/cmpib,\*/comib,/gm if ($SIZE_T==4);
-$code =~ s/,\*/,/gm if ($SIZE_T==4);
+$code =~ s/cmpib,\*/comib,/gm  if ($SIZE_T==4);
+$code =~ s/,\*/,/gm            if ($SIZE_T==4);
+$code =~ s/\bbv\b/bve/gm       if ($SIZE_T==8);
 print $code;
 close STDOUT;
 
diff --git a/deps/openssl/openssl/crypto/pem/Makefile.save b/deps/openssl/openssl/crypto/pem/Makefile.save
new file mode 100644 (file)
index 0000000..2cc7801
--- /dev/null
@@ -0,0 +1,258 @@
+#
+# OpenSSL/crypto/pem/Makefile
+#
+
+DIR=   pem
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c \
+       pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c pvkfmt.c
+
+LIBOBJ=        pem_sign.o pem_seal.o pem_info.o pem_lib.o pem_all.o pem_err.o \
+       pem_x509.o pem_xaux.o pem_oth.o pem_pk8.o pem_pkey.o pvkfmt.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= pem.h pem2.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links: $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+pem_all.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_all.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_all.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+pem_all.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+pem_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_all.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pem_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pem_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+pem_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+pem_all.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+pem_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+pem_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_all.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pem_all.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_all.c
+pem_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+pem_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+pem_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pem_err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pem_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pem_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pem_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pem_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_err.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pem_err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_err.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pem_err.o: ../../include/openssl/x509_vfy.h pem_err.c
+pem_info.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_info.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_info.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+pem_info.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pem_info.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pem_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pem_info.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pem_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pem_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_info.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+pem_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+pem_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pem_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+pem_info.o: ../cryptlib.h pem_info.c
+pem_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
+pem_lib.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
+pem_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+pem_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pem_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pem_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pem_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_lib.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_lib.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+pem_lib.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+pem_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+pem_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
+pem_lib.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+pem_lib.o: pem_lib.c
+pem_oth.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_oth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_oth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pem_oth.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_oth.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_oth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pem_oth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pem_oth.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+pem_oth.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+pem_oth.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+pem_oth.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+pem_oth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_oth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pem_oth.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_oth.c
+pem_pk8.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_pk8.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_pk8.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pem_pk8.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_pk8.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_pk8.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pem_pk8.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pem_pk8.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+pem_pk8.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+pem_pk8.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
+pem_pk8.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+pem_pk8.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+pem_pk8.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pem_pk8.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+pem_pk8.o: ../cryptlib.h pem_pk8.c
+pem_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pem_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+pem_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pem_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pem_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pem_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_pkey.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_pkey.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+pem_pkey.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+pem_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pem_pkey.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+pem_pkey.o: pem_pkey.c
+pem_seal.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_seal.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_seal.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pem_seal.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_seal.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_seal.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pem_seal.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pem_seal.o: ../../include/openssl/opensslconf.h
+pem_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_seal.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+pem_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+pem_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pem_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_seal.c
+pem_sign.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_sign.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_sign.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pem_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_sign.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pem_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pem_sign.o: ../../include/openssl/opensslconf.h
+pem_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_sign.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+pem_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+pem_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pem_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+pem_sign.o: ../cryptlib.h pem_sign.c
+pem_x509.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_x509.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_x509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pem_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pem_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pem_x509.o: ../../include/openssl/opensslconf.h
+pem_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_x509.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pem_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pem_x509.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_x509.c
+pem_xaux.o: ../../e_os.h ../../include/openssl/asn1.h
+pem_xaux.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pem_xaux.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pem_xaux.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pem_xaux.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pem_xaux.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pem_xaux.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pem_xaux.o: ../../include/openssl/opensslconf.h
+pem_xaux.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_xaux.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_xaux.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pem_xaux.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_xaux.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pem_xaux.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_xaux.c
+pvkfmt.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+pvkfmt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+pvkfmt.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+pvkfmt.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pvkfmt.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pvkfmt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pvkfmt.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pvkfmt.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pvkfmt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pvkfmt.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pvkfmt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+pvkfmt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+pvkfmt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pvkfmt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pvkfmt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pvkfmt.c
index 1b2be52..cc7f24a 100644 (file)
@@ -167,6 +167,7 @@ start:
 #ifndef OPENSSL_NO_RSA
                        if (strcmp(name,PEM_STRING_RSA) == 0)
                        {
+                       d2i=(D2I_OF(void))d2i_RSAPrivateKey;
                        if (xi->x_pkey != NULL) 
                                {
                                if (!sk_X509_INFO_push(ret,xi)) goto err;
diff --git a/deps/openssl/openssl/crypto/pkcs12/Makefile.save b/deps/openssl/openssl/crypto/pkcs12/Makefile.save
new file mode 100644 (file)
index 0000000..3a7498f
--- /dev/null
@@ -0,0 +1,286 @@
+#
+# OpenSSL/crypto/pkcs12/Makefile
+#
+
+DIR=   pkcs12
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c p12_decr.c \
+       p12_init.c p12_key.c p12_kiss.c p12_mutl.c\
+       p12_utl.c p12_npas.c pk12err.c p12_p8d.c p12_p8e.c
+LIBOBJ= p12_add.o p12_asn.o p12_attr.o p12_crpt.o p12_crt.o p12_decr.o \
+       p12_init.o p12_key.o p12_kiss.o p12_mutl.o\
+       p12_utl.o p12_npas.o pk12err.o p12_p8d.o p12_p8e.o
+
+SRC= $(LIBSRC)
+
+EXHEADER=  pkcs12.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+test:
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+p12_add.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_add.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_add.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_add.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_add.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_add.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_add.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_add.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+p12_add.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
+p12_add.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p12_add.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p12_add.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p12_add.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_add.c
+p12_asn.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_asn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+p12_asn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p12_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p12_asn.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p12_asn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p12_asn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p12_asn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p12_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_asn.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_asn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_asn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_asn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_asn.o: ../cryptlib.h p12_asn.c
+p12_attr.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_attr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_attr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_attr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_attr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_attr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_attr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_attr.o: ../../include/openssl/opensslconf.h
+p12_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_attr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_attr.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_attr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_attr.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_attr.o: ../cryptlib.h p12_attr.c
+p12_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_crpt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_crpt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_crpt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_crpt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_crpt.o: ../../include/openssl/opensslconf.h
+p12_crpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_crpt.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_crpt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_crpt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_crpt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_crpt.o: ../cryptlib.h p12_crpt.c
+p12_crt.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_crt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_crt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_crt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_crt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_crt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_crt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_crt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+p12_crt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
+p12_crt.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p12_crt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p12_crt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p12_crt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_crt.c
+p12_decr.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_decr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_decr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_decr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_decr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_decr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_decr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_decr.o: ../../include/openssl/opensslconf.h
+p12_decr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_decr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_decr.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_decr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_decr.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_decr.o: ../cryptlib.h p12_decr.c
+p12_init.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_init.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_init.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_init.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_init.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_init.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_init.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_init.o: ../../include/openssl/opensslconf.h
+p12_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_init.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_init.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_init.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_init.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_init.o: ../cryptlib.h p12_init.c
+p12_key.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_key.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+p12_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p12_key.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p12_key.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p12_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p12_key.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p12_key.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p12_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_key.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_key.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_key.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_key.o: ../cryptlib.h p12_key.c
+p12_kiss.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_kiss.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_kiss.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_kiss.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_kiss.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_kiss.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_kiss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_kiss.o: ../../include/openssl/opensslconf.h
+p12_kiss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_kiss.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_kiss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_kiss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_kiss.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_kiss.o: ../cryptlib.h p12_kiss.c
+p12_mutl.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_mutl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_mutl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_mutl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_mutl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_mutl.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
+p12_mutl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p12_mutl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p12_mutl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_mutl.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_mutl.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+p12_mutl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p12_mutl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p12_mutl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_mutl.c
+p12_npas.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+p12_npas.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+p12_npas.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+p12_npas.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+p12_npas.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p12_npas.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p12_npas.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p12_npas.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p12_npas.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+p12_npas.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+p12_npas.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p12_npas.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p12_npas.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p12_npas.o: p12_npas.c
+p12_p8d.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_p8d.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_p8d.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_p8d.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_p8d.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_p8d.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_p8d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_p8d.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+p12_p8d.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
+p12_p8d.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p12_p8d.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p12_p8d.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p12_p8d.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_p8d.c
+p12_p8e.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_p8e.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_p8e.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_p8e.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_p8e.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_p8e.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_p8e.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_p8e.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+p12_p8e.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
+p12_p8e.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p12_p8e.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p12_p8e.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p12_p8e.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_p8e.c
+p12_utl.o: ../../e_os.h ../../include/openssl/asn1.h
+p12_utl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+p12_utl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+p12_utl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+p12_utl.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+p12_utl.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+p12_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+p12_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+p12_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
+p12_utl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+p12_utl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+p12_utl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+p12_utl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_utl.c
+pk12err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+pk12err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+pk12err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pk12err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pk12err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pk12err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pk12err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pk12err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pk12err.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+pk12err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+pk12err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pk12err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+pk12err.o: pk12err.c
index 96b131d..a34915d 100644 (file)
@@ -90,7 +90,14 @@ PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert,
 
        /* Set defaults */
        if (!nid_cert)
+               {
+#ifdef OPENSSL_FIPS
+               if (FIPS_mode())
+                       nid_cert = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
+               else
+#endif
                nid_cert = NID_pbe_WithSHA1And40BitRC2_CBC;
+               }
        if (!nid_key)
                nid_key = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
        if (!iter)
diff --git a/deps/openssl/openssl/crypto/pkcs7/Makefile.save b/deps/openssl/openssl/crypto/pkcs7/Makefile.save
new file mode 100644 (file)
index 0000000..56dc682
--- /dev/null
@@ -0,0 +1,194 @@
+#
+# OpenSSL/crypto/pkcs7/Makefile
+#
+
+DIR=   pkcs7
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+PEX_LIBS=
+EX_LIBS=
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c \
+       pk7_mime.c bio_pk7.c
+LIBOBJ= pk7_asn1.o pk7_lib.o pkcs7err.o pk7_doit.o pk7_smime.o pk7_attr.o \
+       pk7_mime.o bio_pk7.o
+
+SRC= $(LIBSRC)
+
+EXHEADER=  pkcs7.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+test:
+
+all:   lib
+
+testapps: enc dec sign verify
+
+enc: enc.o lib
+       $(CC) $(CFLAGS) -o enc enc.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
+
+dec: dec.o lib
+       $(CC) $(CFLAGS) -o dec dec.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
+
+sign: sign.o lib
+       $(CC) $(CFLAGS) -o sign sign.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
+
+verify: verify.o example.o lib
+       $(CC) $(CFLAGS) -o verify verify.o $(PEX_LIBS) example.o $(LIB) $(EX_LIBS)
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff enc dec sign verify
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+bio_pk7.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+bio_pk7.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+bio_pk7.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+bio_pk7.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+bio_pk7.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+bio_pk7.o: ../../include/openssl/symhacks.h bio_pk7.c
+pk7_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
+pk7_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+pk7_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+pk7_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pk7_asn1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pk7_asn1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pk7_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pk7_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pk7_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pk7_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pk7_asn1.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pk7_asn1.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pk7_asn1.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_asn1.c
+pk7_attr.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+pk7_attr.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pk7_attr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pk7_attr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pk7_attr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pk7_attr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pk7_attr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pk7_attr.o: ../../include/openssl/opensslconf.h
+pk7_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pk7_attr.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pk7_attr.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pk7_attr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pk7_attr.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pk7_attr.o: ../../include/openssl/x509_vfy.h pk7_attr.c
+pk7_doit.o: ../../e_os.h ../../include/openssl/asn1.h
+pk7_doit.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pk7_doit.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+pk7_doit.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pk7_doit.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pk7_doit.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pk7_doit.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pk7_doit.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pk7_doit.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pk7_doit.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+pk7_doit.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+pk7_doit.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pk7_doit.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+pk7_doit.o: ../../include/openssl/x509v3.h ../cryptlib.h pk7_doit.c
+pk7_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+pk7_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pk7_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pk7_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pk7_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pk7_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pk7_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pk7_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+pk7_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+pk7_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+pk7_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pk7_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+pk7_lib.o: ../asn1/asn1_locl.h ../cryptlib.h pk7_lib.c
+pk7_mime.o: ../../e_os.h ../../include/openssl/asn1.h
+pk7_mime.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pk7_mime.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pk7_mime.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pk7_mime.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+pk7_mime.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+pk7_mime.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+pk7_mime.o: ../../include/openssl/opensslconf.h
+pk7_mime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pk7_mime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+pk7_mime.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+pk7_mime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pk7_mime.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+pk7_mime.o: ../cryptlib.h pk7_mime.c
+pk7_smime.o: ../../e_os.h ../../include/openssl/asn1.h
+pk7_smime.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pk7_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+pk7_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pk7_smime.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pk7_smime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pk7_smime.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pk7_smime.o: ../../include/openssl/objects.h
+pk7_smime.o: ../../include/openssl/opensslconf.h
+pk7_smime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pk7_smime.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pk7_smime.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pk7_smime.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pk7_smime.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+pk7_smime.o: ../cryptlib.h pk7_smime.c
+pkcs7err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+pkcs7err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pkcs7err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+pkcs7err.o: ../../include/openssl/opensslconf.h
+pkcs7err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pkcs7err.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pkcs7err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+pkcs7err.o: pkcs7err.c
diff --git a/deps/openssl/openssl/crypto/pqueue/Makefile.save b/deps/openssl/openssl/crypto/pqueue/Makefile.save
new file mode 100644 (file)
index 0000000..fb36a0c
--- /dev/null
@@ -0,0 +1,83 @@
+#
+# OpenSSL/crypto/pqueue/Makefile
+#
+
+DIR=   pqueue
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=pqueue.c
+LIBOBJ=pqueue.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= pqueue.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+pqueue.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
+pqueue.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+pqueue.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+pqueue.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+pqueue.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pqueue.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+pqueue.o: ../../include/openssl/symhacks.h ../cryptlib.h pqueue.c pqueue.h
diff --git a/deps/openssl/openssl/crypto/rand/Makefile.save b/deps/openssl/openssl/crypto/rand/Makefile.save
new file mode 100644 (file)
index 0000000..27694aa
--- /dev/null
@@ -0,0 +1,164 @@
+#
+# OpenSSL/crypto/rand/Makefile
+#
+
+DIR=   rand
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST= randtest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \
+       rand_win.c rand_unix.c rand_os2.c rand_nw.c
+LIBOBJ=md_rand.o randfile.o rand_lib.o rand_err.o rand_egd.o \
+       rand_win.o rand_unix.o rand_os2.o rand_nw.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= rand.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+md_rand.o: ../../e_os.h ../../include/openssl/asn1.h
+md_rand.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+md_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+md_rand.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+md_rand.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+md_rand.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+md_rand.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+md_rand.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+md_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+md_rand.o: md_rand.c rand_lcl.h
+rand_egd.o: ../../include/openssl/buffer.h ../../include/openssl/e_os2.h
+rand_egd.o: ../../include/openssl/opensslconf.h
+rand_egd.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+rand_egd.o: rand_egd.c
+rand_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+rand_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rand_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rand_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rand_err.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+rand_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rand_err.o: rand_err.c
+rand_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+rand_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+rand_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rand_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+rand_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+rand_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rand_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rand_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rand_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rand_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+rand_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rand_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rand_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+rand_lib.o: ../cryptlib.h rand_lib.c
+rand_nw.o: ../../e_os.h ../../include/openssl/asn1.h
+rand_nw.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+rand_nw.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rand_nw.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rand_nw.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rand_nw.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rand_nw.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rand_nw.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+rand_nw.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+rand_nw.o: ../../include/openssl/symhacks.h ../cryptlib.h rand_lcl.h rand_nw.c
+rand_os2.o: ../../e_os.h ../../include/openssl/asn1.h
+rand_os2.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+rand_os2.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rand_os2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rand_os2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rand_os2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rand_os2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rand_os2.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+rand_os2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+rand_os2.o: ../../include/openssl/symhacks.h ../cryptlib.h rand_lcl.h
+rand_os2.o: rand_os2.c
+rand_unix.o: ../../e_os.h ../../include/openssl/asn1.h
+rand_unix.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+rand_unix.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rand_unix.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rand_unix.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rand_unix.o: ../../include/openssl/objects.h
+rand_unix.o: ../../include/openssl/opensslconf.h
+rand_unix.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rand_unix.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+rand_unix.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+rand_unix.o: ../../include/openssl/symhacks.h ../cryptlib.h rand_lcl.h
+rand_unix.o: rand_unix.c
+rand_win.o: ../../e_os.h ../../include/openssl/asn1.h
+rand_win.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+rand_win.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rand_win.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rand_win.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rand_win.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rand_win.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rand_win.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+rand_win.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+rand_win.o: ../../include/openssl/symhacks.h ../cryptlib.h rand_lcl.h
+rand_win.o: rand_win.c
+randfile.o: ../../e_os.h ../../include/openssl/buffer.h
+randfile.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+randfile.o: ../../include/openssl/opensslconf.h
+randfile.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+randfile.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+randfile.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+randfile.o: randfile.c
index 1e3bcb9..aee1c30 100644 (file)
@@ -198,6 +198,9 @@ static void ssleay_rand_add(const void *buf, int num, double add)
        EVP_MD_CTX m;
        int do_not_lock;
 
+       if (!num)
+               return;
+
        /*
         * (Based on the rand(3) manpage)
         *
@@ -380,8 +383,11 @@ static int ssleay_rand_bytes(unsigned char *buf, int num, int pseudo)
         * are fed into the hash function and the results are kept in the
         * global 'md'.
         */
-
-       CRYPTO_w_lock(CRYPTO_LOCK_RAND);
+#ifdef OPENSSL_FIPS
+       /* NB: in FIPS mode we are already under a lock */
+       if (!FIPS_mode())
+#endif
+               CRYPTO_w_lock(CRYPTO_LOCK_RAND);
 
        /* prevent ssleay_rand_bytes() from trying to obtain the lock again */
        CRYPTO_w_lock(CRYPTO_LOCK_RAND2);
@@ -460,7 +466,10 @@ static int ssleay_rand_bytes(unsigned char *buf, int num, int pseudo)
 
        /* before unlocking, we must clear 'crypto_lock_rand' */
        crypto_lock_rand = 0;
-       CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
+#ifdef OPENSSL_FIPS
+       if (!FIPS_mode())
+#endif
+               CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
 
        while (num > 0)
                {
@@ -512,10 +521,16 @@ static int ssleay_rand_bytes(unsigned char *buf, int num, int pseudo)
        MD_Init(&m);
        MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
        MD_Update(&m,local_md,MD_DIGEST_LENGTH);
-       CRYPTO_w_lock(CRYPTO_LOCK_RAND);
+#ifdef OPENSSL_FIPS
+       if (!FIPS_mode())
+#endif
+               CRYPTO_w_lock(CRYPTO_LOCK_RAND);
        MD_Update(&m,md,MD_DIGEST_LENGTH);
        MD_Final(&m,md);
-       CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
+#ifdef OPENSSL_FIPS
+       if (!FIPS_mode())
+#endif
+               CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
 
        EVP_MD_CTX_cleanup(&m);
        if (ok)
index dc8fcf9..bb5520e 100644 (file)
@@ -138,6 +138,7 @@ void ERR_load_RAND_strings(void);
 #define RAND_F_SSLEAY_RAND_BYTES                        100
 
 /* Reason codes. */
+#define RAND_R_DUAL_EC_DRBG_DISABLED                    104
 #define RAND_R_ERROR_INITIALISING_DRBG                  102
 #define RAND_R_ERROR_INSTANTIATING_DRBG                         103
 #define RAND_R_NO_FIPS_RANDOM_METHOD_SET                101
index b8586c8..c4c80fc 100644 (file)
@@ -78,6 +78,7 @@ static ERR_STRING_DATA RAND_str_functs[]=
 
 static ERR_STRING_DATA RAND_str_reasons[]=
        {
+{ERR_REASON(RAND_R_DUAL_EC_DRBG_DISABLED),"dual ec drbg disabled"},
 {ERR_REASON(RAND_R_ERROR_INITIALISING_DRBG),"error initialising drbg"},
 {ERR_REASON(RAND_R_ERROR_INSTANTIATING_DRBG),"error instantiating drbg"},
 {ERR_REASON(RAND_R_NO_FIPS_RANDOM_METHOD_SET),"no fips random method set"},
index 476a0cd..5ac0e14 100644 (file)
@@ -269,6 +269,14 @@ int RAND_init_fips(void)
        DRBG_CTX *dctx;
        size_t plen;
        unsigned char pers[32], *p;
+#ifndef OPENSSL_ALLOW_DUAL_EC_DRBG
+       if (fips_drbg_type >> 16)
+               {
+               RANDerr(RAND_F_RAND_INIT_FIPS, RAND_R_DUAL_EC_DRBG_DISABLED);
+               return 0;
+               }
+#endif
+               
        dctx = FIPS_get_default_drbg();
         if (FIPS_drbg_init(dctx, fips_drbg_type, fips_drbg_flags) <= 0)
                {
index 5d134e1..34ffcd2 100644 (file)
@@ -750,7 +750,7 @@ static void readscreen(void)
   int          y;              /* y-coordinate of screen lines to grab */
   int          n = 16;         /* number of screen lines to grab at a time */
 
-  if (GetVersion() < 0x80000000 && OPENSSL_isservice()>0)
+  if (check_winnt() && OPENSSL_isservice()>0)
     return;
 
   /* Create a screen DC and a memory DC compatible to screen DC */
diff --git a/deps/openssl/openssl/crypto/rc2/Makefile.save b/deps/openssl/openssl/crypto/rc2/Makefile.save
new file mode 100644 (file)
index 0000000..8a9d49a
--- /dev/null
@@ -0,0 +1,90 @@
+#
+# OpenSSL/crypto/rc2/Makefile
+#
+
+DIR=   rc2
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=rc2test.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
+LIBOBJ=rc2_ecb.o rc2_skey.o rc2_cbc.o rc2cfb64.o rc2ofb64.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= rc2.h
+HEADER=        rc2_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+rc2_cbc.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
+rc2_cbc.o: rc2_cbc.c rc2_locl.h
+rc2_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+rc2_ecb.o: ../../include/openssl/rc2.h rc2_ecb.c rc2_locl.h
+rc2_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rc2_skey.o: ../../include/openssl/opensslconf.h
+rc2_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rc2_skey.o: ../../include/openssl/rc2.h ../../include/openssl/safestack.h
+rc2_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rc2_skey.o: rc2_locl.h rc2_skey.c
+rc2cfb64.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
+rc2cfb64.o: rc2_locl.h rc2cfb64.c
+rc2ofb64.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
+rc2ofb64.o: rc2_locl.h rc2ofb64.c
diff --git a/deps/openssl/openssl/crypto/rc4/Makefile.save b/deps/openssl/openssl/crypto/rc4/Makefile.save
new file mode 100644 (file)
index 0000000..1614d47
--- /dev/null
@@ -0,0 +1,125 @@
+#
+# OpenSSL/crypto/rc4/Makefile
+#
+
+DIR=   rc4
+TOP=   ../..
+CC=    cc
+CPP=    $(CC) -E
+INCLUDES=
+CFLAG=-g
+AR=            ar r
+
+RC4_ENC=rc4_enc.o rc4_skey.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=rc4test.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=rc4_skey.c rc4_enc.c rc4_utl.c
+LIBOBJ=$(RC4_ENC) rc4_utl.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= rc4.h
+HEADER=        $(EXHEADER) rc4_locl.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+rc4-586.s:     asm/rc4-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/rc4-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+
+rc4-x86_64.s: asm/rc4-x86_64.pl
+       $(PERL) asm/rc4-x86_64.pl $(PERLASM_SCHEME) > $@
+rc4-md5-x86_64.s:      asm/rc4-md5-x86_64.pl
+       $(PERL) asm/rc4-md5-x86_64.pl $(PERLASM_SCHEME) > $@
+
+rc4-ia64.S: asm/rc4-ia64.pl
+       $(PERL) asm/rc4-ia64.pl $(CFLAGS) > $@
+
+rc4-parisc.s:  asm/rc4-parisc.pl
+       $(PERL) asm/rc4-parisc.pl $(PERLASM_SCHEME) $@
+
+rc4-ia64.s: rc4-ia64.S
+       @case `awk '/^#define RC4_INT/{print$$NF}' $(TOP)/include/openssl/opensslconf.h` in \
+       int)    set -x; $(CC) $(CFLAGS) -DSZ=4 -E rc4-ia64.S > $@ ;; \
+       char)   set -x; $(CC) $(CFLAGS) -DSZ=1 -E rc4-ia64.S > $@ ;; \
+       *)      exit 1 ;; \
+       esac
+
+# GNU make "catch all"
+rc4-%.s:       asm/rc4-%.pl;   $(PERL) $< $(PERLASM_SCHEME) $@
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+rc4_enc.o: ../../e_os.h ../../include/openssl/bio.h
+rc4_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rc4_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rc4_enc.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rc4_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rc4_enc.o: ../../include/openssl/rc4.h ../../include/openssl/safestack.h
+rc4_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rc4_enc.o: ../cryptlib.h rc4_enc.c rc4_locl.h
+rc4_skey.o: ../../e_os.h ../../include/openssl/bio.h
+rc4_skey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rc4_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rc4_skey.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rc4_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rc4_skey.o: ../../include/openssl/rc4.h ../../include/openssl/safestack.h
+rc4_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rc4_skey.o: ../cryptlib.h rc4_locl.h rc4_skey.c
+rc4_utl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rc4_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+rc4_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc4.h
+rc4_utl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rc4_utl.o: ../../include/openssl/symhacks.h rc4_utl.c
index 9165067..ad7e656 100644 (file)
@@ -307,7 +307,8 @@ L\$opts
        .STRINGZ "RC4 for PA-RISC, CRYPTOGAMS by <appro\@openssl.org>"
 ___
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
-$code =~ s/cmpib,\*/comib,/gm if ($SIZE_T==4);
+$code =~ s/cmpib,\*/comib,/gm  if ($SIZE_T==4);
+$code =~ s/\bbv\b/bve/gm       if ($SIZE_T==8);
 
 print $code;
 close STDOUT;
diff --git a/deps/openssl/openssl/crypto/ripemd/Makefile.save b/deps/openssl/openssl/crypto/ripemd/Makefile.save
new file mode 100644 (file)
index 0000000..25140b2
--- /dev/null
@@ -0,0 +1,95 @@
+#
+# OpenSSL/crypto/ripemd/Makefile
+#
+
+DIR=    ripemd
+TOP=    ../..
+CC=     cc
+CPP=    $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=       Makefile
+AR=             ar r
+
+RIP_ASM_OBJ=
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=rmdtest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=rmd_dgst.c rmd_one.c
+LIBOBJ=rmd_dgst.o rmd_one.o $(RMD160_ASM_OBJ)
+
+SRC= $(LIBSRC)
+
+EXHEADER= ripemd.h
+HEADER= rmd_locl.h rmdconst.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:    lib
+
+lib:    $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+rmd-586.s:     asm/rmd-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/rmd-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+rmd_dgst.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rmd_dgst.o: ../../include/openssl/opensslconf.h
+rmd_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rmd_dgst.o: ../../include/openssl/ripemd.h ../../include/openssl/safestack.h
+rmd_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rmd_dgst.o: ../md32_common.h rmd_dgst.c rmd_locl.h rmdconst.h
+rmd_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rmd_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+rmd_one.o: ../../include/openssl/ossl_typ.h ../../include/openssl/ripemd.h
+rmd_one.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rmd_one.o: ../../include/openssl/symhacks.h rmd_one.c
diff --git a/deps/openssl/openssl/crypto/rsa/Makefile.save b/deps/openssl/openssl/crypto/rsa/Makefile.save
new file mode 100644 (file)
index 0000000..f798d2f
--- /dev/null
@@ -0,0 +1,308 @@
+#
+# OpenSSL/crypto/rsa/Makefile
+#
+
+DIR=   rsa
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=rsa_test.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c \
+       rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c rsa_null.c \
+       rsa_pss.c rsa_x931.c rsa_asn1.c rsa_depr.c rsa_ameth.c rsa_prn.c \
+       rsa_pmeth.c rsa_crpt.c
+LIBOBJ= rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o \
+       rsa_pk1.o rsa_ssl.o rsa_none.o rsa_oaep.o rsa_chk.o rsa_null.o \
+       rsa_pss.o rsa_x931.o rsa_asn1.o rsa_depr.o rsa_ameth.o rsa_prn.o \
+       rsa_pmeth.o rsa_crpt.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= rsa.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+rsa_ameth.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_ameth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+rsa_ameth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+rsa_ameth.o: ../../include/openssl/cms.h ../../include/openssl/crypto.h
+rsa_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+rsa_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+rsa_ameth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rsa_ameth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rsa_ameth.o: ../../include/openssl/objects.h
+rsa_ameth.o: ../../include/openssl/opensslconf.h
+rsa_ameth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_ameth.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+rsa_ameth.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rsa_ameth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_ameth.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+rsa_ameth.o: ../asn1/asn1_locl.h ../cryptlib.h rsa_ameth.c
+rsa_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+rsa_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+rsa_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rsa_asn1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+rsa_asn1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+rsa_asn1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+rsa_asn1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+rsa_asn1.o: ../../include/openssl/opensslconf.h
+rsa_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+rsa_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rsa_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_asn1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+rsa_asn1.o: ../cryptlib.h rsa_asn1.c
+rsa_chk.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+rsa_chk.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
+rsa_chk.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_chk.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_chk.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_chk.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+rsa_chk.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_chk.o: rsa_chk.c
+rsa_crpt.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_crpt.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_crpt.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+rsa_crpt.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+rsa_crpt.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+rsa_crpt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+rsa_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+rsa_crpt.o: ../../include/openssl/opensslconf.h
+rsa_crpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_crpt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+rsa_crpt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+rsa_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+rsa_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+rsa_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h rsa_crpt.c
+rsa_depr.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_depr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_depr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_depr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_depr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_depr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_depr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+rsa_depr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_depr.o: ../cryptlib.h rsa_depr.c
+rsa_eay.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_eay.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_eay.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_eay.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_eay.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_eay.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_eay.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_eay.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rsa_eay.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_eay.c
+rsa_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+rsa_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rsa_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
+rsa_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+rsa_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
+rsa_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rsa_err.o: ../../include/openssl/symhacks.h rsa_err.c
+rsa_gen.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_gen.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_gen.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_gen.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+rsa_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_gen.o: ../cryptlib.h rsa_gen.c
+rsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+rsa_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+rsa_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+rsa_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+rsa_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+rsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+rsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+rsa_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+rsa_lib.o: ../cryptlib.h rsa_lib.c
+rsa_none.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_none.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_none.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_none.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_none.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_none.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_none.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_none.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rsa_none.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_none.c
+rsa_null.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_null.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_null.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rsa_null.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_null.c
+rsa_oaep.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_oaep.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_oaep.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_oaep.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_oaep.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+rsa_oaep.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+rsa_oaep.o: ../../include/openssl/opensslconf.h
+rsa_oaep.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_oaep.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_oaep.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rsa_oaep.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_oaep.o: ../cryptlib.h rsa_oaep.c
+rsa_pk1.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_pk1.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_pk1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_pk1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_pk1.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_pk1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_pk1.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_pk1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rsa_pk1.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pk1.c
+rsa_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+rsa_pmeth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+rsa_pmeth.o: ../../include/openssl/cms.h ../../include/openssl/crypto.h
+rsa_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+rsa_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+rsa_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rsa_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rsa_pmeth.o: ../../include/openssl/objects.h
+rsa_pmeth.o: ../../include/openssl/opensslconf.h
+rsa_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+rsa_pmeth.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rsa_pmeth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_pmeth.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+rsa_pmeth.o: ../cryptlib.h ../evp/evp_locl.h rsa_locl.h rsa_pmeth.c
+rsa_prn.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_prn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+rsa_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+rsa_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rsa_prn.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rsa_prn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rsa_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_prn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+rsa_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_prn.o: ../cryptlib.h rsa_prn.c
+rsa_pss.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_pss.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_pss.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_pss.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_pss.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+rsa_pss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+rsa_pss.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+rsa_pss.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+rsa_pss.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+rsa_pss.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+rsa_pss.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pss.c
+rsa_saos.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_saos.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_saos.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_saos.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+rsa_saos.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+rsa_saos.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rsa_saos.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rsa_saos.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rsa_saos.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_saos.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+rsa_saos.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rsa_saos.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_saos.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+rsa_saos.o: ../cryptlib.h rsa_saos.c
+rsa_sign.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+rsa_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+rsa_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+rsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rsa_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+rsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+rsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+rsa_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+rsa_sign.o: ../cryptlib.h rsa_locl.h rsa_sign.c
+rsa_ssl.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_ssl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_ssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_ssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_ssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+rsa_ssl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_ssl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_ssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rsa_ssl.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_ssl.c
+rsa_x931.o: ../../e_os.h ../../include/openssl/asn1.h
+rsa_x931.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+rsa_x931.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+rsa_x931.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+rsa_x931.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+rsa_x931.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+rsa_x931.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+rsa_x931.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
+rsa_x931.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+rsa_x931.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_x931.c
index 2460910..5a2062f 100644 (file)
@@ -351,27 +351,27 @@ static int rsa_pss_param_print(BIO *bp, RSA_PSS_PARAMS *pss,
 
        if (!BIO_indent(bp, indent, 128))
                goto err;
-       if (BIO_puts(bp, "Salt Length: ") <= 0)
+       if (BIO_puts(bp, "Salt Length: 0x") <= 0)
                        goto err;
        if (pss->saltLength)
                {
                if (i2a_ASN1_INTEGER(bp, pss->saltLength) <= 0)
                        goto err;
                }
-       else if (BIO_puts(bp, "20 (default)") <= 0)
+       else if (BIO_puts(bp, "0x14 (default)") <= 0)
                goto err;
        BIO_puts(bp, "\n");
 
        if (!BIO_indent(bp, indent, 128))
                goto err;
-       if (BIO_puts(bp, "Trailer Field: ") <= 0)
+       if (BIO_puts(bp, "Trailer Field: 0x") <= 0)
                        goto err;
        if (pss->trailerField)
                {
                if (i2a_ASN1_INTEGER(bp, pss->trailerField) <= 0)
                        goto err;
                }
-       else if (BIO_puts(bp, "0xbc (default)") <= 0)
+       else if (BIO_puts(bp, "BC (default)") <= 0)
                goto err;
        BIO_puts(bp, "\n");
        
index 9d848db..cc30e77 100644 (file)
@@ -59,6 +59,12 @@ int RSA_check_key(const RSA *key)
        BN_CTX *ctx;
        int r;
        int ret=1;
+
+       if (!key->p || !key->q || !key->n || !key->e || !key->d)
+               {
+               RSAerr(RSA_F_RSA_CHECK_KEY, RSA_R_VALUE_MISSING);
+               return 0;
+               }
        
        i = BN_new();
        j = BN_new();
index 5b2ecf5..157aa5c 100644 (file)
@@ -611,6 +611,8 @@ static int pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx,
                        pm = RSA_NO_PADDING;
                else if (!strcmp(value, "oeap"))
                        pm = RSA_PKCS1_OAEP_PADDING;
+               else if (!strcmp(value, "oaep"))
+                       pm = RSA_PKCS1_OAEP_PADDING;
                else if (!strcmp(value, "x931"))
                        pm = RSA_X931_PADDING;
                else if (!strcmp(value, "pss"))
diff --git a/deps/openssl/openssl/crypto/seed/Makefile.save b/deps/openssl/openssl/crypto/seed/Makefile.save
new file mode 100644 (file)
index 0000000..4bc55e4
--- /dev/null
@@ -0,0 +1,106 @@
+#
+# crypto/seed/Makefile
+#
+
+DIR=   seed
+TOP=   ../..
+CC=    cc
+CPP=   $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=seed.c seed_ecb.c seed_cbc.c seed_cfb.c seed_ofb.c
+LIBOBJ=seed.o seed_ecb.o seed_cbc.o seed_cfb.o seed_ofb.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= seed.h
+HEADER= seed_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+seed.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+seed.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+seed.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+seed.o: ../../include/openssl/seed.h ../../include/openssl/stack.h
+seed.o: ../../include/openssl/symhacks.h seed.c seed_locl.h
+seed_cbc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+seed_cbc.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+seed_cbc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+seed_cbc.o: ../../include/openssl/safestack.h ../../include/openssl/seed.h
+seed_cbc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+seed_cbc.o: seed_cbc.c
+seed_cfb.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+seed_cfb.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+seed_cfb.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+seed_cfb.o: ../../include/openssl/safestack.h ../../include/openssl/seed.h
+seed_cfb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+seed_cfb.o: seed_cfb.c
+seed_ecb.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+seed_ecb.o: ../../include/openssl/opensslconf.h
+seed_ecb.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+seed_ecb.o: ../../include/openssl/safestack.h ../../include/openssl/seed.h
+seed_ecb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+seed_ecb.o: seed_ecb.c
+seed_ofb.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+seed_ofb.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
+seed_ofb.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+seed_ofb.o: ../../include/openssl/safestack.h ../../include/openssl/seed.h
+seed_ofb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+seed_ofb.o: seed_ofb.c
index 6d191d3..2eb2b7a 100644 (file)
@@ -60,7 +60,9 @@ sha256-armv4.S: asm/sha256-armv4.pl
        $(PERL) $< $(PERLASM_SCHEME) $@
 
 sha1-alpha.s:  asm/sha1-alpha.pl
-       $(PERL) $< | $(CC) -E - | tee $@ > /dev/null
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) asm/sha1-alpha.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
 
 # Solaris make has to be explicitly told
 sha1-x86_64.s: asm/sha1-x86_64.pl;     $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@
diff --git a/deps/openssl/openssl/crypto/sha/Makefile.save b/deps/openssl/openssl/crypto/sha/Makefile.save
new file mode 100644 (file)
index 0000000..2eb2b7a
--- /dev/null
@@ -0,0 +1,168 @@
+#
+# OpenSSL/crypto/sha/Makefile
+#
+
+DIR=    sha
+TOP=    ../..
+CC=     cc
+CPP=    $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=       Makefile
+AR=             ar r
+
+SHA1_ASM_OBJ=
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=shatest.c sha1test.c sha256t.c sha512t.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c sha256.c sha512.c
+LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o sha256.o sha512.o $(SHA1_ASM_OBJ)
+
+SRC= $(LIBSRC)
+
+EXHEADER= sha.h
+HEADER= sha_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:    lib
+
+lib:    $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+sha1-586.s:    asm/sha1-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/sha1-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+sha256-586.s:  asm/sha256-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/sha256-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+sha512-586.s:  asm/sha512-586.pl ../perlasm/x86asm.pl
+       $(PERL) asm/sha512-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+sha1-ia64.s:   asm/sha1-ia64.pl
+       (cd asm; $(PERL) sha1-ia64.pl ../$@ $(CFLAGS))
+sha256-ia64.s: asm/sha512-ia64.pl
+       (cd asm; $(PERL) sha512-ia64.pl ../$@ $(CFLAGS))
+sha512-ia64.s: asm/sha512-ia64.pl
+       (cd asm; $(PERL) sha512-ia64.pl ../$@ $(CFLAGS))
+
+sha256-armv4.S: asm/sha256-armv4.pl
+       $(PERL) $< $(PERLASM_SCHEME) $@
+
+sha1-alpha.s:  asm/sha1-alpha.pl
+       (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \
+       $(PERL) asm/sha1-alpha.pl > $$preproc && \
+       $(CC) -E $$preproc > $@ && rm $$preproc)
+
+# Solaris make has to be explicitly told
+sha1-x86_64.s: asm/sha1-x86_64.pl;     $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@
+sha256-x86_64.s:asm/sha512-x86_64.pl;  $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
+sha512-x86_64.s:asm/sha512-x86_64.pl;  $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
+sha1-sparcv9.s:        asm/sha1-sparcv9.pl;    $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS)
+sha256-sparcv9.s:asm/sha512-sparcv9.pl;        $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS)
+sha512-sparcv9.s:asm/sha512-sparcv9.pl;        $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS)
+
+sha1-ppc.s:    asm/sha1-ppc.pl;        $(PERL) asm/sha1-ppc.pl $(PERLASM_SCHEME) $@
+sha256-ppc.s:  asm/sha512-ppc.pl;      $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@
+sha512-ppc.s:  asm/sha512-ppc.pl;      $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@
+
+sha1-parisc.s: asm/sha1-parisc.pl;     $(PERL) asm/sha1-parisc.pl $(PERLASM_SCHEME) $@
+sha256-parisc.s:asm/sha512-parisc.pl;  $(PERL) asm/sha512-parisc.pl $(PERLASM_SCHEME) $@
+sha512-parisc.s:asm/sha512-parisc.pl;  $(PERL) asm/sha512-parisc.pl $(PERLASM_SCHEME) $@
+
+sha1-mips.S:   asm/sha1-mips.pl;       $(PERL) asm/sha1-mips.pl $(PERLASM_SCHEME) $@
+sha256-mips.S: asm/sha512-mips.pl;     $(PERL) asm/sha512-mips.pl $(PERLASM_SCHEME) $@
+sha512-mips.S: asm/sha512-mips.pl;     $(PERL) asm/sha512-mips.pl $(PERLASM_SCHEME) $@
+
+# GNU make "catch all"
+sha1-%.S:      asm/sha1-%.pl;          $(PERL) $< $(PERLASM_SCHEME) $@
+sha256-%.S:    asm/sha512-%.pl;        $(PERL) $< $(PERLASM_SCHEME) $@
+sha512-%.S:    asm/sha512-%.pl;        $(PERL) $< $(PERLASM_SCHEME) $@
+
+sha1-armv4-large.o:    sha1-armv4-large.S
+sha256-armv4.o:                sha256-armv4.S
+sha512-armv4.o:                sha512-armv4.S
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+sha1_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+sha1_one.o: ../../include/openssl/opensslconf.h
+sha1_one.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+sha1_one.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+sha1_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+sha1_one.o: sha1_one.c
+sha1dgst.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+sha1dgst.o: ../../include/openssl/opensslconf.h
+sha1dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+sha1dgst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+sha1dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+sha1dgst.o: ../md32_common.h sha1dgst.c sha_locl.h
+sha256.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+sha256.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+sha256.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+sha256.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+sha256.o: ../../include/openssl/symhacks.h ../md32_common.h sha256.c
+sha512.o: ../../e_os.h ../../include/openssl/bio.h
+sha512.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+sha512.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+sha512.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+sha512.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+sha512.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+sha512.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+sha512.o: ../cryptlib.h sha512.c
+sha_dgst.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+sha_dgst.o: ../../include/openssl/opensslconf.h
+sha_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+sha_dgst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+sha_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+sha_dgst.o: ../md32_common.h sha_dgst.c sha_locl.h
+sha_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+sha_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+sha_one.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+sha_one.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+sha_one.o: ../../include/openssl/symhacks.h sha_one.c
index 6d7bf49..6e5a328 100644 (file)
@@ -254,6 +254,7 @@ $code.=<<___;
 ___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
-$code =~ s/,\*/,/gm if ($SIZE_T==4);
+$code =~ s/,\*/,/gm            if ($SIZE_T==4);
+$code =~ s/\bbv\b/bve/gm       if ($SIZE_T==8);
 print $code;
 close STDOUT;
index cfdc45c..f15c7ec 100755 (executable)
@@ -745,7 +745,7 @@ $code.=<<___;
        mov     %rdi,$ctx       # reassigned argument
        mov     %rsi,$inp       # reassigned argument
        mov     %rdx,$num       # reassigned argument
-       vzeroall
+       vzeroupper
 
        shl     \$6,$num
        add     $inp,$num
@@ -1038,7 +1038,7 @@ ___
        &Xtail_avx(\&body_20_39);
 
 $code.=<<___;
-       vzeroall
+       vzeroupper
 
        add     0($ctx),$A                      # update context
        add     4($ctx),@T[0]
diff --git a/deps/openssl/openssl/crypto/sha/asm/sha256-x86_64.pl b/deps/openssl/openssl/crypto/sha/asm/sha256-x86_64.pl
new file mode 100755 (executable)
index 0000000..f475df8
--- /dev/null
@@ -0,0 +1,437 @@
+#!/usr/bin/env perl
+#
+# ====================================================================
+# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
+# project. Rights for redistribution and usage in source and binary
+# forms are granted according to the OpenSSL license.
+# ====================================================================
+#
+# sha256/512_block procedure for x86_64.
+#
+# 40% improvement over compiler-generated code on Opteron. On EM64T
+# sha256 was observed to run >80% faster and sha512 - >40%. No magical
+# tricks, just straight implementation... I really wonder why gcc
+# [being armed with inline assembler] fails to generate as fast code.
+# The only thing which is cool about this module is that it's very
+# same instruction sequence used for both SHA-256 and SHA-512. In
+# former case the instructions operate on 32-bit operands, while in
+# latter - on 64-bit ones. All I had to do is to get one flavor right,
+# the other one passed the test right away:-)
+#
+# sha256_block runs in ~1005 cycles on Opteron, which gives you
+# asymptotic performance of 64*1000/1005=63.7MBps times CPU clock
+# frequency in GHz. sha512_block runs in ~1275 cycles, which results
+# in 128*1000/1275=100MBps per GHz. Is there room for improvement?
+# Well, if you compare it to IA-64 implementation, which maintains
+# X[16] in register bank[!], tends to 4 instructions per CPU clock
+# cycle and runs in 1003 cycles, 1275 is very good result for 3-way
+# issue Opteron pipeline and X[16] maintained in memory. So that *if*
+# there is a way to improve it, *then* the only way would be to try to
+# offload X[16] updates to SSE unit, but that would require "deeper"
+# loop unroll, which in turn would naturally cause size blow-up, not
+# to mention increased complexity! And once again, only *if* it's
+# actually possible to noticeably improve overall ILP, instruction
+# level parallelism, on a given CPU implementation in this case.
+#
+# Special note on Intel EM64T. While Opteron CPU exhibits perfect
+# perfromance ratio of 1.5 between 64- and 32-bit flavors [see above],
+# [currently available] EM64T CPUs apparently are far from it. On the
+# contrary, 64-bit version, sha512_block, is ~30% *slower* than 32-bit
+# sha256_block:-( This is presumably because 64-bit shifts/rotates
+# apparently are not atomic instructions, but implemented in microcode.
+
+$flavour = shift;
+$output  = shift;
+if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
+
+$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
+
+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
+( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
+( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
+die "can't locate x86_64-xlate.pl";
+
+open OUT,"| \"$^X\" $xlate $flavour $output";
+*STDOUT=*OUT;
+
+$func="sha256_block_data_order";
+$TABLE="K256";
+$SZ=4;
+@ROT=($A,$B,$C,$D,$E,$F,$G,$H)=("%eax","%ebx","%ecx","%edx",
+        "%r8d","%r9d","%r10d","%r11d");
+($T1,$a0,$a1,$a2)=("%r12d","%r13d","%r14d","%r15d");
+@Sigma0=( 2,13,22);
+@Sigma1=( 6,11,25);
+@sigma0=( 7,18, 3);
+@sigma1=(17,19,10);
+$rounds=64;
+
+$ctx="%rdi";   # 1st arg
+$round="%rdi"; # zaps $ctx
+$inp="%rsi";   # 2nd arg
+$Tbl="%rbp";
+
+$_ctx="16*$SZ+0*8(%rsp)";
+$_inp="16*$SZ+1*8(%rsp)";
+$_end="16*$SZ+2*8(%rsp)";
+$_rsp="16*$SZ+3*8(%rsp)";
+$framesz="16*$SZ+4*8";
+
+
+sub ROUND_00_15()
+{ my ($i,$a,$b,$c,$d,$e,$f,$g,$h) = @_;
+
+$code.=<<___;
+  ror  \$`$Sigma1[2]-$Sigma1[1]`,$a0
+  mov  $f,$a2
+  mov  $T1,`$SZ*($i&0xf)`(%rsp)
+
+  ror  \$`$Sigma0[2]-$Sigma0[1]`,$a1
+  xor  $e,$a0
+  xor  $g,$a2                  # f^g
+
+  ror  \$`$Sigma1[1]-$Sigma1[0]`,$a0
+  add  $h,$T1                  # T1+=h
+  xor  $a,$a1
+
+  add  ($Tbl,$round,$SZ),$T1   # T1+=K[round]
+  and  $e,$a2                  # (f^g)&e
+  mov  $b,$h
+
+  ror  \$`$Sigma0[1]-$Sigma0[0]`,$a1
+  xor  $e,$a0
+  xor  $g,$a2                  # Ch(e,f,g)=((f^g)&e)^g
+
+  xor  $c,$h                   # b^c
+  xor  $a,$a1
+  add  $a2,$T1                 # T1+=Ch(e,f,g)
+  mov  $b,$a2
+
+  ror  \$$Sigma1[0],$a0        # Sigma1(e)
+  and  $a,$h                   # h=(b^c)&a
+  and  $c,$a2                  # b&c
+
+  ror  \$$Sigma0[0],$a1        # Sigma0(a)
+  add  $a0,$T1                 # T1+=Sigma1(e)
+  add  $a2,$h                  # h+=b&c (completes +=Maj(a,b,c)
+
+  add  $T1,$d                  # d+=T1
+  add  $T1,$h                  # h+=T1
+  lea  1($round),$round        # round++
+  add  $a1,$h                  # h+=Sigma0(a)
+
+___
+}
+
+sub ROUND_16_XX()
+{ my ($i,$a,$b,$c,$d,$e,$f,$g,$h) = @_;
+
+$code.=<<___;
+  mov  `$SZ*(($i+1)&0xf)`(%rsp),$a0
+  mov  `$SZ*(($i+14)&0xf)`(%rsp),$a1
+  mov  $a0,$T1
+  mov  $a1,$a2
+
+  ror  \$`$sigma0[1]-$sigma0[0]`,$T1
+  xor  $a0,$T1
+  shr  \$$sigma0[2],$a0
+
+  ror  \$$sigma0[0],$T1
+  xor  $T1,$a0                 # sigma0(X[(i+1)&0xf])
+  mov  `$SZ*(($i+9)&0xf)`(%rsp),$T1
+
+  ror  \$`$sigma1[1]-$sigma1[0]`,$a2
+  xor  $a1,$a2
+  shr  \$$sigma1[2],$a1
+
+  ror  \$$sigma1[0],$a2
+  add  $a0,$T1
+  xor  $a2,$a1                 # sigma1(X[(i+14)&0xf])
+
+  add  `$SZ*($i&0xf)`(%rsp),$T1
+  mov  $e,$a0
+  add  $a1,$T1
+  mov  $a,$a1
+___
+  &ROUND_00_15(@_);
+}
+
+$code=<<___;
+.text
+
+.globl $func
+.type  $func,\@function,4
+.align 16
+$func:
+  push %rbx
+  push %rbp
+  push %r12
+  push %r13
+  push %r14
+  push %r15
+  mov  %rsp,%r11               # copy %rsp
+  shl  \$4,%rdx                # num*16
+  sub  \$$framesz,%rsp
+  lea  ($inp,%rdx,$SZ),%rdx    # inp+num*16*$SZ
+  and  \$-64,%rsp              # align stack frame
+  mov  $ctx,$_ctx              # save ctx, 1st arg
+  mov  $inp,$_inp              # save inp, 2nd arh
+  mov  %rdx,$_end              # save end pointer, "3rd" arg
+  mov  %r11,$_rsp              # save copy of %rsp
+.Lprologue:
+
+  lea  $TABLE(%rip),$Tbl
+
+  mov  $SZ*0($ctx),$A
+  mov  $SZ*1($ctx),$B
+  mov  $SZ*2($ctx),$C
+  mov  $SZ*3($ctx),$D
+  mov  $SZ*4($ctx),$E
+  mov  $SZ*5($ctx),$F
+  mov  $SZ*6($ctx),$G
+  mov  $SZ*7($ctx),$H
+  jmp  .Lloop
+
+.align 16
+.Lloop:
+  xor  $round,$round
+___
+  for($i=0;$i<16;$i++) {
+    $code.="   mov     $SZ*$i($inp),$T1\n";
+    $code.="   mov     @ROT[4],$a0\n";
+    $code.="   mov     @ROT[0],$a1\n";
+    $code.="   bswap   $T1\n";
+    &ROUND_00_15($i,@ROT);
+    unshift(@ROT,pop(@ROT));
+  }
+$code.=<<___;
+  jmp  .Lrounds_16_xx
+.align 16
+.Lrounds_16_xx:
+___
+  for(;$i<32;$i++) {
+    &ROUND_16_XX($i,@ROT);
+    unshift(@ROT,pop(@ROT));
+  }
+
+$code.=<<___;
+  cmp  \$$rounds,$round
+  jb   .Lrounds_16_xx
+
+  mov  $_ctx,$ctx
+  lea  16*$SZ($inp),$inp
+
+  add  $SZ*0($ctx),$A
+  add  $SZ*1($ctx),$B
+  add  $SZ*2($ctx),$C
+  add  $SZ*3($ctx),$D
+  add  $SZ*4($ctx),$E
+  add  $SZ*5($ctx),$F
+  add  $SZ*6($ctx),$G
+  add  $SZ*7($ctx),$H
+
+  cmp  $_end,$inp
+
+  mov  $A,$SZ*0($ctx)
+  mov  $B,$SZ*1($ctx)
+  mov  $C,$SZ*2($ctx)
+  mov  $D,$SZ*3($ctx)
+  mov  $E,$SZ*4($ctx)
+  mov  $F,$SZ*5($ctx)
+  mov  $G,$SZ*6($ctx)
+  mov  $H,$SZ*7($ctx)
+  jb   .Lloop
+
+  mov  $_rsp,%rsi
+  mov  (%rsi),%r15
+  mov  8(%rsi),%r14
+  mov  16(%rsi),%r13
+  mov  24(%rsi),%r12
+  mov  32(%rsi),%rbp
+  mov  40(%rsi),%rbx
+  lea  48(%rsi),%rsp
+.Lepilogue:
+  ret
+.size  $func,.-$func
+___
+
+if ($SZ==4) {
+$code.=<<___;
+.align 64
+.type  $TABLE,\@object
+$TABLE:
+  .long        0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+  .long        0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+  .long        0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+  .long        0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+  .long        0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+  .long        0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+  .long        0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+  .long        0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+  .long        0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+  .long        0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+  .long        0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+  .long        0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+  .long        0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+  .long        0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+  .long        0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+  .long        0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+___
+} else {
+$code.=<<___;
+.align 64
+.type  $TABLE,\@object
+$TABLE:
+  .quad        0x428a2f98d728ae22,0x7137449123ef65cd
+  .quad        0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+  .quad        0x3956c25bf348b538,0x59f111f1b605d019
+  .quad        0x923f82a4af194f9b,0xab1c5ed5da6d8118
+  .quad        0xd807aa98a3030242,0x12835b0145706fbe
+  .quad        0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+  .quad        0x72be5d74f27b896f,0x80deb1fe3b1696b1
+  .quad        0x9bdc06a725c71235,0xc19bf174cf692694
+  .quad        0xe49b69c19ef14ad2,0xefbe4786384f25e3
+  .quad        0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+  .quad        0x2de92c6f592b0275,0x4a7484aa6ea6e483
+  .quad        0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+  .quad        0x983e5152ee66dfab,0xa831c66d2db43210
+  .quad        0xb00327c898fb213f,0xbf597fc7beef0ee4
+  .quad        0xc6e00bf33da88fc2,0xd5a79147930aa725
+  .quad        0x06ca6351e003826f,0x142929670a0e6e70
+  .quad        0x27b70a8546d22ffc,0x2e1b21385c26c926
+  .quad        0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+  .quad        0x650a73548baf63de,0x766a0abb3c77b2a8
+  .quad        0x81c2c92e47edaee6,0x92722c851482353b
+  .quad        0xa2bfe8a14cf10364,0xa81a664bbc423001
+  .quad        0xc24b8b70d0f89791,0xc76c51a30654be30
+  .quad        0xd192e819d6ef5218,0xd69906245565a910
+  .quad        0xf40e35855771202a,0x106aa07032bbd1b8
+  .quad        0x19a4c116b8d2d0c8,0x1e376c085141ab53
+  .quad        0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+  .quad        0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+  .quad        0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+  .quad        0x748f82ee5defb2fc,0x78a5636f43172f60
+  .quad        0x84c87814a1f0ab72,0x8cc702081a6439ec
+  .quad        0x90befffa23631e28,0xa4506cebde82bde9
+  .quad        0xbef9a3f7b2c67915,0xc67178f2e372532b
+  .quad        0xca273eceea26619c,0xd186b8c721c0c207
+  .quad        0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+  .quad        0x06f067aa72176fba,0x0a637dc5a2c898a6
+  .quad        0x113f9804bef90dae,0x1b710b35131c471b
+  .quad        0x28db77f523047d84,0x32caab7b40c72493
+  .quad        0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+  .quad        0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+  .quad        0x5fcb6fab3ad6faec,0x6c44198c4a475817
+___
+}
+
+# EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
+#              CONTEXT *context,DISPATCHER_CONTEXT *disp)
+if ($win64) {
+$rec="%rcx";
+$frame="%rdx";
+$context="%r8";
+$disp="%r9";
+
+$code.=<<___;
+.extern        __imp_RtlVirtualUnwind
+.type  se_handler,\@abi-omnipotent
+.align 16
+se_handler:
+  push %rsi
+  push %rdi
+  push %rbx
+  push %rbp
+  push %r12
+  push %r13
+  push %r14
+  push %r15
+  pushfq
+  sub  \$64,%rsp
+
+  mov  120($context),%rax      # pull context->Rax
+  mov  248($context),%rbx      # pull context->Rip
+
+  lea  .Lprologue(%rip),%r10
+  cmp  %r10,%rbx               # context->Rip<.Lprologue
+  jb   .Lin_prologue
+
+  mov  152($context),%rax      # pull context->Rsp
+
+  lea  .Lepilogue(%rip),%r10
+  cmp  %r10,%rbx               # context->Rip>=.Lepilogue
+  jae  .Lin_prologue
+
+  mov  16*$SZ+3*8(%rax),%rax   # pull $_rsp
+  lea  48(%rax),%rax
+
+  mov  -8(%rax),%rbx
+  mov  -16(%rax),%rbp
+  mov  -24(%rax),%r12
+  mov  -32(%rax),%r13
+  mov  -40(%rax),%r14
+  mov  -48(%rax),%r15
+  mov  %rbx,144($context)      # restore context->Rbx
+  mov  %rbp,160($context)      # restore context->Rbp
+  mov  %r12,216($context)      # restore context->R12
+  mov  %r13,224($context)      # restore context->R13
+  mov  %r14,232($context)      # restore context->R14
+  mov  %r15,240($context)      # restore context->R15
+
+.Lin_prologue:
+  mov  8(%rax),%rdi
+  mov  16(%rax),%rsi
+  mov  %rax,152($context)      # restore context->Rsp
+  mov  %rsi,168($context)      # restore context->Rsi
+  mov  %rdi,176($context)      # restore context->Rdi
+
+  mov  40($disp),%rdi          # disp->ContextRecord
+  mov  $context,%rsi           # context
+  mov  \$154,%ecx              # sizeof(CONTEXT)
+  .long        0xa548f3fc              # cld; rep movsq
+
+  mov  $disp,%rsi
+  xor  %rcx,%rcx               # arg1, UNW_FLAG_NHANDLER
+  mov  8(%rsi),%rdx            # arg2, disp->ImageBase
+  mov  0(%rsi),%r8             # arg3, disp->ControlPc
+  mov  16(%rsi),%r9            # arg4, disp->FunctionEntry
+  mov  40(%rsi),%r10           # disp->ContextRecord
+  lea  56(%rsi),%r11           # &disp->HandlerData
+  lea  24(%rsi),%r12           # &disp->EstablisherFrame
+  mov  %r10,32(%rsp)           # arg5
+  mov  %r11,40(%rsp)           # arg6
+  mov  %r12,48(%rsp)           # arg7
+  mov  %rcx,56(%rsp)           # arg8, (NULL)
+  call *__imp_RtlVirtualUnwind(%rip)
+
+  mov  \$1,%eax                # ExceptionContinueSearch
+  add  \$64,%rsp
+  popfq
+  pop  %r15
+  pop  %r14
+  pop  %r13
+  pop  %r12
+  pop  %rbp
+  pop  %rbx
+  pop  %rdi
+  pop  %rsi
+  ret
+.size  se_handler,.-se_handler
+
+.section       .pdata
+.align 4
+  .rva .LSEH_begin_$func
+  .rva .LSEH_end_$func
+  .rva .LSEH_info_$func
+
+.section       .xdata
+.align 8
+.LSEH_info_$func:
+  .byte        9,0,0,0
+  .rva se_handler
+___
+}
+
+$code =~ s/\`([^\`]*)\`/eval $1/gem;
+print $code;
+close STDOUT;
index ba5b250..ffa053b 100644 (file)
@@ -351,7 +351,7 @@ $code.=<<___;
        $ST     $G,6*$SZ($ctx)
        $ST     $H,7*$SZ($ctx)
 
-       bnel    $inp,@X[15],.Loop
+       bne     $inp,@X[15],.Loop
        $PTR_SUB $Ktbl,`($rounds-16)*$SZ`       # rewind $Ktbl
 
        $REG_L  $ra,$FRAMESIZE-1*$SZREG($sp)
index e24ee58..fc0e15b 100755 (executable)
@@ -785,6 +785,8 @@ foreach (split("\n",$code)) {
 
        s/cmpb,\*/comb,/ if ($SIZE_T==4);
 
+       s/\bbv\b/bve/    if ($SIZE_T==8);
+
        print $_,"\n";
 }
 
index 8d51678..9099538 100755 (executable)
@@ -54,31 +54,17 @@ die "can't locate x86_64-xlate.pl";
 open OUT,"| \"$^X\" $xlate $flavour $output";
 *STDOUT=*OUT;
 
-if ($output =~ /512/) {
-       $func="sha512_block_data_order";
-       $TABLE="K512";
-       $SZ=8;
-       @ROT=($A,$B,$C,$D,$E,$F,$G,$H)=("%rax","%rbx","%rcx","%rdx",
-                                       "%r8", "%r9", "%r10","%r11");
-       ($T1,$a0,$a1,$a2)=("%r12","%r13","%r14","%r15");
-       @Sigma0=(28,34,39);
-       @Sigma1=(14,18,41);
-       @sigma0=(1,  8, 7);
-       @sigma1=(19,61, 6);
-       $rounds=80;
-} else {
-       $func="sha256_block_data_order";
-       $TABLE="K256";
-       $SZ=4;
-       @ROT=($A,$B,$C,$D,$E,$F,$G,$H)=("%eax","%ebx","%ecx","%edx",
-                                       "%r8d","%r9d","%r10d","%r11d");
-       ($T1,$a0,$a1,$a2)=("%r12d","%r13d","%r14d","%r15d");
-       @Sigma0=( 2,13,22);
-       @Sigma1=( 6,11,25);
-       @sigma0=( 7,18, 3);
-       @sigma1=(17,19,10);
-       $rounds=64;
-}
+$func="sha512_block_data_order";
+$TABLE="K512";
+$SZ=8;
+@ROT=($A,$B,$C,$D,$E,$F,$G,$H)=("%rax","%rbx","%rcx","%rdx",
+        "%r8", "%r9", "%r10","%r11");
+($T1,$a0,$a1,$a2)=("%r12","%r13","%r14","%r15");
+@Sigma0=(28,34,39);
+@Sigma1=(14,18,41);
+@sigma0=(1,  8, 7);
+@sigma1=(19,61, 6);
+$rounds=80;
 
 $ctx="%rdi";   # 1st arg
 $round="%rdi"; # zaps $ctx
index 50dd7dc..50c229d 100644 (file)
@@ -232,7 +232,14 @@ int SHA384_Update (SHA512_CTX *c, const void *data, size_t len)
 {   return SHA512_Update (c,data,len);   }
 
 void SHA512_Transform (SHA512_CTX *c, const unsigned char *data)
-{   sha512_block_data_order (c,data,1);  }
+       {
+#ifndef SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA
+       if ((size_t)data%sizeof(c->u.d[0]) != 0)
+               memcpy(c->u.p,data,sizeof(c->u.p)),
+               data = c->u.p;
+#endif
+       sha512_block_data_order (c,data,1);
+       }
 
 unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md)
        {
diff --git a/deps/openssl/openssl/crypto/srp/Makefile.save b/deps/openssl/openssl/crypto/srp/Makefile.save
new file mode 100644 (file)
index 0000000..41859d4
--- /dev/null
@@ -0,0 +1,98 @@
+DIR=   srp
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+INSTALL_PREFIX=
+OPENSSLDIR=     /usr/local/ssl
+INSTALLTOP=/usr/local/ssl
+MAKE=          make -f Makefile.ssl
+MAKEDEPPROG=   makedepend
+MAKEDEPEND=    $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
+MAKEFILE=      Makefile.ssl
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=srptest.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=srp_lib.c srp_vfy.c
+LIBOBJ=srp_lib.o srp_vfy.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= srp.h
+HEADER=        $(EXHEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+srptest: top srptest.c $(LIB)
+       $(CC) $(CFLAGS) -Wall -Werror -g -o srptest srptest.c $(LIB)
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+srp_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+srp_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+srp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+srp_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+srp_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+srp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+srp_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+srp_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+srp_lib.o: ../../include/openssl/sha.h ../../include/openssl/srp.h
+srp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+srp_lib.o: ../cryptlib.h srp_grps.h srp_lcl.h srp_lib.c
+srp_vfy.o: ../../e_os.h ../../include/openssl/asn1.h
+srp_vfy.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+srp_vfy.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+srp_vfy.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+srp_vfy.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+srp_vfy.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+srp_vfy.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+srp_vfy.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+srp_vfy.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+srp_vfy.o: ../../include/openssl/srp.h ../../include/openssl/stack.h
+srp_vfy.o: ../../include/openssl/symhacks.h ../../include/openssl/txt_db.h
+srp_vfy.o: ../cryptlib.h srp_lcl.h srp_vfy.c
index d77c9ff..8e3c35e 100644 (file)
@@ -1,22 +1,22 @@
 /* start of generated data */
 
 static BN_ULONG bn_group_1024_value[] = {
-       bn_pack4(9FC6,1D2F,C0EB,06E3),
-       bn_pack4(FD51,38FE,8376,435B),
-       bn_pack4(2FD4,CBF4,976E,AA9A),
-       bn_pack4(68ED,BC3C,0572,6CC0),
-       bn_pack4(C529,F566,660E,57EC),
-       bn_pack4(8255,9B29,7BCF,1885),
-       bn_pack4(CE8E,F4AD,69B1,5D49),
-       bn_pack4(5DC7,D7B4,6154,D6B6),
-       bn_pack4(8E49,5C1D,6089,DAD1),
-       bn_pack4(E0D5,D8E2,50B9,8BE4),
-       bn_pack4(383B,4813,D692,C6E0),
-       bn_pack4(D674,DF74,96EA,81D3),
-       bn_pack4(9EA2,314C,9C25,6576),
-       bn_pack4(6072,6187,75FF,3C0B),
-       bn_pack4(9C33,F80A,FA8F,C5E8),
-       bn_pack4(EEAF,0AB9,ADB3,8DD6)
+       bn_pack4(0x9FC6,0x1D2F,0xC0EB,0x06E3),
+       bn_pack4(0xFD51,0x38FE,0x8376,0x435B),
+       bn_pack4(0x2FD4,0xCBF4,0x976E,0xAA9A),
+       bn_pack4(0x68ED,0xBC3C,0x0572,0x6CC0),
+       bn_pack4(0xC529,0xF566,0x660E,0x57EC),
+       bn_pack4(0x8255,0x9B29,0x7BCF,0x1885),
+       bn_pack4(0xCE8E,0xF4AD,0x69B1,0x5D49),
+       bn_pack4(0x5DC7,0xD7B4,0x6154,0xD6B6),
+       bn_pack4(0x8E49,0x5C1D,0x6089,0xDAD1),
+       bn_pack4(0xE0D5,0xD8E2,0x50B9,0x8BE4),
+       bn_pack4(0x383B,0x4813,0xD692,0xC6E0),
+       bn_pack4(0xD674,0xDF74,0x96EA,0x81D3),
+       bn_pack4(0x9EA2,0x314C,0x9C25,0x6576),
+       bn_pack4(0x6072,0x6187,0x75FF,0x3C0B),
+       bn_pack4(0x9C33,0xF80A,0xFA8F,0xC5E8),
+       bn_pack4(0xEEAF,0x0AB9,0xADB3,0x8DD6)
 };
 static BIGNUM bn_group_1024 = {
        bn_group_1024_value,
@@ -27,30 +27,30 @@ static BIGNUM bn_group_1024 = {
 };
 
 static BN_ULONG bn_group_1536_value[] = {
-       bn_pack4(CF76,E3FE,D135,F9BB),
-       bn_pack4(1518,0F93,499A,234D),
-       bn_pack4(8CE7,A28C,2442,C6F3),
-       bn_pack4(5A02,1FFF,5E91,479E),
-       bn_pack4(7F8A,2FE9,B8B5,292E),
-       bn_pack4(837C,264A,E3A9,BEB8),
-       bn_pack4(E442,734A,F7CC,B7AE),
-       bn_pack4(6577,2E43,7D6C,7F8C),
-       bn_pack4(DB2F,D53D,24B7,C486),
-       bn_pack4(6EDF,0195,3934,9627),
-       bn_pack4(158B,FD3E,2B9C,8CF5),
-       bn_pack4(764E,3F4B,53DD,9DA1),
-       bn_pack4(4754,8381,DBC5,B1FC),
-       bn_pack4(9B60,9E0B,E3BA,B63D),
-       bn_pack4(8134,B1C8,B979,8914),
-       bn_pack4(DF02,8A7C,EC67,F0D0),
-       bn_pack4(80B6,55BB,9A22,E8DC),
-       bn_pack4(1558,903B,A0D0,F843),
-       bn_pack4(51C6,A94B,E460,7A29),
-       bn_pack4(5F4F,5F55,6E27,CBDE),
-       bn_pack4(BEEE,A961,4B19,CC4D),
-       bn_pack4(DBA5,1DF4,99AC,4C80),
-       bn_pack4(B1F1,2A86,17A4,7BBB),
-       bn_pack4(9DEF,3CAF,B939,277A)
+       bn_pack4(0xCF76,0xE3FE,0xD135,0xF9BB),
+       bn_pack4(0x1518,0x0F93,0x499A,0x234D),
+       bn_pack4(0x8CE7,0xA28C,0x2442,0xC6F3),
+       bn_pack4(0x5A02,0x1FFF,0x5E91,0x479E),
+       bn_pack4(0x7F8A,0x2FE9,0xB8B5,0x292E),
+       bn_pack4(0x837C,0x264A,0xE3A9,0xBEB8),
+       bn_pack4(0xE442,0x734A,0xF7CC,0xB7AE),
+       bn_pack4(0x6577,0x2E43,0x7D6C,0x7F8C),
+       bn_pack4(0xDB2F,0xD53D,0x24B7,0xC486),
+       bn_pack4(0x6EDF,0x0195,0x3934,0x9627),
+       bn_pack4(0x158B,0xFD3E,0x2B9C,0x8CF5),
+       bn_pack4(0x764E,0x3F4B,0x53DD,0x9DA1),
+       bn_pack4(0x4754,0x8381,0xDBC5,0xB1FC),
+       bn_pack4(0x9B60,0x9E0B,0xE3BA,0xB63D),
+       bn_pack4(0x8134,0xB1C8,0xB979,0x8914),
+       bn_pack4(0xDF02,0x8A7C,0xEC67,0xF0D0),
+       bn_pack4(0x80B6,0x55BB,0x9A22,0xE8DC),
+       bn_pack4(0x1558,0x903B,0xA0D0,0xF843),
+       bn_pack4(0x51C6,0xA94B,0xE460,0x7A29),
+       bn_pack4(0x5F4F,0x5F55,0x6E27,0xCBDE),
+       bn_pack4(0xBEEE,0xA961,0x4B19,0xCC4D),
+       bn_pack4(0xDBA5,0x1DF4,0x99AC,0x4C80),
+       bn_pack4(0xB1F1,0x2A86,0x17A4,0x7BBB),
+       bn_pack4(0x9DEF,0x3CAF,0xB939,0x277A)
 };
 static BIGNUM bn_group_1536 = {
        bn_group_1536_value,
@@ -61,38 +61,38 @@ static BIGNUM bn_group_1536 = {
 };
 
 static BN_ULONG bn_group_2048_value[] = {
-       bn_pack4(0FA7,111F,9E4A,FF73),
-       bn_pack4(9B65,E372,FCD6,8EF2),
-       bn_pack4(35DE,236D,525F,5475),
-       bn_pack4(94B5,C803,D89F,7AE4),
-       bn_pack4(71AE,35F8,E9DB,FBB6),
-       bn_pack4(2A56,98F3,A8D0,C382),
-       bn_pack4(9CCC,041C,7BC3,08D8),
-       bn_pack4(AF87,4E73,03CE,5329),
-       bn_pack4(6160,2790,04E5,7AE6),
-       bn_pack4(032C,FBDB,F52F,B378),
-       bn_pack4(5EA7,7A27,75D2,ECFA),
-       bn_pack4(5445,23B5,24B0,D57D),
-       bn_pack4(5B9D,32E6,88F8,7748),
-       bn_pack4(F1D2,B907,8717,461A),
-       bn_pack4(76BD,207A,436C,6481),
-       bn_pack4(CA97,B43A,23FB,8016),
-       bn_pack4(1D28,1E44,6B14,773B),
-       bn_pack4(7359,D041,D5C3,3EA7),
-       bn_pack4(A80D,740A,DBF4,FF74),
-       bn_pack4(55F9,7993,EC97,5EEA),
-       bn_pack4(2918,A996,2F0B,93B8),
-       bn_pack4(661A,05FB,D5FA,AAE8),
-       bn_pack4(CF60,9517,9A16,3AB3),
-       bn_pack4(E808,3969,EDB7,67B0),
-       bn_pack4(CD7F,48A9,DA04,FD50),
-       bn_pack4(D523,12AB,4B03,310D),
-       bn_pack4(8193,E075,7767,A13D),
-       bn_pack4(A373,29CB,B4A0,99ED),
-       bn_pack4(FC31,9294,3DB5,6050),
-       bn_pack4(AF72,B665,1987,EE07),
-       bn_pack4(F166,DE5E,1389,582F),
-       bn_pack4(AC6B,DB41,324A,9A9B)
+       bn_pack4(0x0FA7,0x111F,0x9E4A,0xFF73),
+       bn_pack4(0x9B65,0xE372,0xFCD6,0x8EF2),
+       bn_pack4(0x35DE,0x236D,0x525F,0x5475),
+       bn_pack4(0x94B5,0xC803,0xD89F,0x7AE4),
+       bn_pack4(0x71AE,0x35F8,0xE9DB,0xFBB6),
+       bn_pack4(0x2A56,0x98F3,0xA8D0,0xC382),
+       bn_pack4(0x9CCC,0x041C,0x7BC3,0x08D8),
+       bn_pack4(0xAF87,0x4E73,0x03CE,0x5329),
+       bn_pack4(0x6160,0x2790,0x04E5,0x7AE6),
+       bn_pack4(0x032C,0xFBDB,0xF52F,0xB378),
+       bn_pack4(0x5EA7,0x7A27,0x75D2,0xECFA),
+       bn_pack4(0x5445,0x23B5,0x24B0,0xD57D),
+       bn_pack4(0x5B9D,0x32E6,0x88F8,0x7748),
+       bn_pack4(0xF1D2,0xB907,0x8717,0x461A),
+       bn_pack4(0x76BD,0x207A,0x436C,0x6481),
+       bn_pack4(0xCA97,0xB43A,0x23FB,0x8016),
+       bn_pack4(0x1D28,0x1E44,0x6B14,0x773B),
+       bn_pack4(0x7359,0xD041,0xD5C3,0x3EA7),
+       bn_pack4(0xA80D,0x740A,0xDBF4,0xFF74),
+       bn_pack4(0x55F9,0x7993,0xEC97,0x5EEA),
+       bn_pack4(0x2918,0xA996,0x2F0B,0x93B8),
+       bn_pack4(0x661A,0x05FB,0xD5FA,0xAAE8),
+       bn_pack4(0xCF60,0x9517,0x9A16,0x3AB3),
+       bn_pack4(0xE808,0x3969,0xEDB7,0x67B0),
+       bn_pack4(0xCD7F,0x48A9,0xDA04,0xFD50),
+       bn_pack4(0xD523,0x12AB,0x4B03,0x310D),
+       bn_pack4(0x8193,0xE075,0x7767,0xA13D),
+       bn_pack4(0xA373,0x29CB,0xB4A0,0x99ED),
+       bn_pack4(0xFC31,0x9294,0x3DB5,0x6050),
+       bn_pack4(0xAF72,0xB665,0x1987,0xEE07),
+       bn_pack4(0xF166,0xDE5E,0x1389,0x582F),
+       bn_pack4(0xAC6B,0xDB41,0x324A,0x9A9B)
 };
 static BIGNUM bn_group_2048 = {
        bn_group_2048_value,
@@ -103,54 +103,54 @@ static BIGNUM bn_group_2048 = {
 };
 
 static BN_ULONG bn_group_3072_value[] = {
-       bn_pack4(FFFF,FFFF,FFFF,FFFF),
-       bn_pack4(4B82,D120,A93A,D2CA),
-       bn_pack4(43DB,5BFC,E0FD,108E),
-       bn_pack4(08E2,4FA0,74E5,AB31),
-       bn_pack4(7709,88C0,BAD9,46E2),
-       bn_pack4(BBE1,1757,7A61,5D6C),
-       bn_pack4(521F,2B18,177B,200C),
-       bn_pack4(D876,0273,3EC8,6A64),
-       bn_pack4(F12F,FA06,D98A,0864),
-       bn_pack4(CEE3,D226,1AD2,EE6B),
-       bn_pack4(1E8C,94E0,4A25,619D),
-       bn_pack4(ABF5,AE8C,DB09,33D7),
-       bn_pack4(B397,0F85,A6E1,E4C7),
-       bn_pack4(8AEA,7157,5D06,0C7D),
-       bn_pack4(ECFB,8504,58DB,EF0A),
-       bn_pack4(A855,21AB,DF1C,BA64),
-       bn_pack4(AD33,170D,0450,7A33),
-       bn_pack4(1572,8E5A,8AAA,C42D),
-       bn_pack4(15D2,2618,98FA,0510),
-       bn_pack4(3995,497C,EA95,6AE5),
-       bn_pack4(DE2B,CBF6,9558,1718),
-       bn_pack4(B5C5,5DF0,6F4C,52C9),
-       bn_pack4(9B27,83A2,EC07,A28F),
-       bn_pack4(E39E,772C,180E,8603),
-       bn_pack4(3290,5E46,2E36,CE3B),
-       bn_pack4(F174,6C08,CA18,217C),
-       bn_pack4(670C,354E,4ABC,9804),
-       bn_pack4(9ED5,2907,7096,966D),
-       bn_pack4(1C62,F356,2085,52BB),
-       bn_pack4(8365,5D23,DCA3,AD96),
-       bn_pack4(6916,3FA8,FD24,CF5F),
-       bn_pack4(98DA,4836,1C55,D39A),
-       bn_pack4(C200,7CB8,A163,BF05),
-       bn_pack4(4928,6651,ECE4,5B3D),
-       bn_pack4(AE9F,2411,7C4B,1FE6),
-       bn_pack4(EE38,6BFB,5A89,9FA5),
-       bn_pack4(0BFF,5CB6,F406,B7ED),
-       bn_pack4(F44C,42E9,A637,ED6B),
-       bn_pack4(E485,B576,625E,7EC6),
-       bn_pack4(4FE1,356D,6D51,C245),
-       bn_pack4(302B,0A6D,F25F,1437),
-       bn_pack4(EF95,19B3,CD3A,431B),
-       bn_pack4(514A,0879,8E34,04DD),
-       bn_pack4(020B,BEA6,3B13,9B22),
-       bn_pack4(2902,4E08,8A67,CC74),
-       bn_pack4(C4C6,628B,80DC,1CD1),
-       bn_pack4(C90F,DAA2,2168,C234),
-       bn_pack4(FFFF,FFFF,FFFF,FFFF)
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF),
+       bn_pack4(0x4B82,0xD120,0xA93A,0xD2CA),
+       bn_pack4(0x43DB,0x5BFC,0xE0FD,0x108E),
+       bn_pack4(0x08E2,0x4FA0,0x74E5,0xAB31),
+       bn_pack4(0x7709,0x88C0,0xBAD9,0x46E2),
+       bn_pack4(0xBBE1,0x1757,0x7A61,0x5D6C),
+       bn_pack4(0x521F,0x2B18,0x177B,0x200C),
+       bn_pack4(0xD876,0x0273,0x3EC8,0x6A64),
+       bn_pack4(0xF12F,0xFA06,0xD98A,0x0864),
+       bn_pack4(0xCEE3,0xD226,0x1AD2,0xEE6B),
+       bn_pack4(0x1E8C,0x94E0,0x4A25,0x619D),
+       bn_pack4(0xABF5,0xAE8C,0xDB09,0x33D7),
+       bn_pack4(0xB397,0x0F85,0xA6E1,0xE4C7),
+       bn_pack4(0x8AEA,0x7157,0x5D06,0x0C7D),
+       bn_pack4(0xECFB,0x8504,0x58DB,0xEF0A),
+       bn_pack4(0xA855,0x21AB,0xDF1C,0xBA64),
+       bn_pack4(0xAD33,0x170D,0x0450,0x7A33),
+       bn_pack4(0x1572,0x8E5A,0x8AAA,0xC42D),
+       bn_pack4(0x15D2,0x2618,0x98FA,0x0510),
+       bn_pack4(0x3995,0x497C,0xEA95,0x6AE5),
+       bn_pack4(0xDE2B,0xCBF6,0x9558,0x1718),
+       bn_pack4(0xB5C5,0x5DF0,0x6F4C,0x52C9),
+       bn_pack4(0x9B27,0x83A2,0xEC07,0xA28F),
+       bn_pack4(0xE39E,0x772C,0x180E,0x8603),
+       bn_pack4(0x3290,0x5E46,0x2E36,0xCE3B),
+       bn_pack4(0xF174,0x6C08,0xCA18,0x217C),
+       bn_pack4(0x670C,0x354E,0x4ABC,0x9804),
+       bn_pack4(0x9ED5,0x2907,0x7096,0x966D),
+       bn_pack4(0x1C62,0xF356,0x2085,0x52BB),
+       bn_pack4(0x8365,0x5D23,0xDCA3,0xAD96),
+       bn_pack4(0x6916,0x3FA8,0xFD24,0xCF5F),
+       bn_pack4(0x98DA,0x4836,0x1C55,0xD39A),
+       bn_pack4(0xC200,0x7CB8,0xA163,0xBF05),
+       bn_pack4(0x4928,0x6651,0xECE4,0x5B3D),
+       bn_pack4(0xAE9F,0x2411,0x7C4B,0x1FE6),
+       bn_pack4(0xEE38,0x6BFB,0x5A89,0x9FA5),
+       bn_pack4(0x0BFF,0x5CB6,0xF406,0xB7ED),
+       bn_pack4(0xF44C,0x42E9,0xA637,0xED6B),
+       bn_pack4(0xE485,0xB576,0x625E,0x7EC6),
+       bn_pack4(0x4FE1,0x356D,0x6D51,0xC245),
+       bn_pack4(0x302B,0x0A6D,0xF25F,0x1437),
+       bn_pack4(0xEF95,0x19B3,0xCD3A,0x431B),
+       bn_pack4(0x514A,0x0879,0x8E34,0x04DD),
+       bn_pack4(0x020B,0xBEA6,0x3B13,0x9B22),
+       bn_pack4(0x2902,0x4E08,0x8A67,0xCC74),
+       bn_pack4(0xC4C6,0x628B,0x80DC,0x1CD1),
+       bn_pack4(0xC90F,0xDAA2,0x2168,0xC234),
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF)
 };
 static BIGNUM bn_group_3072 = {
        bn_group_3072_value,
@@ -161,70 +161,70 @@ static BIGNUM bn_group_3072 = {
 };
 
 static BN_ULONG bn_group_4096_value[] = {
-       bn_pack4(FFFF,FFFF,FFFF,FFFF),
-       bn_pack4(4DF4,35C9,3406,3199),
-       bn_pack4(86FF,B7DC,90A6,C08F),
-       bn_pack4(93B4,EA98,8D8F,DDC1),
-       bn_pack4(D006,9127,D5B0,5AA9),
-       bn_pack4(B81B,DD76,2170,481C),
-       bn_pack4(1F61,2970,CEE2,D7AF),
-       bn_pack4(233B,A186,515B,E7ED),
-       bn_pack4(99B2,964F,A090,C3A2),
-       bn_pack4(287C,5947,4E6B,C05D),
-       bn_pack4(2E8E,FC14,1FBE,CAA6),
-       bn_pack4(DBBB,C2DB,04DE,8EF9),
-       bn_pack4(2583,E9CA,2AD4,4CE8),
-       bn_pack4(1A94,6834,B615,0BDA),
-       bn_pack4(99C3,2718,6AF4,E23C),
-       bn_pack4(8871,9A10,BDBA,5B26),
-       bn_pack4(1A72,3C12,A787,E6D7),
-       bn_pack4(4B82,D120,A921,0801),
-       bn_pack4(43DB,5BFC,E0FD,108E),
-       bn_pack4(08E2,4FA0,74E5,AB31),
-       bn_pack4(7709,88C0,BAD9,46E2),
-       bn_pack4(BBE1,1757,7A61,5D6C),
-       bn_pack4(521F,2B18,177B,200C),
-       bn_pack4(D876,0273,3EC8,6A64),
-       bn_pack4(F12F,FA06,D98A,0864),
-       bn_pack4(CEE3,D226,1AD2,EE6B),
-       bn_pack4(1E8C,94E0,4A25,619D),
-       bn_pack4(ABF5,AE8C,DB09,33D7),
-       bn_pack4(B397,0F85,A6E1,E4C7),
-       bn_pack4(8AEA,7157,5D06,0C7D),
-       bn_pack4(ECFB,8504,58DB,EF0A),
-       bn_pack4(A855,21AB,DF1C,BA64),
-       bn_pack4(AD33,170D,0450,7A33),
-       bn_pack4(1572,8E5A,8AAA,C42D),
-       bn_pack4(15D2,2618,98FA,0510),
-       bn_pack4(3995,497C,EA95,6AE5),
-       bn_pack4(DE2B,CBF6,9558,1718),
-       bn_pack4(B5C5,5DF0,6F4C,52C9),
-       bn_pack4(9B27,83A2,EC07,A28F),
-       bn_pack4(E39E,772C,180E,8603),
-       bn_pack4(3290,5E46,2E36,CE3B),
-       bn_pack4(F174,6C08,CA18,217C),
-       bn_pack4(670C,354E,4ABC,9804),
-       bn_pack4(9ED5,2907,7096,966D),
-       bn_pack4(1C62,F356,2085,52BB),
-       bn_pack4(8365,5D23,DCA3,AD96),
-       bn_pack4(6916,3FA8,FD24,CF5F),
-       bn_pack4(98DA,4836,1C55,D39A),
-       bn_pack4(C200,7CB8,A163,BF05),
-       bn_pack4(4928,6651,ECE4,5B3D),
-       bn_pack4(AE9F,2411,7C4B,1FE6),
-       bn_pack4(EE38,6BFB,5A89,9FA5),
-       bn_pack4(0BFF,5CB6,F406,B7ED),
-       bn_pack4(F44C,42E9,A637,ED6B),
-       bn_pack4(E485,B576,625E,7EC6),
-       bn_pack4(4FE1,356D,6D51,C245),
-       bn_pack4(302B,0A6D,F25F,1437),
-       bn_pack4(EF95,19B3,CD3A,431B),
-       bn_pack4(514A,0879,8E34,04DD),
-       bn_pack4(020B,BEA6,3B13,9B22),
-       bn_pack4(2902,4E08,8A67,CC74),
-       bn_pack4(C4C6,628B,80DC,1CD1),
-       bn_pack4(C90F,DAA2,2168,C234),
-       bn_pack4(FFFF,FFFF,FFFF,FFFF)
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF),
+       bn_pack4(0x4DF4,0x35C9,0x3406,0x3199),
+       bn_pack4(0x86FF,0xB7DC,0x90A6,0xC08F),
+       bn_pack4(0x93B4,0xEA98,0x8D8F,0xDDC1),
+       bn_pack4(0xD006,0x9127,0xD5B0,0x5AA9),
+       bn_pack4(0xB81B,0xDD76,0x2170,0x481C),
+       bn_pack4(0x1F61,0x2970,0xCEE2,0xD7AF),
+       bn_pack4(0x233B,0xA186,0x515B,0xE7ED),
+       bn_pack4(0x99B2,0x964F,0xA090,0xC3A2),
+       bn_pack4(0x287C,0x5947,0x4E6B,0xC05D),
+       bn_pack4(0x2E8E,0xFC14,0x1FBE,0xCAA6),
+       bn_pack4(0xDBBB,0xC2DB,0x04DE,0x8EF9),
+       bn_pack4(0x2583,0xE9CA,0x2AD4,0x4CE8),
+       bn_pack4(0x1A94,0x6834,0xB615,0x0BDA),
+       bn_pack4(0x99C3,0x2718,0x6AF4,0xE23C),
+       bn_pack4(0x8871,0x9A10,0xBDBA,0x5B26),
+       bn_pack4(0x1A72,0x3C12,0xA787,0xE6D7),
+       bn_pack4(0x4B82,0xD120,0xA921,0x0801),
+       bn_pack4(0x43DB,0x5BFC,0xE0FD,0x108E),
+       bn_pack4(0x08E2,0x4FA0,0x74E5,0xAB31),
+       bn_pack4(0x7709,0x88C0,0xBAD9,0x46E2),
+       bn_pack4(0xBBE1,0x1757,0x7A61,0x5D6C),
+       bn_pack4(0x521F,0x2B18,0x177B,0x200C),
+       bn_pack4(0xD876,0x0273,0x3EC8,0x6A64),
+       bn_pack4(0xF12F,0xFA06,0xD98A,0x0864),
+       bn_pack4(0xCEE3,0xD226,0x1AD2,0xEE6B),
+       bn_pack4(0x1E8C,0x94E0,0x4A25,0x619D),
+       bn_pack4(0xABF5,0xAE8C,0xDB09,0x33D7),
+       bn_pack4(0xB397,0x0F85,0xA6E1,0xE4C7),
+       bn_pack4(0x8AEA,0x7157,0x5D06,0x0C7D),
+       bn_pack4(0xECFB,0x8504,0x58DB,0xEF0A),
+       bn_pack4(0xA855,0x21AB,0xDF1C,0xBA64),
+       bn_pack4(0xAD33,0x170D,0x0450,0x7A33),
+       bn_pack4(0x1572,0x8E5A,0x8AAA,0xC42D),
+       bn_pack4(0x15D2,0x2618,0x98FA,0x0510),
+       bn_pack4(0x3995,0x497C,0xEA95,0x6AE5),
+       bn_pack4(0xDE2B,0xCBF6,0x9558,0x1718),
+       bn_pack4(0xB5C5,0x5DF0,0x6F4C,0x52C9),
+       bn_pack4(0x9B27,0x83A2,0xEC07,0xA28F),
+       bn_pack4(0xE39E,0x772C,0x180E,0x8603),
+       bn_pack4(0x3290,0x5E46,0x2E36,0xCE3B),
+       bn_pack4(0xF174,0x6C08,0xCA18,0x217C),
+       bn_pack4(0x670C,0x354E,0x4ABC,0x9804),
+       bn_pack4(0x9ED5,0x2907,0x7096,0x966D),
+       bn_pack4(0x1C62,0xF356,0x2085,0x52BB),
+       bn_pack4(0x8365,0x5D23,0xDCA3,0xAD96),
+       bn_pack4(0x6916,0x3FA8,0xFD24,0xCF5F),
+       bn_pack4(0x98DA,0x4836,0x1C55,0xD39A),
+       bn_pack4(0xC200,0x7CB8,0xA163,0xBF05),
+       bn_pack4(0x4928,0x6651,0xECE4,0x5B3D),
+       bn_pack4(0xAE9F,0x2411,0x7C4B,0x1FE6),
+       bn_pack4(0xEE38,0x6BFB,0x5A89,0x9FA5),
+       bn_pack4(0x0BFF,0x5CB6,0xF406,0xB7ED),
+       bn_pack4(0xF44C,0x42E9,0xA637,0xED6B),
+       bn_pack4(0xE485,0xB576,0x625E,0x7EC6),
+       bn_pack4(0x4FE1,0x356D,0x6D51,0xC245),
+       bn_pack4(0x302B,0x0A6D,0xF25F,0x1437),
+       bn_pack4(0xEF95,0x19B3,0xCD3A,0x431B),
+       bn_pack4(0x514A,0x0879,0x8E34,0x04DD),
+       bn_pack4(0x020B,0xBEA6,0x3B13,0x9B22),
+       bn_pack4(0x2902,0x4E08,0x8A67,0xCC74),
+       bn_pack4(0xC4C6,0x628B,0x80DC,0x1CD1),
+       bn_pack4(0xC90F,0xDAA2,0x2168,0xC234),
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF)
 };
 static BIGNUM bn_group_4096 = {
        bn_group_4096_value,
@@ -235,102 +235,102 @@ static BIGNUM bn_group_4096 = {
 };
 
 static BN_ULONG bn_group_6144_value[] = {
-       bn_pack4(FFFF,FFFF,FFFF,FFFF),
-       bn_pack4(E694,F91E,6DCC,4024),
-       bn_pack4(12BF,2D5B,0B74,74D6),
-       bn_pack4(043E,8F66,3F48,60EE),
-       bn_pack4(387F,E8D7,6E3C,0468),
-       bn_pack4(DA56,C9EC,2EF2,9632),
-       bn_pack4(EB19,CCB1,A313,D55C),
-       bn_pack4(F550,AA3D,8A1F,BFF0),
-       bn_pack4(06A1,D58B,B7C5,DA76),
-       bn_pack4(A797,15EE,F29B,E328),
-       bn_pack4(14CC,5ED2,0F80,37E0),
-       bn_pack4(CC8F,6D7E,BF48,E1D8),
-       bn_pack4(4BD4,07B2,2B41,54AA),
-       bn_pack4(0F1D,45B7,FF58,5AC5),
-       bn_pack4(23A9,7A7E,36CC,88BE),
-       bn_pack4(59E7,C97F,BEC7,E8F3),
-       bn_pack4(B5A8,4031,900B,1C9E),
-       bn_pack4(D55E,702F,4698,0C82),
-       bn_pack4(F482,D7CE,6E74,FEF6),
-       bn_pack4(F032,EA15,D172,1D03),
-       bn_pack4(5983,CA01,C64B,92EC),
-       bn_pack4(6FB8,F401,378C,D2BF),
-       bn_pack4(3320,5151,2BD7,AF42),
-       bn_pack4(DB7F,1447,E6CC,254B),
-       bn_pack4(44CE,6CBA,CED4,BB1B),
-       bn_pack4(DA3E,DBEB,CF9B,14ED),
-       bn_pack4(1797,27B0,865A,8918),
-       bn_pack4(B06A,53ED,9027,D831),
-       bn_pack4(E5DB,382F,4130,01AE),
-       bn_pack4(F8FF,9406,AD9E,530E),
-       bn_pack4(C975,1E76,3DBA,37BD),
-       bn_pack4(C1D4,DCB2,6026,46DE),
-       bn_pack4(36C3,FAB4,D27C,7026),
-       bn_pack4(4DF4,35C9,3402,8492),
-       bn_pack4(86FF,B7DC,90A6,C08F),
-       bn_pack4(93B4,EA98,8D8F,DDC1),
-       bn_pack4(D006,9127,D5B0,5AA9),
-       bn_pack4(B81B,DD76,2170,481C),
-       bn_pack4(1F61,2970,CEE2,D7AF),
-       bn_pack4(233B,A186,515B,E7ED),
-       bn_pack4(99B2,964F,A090,C3A2),
-       bn_pack4(287C,5947,4E6B,C05D),
-       bn_pack4(2E8E,FC14,1FBE,CAA6),
-       bn_pack4(DBBB,C2DB,04DE,8EF9),
-       bn_pack4(2583,E9CA,2AD4,4CE8),
-       bn_pack4(1A94,6834,B615,0BDA),
-       bn_pack4(99C3,2718,6AF4,E23C),
-       bn_pack4(8871,9A10,BDBA,5B26),
-       bn_pack4(1A72,3C12,A787,E6D7),
-       bn_pack4(4B82,D120,A921,0801),
-       bn_pack4(43DB,5BFC,E0FD,108E),
-       bn_pack4(08E2,4FA0,74E5,AB31),
-       bn_pack4(7709,88C0,BAD9,46E2),
-       bn_pack4(BBE1,1757,7A61,5D6C),
-       bn_pack4(521F,2B18,177B,200C),
-       bn_pack4(D876,0273,3EC8,6A64),
-       bn_pack4(F12F,FA06,D98A,0864),
-       bn_pack4(CEE3,D226,1AD2,EE6B),
-       bn_pack4(1E8C,94E0,4A25,619D),
-       bn_pack4(ABF5,AE8C,DB09,33D7),
-       bn_pack4(B397,0F85,A6E1,E4C7),
-       bn_pack4(8AEA,7157,5D06,0C7D),
-       bn_pack4(ECFB,8504,58DB,EF0A),
-       bn_pack4(A855,21AB,DF1C,BA64),
-       bn_pack4(AD33,170D,0450,7A33),
-       bn_pack4(1572,8E5A,8AAA,C42D),
-       bn_pack4(15D2,2618,98FA,0510),
-       bn_pack4(3995,497C,EA95,6AE5),
-       bn_pack4(DE2B,CBF6,9558,1718),
-       bn_pack4(B5C5,5DF0,6F4C,52C9),
-       bn_pack4(9B27,83A2,EC07,A28F),
-       bn_pack4(E39E,772C,180E,8603),
-       bn_pack4(3290,5E46,2E36,CE3B),
-       bn_pack4(F174,6C08,CA18,217C),
-       bn_pack4(670C,354E,4ABC,9804),
-       bn_pack4(9ED5,2907,7096,966D),
-       bn_pack4(1C62,F356,2085,52BB),
-       bn_pack4(8365,5D23,DCA3,AD96),
-       bn_pack4(6916,3FA8,FD24,CF5F),
-       bn_pack4(98DA,4836,1C55,D39A),
-       bn_pack4(C200,7CB8,A163,BF05),
-       bn_pack4(4928,6651,ECE4,5B3D),
-       bn_pack4(AE9F,2411,7C4B,1FE6),
-       bn_pack4(EE38,6BFB,5A89,9FA5),
-       bn_pack4(0BFF,5CB6,F406,B7ED),
-       bn_pack4(F44C,42E9,A637,ED6B),
-       bn_pack4(E485,B576,625E,7EC6),
-       bn_pack4(4FE1,356D,6D51,C245),
-       bn_pack4(302B,0A6D,F25F,1437),
-       bn_pack4(EF95,19B3,CD3A,431B),
-       bn_pack4(514A,0879,8E34,04DD),
-       bn_pack4(020B,BEA6,3B13,9B22),
-       bn_pack4(2902,4E08,8A67,CC74),
-       bn_pack4(C4C6,628B,80DC,1CD1),
-       bn_pack4(C90F,DAA2,2168,C234),
-       bn_pack4(FFFF,FFFF,FFFF,FFFF)
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF),
+       bn_pack4(0xE694,0xF91E,0x6DCC,0x4024),
+       bn_pack4(0x12BF,0x2D5B,0x0B74,0x74D6),
+       bn_pack4(0x043E,0x8F66,0x3F48,0x60EE),
+       bn_pack4(0x387F,0xE8D7,0x6E3C,0x0468),
+       bn_pack4(0xDA56,0xC9EC,0x2EF2,0x9632),
+       bn_pack4(0xEB19,0xCCB1,0xA313,0xD55C),
+       bn_pack4(0xF550,0xAA3D,0x8A1F,0xBFF0),
+       bn_pack4(0x06A1,0xD58B,0xB7C5,0xDA76),
+       bn_pack4(0xA797,0x15EE,0xF29B,0xE328),
+       bn_pack4(0x14CC,0x5ED2,0x0F80,0x37E0),
+       bn_pack4(0xCC8F,0x6D7E,0xBF48,0xE1D8),
+       bn_pack4(0x4BD4,0x07B2,0x2B41,0x54AA),
+       bn_pack4(0x0F1D,0x45B7,0xFF58,0x5AC5),
+       bn_pack4(0x23A9,0x7A7E,0x36CC,0x88BE),
+       bn_pack4(0x59E7,0xC97F,0xBEC7,0xE8F3),
+       bn_pack4(0xB5A8,0x4031,0x900B,0x1C9E),
+       bn_pack4(0xD55E,0x702F,0x4698,0x0C82),
+       bn_pack4(0xF482,0xD7CE,0x6E74,0xFEF6),
+       bn_pack4(0xF032,0xEA15,0xD172,0x1D03),
+       bn_pack4(0x5983,0xCA01,0xC64B,0x92EC),
+       bn_pack4(0x6FB8,0xF401,0x378C,0xD2BF),
+       bn_pack4(0x3320,0x5151,0x2BD7,0xAF42),
+       bn_pack4(0xDB7F,0x1447,0xE6CC,0x254B),
+       bn_pack4(0x44CE,0x6CBA,0xCED4,0xBB1B),
+       bn_pack4(0xDA3E,0xDBEB,0xCF9B,0x14ED),
+       bn_pack4(0x1797,0x27B0,0x865A,0x8918),
+       bn_pack4(0xB06A,0x53ED,0x9027,0xD831),
+       bn_pack4(0xE5DB,0x382F,0x4130,0x01AE),
+       bn_pack4(0xF8FF,0x9406,0xAD9E,0x530E),
+       bn_pack4(0xC975,0x1E76,0x3DBA,0x37BD),
+       bn_pack4(0xC1D4,0xDCB2,0x6026,0x46DE),
+       bn_pack4(0x36C3,0xFAB4,0xD27C,0x7026),
+       bn_pack4(0x4DF4,0x35C9,0x3402,0x8492),
+       bn_pack4(0x86FF,0xB7DC,0x90A6,0xC08F),
+       bn_pack4(0x93B4,0xEA98,0x8D8F,0xDDC1),
+       bn_pack4(0xD006,0x9127,0xD5B0,0x5AA9),
+       bn_pack4(0xB81B,0xDD76,0x2170,0x481C),
+       bn_pack4(0x1F61,0x2970,0xCEE2,0xD7AF),
+       bn_pack4(0x233B,0xA186,0x515B,0xE7ED),
+       bn_pack4(0x99B2,0x964F,0xA090,0xC3A2),
+       bn_pack4(0x287C,0x5947,0x4E6B,0xC05D),
+       bn_pack4(0x2E8E,0xFC14,0x1FBE,0xCAA6),
+       bn_pack4(0xDBBB,0xC2DB,0x04DE,0x8EF9),
+       bn_pack4(0x2583,0xE9CA,0x2AD4,0x4CE8),
+       bn_pack4(0x1A94,0x6834,0xB615,0x0BDA),
+       bn_pack4(0x99C3,0x2718,0x6AF4,0xE23C),
+       bn_pack4(0x8871,0x9A10,0xBDBA,0x5B26),
+       bn_pack4(0x1A72,0x3C12,0xA787,0xE6D7),
+       bn_pack4(0x4B82,0xD120,0xA921,0x0801),
+       bn_pack4(0x43DB,0x5BFC,0xE0FD,0x108E),
+       bn_pack4(0x08E2,0x4FA0,0x74E5,0xAB31),
+       bn_pack4(0x7709,0x88C0,0xBAD9,0x46E2),
+       bn_pack4(0xBBE1,0x1757,0x7A61,0x5D6C),
+       bn_pack4(0x521F,0x2B18,0x177B,0x200C),
+       bn_pack4(0xD876,0x0273,0x3EC8,0x6A64),
+       bn_pack4(0xF12F,0xFA06,0xD98A,0x0864),
+       bn_pack4(0xCEE3,0xD226,0x1AD2,0xEE6B),
+       bn_pack4(0x1E8C,0x94E0,0x4A25,0x619D),
+       bn_pack4(0xABF5,0xAE8C,0xDB09,0x33D7),
+       bn_pack4(0xB397,0x0F85,0xA6E1,0xE4C7),
+       bn_pack4(0x8AEA,0x7157,0x5D06,0x0C7D),
+       bn_pack4(0xECFB,0x8504,0x58DB,0xEF0A),
+       bn_pack4(0xA855,0x21AB,0xDF1C,0xBA64),
+       bn_pack4(0xAD33,0x170D,0x0450,0x7A33),
+       bn_pack4(0x1572,0x8E5A,0x8AAA,0xC42D),
+       bn_pack4(0x15D2,0x2618,0x98FA,0x0510),
+       bn_pack4(0x3995,0x497C,0xEA95,0x6AE5),
+       bn_pack4(0xDE2B,0xCBF6,0x9558,0x1718),
+       bn_pack4(0xB5C5,0x5DF0,0x6F4C,0x52C9),
+       bn_pack4(0x9B27,0x83A2,0xEC07,0xA28F),
+       bn_pack4(0xE39E,0x772C,0x180E,0x8603),
+       bn_pack4(0x3290,0x5E46,0x2E36,0xCE3B),
+       bn_pack4(0xF174,0x6C08,0xCA18,0x217C),
+       bn_pack4(0x670C,0x354E,0x4ABC,0x9804),
+       bn_pack4(0x9ED5,0x2907,0x7096,0x966D),
+       bn_pack4(0x1C62,0xF356,0x2085,0x52BB),
+       bn_pack4(0x8365,0x5D23,0xDCA3,0xAD96),
+       bn_pack4(0x6916,0x3FA8,0xFD24,0xCF5F),
+       bn_pack4(0x98DA,0x4836,0x1C55,0xD39A),
+       bn_pack4(0xC200,0x7CB8,0xA163,0xBF05),
+       bn_pack4(0x4928,0x6651,0xECE4,0x5B3D),
+       bn_pack4(0xAE9F,0x2411,0x7C4B,0x1FE6),
+       bn_pack4(0xEE38,0x6BFB,0x5A89,0x9FA5),
+       bn_pack4(0x0BFF,0x5CB6,0xF406,0xB7ED),
+       bn_pack4(0xF44C,0x42E9,0xA637,0xED6B),
+       bn_pack4(0xE485,0xB576,0x625E,0x7EC6),
+       bn_pack4(0x4FE1,0x356D,0x6D51,0xC245),
+       bn_pack4(0x302B,0x0A6D,0xF25F,0x1437),
+       bn_pack4(0xEF95,0x19B3,0xCD3A,0x431B),
+       bn_pack4(0x514A,0x0879,0x8E34,0x04DD),
+       bn_pack4(0x020B,0xBEA6,0x3B13,0x9B22),
+       bn_pack4(0x2902,0x4E08,0x8A67,0xCC74),
+       bn_pack4(0xC4C6,0x628B,0x80DC,0x1CD1),
+       bn_pack4(0xC90F,0xDAA2,0x2168,0xC234),
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF)
 };
 static BIGNUM bn_group_6144 = {
        bn_group_6144_value,
@@ -341,134 +341,134 @@ static BIGNUM bn_group_6144 = {
 };
 
 static BN_ULONG bn_group_8192_value[] = {
-       bn_pack4(FFFF,FFFF,FFFF,FFFF),
-       bn_pack4(60C9,80DD,98ED,D3DF),
-       bn_pack4(C81F,56E8,80B9,6E71),
-       bn_pack4(9E30,50E2,7656,94DF),
-       bn_pack4(9558,E447,5677,E9AA),
-       bn_pack4(C919,0DA6,FC02,6E47),
-       bn_pack4(889A,002E,D5EE,382B),
-       bn_pack4(4009,438B,481C,6CD7),
-       bn_pack4(3590,46F4,EB87,9F92),
-       bn_pack4(FAF3,6BC3,1ECF,A268),
-       bn_pack4(B1D5,10BD,7EE7,4D73),
-       bn_pack4(F9AB,4819,5DED,7EA1),
-       bn_pack4(64F3,1CC5,0846,851D),
-       bn_pack4(4597,E899,A025,5DC1),
-       bn_pack4(DF31,0EE0,74AB,6A36),
-       bn_pack4(6D2A,13F8,3F44,F82D),
-       bn_pack4(062B,3CF5,B3A2,78A6),
-       bn_pack4(7968,3303,ED5B,DD3A),
-       bn_pack4(FA9D,4B7F,A2C0,87E8),
-       bn_pack4(4BCB,C886,2F83,85DD),
-       bn_pack4(3473,FC64,6CEA,306B),
-       bn_pack4(13EB,57A8,1A23,F0C7),
-       bn_pack4(2222,2E04,A403,7C07),
-       bn_pack4(E3FD,B8BE,FC84,8AD9),
-       bn_pack4(238F,16CB,E39D,652D),
-       bn_pack4(3423,B474,2BF1,C978),
-       bn_pack4(3AAB,639C,5AE4,F568),
-       bn_pack4(2576,F693,6BA4,2466),
-       bn_pack4(741F,A7BF,8AFC,47ED),
-       bn_pack4(3BC8,32B6,8D9D,D300),
-       bn_pack4(D8BE,C4D0,73B9,31BA),
-       bn_pack4(3877,7CB6,A932,DF8C),
-       bn_pack4(74A3,926F,12FE,E5E4),
-       bn_pack4(E694,F91E,6DBE,1159),
-       bn_pack4(12BF,2D5B,0B74,74D6),
-       bn_pack4(043E,8F66,3F48,60EE),
-       bn_pack4(387F,E8D7,6E3C,0468),
-       bn_pack4(DA56,C9EC,2EF2,9632),
-       bn_pack4(EB19,CCB1,A313,D55C),
-       bn_pack4(F550,AA3D,8A1F,BFF0),
-       bn_pack4(06A1,D58B,B7C5,DA76),
-       bn_pack4(A797,15EE,F29B,E328),
-       bn_pack4(14CC,5ED2,0F80,37E0),
-       bn_pack4(CC8F,6D7E,BF48,E1D8),
-       bn_pack4(4BD4,07B2,2B41,54AA),
-       bn_pack4(0F1D,45B7,FF58,5AC5),
-       bn_pack4(23A9,7A7E,36CC,88BE),
-       bn_pack4(59E7,C97F,BEC7,E8F3),
-       bn_pack4(B5A8,4031,900B,1C9E),
-       bn_pack4(D55E,702F,4698,0C82),
-       bn_pack4(F482,D7CE,6E74,FEF6),
-       bn_pack4(F032,EA15,D172,1D03),
-       bn_pack4(5983,CA01,C64B,92EC),
-       bn_pack4(6FB8,F401,378C,D2BF),
-       bn_pack4(3320,5151,2BD7,AF42),
-       bn_pack4(DB7F,1447,E6CC,254B),
-       bn_pack4(44CE,6CBA,CED4,BB1B),
-       bn_pack4(DA3E,DBEB,CF9B,14ED),
-       bn_pack4(1797,27B0,865A,8918),
-       bn_pack4(B06A,53ED,9027,D831),
-       bn_pack4(E5DB,382F,4130,01AE),
-       bn_pack4(F8FF,9406,AD9E,530E),
-       bn_pack4(C975,1E76,3DBA,37BD),
-       bn_pack4(C1D4,DCB2,6026,46DE),
-       bn_pack4(36C3,FAB4,D27C,7026),
-       bn_pack4(4DF4,35C9,3402,8492),
-       bn_pack4(86FF,B7DC,90A6,C08F),
-       bn_pack4(93B4,EA98,8D8F,DDC1),
-       bn_pack4(D006,9127,D5B0,5AA9),
-       bn_pack4(B81B,DD76,2170,481C),
-       bn_pack4(1F61,2970,CEE2,D7AF),
-       bn_pack4(233B,A186,515B,E7ED),
-       bn_pack4(99B2,964F,A090,C3A2),
-       bn_pack4(287C,5947,4E6B,C05D),
-       bn_pack4(2E8E,FC14,1FBE,CAA6),
-       bn_pack4(DBBB,C2DB,04DE,8EF9),
-       bn_pack4(2583,E9CA,2AD4,4CE8),
-       bn_pack4(1A94,6834,B615,0BDA),
-       bn_pack4(99C3,2718,6AF4,E23C),
-       bn_pack4(8871,9A10,BDBA,5B26),
-       bn_pack4(1A72,3C12,A787,E6D7),
-       bn_pack4(4B82,D120,A921,0801),
-       bn_pack4(43DB,5BFC,E0FD,108E),
-       bn_pack4(08E2,4FA0,74E5,AB31),
-       bn_pack4(7709,88C0,BAD9,46E2),
-       bn_pack4(BBE1,1757,7A61,5D6C),
-       bn_pack4(521F,2B18,177B,200C),
-       bn_pack4(D876,0273,3EC8,6A64),
-       bn_pack4(F12F,FA06,D98A,0864),
-       bn_pack4(CEE3,D226,1AD2,EE6B),
-       bn_pack4(1E8C,94E0,4A25,619D),
-       bn_pack4(ABF5,AE8C,DB09,33D7),
-       bn_pack4(B397,0F85,A6E1,E4C7),
-       bn_pack4(8AEA,7157,5D06,0C7D),
-       bn_pack4(ECFB,8504,58DB,EF0A),
-       bn_pack4(A855,21AB,DF1C,BA64),
-       bn_pack4(AD33,170D,0450,7A33),
-       bn_pack4(1572,8E5A,8AAA,C42D),
-       bn_pack4(15D2,2618,98FA,0510),
-       bn_pack4(3995,497C,EA95,6AE5),
-       bn_pack4(DE2B,CBF6,9558,1718),
-       bn_pack4(B5C5,5DF0,6F4C,52C9),
-       bn_pack4(9B27,83A2,EC07,A28F),
-       bn_pack4(E39E,772C,180E,8603),
-       bn_pack4(3290,5E46,2E36,CE3B),
-       bn_pack4(F174,6C08,CA18,217C),
-       bn_pack4(670C,354E,4ABC,9804),
-       bn_pack4(9ED5,2907,7096,966D),
-       bn_pack4(1C62,F356,2085,52BB),
-       bn_pack4(8365,5D23,DCA3,AD96),
-       bn_pack4(6916,3FA8,FD24,CF5F),
-       bn_pack4(98DA,4836,1C55,D39A),
-       bn_pack4(C200,7CB8,A163,BF05),
-       bn_pack4(4928,6651,ECE4,5B3D),
-       bn_pack4(AE9F,2411,7C4B,1FE6),
-       bn_pack4(EE38,6BFB,5A89,9FA5),
-       bn_pack4(0BFF,5CB6,F406,B7ED),
-       bn_pack4(F44C,42E9,A637,ED6B),
-       bn_pack4(E485,B576,625E,7EC6),
-       bn_pack4(4FE1,356D,6D51,C245),
-       bn_pack4(302B,0A6D,F25F,1437),
-       bn_pack4(EF95,19B3,CD3A,431B),
-       bn_pack4(514A,0879,8E34,04DD),
-       bn_pack4(020B,BEA6,3B13,9B22),
-       bn_pack4(2902,4E08,8A67,CC74),
-       bn_pack4(C4C6,628B,80DC,1CD1),
-       bn_pack4(C90F,DAA2,2168,C234),
-       bn_pack4(FFFF,FFFF,FFFF,FFFF)
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF),
+       bn_pack4(0x60C9,0x80DD,0x98ED,0xD3DF),
+       bn_pack4(0xC81F,0x56E8,0x80B9,0x6E71),
+       bn_pack4(0x9E30,0x50E2,0x7656,0x94DF),
+       bn_pack4(0x9558,0xE447,0x5677,0xE9AA),
+       bn_pack4(0xC919,0x0DA6,0xFC02,0x6E47),
+       bn_pack4(0x889A,0x002E,0xD5EE,0x382B),
+       bn_pack4(0x4009,0x438B,0x481C,0x6CD7),
+       bn_pack4(0x3590,0x46F4,0xEB87,0x9F92),
+       bn_pack4(0xFAF3,0x6BC3,0x1ECF,0xA268),
+       bn_pack4(0xB1D5,0x10BD,0x7EE7,0x4D73),
+       bn_pack4(0xF9AB,0x4819,0x5DED,0x7EA1),
+       bn_pack4(0x64F3,0x1CC5,0x0846,0x851D),
+       bn_pack4(0x4597,0xE899,0xA025,0x5DC1),
+       bn_pack4(0xDF31,0x0EE0,0x74AB,0x6A36),
+       bn_pack4(0x6D2A,0x13F8,0x3F44,0xF82D),
+       bn_pack4(0x062B,0x3CF5,0xB3A2,0x78A6),
+       bn_pack4(0x7968,0x3303,0xED5B,0xDD3A),
+       bn_pack4(0xFA9D,0x4B7F,0xA2C0,0x87E8),
+       bn_pack4(0x4BCB,0xC886,0x2F83,0x85DD),
+       bn_pack4(0x3473,0xFC64,0x6CEA,0x306B),
+       bn_pack4(0x13EB,0x57A8,0x1A23,0xF0C7),
+       bn_pack4(0x2222,0x2E04,0xA403,0x7C07),
+       bn_pack4(0xE3FD,0xB8BE,0xFC84,0x8AD9),
+       bn_pack4(0x238F,0x16CB,0xE39D,0x652D),
+       bn_pack4(0x3423,0xB474,0x2BF1,0xC978),
+       bn_pack4(0x3AAB,0x639C,0x5AE4,0xF568),
+       bn_pack4(0x2576,0xF693,0x6BA4,0x2466),
+       bn_pack4(0x741F,0xA7BF,0x8AFC,0x47ED),
+       bn_pack4(0x3BC8,0x32B6,0x8D9D,0xD300),
+       bn_pack4(0xD8BE,0xC4D0,0x73B9,0x31BA),
+       bn_pack4(0x3877,0x7CB6,0xA932,0xDF8C),
+       bn_pack4(0x74A3,0x926F,0x12FE,0xE5E4),
+       bn_pack4(0xE694,0xF91E,0x6DBE,0x1159),
+       bn_pack4(0x12BF,0x2D5B,0x0B74,0x74D6),
+       bn_pack4(0x043E,0x8F66,0x3F48,0x60EE),
+       bn_pack4(0x387F,0xE8D7,0x6E3C,0x0468),
+       bn_pack4(0xDA56,0xC9EC,0x2EF2,0x9632),
+       bn_pack4(0xEB19,0xCCB1,0xA313,0xD55C),
+       bn_pack4(0xF550,0xAA3D,0x8A1F,0xBFF0),
+       bn_pack4(0x06A1,0xD58B,0xB7C5,0xDA76),
+       bn_pack4(0xA797,0x15EE,0xF29B,0xE328),
+       bn_pack4(0x14CC,0x5ED2,0x0F80,0x37E0),
+       bn_pack4(0xCC8F,0x6D7E,0xBF48,0xE1D8),
+       bn_pack4(0x4BD4,0x07B2,0x2B41,0x54AA),
+       bn_pack4(0x0F1D,0x45B7,0xFF58,0x5AC5),
+       bn_pack4(0x23A9,0x7A7E,0x36CC,0x88BE),
+       bn_pack4(0x59E7,0xC97F,0xBEC7,0xE8F3),
+       bn_pack4(0xB5A8,0x4031,0x900B,0x1C9E),
+       bn_pack4(0xD55E,0x702F,0x4698,0x0C82),
+       bn_pack4(0xF482,0xD7CE,0x6E74,0xFEF6),
+       bn_pack4(0xF032,0xEA15,0xD172,0x1D03),
+       bn_pack4(0x5983,0xCA01,0xC64B,0x92EC),
+       bn_pack4(0x6FB8,0xF401,0x378C,0xD2BF),
+       bn_pack4(0x3320,0x5151,0x2BD7,0xAF42),
+       bn_pack4(0xDB7F,0x1447,0xE6CC,0x254B),
+       bn_pack4(0x44CE,0x6CBA,0xCED4,0xBB1B),
+       bn_pack4(0xDA3E,0xDBEB,0xCF9B,0x14ED),
+       bn_pack4(0x1797,0x27B0,0x865A,0x8918),
+       bn_pack4(0xB06A,0x53ED,0x9027,0xD831),
+       bn_pack4(0xE5DB,0x382F,0x4130,0x01AE),
+       bn_pack4(0xF8FF,0x9406,0xAD9E,0x530E),
+       bn_pack4(0xC975,0x1E76,0x3DBA,0x37BD),
+       bn_pack4(0xC1D4,0xDCB2,0x6026,0x46DE),
+       bn_pack4(0x36C3,0xFAB4,0xD27C,0x7026),
+       bn_pack4(0x4DF4,0x35C9,0x3402,0x8492),
+       bn_pack4(0x86FF,0xB7DC,0x90A6,0xC08F),
+       bn_pack4(0x93B4,0xEA98,0x8D8F,0xDDC1),
+       bn_pack4(0xD006,0x9127,0xD5B0,0x5AA9),
+       bn_pack4(0xB81B,0xDD76,0x2170,0x481C),
+       bn_pack4(0x1F61,0x2970,0xCEE2,0xD7AF),
+       bn_pack4(0x233B,0xA186,0x515B,0xE7ED),
+       bn_pack4(0x99B2,0x964F,0xA090,0xC3A2),
+       bn_pack4(0x287C,0x5947,0x4E6B,0xC05D),
+       bn_pack4(0x2E8E,0xFC14,0x1FBE,0xCAA6),
+       bn_pack4(0xDBBB,0xC2DB,0x04DE,0x8EF9),
+       bn_pack4(0x2583,0xE9CA,0x2AD4,0x4CE8),
+       bn_pack4(0x1A94,0x6834,0xB615,0x0BDA),
+       bn_pack4(0x99C3,0x2718,0x6AF4,0xE23C),
+       bn_pack4(0x8871,0x9A10,0xBDBA,0x5B26),
+       bn_pack4(0x1A72,0x3C12,0xA787,0xE6D7),
+       bn_pack4(0x4B82,0xD120,0xA921,0x0801),
+       bn_pack4(0x43DB,0x5BFC,0xE0FD,0x108E),
+       bn_pack4(0x08E2,0x4FA0,0x74E5,0xAB31),
+       bn_pack4(0x7709,0x88C0,0xBAD9,0x46E2),
+       bn_pack4(0xBBE1,0x1757,0x7A61,0x5D6C),
+       bn_pack4(0x521F,0x2B18,0x177B,0x200C),
+       bn_pack4(0xD876,0x0273,0x3EC8,0x6A64),
+       bn_pack4(0xF12F,0xFA06,0xD98A,0x0864),
+       bn_pack4(0xCEE3,0xD226,0x1AD2,0xEE6B),
+       bn_pack4(0x1E8C,0x94E0,0x4A25,0x619D),
+       bn_pack4(0xABF5,0xAE8C,0xDB09,0x33D7),
+       bn_pack4(0xB397,0x0F85,0xA6E1,0xE4C7),
+       bn_pack4(0x8AEA,0x7157,0x5D06,0x0C7D),
+       bn_pack4(0xECFB,0x8504,0x58DB,0xEF0A),
+       bn_pack4(0xA855,0x21AB,0xDF1C,0xBA64),
+       bn_pack4(0xAD33,0x170D,0x0450,0x7A33),
+       bn_pack4(0x1572,0x8E5A,0x8AAA,0xC42D),
+       bn_pack4(0x15D2,0x2618,0x98FA,0x0510),
+       bn_pack4(0x3995,0x497C,0xEA95,0x6AE5),
+       bn_pack4(0xDE2B,0xCBF6,0x9558,0x1718),
+       bn_pack4(0xB5C5,0x5DF0,0x6F4C,0x52C9),
+       bn_pack4(0x9B27,0x83A2,0xEC07,0xA28F),
+       bn_pack4(0xE39E,0x772C,0x180E,0x8603),
+       bn_pack4(0x3290,0x5E46,0x2E36,0xCE3B),
+       bn_pack4(0xF174,0x6C08,0xCA18,0x217C),
+       bn_pack4(0x670C,0x354E,0x4ABC,0x9804),
+       bn_pack4(0x9ED5,0x2907,0x7096,0x966D),
+       bn_pack4(0x1C62,0xF356,0x2085,0x52BB),
+       bn_pack4(0x8365,0x5D23,0xDCA3,0xAD96),
+       bn_pack4(0x6916,0x3FA8,0xFD24,0xCF5F),
+       bn_pack4(0x98DA,0x4836,0x1C55,0xD39A),
+       bn_pack4(0xC200,0x7CB8,0xA163,0xBF05),
+       bn_pack4(0x4928,0x6651,0xECE4,0x5B3D),
+       bn_pack4(0xAE9F,0x2411,0x7C4B,0x1FE6),
+       bn_pack4(0xEE38,0x6BFB,0x5A89,0x9FA5),
+       bn_pack4(0x0BFF,0x5CB6,0xF406,0xB7ED),
+       bn_pack4(0xF44C,0x42E9,0xA637,0xED6B),
+       bn_pack4(0xE485,0xB576,0x625E,0x7EC6),
+       bn_pack4(0x4FE1,0x356D,0x6D51,0xC245),
+       bn_pack4(0x302B,0x0A6D,0xF25F,0x1437),
+       bn_pack4(0xEF95,0x19B3,0xCD3A,0x431B),
+       bn_pack4(0x514A,0x0879,0x8E34,0x04DD),
+       bn_pack4(0x020B,0xBEA6,0x3B13,0x9B22),
+       bn_pack4(0x2902,0x4E08,0x8A67,0xCC74),
+       bn_pack4(0xC4C6,0x628B,0x80DC,0x1CD1),
+       bn_pack4(0xC90F,0xDAA2,0x2168,0xC234),
+       bn_pack4(0xFFFF,0xFFFF,0xFFFF,0xFFFF)
 };
 static BIGNUM bn_group_8192 = {
        bn_group_8192_value,
index 92cea98..7c1dcc5 100644 (file)
 #include <openssl/evp.h>
 
 #if (BN_BYTES == 8)
-#define bn_pack4(a1,a2,a3,a4) 0x##a1##a2##a3##a4##ul
-#endif
-#if (BN_BYTES == 4)
-#define bn_pack4(a1,a2,a3,a4)  0x##a3##a4##ul, 0x##a1##a2##ul
-#endif
-#if (BN_BYTES == 2)
-#define bn_pack4(a1,a2,a3,a4) 0x##a4##u,0x##a3##u,0x##a2##u,0x##a1##u
+# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
+#  define bn_pack4(a1,a2,a3,a4) ((a1##UI64<<48)|(a2##UI64<<32)|(a3##UI64<<16)|a4##UI64)
+# elif defined(__arch64__)
+#  define bn_pack4(a1,a2,a3,a4) ((a1##UL<<48)|(a2##UL<<32)|(a3##UL<<16)|a4##UL)
+# else
+#  define bn_pack4(a1,a2,a3,a4) ((a1##ULL<<48)|(a2##ULL<<32)|(a3##ULL<<16)|a4##ULL)
+# endif
+#elif (BN_BYTES == 4)
+# define bn_pack4(a1,a2,a3,a4)  ((a3##UL<<16)|a4##UL), ((a1##UL<<16)|a2##UL)
+#else
+# error "unsupported BN_BYTES"
 #endif
 
 
diff --git a/deps/openssl/openssl/crypto/stack/Makefile.save b/deps/openssl/openssl/crypto/stack/Makefile.save
new file mode 100644 (file)
index 0000000..5327692
--- /dev/null
@@ -0,0 +1,84 @@
+#
+# OpenSSL/crypto/stack/Makefile
+#
+
+DIR=   stack
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=stack.c
+LIBOBJ=stack.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= stack.h safestack.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+stack.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+stack.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+stack.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+stack.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+stack.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+stack.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+stack.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+stack.o: ../../include/openssl/symhacks.h ../cryptlib.h stack.c
index 07a412f..bd2f000 100644 (file)
 #define SSL_CTX_set_next_protos_advertised_cb  SSL_CTX_set_next_protos_adv_cb
 #undef SSL_CTX_set_next_proto_select_cb
 #define SSL_CTX_set_next_proto_select_cb       SSL_CTX_set_next_proto_sel_cb
+#undef ssl3_cbc_record_digest_supported
+#define ssl3_cbc_record_digest_supported        ssl3_cbc_record_digest_support
+#undef ssl_check_clienthello_tlsext_late
+#define ssl_check_clienthello_tlsext_late       ssl_check_clihello_tlsext_late
+#undef ssl_check_clienthello_tlsext_early
+#define ssl_check_clienthello_tlsext_early      ssl_check_clihello_tlsext_early
 
 /* Hack some long ENGINE names */
 #undef ENGINE_get_default_BN_mod_exp_crt
diff --git a/deps/openssl/openssl/crypto/ts/Makefile.save b/deps/openssl/openssl/crypto/ts/Makefile.save
new file mode 100644 (file)
index 0000000..c182345
--- /dev/null
@@ -0,0 +1,269 @@
+#
+# SSLeay/crypto/ts/Makefile
+#
+
+DIR=   ts
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I../../include
+CFLAG = -g
+INSTALL_PREFIX=
+OPENSSLDIR=     /usr/local/ssl
+INSTALLTOP=/usr/local/ssl
+MAKEDEPPROG=   makedepend
+MAKEDEPEND=    $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
+MAKEFILE=      Makefile
+AR=            ar r
+
+PEX_LIBS=
+EX_LIBS=
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL= Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        ts_err.c ts_req_utils.c ts_req_print.c ts_rsp_utils.c ts_rsp_print.c \
+       ts_rsp_sign.c ts_rsp_verify.c ts_verify_ctx.c ts_lib.c ts_conf.c \
+       ts_asn1.c
+LIBOBJ= ts_err.o ts_req_utils.o ts_req_print.o ts_rsp_utils.o ts_rsp_print.o \
+       ts_rsp_sign.o ts_rsp_verify.o ts_verify_ctx.o ts_lib.o ts_conf.o \
+       ts_asn1.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= ts.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+test:
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff enc dec sign verify
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+ts_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+ts_asn1.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ts_asn1.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_asn1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_asn1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_asn1.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ts_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ts_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ts_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ts_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+ts_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ts_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ts_asn1.o: ../../include/openssl/ts.h ../../include/openssl/x509.h
+ts_asn1.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+ts_asn1.o: ts_asn1.c
+ts_conf.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_conf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ts_conf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_conf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_conf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_conf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_conf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+ts_conf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ts_conf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ts_conf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ts_conf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+ts_conf.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+ts_conf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_conf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_conf.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_conf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_conf.o: ../../include/openssl/x509v3.h ../cryptlib.h ts_conf.c
+ts_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ts_err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+ts_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+ts_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+ts_err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ts_err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ts_err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ts_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ts_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ts_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_err.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_err.o: ../../include/openssl/x509v3.h ts_err.c
+ts_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+ts_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+ts_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ts_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ts_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+ts_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ts_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+ts_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+ts_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ts_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_lib.o: ../../include/openssl/x509v3.h ../cryptlib.h ts.h ts_lib.c
+ts_req_print.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_req_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+ts_req_print.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+ts_req_print.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+ts_req_print.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+ts_req_print.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ts_req_print.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ts_req_print.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ts_req_print.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ts_req_print.o: ../../include/openssl/opensslconf.h
+ts_req_print.o: ../../include/openssl/opensslv.h
+ts_req_print.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_req_print.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_req_print.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_req_print.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_req_print.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_req_print.o: ../../include/openssl/x509v3.h ../cryptlib.h ts_req_print.c
+ts_req_utils.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_req_utils.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ts_req_utils.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_req_utils.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_req_utils.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_req_utils.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_req_utils.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ts_req_utils.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ts_req_utils.o: ../../include/openssl/objects.h
+ts_req_utils.o: ../../include/openssl/opensslconf.h
+ts_req_utils.o: ../../include/openssl/opensslv.h
+ts_req_utils.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_req_utils.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_req_utils.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_req_utils.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_req_utils.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_req_utils.o: ../../include/openssl/x509v3.h ../cryptlib.h ts_req_utils.c
+ts_rsp_print.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_rsp_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+ts_rsp_print.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+ts_rsp_print.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
+ts_rsp_print.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+ts_rsp_print.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+ts_rsp_print.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+ts_rsp_print.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ts_rsp_print.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+ts_rsp_print.o: ../../include/openssl/opensslconf.h
+ts_rsp_print.o: ../../include/openssl/opensslv.h
+ts_rsp_print.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_rsp_print.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_rsp_print.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_rsp_print.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+ts_rsp_print.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+ts_rsp_print.o: ../cryptlib.h ts.h ts_rsp_print.c
+ts_rsp_sign.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_rsp_sign.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ts_rsp_sign.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_rsp_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_rsp_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_rsp_sign.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_rsp_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ts_rsp_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ts_rsp_sign.o: ../../include/openssl/objects.h
+ts_rsp_sign.o: ../../include/openssl/opensslconf.h
+ts_rsp_sign.o: ../../include/openssl/opensslv.h
+ts_rsp_sign.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_rsp_sign.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_rsp_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_rsp_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_rsp_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_rsp_sign.o: ../../include/openssl/x509v3.h ../cryptlib.h ts_rsp_sign.c
+ts_rsp_utils.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_rsp_utils.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ts_rsp_utils.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_rsp_utils.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_rsp_utils.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_rsp_utils.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_rsp_utils.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ts_rsp_utils.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ts_rsp_utils.o: ../../include/openssl/objects.h
+ts_rsp_utils.o: ../../include/openssl/opensslconf.h
+ts_rsp_utils.o: ../../include/openssl/opensslv.h
+ts_rsp_utils.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_rsp_utils.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_rsp_utils.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_rsp_utils.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_rsp_utils.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_rsp_utils.o: ../../include/openssl/x509v3.h ../cryptlib.h ts_rsp_utils.c
+ts_rsp_verify.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_rsp_verify.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ts_rsp_verify.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_rsp_verify.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_rsp_verify.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_rsp_verify.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_rsp_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ts_rsp_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ts_rsp_verify.o: ../../include/openssl/objects.h
+ts_rsp_verify.o: ../../include/openssl/opensslconf.h
+ts_rsp_verify.o: ../../include/openssl/opensslv.h
+ts_rsp_verify.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_rsp_verify.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_rsp_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_rsp_verify.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_rsp_verify.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_rsp_verify.o: ../../include/openssl/x509v3.h ../cryptlib.h ts_rsp_verify.c
+ts_verify_ctx.o: ../../e_os.h ../../include/openssl/asn1.h
+ts_verify_ctx.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+ts_verify_ctx.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+ts_verify_ctx.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+ts_verify_ctx.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+ts_verify_ctx.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+ts_verify_ctx.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+ts_verify_ctx.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+ts_verify_ctx.o: ../../include/openssl/objects.h
+ts_verify_ctx.o: ../../include/openssl/opensslconf.h
+ts_verify_ctx.o: ../../include/openssl/opensslv.h
+ts_verify_ctx.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+ts_verify_ctx.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+ts_verify_ctx.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+ts_verify_ctx.o: ../../include/openssl/symhacks.h ../../include/openssl/ts.h
+ts_verify_ctx.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+ts_verify_ctx.o: ../../include/openssl/x509v3.h ../cryptlib.h ts_verify_ctx.c
diff --git a/deps/openssl/openssl/crypto/txt_db/Makefile.save b/deps/openssl/openssl/crypto/txt_db/Makefile.save
new file mode 100644 (file)
index 0000000..e6f3033
--- /dev/null
@@ -0,0 +1,84 @@
+#
+# OpenSSL/crypto/txt_db/Makefile
+#
+
+DIR=   txt_db
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=txt_db.c
+LIBOBJ=txt_db.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= txt_db.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by top Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+txt_db.o: ../../e_os.h ../../include/openssl/bio.h
+txt_db.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+txt_db.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+txt_db.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+txt_db.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+txt_db.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+txt_db.o: ../../include/openssl/symhacks.h ../../include/openssl/txt_db.h
+txt_db.o: ../cryptlib.h txt_db.c
diff --git a/deps/openssl/openssl/crypto/ui/Makefile.save b/deps/openssl/openssl/crypto/ui/Makefile.save
new file mode 100644 (file)
index 0000000..a685659
--- /dev/null
@@ -0,0 +1,111 @@
+#
+# OpenSSL/crypto/ui/Makefile
+#
+
+DIR=   ui
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+#TEST= uitest.c
+TEST=
+APPS=
+
+COMPATSRC= ui_compat.c
+COMPATOBJ= ui_compat.o
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC= ui_err.c ui_lib.c ui_openssl.c ui_util.c $(COMPATSRC)
+LIBOBJ= ui_err.o ui_lib.o ui_openssl.o ui_util.o $(COMPATOBJ)
+
+SRC= $(LIBSRC)
+
+EXHEADER= ui.h ui_compat.h
+HEADER=        $(EXHEADER) ui_locl.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+ui_compat.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+ui_compat.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ui_compat.o: ../../include/openssl/stack.h ../../include/openssl/ui.h
+ui_compat.o: ../../include/openssl/ui_compat.h ui_compat.c
+ui_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+ui_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+ui_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+ui_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ui_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ui_err.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h ui_err.c
+ui_lib.o: ../../e_os.h ../../include/openssl/bio.h
+ui_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ui_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+ui_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+ui_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ui_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ui_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+ui_lib.o: ../cryptlib.h ui_lib.c ui_locl.h
+ui_openssl.o: ../../e_os.h ../../include/openssl/bio.h
+ui_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+ui_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+ui_openssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
+ui_openssl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+ui_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+ui_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+ui_openssl.o: ../cryptlib.h ui_locl.h ui_openssl.c
+ui_util.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+ui_util.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+ui_util.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+ui_util.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+ui_util.o: ../../include/openssl/ui.h ui_locl.h ui_util.c
diff --git a/deps/openssl/openssl/crypto/whrlpool/Makefile.save b/deps/openssl/openssl/crypto/whrlpool/Makefile.save
new file mode 100644 (file)
index 0000000..f4d46e4
--- /dev/null
@@ -0,0 +1,96 @@
+#
+# crypto/whrlpool/Makefile
+#
+
+DIR=   whrlpool
+TOP=   ../..
+CC=    cc
+CPP=   $(CC) -E
+INCLUDES=
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+WP_ASM_OBJ=wp_block.o
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
+
+GENERAL=Makefile
+TEST=wp_test.c
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=wp_dgst.c wp_block.c
+LIBOBJ=wp_dgst.o $(WP_ASM_OBJ)
+
+SRC= $(LIBSRC)
+
+EXHEADER= whrlpool.h
+HEADER= wp_locl.h $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+wp-mmx.s:      asm/wp-mmx.pl ../perlasm/x86asm.pl
+       $(PERL) asm/wp-mmx.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+
+wp-x86_64.s: asm/wp-x86_64.pl
+       $(PERL) asm/wp-x86_64.pl $(PERLASM_SCHEME) > $@
+
+$(LIBOBJ): $(LIBSRC)
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+wp_block.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+wp_block.o: ../../include/openssl/whrlpool.h wp_block.c wp_locl.h
+wp_dgst.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+wp_dgst.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+wp_dgst.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+wp_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+wp_dgst.o: ../../include/openssl/whrlpool.h wp_dgst.c wp_locl.h
diff --git a/deps/openssl/openssl/crypto/x509/Makefile.save b/deps/openssl/openssl/crypto/x509/Makefile.save
new file mode 100644 (file)
index 0000000..72c8227
--- /dev/null
@@ -0,0 +1,407 @@
+#
+# OpenSSL/crypto/x509/Makefile
+#
+
+DIR=   x509
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        x509_def.c x509_d2.c x509_r2x.c x509_cmp.c \
+       x509_obj.c x509_req.c x509spki.c x509_vfy.c \
+       x509_set.c x509cset.c x509rset.c x509_err.c \
+       x509name.c x509_v3.c x509_ext.c x509_att.c \
+       x509type.c x509_lu.c x_all.c x509_txt.c \
+       x509_trs.c by_file.c by_dir.c x509_vpm.c
+LIBOBJ= x509_def.o x509_d2.o x509_r2x.o x509_cmp.o \
+       x509_obj.o x509_req.o x509spki.o x509_vfy.o \
+       x509_set.o x509cset.o x509rset.o x509_err.o \
+       x509name.o x509_v3.o x509_ext.o x509_att.o \
+       x509type.o x509_lu.o x_all.o x509_txt.o \
+       x509_trs.o by_file.o by_dir.o x509_vpm.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= x509.h x509_vfy.h
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+by_dir.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+by_dir.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+by_dir.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+by_dir.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+by_dir.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+by_dir.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+by_dir.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+by_dir.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+by_dir.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+by_dir.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+by_dir.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+by_dir.o: ../../include/openssl/x509_vfy.h ../cryptlib.h by_dir.c
+by_file.o: ../../e_os.h ../../include/openssl/asn1.h
+by_file.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+by_file.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+by_file.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+by_file.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+by_file.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+by_file.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+by_file.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+by_file.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
+by_file.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
+by_file.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+by_file.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+by_file.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+by_file.o: ../cryptlib.h by_file.c
+x509_att.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_att.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_att.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_att.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_att.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_att.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_att.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_att.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_att.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_att.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_att.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_att.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_att.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_att.o: ../cryptlib.h x509_att.c
+x509_cmp.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_cmp.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_cmp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_cmp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_cmp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_cmp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_cmp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_cmp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_cmp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_cmp.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_cmp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_cmp.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_cmp.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_cmp.o: ../cryptlib.h x509_cmp.c
+x509_d2.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_d2.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_d2.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509_d2.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509_d2.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_d2.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509_d2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509_d2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+x509_d2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+x509_d2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+x509_d2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+x509_d2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+x509_d2.o: ../cryptlib.h x509_d2.c
+x509_def.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_def.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_def.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509_def.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509_def.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_def.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509_def.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509_def.o: ../../include/openssl/opensslconf.h
+x509_def.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_def.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_def.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_def.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_def.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_def.c
+x509_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+x509_err.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x509_err.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_err.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_err.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_err.o: ../../include/openssl/x509_vfy.h x509_err.c
+x509_ext.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_ext.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_ext.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_ext.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_ext.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_ext.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_ext.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_ext.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_ext.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_ext.o: ../cryptlib.h x509_ext.c
+x509_lu.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_lu.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_lu.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_lu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_lu.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_lu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_lu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_lu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_lu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_lu.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_lu.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_lu.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_lu.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_lu.o: ../cryptlib.h x509_lu.c
+x509_obj.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_obj.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_obj.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509_obj.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509_obj.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_obj.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509_obj.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509_obj.o: ../../include/openssl/opensslconf.h
+x509_obj.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_obj.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_obj.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_obj.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_obj.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_obj.c
+x509_r2x.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_r2x.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+x509_r2x.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x509_r2x.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_r2x.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_r2x.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_r2x.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_r2x.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_r2x.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_r2x.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_r2x.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_r2x.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_r2x.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_r2x.c
+x509_req.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+x509_req.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+x509_req.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509_req.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_req.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509_req.o: ../../include/openssl/opensslconf.h
+x509_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_req.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+x509_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_req.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_req.c
+x509_set.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_set.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_set.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509_set.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509_set.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_set.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509_set.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509_set.o: ../../include/openssl/opensslconf.h
+x509_set.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_set.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_set.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_set.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_set.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_set.c
+x509_trs.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_trs.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_trs.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_trs.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_trs.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_trs.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_trs.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_trs.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_trs.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_trs.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_trs.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_trs.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_trs.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_trs.o: ../cryptlib.h x509_trs.c
+x509_txt.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_txt.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_txt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509_txt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509_txt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509_txt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509_txt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509_txt.o: ../../include/openssl/opensslconf.h
+x509_txt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_txt.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_txt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_txt.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_txt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_txt.c
+x509_v3.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_v3.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_v3.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_v3.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_v3.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_v3.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_v3.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_v3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_v3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_v3.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_v3.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_v3.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_v3.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_v3.o: ../cryptlib.h x509_v3.c
+x509_vfy.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_vfy.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_vfy.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_vfy.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_vfy.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_vfy.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_vfy.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_vfy.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_vfy.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_vfy.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_vfy.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_vfy.o: ../cryptlib.h x509_vfy.c
+x509_vpm.o: ../../e_os.h ../../include/openssl/asn1.h
+x509_vpm.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509_vpm.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+x509_vpm.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+x509_vpm.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+x509_vpm.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+x509_vpm.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+x509_vpm.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+x509_vpm.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509_vpm.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509_vpm.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509_vpm.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509_vpm.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+x509_vpm.o: ../cryptlib.h x509_vpm.c
+x509cset.o: ../../e_os.h ../../include/openssl/asn1.h
+x509cset.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509cset.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509cset.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509cset.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509cset.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509cset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509cset.o: ../../include/openssl/opensslconf.h
+x509cset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509cset.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509cset.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509cset.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509cset.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509cset.c
+x509name.o: ../../e_os.h ../../include/openssl/asn1.h
+x509name.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509name.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509name.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509name.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509name.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509name.o: ../../include/openssl/opensslconf.h
+x509name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509name.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509name.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509name.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509name.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509name.c
+x509rset.o: ../../e_os.h ../../include/openssl/asn1.h
+x509rset.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509rset.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509rset.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509rset.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509rset.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509rset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509rset.o: ../../include/openssl/opensslconf.h
+x509rset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509rset.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509rset.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509rset.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509rset.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509rset.c
+x509spki.o: ../../e_os.h ../../include/openssl/asn1.h
+x509spki.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509spki.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509spki.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509spki.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509spki.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509spki.o: ../../include/openssl/opensslconf.h
+x509spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509spki.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509spki.c
+x509type.o: ../../e_os.h ../../include/openssl/asn1.h
+x509type.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+x509type.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+x509type.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x509type.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x509type.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x509type.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x509type.o: ../../include/openssl/opensslconf.h
+x509type.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+x509type.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+x509type.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x509type.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x509type.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509type.c
+x_all.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+x_all.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+x_all.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+x_all.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+x_all.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+x_all.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+x_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+x_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+x_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+x_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
+x_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+x_all.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+x_all.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_all.c
index 27ca515..c6602da 100644 (file)
@@ -218,7 +218,7 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
 
        s=dir;
        p=s;
-       for (;;p++)
+       do
                {
                if ((*p == LIST_SEPARATOR_CHAR) || (*p == '\0'))
                        {
@@ -264,9 +264,7 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
                                return 0;
                                }
                        }
-               if (*p == '\0')
-                       break;
-               }
+               } while (*p++ != '\0');
        return 1;
        }
 
index 12d71f5..920066a 100644 (file)
@@ -694,6 +694,7 @@ static int check_cert(X509_STORE_CTX *ctx)
        X509_CRL *crl = NULL, *dcrl = NULL;
        X509 *x;
        int ok, cnum;
+       unsigned int last_reasons;
        cnum = ctx->error_depth;
        x = sk_X509_value(ctx->chain, cnum);
        ctx->current_cert = x;
@@ -702,6 +703,7 @@ static int check_cert(X509_STORE_CTX *ctx)
        ctx->current_reasons = 0;
        while (ctx->current_reasons != CRLDP_ALL_REASONS)
                {
+               last_reasons = ctx->current_reasons;
                /* Try to retrieve relevant CRL */
                if (ctx->get_crl)
                        ok = ctx->get_crl(ctx, &crl, x);
@@ -745,6 +747,15 @@ static int check_cert(X509_STORE_CTX *ctx)
                X509_CRL_free(dcrl);
                crl = NULL;
                dcrl = NULL;
+               /* If reasons not updated we wont get anywhere by
+                * another iteration, so exit loop.
+                */
+               if (last_reasons == ctx->current_reasons)
+                       {
+                       ctx->error = X509_V_ERR_UNABLE_TO_GET_CRL;
+                       ok = ctx->verify_cb(0, ctx);
+                       goto err;
+                       }
                }
        err:
        X509_CRL_free(crl);
@@ -1451,10 +1462,9 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
         * a certificate was revoked. This has since been changed since 
         * critical extension can change the meaning of CRL entries.
         */
-       if (crl->flags & EXFLAG_CRITICAL)
+       if (!(ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL)
+               && (crl->flags & EXFLAG_CRITICAL))
                {
-               if (ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL)
-                       return 1;
                ctx->error = X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION;
                ok = ctx->verify_cb(0, ctx);
                if(!ok)
index b94aeeb..e06602d 100644 (file)
@@ -97,6 +97,7 @@ int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
 
 int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx)
        {
+       x->cert_info->enc.modified = 1;
        return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CINF),
                x->cert_info->signature,
                x->sig_alg, x->signature, x->cert_info, ctx);
@@ -123,6 +124,7 @@ int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
 
 int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx)
        {
+       x->crl->enc.modified = 1;
        return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CRL_INFO),
                x->crl->sig_alg, x->sig_alg, x->signature, x->crl, ctx);
        }
diff --git a/deps/openssl/openssl/crypto/x509v3/Makefile.save b/deps/openssl/openssl/crypto/x509v3/Makefile.save
new file mode 100644 (file)
index 0000000..556ef35
--- /dev/null
@@ -0,0 +1,591 @@
+#
+# OpenSSL/crypto/x509v3/Makefile
+#
+
+DIR=   x509v3
+TOP=   ../..
+CC=    cc
+INCLUDES= -I.. -I$(TOP) -I../../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=        v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c \
+v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c \
+v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c \
+v3_ocsp.c v3_akeya.c v3_pmaps.c v3_pcons.c v3_ncons.c v3_pcia.c v3_pci.c \
+pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c \
+v3_asid.c v3_addr.c
+LIBOBJ= v3_bcons.o v3_bitst.o v3_conf.o v3_extku.o v3_ia5.o v3_lib.o \
+v3_prn.o v3_utl.o v3err.o v3_genn.o v3_alt.o v3_skey.o v3_akey.o v3_pku.o \
+v3_int.o v3_enum.o v3_sxnet.o v3_cpols.o v3_crld.o v3_purp.o v3_info.o \
+v3_ocsp.o v3_akeya.o v3_pmaps.o v3_pcons.o v3_ncons.o v3_pcia.o v3_pci.o \
+pcy_cache.o pcy_node.o pcy_data.o pcy_map.o pcy_tree.o pcy_lib.o \
+v3_asid.o v3_addr.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= x509v3.h
+HEADER=        $(EXHEADER) pcy_int.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
+
+all:   lib
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+pcy_cache.o: ../../e_os.h ../../include/openssl/asn1.h
+pcy_cache.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pcy_cache.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+pcy_cache.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pcy_cache.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pcy_cache.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pcy_cache.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pcy_cache.o: ../../include/openssl/objects.h
+pcy_cache.o: ../../include/openssl/opensslconf.h
+pcy_cache.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pcy_cache.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pcy_cache.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pcy_cache.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pcy_cache.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+pcy_cache.o: ../cryptlib.h pcy_cache.c pcy_int.h
+pcy_data.o: ../../e_os.h ../../include/openssl/asn1.h
+pcy_data.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pcy_data.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+pcy_data.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pcy_data.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pcy_data.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pcy_data.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pcy_data.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pcy_data.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pcy_data.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pcy_data.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pcy_data.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pcy_data.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+pcy_data.o: ../cryptlib.h pcy_data.c pcy_int.h
+pcy_lib.o: ../../e_os.h ../../include/openssl/asn1.h
+pcy_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pcy_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+pcy_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pcy_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pcy_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pcy_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pcy_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pcy_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pcy_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pcy_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pcy_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pcy_lib.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+pcy_lib.o: ../cryptlib.h pcy_int.h pcy_lib.c
+pcy_map.o: ../../e_os.h ../../include/openssl/asn1.h
+pcy_map.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pcy_map.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+pcy_map.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pcy_map.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pcy_map.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pcy_map.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pcy_map.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pcy_map.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pcy_map.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pcy_map.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pcy_map.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pcy_map.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+pcy_map.o: ../cryptlib.h pcy_int.h pcy_map.c
+pcy_node.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+pcy_node.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+pcy_node.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+pcy_node.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+pcy_node.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
+pcy_node.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pcy_node.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pcy_node.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pcy_node.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pcy_node.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pcy_node.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pcy_node.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+pcy_node.o: pcy_int.h pcy_node.c
+pcy_tree.o: ../../e_os.h ../../include/openssl/asn1.h
+pcy_tree.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+pcy_tree.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+pcy_tree.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+pcy_tree.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+pcy_tree.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pcy_tree.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pcy_tree.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pcy_tree.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pcy_tree.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+pcy_tree.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pcy_tree.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+pcy_tree.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+pcy_tree.o: ../cryptlib.h pcy_int.h pcy_tree.c
+v3_addr.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_addr.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_addr.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_addr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_addr.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_addr.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_addr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_addr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_addr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_addr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_addr.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_addr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_addr.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_addr.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_addr.c
+v3_akey.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_akey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_akey.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_akey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_akey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_akey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_akey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_akey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_akey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_akey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_akey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_akey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_akey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_akey.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_akey.c
+v3_akeya.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_akeya.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_akeya.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_akeya.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_akeya.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_akeya.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_akeya.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_akeya.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_akeya.o: ../../include/openssl/opensslconf.h
+v3_akeya.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_akeya.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_akeya.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_akeya.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_akeya.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_akeya.o: ../cryptlib.h v3_akeya.c
+v3_alt.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3_alt.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_alt.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_alt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_alt.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_alt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_alt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_alt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_alt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_alt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_alt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_alt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_alt.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_alt.c
+v3_asid.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_asid.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_asid.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+v3_asid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_asid.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_asid.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_asid.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_asid.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_asid.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+v3_asid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_asid.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_asid.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_asid.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_asid.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_asid.o: ../cryptlib.h v3_asid.c
+v3_bcons.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_bcons.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_bcons.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_bcons.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_bcons.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_bcons.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_bcons.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_bcons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_bcons.o: ../../include/openssl/opensslconf.h
+v3_bcons.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_bcons.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_bcons.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_bcons.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_bcons.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_bcons.o: ../cryptlib.h v3_bcons.c
+v3_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_bitst.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+v3_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_bitst.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_bitst.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+v3_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_bitst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_bitst.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_bitst.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_bitst.o: ../cryptlib.h v3_bitst.c
+v3_conf.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_conf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+v3_conf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_conf.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_conf.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_conf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_conf.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_conf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+v3_conf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_conf.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_conf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_conf.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_conf.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_conf.o: ../cryptlib.h v3_conf.c
+v3_cpols.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_cpols.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_cpols.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_cpols.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_cpols.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_cpols.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_cpols.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_cpols.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_cpols.o: ../../include/openssl/opensslconf.h
+v3_cpols.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_cpols.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_cpols.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_cpols.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_cpols.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_cpols.o: ../cryptlib.h pcy_int.h v3_cpols.c
+v3_crld.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_crld.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_crld.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_crld.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_crld.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_crld.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_crld.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_crld.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_crld.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_crld.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_crld.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_crld.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_crld.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_crld.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_crld.c
+v3_enum.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_enum.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+v3_enum.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_enum.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_enum.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_enum.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_enum.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_enum.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+v3_enum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_enum.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_enum.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_enum.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_enum.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_enum.o: ../cryptlib.h v3_enum.c
+v3_extku.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_extku.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_extku.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_extku.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_extku.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_extku.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_extku.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_extku.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_extku.o: ../../include/openssl/opensslconf.h
+v3_extku.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_extku.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_extku.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_extku.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_extku.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_extku.o: ../cryptlib.h v3_extku.c
+v3_genn.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_genn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_genn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_genn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_genn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_genn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_genn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_genn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_genn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_genn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_genn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_genn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_genn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_genn.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_genn.c
+v3_ia5.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3_ia5.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_ia5.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_ia5.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_ia5.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_ia5.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_ia5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_ia5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_ia5.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_ia5.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_ia5.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_ia5.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_ia5.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_ia5.c
+v3_info.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_info.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_info.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_info.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_info.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_info.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_info.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_info.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_info.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_info.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_info.c
+v3_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3_int.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_int.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_int.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_int.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_int.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_int.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_int.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_int.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_int.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_int.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_int.c
+v3_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3_lib.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_lib.o: ../../include/openssl/x509v3.h ../cryptlib.h ext_dat.h v3_lib.c
+v3_ncons.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_ncons.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_ncons.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_ncons.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_ncons.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_ncons.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_ncons.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_ncons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_ncons.o: ../../include/openssl/opensslconf.h
+v3_ncons.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_ncons.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_ncons.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_ncons.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_ncons.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_ncons.o: ../cryptlib.h v3_ncons.c
+v3_ocsp.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_ocsp.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+v3_ocsp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_ocsp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_ocsp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_ocsp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_ocsp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_ocsp.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
+v3_ocsp.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_ocsp.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_ocsp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_ocsp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_ocsp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_ocsp.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_ocsp.c
+v3_pci.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3_pci.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_pci.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_pci.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_pci.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pci.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_pci.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_pci.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_pci.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_pci.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_pci.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_pci.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_pci.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_pci.c
+v3_pcia.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+v3_pcia.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+v3_pcia.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_pcia.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_pcia.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_pcia.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_pcia.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_pcia.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_pcia.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_pcia.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_pcia.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_pcia.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_pcia.o: ../../include/openssl/x509v3.h v3_pcia.c
+v3_pcons.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_pcons.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_pcons.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_pcons.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_pcons.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_pcons.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pcons.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_pcons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_pcons.o: ../../include/openssl/opensslconf.h
+v3_pcons.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_pcons.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_pcons.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_pcons.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_pcons.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_pcons.o: ../cryptlib.h v3_pcons.c
+v3_pku.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_pku.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_pku.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_pku.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_pku.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_pku.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pku.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_pku.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_pku.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_pku.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_pku.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_pku.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_pku.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_pku.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_pku.c
+v3_pmaps.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_pmaps.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_pmaps.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_pmaps.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_pmaps.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_pmaps.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_pmaps.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_pmaps.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_pmaps.o: ../../include/openssl/opensslconf.h
+v3_pmaps.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_pmaps.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_pmaps.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_pmaps.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_pmaps.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_pmaps.o: ../cryptlib.h v3_pmaps.c
+v3_prn.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3_prn.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_prn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_prn.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_prn.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_prn.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_prn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3_prn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3_prn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3_prn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3_prn.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_prn.c
+v3_purp.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_purp.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+v3_purp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_purp.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_purp.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_purp.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_purp.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_purp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+v3_purp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_purp.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_purp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_purp.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_purp.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_purp.o: ../cryptlib.h v3_purp.c
+v3_skey.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_skey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
+v3_skey.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_skey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_skey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_skey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_skey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+v3_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_skey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_skey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_skey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_skey.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_skey.o: ../cryptlib.h v3_skey.c
+v3_sxnet.o: ../../e_os.h ../../include/openssl/asn1.h
+v3_sxnet.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
+v3_sxnet.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3_sxnet.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3_sxnet.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3_sxnet.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3_sxnet.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3_sxnet.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3_sxnet.o: ../../include/openssl/opensslconf.h
+v3_sxnet.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_sxnet.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_sxnet.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_sxnet.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_sxnet.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_sxnet.o: ../cryptlib.h v3_sxnet.c
+v3_utl.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3_utl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
+v3_utl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
+v3_utl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+v3_utl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+v3_utl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+v3_utl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+v3_utl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+v3_utl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+v3_utl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+v3_utl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+v3_utl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+v3_utl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+v3_utl.o: ../cryptlib.h v3_utl.c
+v3err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+v3err.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+v3err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+v3err.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+v3err.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
+v3err.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+v3err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+v3err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+v3err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+v3err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+v3err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+v3err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+v3err.o: ../../include/openssl/x509v3.h v3err.c
index c18b0e2..b270b44 100644 (file)
@@ -67,6 +67,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
        &inc    ("esi");                # number of cores
 
        &mov    ("eax",1);
+       &xor    ("ecx","ecx");
        &cpuid  ();
        &bt     ("edx",28);
        &jnc    (&label("generic"));
@@ -91,6 +92,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
 
 &set_label("nocacheinfo");
        &mov    ("eax",1);
+       &xor    ("ecx","ecx");
        &cpuid  ();
        &and    ("edx",0xbfefffff);     # force reserved bits #20, #30 to 0
        &cmp    ("ebp",0);
index b7943e8..01bf092 100644 (file)
@@ -10,7 +10,7 @@ int main(int argc, char **argv)
        int ret = 1;
 
        /*
-        * On OpenSSL 0.9.9 only:
+        * On OpenSSL 1.0.0+ only:
         * for streaming set CMS_STREAM
         */
        int flags = CMS_STREAM;
index 7ddf653..9fee0a3 100644 (file)
@@ -47,7 +47,7 @@ int main(int argc, char **argv)
                goto err;
 
        /* Decrypt S/MIME message */
-       if (!CMS_decrypt(cms, rkey, rcert, out, NULL, 0))
+       if (!CMS_decrypt(cms, rkey, rcert, NULL, out, 0))
                goto err;
 
        ret = 0;
index 42f7620..6823c34 100644 (file)
@@ -12,7 +12,7 @@ int main(int argc, char **argv)
        int ret = 1;
 
        /* For simple S/MIME signing use CMS_DETACHED.
-        * On OpenSSL 0.9.9 only:
+        * On OpenSSL 1.0.0 only:
         * for streaming detached set CMS_DETACHED|CMS_STREAM
         * for streaming non-detached set CMS_STREAM
         */
index d17e4ad..d1cba9d 100644 (file)
@@ -7,13 +7,14 @@
 
 #include <openssl/pem.h>
 #include <openssl/conf.h>
+#include <openssl/x509.h>
 #include <openssl/x509v3.h>
 #ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
 #endif
 
 int mkreq(X509_REQ **x509p, EVP_PKEY **pkeyp, int bits, int serial, int days);
-int add_ext(STACK_OF(X509_REQUEST) *sk, int nid, char *value);
+int add_ext(STACK_OF(X509_EXTENSION) *sk, int nid, char *value);
 
 int main(int argc, char **argv)
        {
@@ -148,7 +149,7 @@ err:
  * because we wont reference any other sections.
  */
 
-int add_ext(STACK_OF(X509_REQUEST) *sk, int nid, char *value)
+int add_ext(STACK_OF(X509_EXTENSION) *sk, int nid, char *value)
        {
        X509_EXTENSION *ex;
        ex = X509V3_EXT_conf_nid(NULL, NULL, nid, value);
index ace34b6..25c5381 100644 (file)
@@ -119,7 +119,7 @@ variable points to a section containing further ENGINE configuration
 information.
 
 The section pointed to by B<engines> is a table of engine names (though see
-B<engine_id> below) and further sections containing configuration informations
+B<engine_id> below) and further sections containing configuration information
 specific to each ENGINE.
 
 Each ENGINE specific section is used to set default algorithms, load
index a40c873..1ad76a5 100644 (file)
@@ -62,6 +62,11 @@ don't output the encoded version of the CRL.
 output a hash of the issuer name. This can be use to lookup CRLs in
 a directory by issuer name.
 
+=item B<-hash_old>
+
+outputs the "hash" of the CRL issuer name using the older algorithm
+as used by OpenSSL versions before 1.0.0.
+
 =item B<-issuer>
 
 output the issuer name.
index ba6dc46..5c7b45d 100644 (file)
@@ -41,7 +41,7 @@ PKCS#8 private key format use the B<pkcs8> command.
 
 This specifies the input format. The B<DER> option with a private key uses
 an ASN.1 DER encoded SEC1 private key. When used with a public key it
-uses the SubjectPublicKeyInfo structur as specified in RFC 3280.
+uses the SubjectPublicKeyInfo structure as specified in RFC 3280.
 The B<PEM> form is the default format: it consists of the B<DER> format base64
 encoded with additional header and footer lines. In the case of a private key
 PKCS#8 format is also accepted.
index f69a5c5..8e0d917 100644 (file)
@@ -67,7 +67,7 @@ by default.
 The filename to write certificates and private keys to, standard output by
 default.  They are all written in PEM format.
 
-=item B<-pass arg>, B<-passin arg>
+=item B<-passin arg>
 
 the PKCS#12 file (i.e. input file) password source. For more information about
 the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section in
@@ -75,10 +75,15 @@ L<openssl(1)|openssl(1)>.
 
 =item B<-passout arg>
 
-pass phrase source to encrypt any outputed private keys with. For more
+pass phrase source to encrypt any outputted private keys with. For more
 information about the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section
 in L<openssl(1)|openssl(1)>.
 
+=item B<-password arg>
+
+With -export, -password is equivalent to -passout.
+Otherwise, -password is equivalent to -passin.
+
 =item B<-noout>
 
 this option inhibits output of the keys and certificates to the output file
index ff48bbd..0730d11 100644 (file)
@@ -303,7 +303,7 @@ Reverses effect of B<-asn1-kludge>
 
 =item B<-newhdr>
 
-Adds the word B<NEW> to the PEM file header and footer lines on the outputed
+Adds the word B<NEW> to the PEM file header and footer lines on the outputted
 request. Some software (Netscape certificate server) and some CAs need this.
 
 =item B<-batch>
index 69b2bef..d7d784d 100644 (file)
@@ -24,6 +24,8 @@ B<openssl> B<rsa>
 [B<-check>]
 [B<-pubin>]
 [B<-pubout>]
+[B<-RSAPublicKey_in>]
+[B<-RSAPublicKey_out>]
 [B<-engine id>]
 
 =head1 DESCRIPTION
@@ -118,6 +120,10 @@ by default a private key is output: with this option a public
 key will be output instead. This option is automatically set if
 the input is a public key.
 
+=item B<-RSAPublicKey_in>, B<-RSAPublicKey_out>
+
+like B<-pubin> and B<-pubout> except B<RSAPublicKey> format is used instead.
+
 =item B<-engine id>
 
 specifying an engine (by its unique B<id> string) will cause B<rsa>
@@ -139,6 +145,11 @@ The PEM public key format uses the header and footer lines:
  -----BEGIN PUBLIC KEY-----
  -----END PUBLIC KEY-----
 
+The PEM B<RSAPublicKey> format uses the header and footer lines:
+
+ -----BEGIN RSA PUBLIC KEY-----
+ -----END RSA PUBLIC KEY-----
+
 The B<NET> form is a format compatible with older Netscape servers
 and Microsoft IIS .key files, this uses unsalted RC4 for its encryption.
 It is not very secure and so should only be used when necessary.
@@ -173,6 +184,10 @@ To just output the public part of a private key:
 
  openssl rsa -in key.pem -pubout -out pubkey.pem
 
+Output the public part of a private key in B<RSAPublicKey> format:
+
+ openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
+
 =head1 BUGS
 
 The command line password arguments don't currently work with
index 4ebf7b5..3215b2e 100644 (file)
@@ -10,6 +10,7 @@ s_client - SSL/TLS client program
 B<openssl> B<s_client>
 [B<-connect host:port>]
 [B<-verify depth>]
+[B<-verify_return_error>]
 [B<-cert filename>]
 [B<-certform DER|PEM>]
 [B<-key filename>]
@@ -90,6 +91,11 @@ Currently the verify operation continues after errors so all the problems
 with a certificate chain can be seen. As a side effect the connection
 will never fail due to a server certificate verify failure.
 
+=item B<-verify_return_error>
+
+Return verification errors instead of continuing. This will typically
+abort the handshake with a fatal error.
+
 =item B<-CApath directory>
 
 The directory to use for server certificate verification. This directory
@@ -286,6 +292,13 @@ Since the SSLv23 client hello cannot include compression methods or extensions
 these will only be supported if its use is disabled, for example by using the
 B<-no_sslv2> option.
 
+The B<s_client> utility is a test tool and is designed to continue the
+handshake after any certificate verification errors. As a result it will
+accept any certificate chain (trusted or not) sent by the peer. None test
+applications should B<not> do this as it makes them vulnerable to a MITM
+attack. This behaviour can be changed by with the B<-verify_return_error>
+option: any verify errors are then returned aborting the handshake.
+
 =head1 BUGS
 
 Because this program has a lot of options and also because some of
@@ -293,9 +306,6 @@ the techniques used are rather old, the C source of s_client is rather
 hard to read and not a model of how things should be done. A typical
 SSL client program would be much simpler.
 
-The B<-verify> option should really exit if the server verification
-fails.
-
 The B<-prexit> option is a bit of a hack. We should really report
 information whenever a session is renegotiated.
 
index 3e503e1..6758ba3 100644 (file)
@@ -111,7 +111,7 @@ by using an appropriate certificate.
 
 =item B<-dcertform format>, B<-dkeyform format>, B<-dpass arg>
 
-addtional certificate and private key format and passphrase respectively.
+additional certificate and private key format and passphrase respectively.
 
 =item B<-nocert>
 
index 7fb6caa..d6aa47d 100644 (file)
@@ -352,7 +352,7 @@ switch always overrides the settings in the config file.
 
 This is the main section and it specifies the name of another section
 that contains all the options for the B<-reply> command. This default
-section can be overriden with the B<-section> command line switch. (Optional)
+section can be overridden with the B<-section> command line switch. (Optional)
 
 =item B<oid_file>
 
@@ -453,7 +453,7 @@ included. Default is no. (Optional)
 =head1 ENVIRONMENT VARIABLES
 
 B<OPENSSL_CONF> contains the path of the configuration file and can be
-overriden by the B<-config> command line option.
+overridden by the B<-config> command line option.
 
 =head1 EXAMPLES
 
index b05957b..56db985 100644 (file)
@@ -124,7 +124,7 @@ The name of an EGD socket to get random data from. (Optional)
 =item [request]...
 
 List of files containing B<RFC 3161> DER-encoded time stamp requests. If no
-requests are specifed only one request will be sent to the server and it will be
+requests are specified only one request will be sent to the server and it will be
 read from the standard input. (Optional)
 
 =back
index 5f51fdb..da06e44 100644 (file)
@@ -48,7 +48,7 @@ necessary parameters are set, by re-creating the blinding parameters.
 
 BN_BLINDING_convert_ex() multiplies B<n> with the blinding factor B<A>.
 If B<r> is not NULL a copy the inverse blinding factor B<Ai> will be
-returned in B<r> (this is useful if a B<RSA> object is shared amoung
+returned in B<r> (this is useful if a B<RSA> object is shared among
 several threads). BN_BLINDING_invert_ex() multiplies B<n> with the
 inverse blinding factor B<Ai>. If B<r> is not NULL it will be used as
 the inverse blinding.
index 3444304..828ecf5 100644 (file)
@@ -52,8 +52,11 @@ ERR_get_error_line_data(), ERR_peek_error_line_data() and
 ERR_get_last_error_line_data() store additional data and flags
 associated with the error code in *B<data>
 and *B<flags>, unless these are B<NULL>. *B<data> contains a string
-if *B<flags>&B<ERR_TXT_STRING>. If it has been allocated by OPENSSL_malloc(),
-*B<flags>&B<ERR_TXT_MALLOCED> is true.
+if *B<flags>&B<ERR_TXT_STRING> is true. 
+
+An application B<MUST NOT> free the *B<data> pointer (or any other pointers
+returned by these functions) with OPENSSL_free() as freeing is handled
+automatically by the error library.
 
 =head1 RETURN VALUES
 
index d375c46..0ea7d55 100644 (file)
@@ -17,7 +17,7 @@ EVP_BytesToKey - password based encryption routine
 
 EVP_BytesToKey() derives a key and IV from various parameters. B<type> is
 the cipher to derive the key and IV for. B<md> is the message digest to use.
-The B<salt> paramter is used as a salt in the derivation: it should point to
+The B<salt> parameter is used as a salt in the derivation: it should point to
 an 8 byte buffer or NULL if no salt is used. B<data> is a buffer containing
 B<datal> bytes which is used to derive the keying data. B<count> is the
 iteration count to use. The derived key and IV will be written to B<key>
index 8271d3d..1c4bf18 100644 (file)
@@ -152,7 +152,7 @@ does not remain in memory.
 
 EVP_EncryptInit(), EVP_DecryptInit() and EVP_CipherInit() behave in a
 similar way to EVP_EncryptInit_ex(), EVP_DecryptInit_ex and
-EVP_CipherInit_ex() except the B<ctx> paramter does not need to be
+EVP_CipherInit_ex() except the B<ctx> parameter does not need to be
 initialized and they always use the default cipher implementation.
 
 EVP_EncryptFinal(), EVP_DecryptFinal() and EVP_CipherFinal() behave in a
diff --git a/deps/openssl/openssl/doc/crypto/EVP_PKEY_verifyrecover.pod b/deps/openssl/openssl/doc/crypto/EVP_PKEY_verifyrecover.pod
deleted file mode 100644 (file)
index f3605eb..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-=pod
-
-=head1 NAME
-
-EVP_PKEY_verifyrecover_init, EVP_PKEY_verifyrecover - recover signature using a public key algorithm
-
-=head1 SYNOPSIS
-
- #include <openssl/evp.h>
-
- int EVP_PKEY_verifyrecover_init(EVP_PKEY_CTX *ctx);
- int EVP_PKEY_verifyrecover(EVP_PKEY_CTX *ctx,
-                       unsigned char *rout, size_t *routlen,
-                       const unsigned char *sig, size_t siglen);
-
-=head1 DESCRIPTION
-
-The EVP_PKEY_verifyrecover_init() function initializes a public key algorithm
-context using key B<pkey> for a verify recover operation.
-
-The EVP_PKEY_verifyrecover() function recovers signed data
-using B<ctx>. The signature is specified using the B<sig> and
-B<siglen> parameters. If B<rout> is B<NULL> then the maximum size of the output
-buffer is written to the B<routlen> parameter. If B<rout> is not B<NULL> then
-before the call the B<routlen> parameter should contain the length of the
-B<rout> buffer, if the call is successful recovered data is written to
-B<rout> and the amount of data written to B<routlen>.
-
-=head1 NOTES
-
-Normally an application is only interested in whether a signature verification
-operation is successful in those cases the EVP_verify() function should be 
-used.
-
-Sometimes however it is useful to obtain the data originally signed using a
-signing operation. Only certain public key algorithms can recover a signature
-in this way (for example RSA in PKCS padding mode).
-
-After the call to EVP_PKEY_verifyrecover_init() algorithm specific control
-operations can be performed to set any appropriate parameters for the
-operation.
-
-The function EVP_PKEY_verifyrecover() can be called more than once on the same
-context if several operations are performed using the same parameters.
-
-=head1 RETURN VALUES
-
-EVP_PKEY_verifyrecover_init() and EVP_PKEY_verifyrecover() return 1 for success
-and 0 or a negative value for failure. In particular a return value of -2
-indicates the operation is not supported by the public key algorithm.
-
-=head1 EXAMPLE
-
-Recover digest originally signed using PKCS#1 and SHA256 digest:
-
- #include <openssl/evp.h>
- #include <openssl/rsa.h>
-
- EVP_PKEY_CTX *ctx;
- unsigned char *rout, *sig;
- size_t routlen, siglen; 
- EVP_PKEY *verify_key;
- /* NB: assumes verify_key, sig and siglen are already set up
-  * and that verify_key is an RSA public key
-  */
- ctx = EVP_PKEY_CTX_new(verify_key);
- if (!ctx)
-       /* Error occurred */
- if (EVP_PKEY_verifyrecover_init(ctx) <= 0)
-       /* Error */
- if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
-       /* Error */
- if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
-       /* Error */
-
- /* Determine buffer length */
- if (EVP_PKEY_verifyrecover(ctx, NULL, &routlen, sig, siglen) <= 0)
-       /* Error */
-
- rout = OPENSSL_malloc(routlen);
-
- if (!rout)
-       /* malloc failure */
- if (EVP_PKEY_verifyrecover(ctx, rout, &routlen, sig, siglen) <= 0)
-       /* Error */
-
- /* Recovered data is routlen bytes written to buffer rout */
-
-=head1 SEE ALSO
-
-L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>,
-L<EVP_PKEY_encrypt(3)|EVP_PKEY_encrypt(3)>,
-L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>,
-L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>,
-L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>,
-L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)> 
-
-=head1 HISTORY
-
-These functions were first added to OpenSSL 1.0.0.
-
-=cut
index a883f6c..60e8332 100644 (file)
@@ -278,6 +278,8 @@ happen if extended CRL checking is enabled.
 an application specific error. This will never be returned unless explicitly
 set by an application.
 
+=back
+
 =head1 NOTES
 
 The above functions should be used instead of directly referencing the fields
index b68eece..46cac2b 100644 (file)
@@ -113,7 +113,7 @@ a special status code is set to the verification callback. This permits it
 to examine the valid policy tree and perform additional checks or simply
 log it for debugging purposes.
 
-By default some addtional features such as indirect CRLs and CRLs signed by
+By default some additional features such as indirect CRLs and CRLs signed by
 different keys are disabled. If B<X509_V_FLAG_EXTENDED_CRL_SUPPORT> is set
 they are enabled.
 
index 20edff9..59a5916 100644 (file)
@@ -95,7 +95,7 @@ is ignored.
 
 ECDSA_verify() verifies that the signature in B<sig> of size
 B<siglen> is a valid ECDSA signature of the hash value
-value B<dgst> of size B<dgstlen> using the public key B<eckey>.
+B<dgst> of size B<dgstlen> using the public key B<eckey>.
 The parameter B<type> is ignored.
 
 ECDSA_do_sign() is wrapper function for ECDSA_do_sign_ex with B<kinv>
@@ -131,16 +131,12 @@ specific)
 
  int        ret;
  ECDSA_SIG *sig;
- EC_KEY    *eckey = EC_KEY_new();
+ EC_KEY    *eckey;
+ eckey = EC_KEY_new_by_curve_name(NID_secp192k1);
  if (eckey == NULL)
        {
        /* error */
        }
- key->group = EC_GROUP_new_by_nid(NID_secp192k1);
- if (key->group == NULL)
-       {
-       /* error */
-       }
  if (!EC_KEY_generate_key(eckey))
        {
        /* error */
index d5b1896..54414a3 100644 (file)
@@ -201,7 +201,7 @@ handle PKCS#8 format encrypted and unencrypted keys too.
 PEM_write_bio_PKCS8PrivateKey() and PEM_write_PKCS8PrivateKey()
 write a private key in an EVP_PKEY structure in PKCS#8
 EncryptedPrivateKeyInfo format using PKCS#5 v2.0 password based encryption
-algorithms. The B<cipher> argument specifies the encryption algoritm to
+algorithms. The B<cipher> argument specifies the encryption algorithm to
 use: unlike all other PEM routines the encryption is applied at the
 PKCS#8 level and not in the PEM headers. If B<cipher> is NULL then no
 encryption is used and a PKCS#8 PrivateKeyInfo structure is used instead.
index 632b556..5e66133 100644 (file)
@@ -66,16 +66,16 @@ values:
 
 =over 4
 
-=item 1
-
-The operation succeeded.
-
 =item 0
 
 A failure while manipulating the STACK_OF(X509_NAME) object occurred or
 the X509_NAME could not be extracted from B<cacert>. Check the error stack
 to find out the reason.
 
+=item 1
+
+The operation succeeded.
+
 =back
 
 =head1 EXAMPLES
index cc588f3..fded060 100644 (file)
@@ -88,9 +88,10 @@ As of OpenSSL 0.9.8q and 1.0.0c, this option has no effect.
 
 ...
 
-=item SSL_OP_MSIE_SSLV2_RSA_PADDING
+=item SSL_OP_SAFARI_ECDHE_ECDSA_BUG
 
-As of OpenSSL 0.9.7h and 0.9.8a, this option has no effect.
+Don't prefer ECDHE-ECDSA ciphers when the client appears to be Safari on OS X.
+OS X 10.8..10.8.3 has broken support for ECDHE-ECDSA ciphers.
 
 =item SSL_OP_SSLEAY_080_CLIENT_DH_BUG
 
index 8156683..6fd6c03 100644 (file)
@@ -169,8 +169,8 @@ that will always continue the TLS/SSL handshake regardless of verification
 failure, if wished. The callback realizes a verification depth limit with
 more informational output.
 
-All verification errors are printed, informations about the certificate chain
-are printed on request.
+All verification errors are printed; information about the certificate chain
+is printed on request.
 The example is realized for a server that does allow but not require client
 certificates.
 
index b80e25b..7e60df5 100644 (file)
@@ -81,6 +81,8 @@ SSL_CTX_use_psk_identity_hint() and SSL_use_psk_identity_hint() return
 
 Return values from the server callback are interpreted as follows:
 
+=over 4
+
 =item > 0
 
 PSK identity was found and the server callback has provided the PSK
@@ -99,4 +101,6 @@ completely.
 PSK identity was not found. An "unknown_psk_identity" alert message
 will be sent and the connection setup fails.
 
+=back
+
 =cut
index cc724c0..b1c34d1 100644 (file)
@@ -44,17 +44,17 @@ The following return values can occur:
 
 =over 4
 
-=item 1
-
-The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
-established.
-
 =item 0
 
 The TLS/SSL handshake was not successful but was shut down controlled and
 by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
 return value B<ret> to find out the reason.
 
+=item 1
+
+The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+established.
+
 =item E<lt>0
 
 The TLS/SSL handshake was not successful because a fatal error occurred either
index cc56ebb..946ca89 100644 (file)
@@ -41,17 +41,17 @@ The following return values can occur:
 
 =over 4
 
-=item 1
-
-The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
-established.
-
 =item 0
 
 The TLS/SSL handshake was not successful but was shut down controlled and
 by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
 return value B<ret> to find out the reason.
 
+=item 1
+
+The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+established.
+
 =item E<lt>0
 
 The TLS/SSL handshake was not successful, because a fatal error occurred either
index 2435764..7f8cf24 100644 (file)
@@ -45,17 +45,17 @@ The following return values can occur:
 
 =over 4
 
-=item 1
-
-The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
-established.
-
 =item 0
 
 The TLS/SSL handshake was not successful but was shut down controlled and
 by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
 return value B<ret> to find out the reason.
 
+=item 1
+
+The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+established.
+
 =item E<lt>0
 
 The TLS/SSL handshake was not successful because a fatal error occurred either
index 011a022..fe01308 100644 (file)
@@ -24,7 +24,7 @@ The shutdown state of an ssl connection is a bitmask of:
 
 =over 4
 
-=item 0
+=item Z<>0
 
 No shutdown setting, yet.
 
index 89911ac..42a89b7 100644 (file)
@@ -92,11 +92,6 @@ The following return values can occur:
 
 =over 4
 
-=item 1
-
-The shutdown was successfully completed. The "close notify" alert was sent
-and the peer's "close notify" alert was received.
-
 =item 0
 
 The shutdown is not yet finished. Call SSL_shutdown() for a second time,
@@ -104,6 +99,11 @@ if a bidirectional shutdown shall be performed.
 The output of L<SSL_get_error(3)|SSL_get_error(3)> may be misleading, as an
 erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred.
 
+=item 1
+
+The shutdown was successfully completed. The "close notify" alert was sent
+and the peer's "close notify" alert was received.
+
 =item -1
 
 The shutdown was not successful because a fatal error occurred either
index 79c1392..6a0aad1 100644 (file)
@@ -368,6 +368,13 @@ static unsigned int _strlen31(const char *str)
 #    define DEFAULT_HOME  "C:"
 #  endif
 
+/* Avoid Windows 8 SDK GetVersion deprecated problems */
+#if defined(_MSC_VER) && _MSC_VER>=1800
+#  define check_winnt() (1)
+#else
+#  define check_winnt() (GetVersion() < 0x80000000)
+#endif 
+
 #else /* The non-microsoft world */
 
 #  ifdef OPENSSL_SYS_VMS
diff --git a/deps/openssl/openssl/engines/Makefile.save b/deps/openssl/openssl/engines/Makefile.save
new file mode 100644 (file)
index 0000000..2fa9534
--- /dev/null
@@ -0,0 +1,335 @@
+#
+# OpenSSL/engines/Makefile
+#
+
+DIR=   engines
+TOP=   ..
+CC=    cc
+INCLUDES= -I../include
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+ENGDIRS= ccgost
+
+RECURSIVE_MAKE=        [ -z "$(ENGDIRS)" ] || for i in $(ENGDIRS) ; do \
+                   (cd $$i && echo "making $$target in $(DIR)/$$i..." && \
+                   $(MAKE) -e TOP=../.. DIR=$$i $$target ) || exit 1; \
+               done;
+
+PEX_LIBS=
+EX_LIBS=
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile engines.com install.com engine_vector.mar
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBNAMES= 4758cca aep atalla cswift gmp chil nuron sureware ubsec padlock capi
+
+LIBSRC=        e_4758cca.c \
+       e_aep.c \
+       e_atalla.c \
+       e_cswift.c \
+       e_gmp.c \
+       e_chil.c \
+       e_nuron.c \
+       e_sureware.c \
+       e_ubsec.c \
+       e_padlock.c \
+       e_capi.c
+LIBOBJ= e_4758cca.o \
+       e_aep.o \
+       e_atalla.o \
+       e_cswift.o \
+       e_gmp.o \
+       e_chil.o \
+       e_nuron.o \
+       e_sureware.o \
+       e_ubsec.o \
+       e_padlock.o \
+       e_capi.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= 
+HEADER=        e_4758cca_err.c e_4758cca_err.h \
+       e_aep_err.c e_aep_err.h \
+       e_atalla_err.c e_atalla_err.h \
+       e_cswift_err.c e_cswift_err.h \
+       e_gmp_err.c e_gmp_err.h \
+       e_chil_err.c e_chil_err.h \
+       e_nuron_err.c e_nuron_err.h \
+       e_sureware_err.c e_sureware_err.h \
+       e_ubsec_err.c e_ubsec_err.h \
+       e_capi_err.c e_capi_err.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ..; $(MAKE) DIRS=$(DIR) all)
+
+all:   lib subdirs
+
+lib:   $(LIBOBJ)
+       @if [ -n "$(SHARED_LIBS)" ]; then \
+               set -e; \
+               for l in $(LIBNAMES); do \
+                       $(MAKE) -f ../Makefile.shared -e \
+                               LIBNAME=$$l LIBEXTRAS=e_$$l.o \
+                               LIBDEPS='-L.. -lcrypto $(EX_LIBS)' \
+                               link_o.$(SHLIB_TARGET); \
+               done; \
+       else \
+               $(AR) $(LIB) $(LIBOBJ); \
+               $(RANLIB) $(LIB) || echo Never mind.; \
+       fi; \
+       touch lib
+
+subdirs:
+       echo $(EDIRS)
+       @target=all; $(RECURSIVE_MAKE)
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+       @target=files; $(RECURSIVE_MAKE)
+
+links:
+       @target=links; $(RECURSIVE_MAKE)
+
+# XXXXX This currently only works on systems that use .so as suffix
+# for shared libraries as well as for Cygwin which uses the
+# dlfcn_name_converter and therefore stores the engines with .so suffix, too.
+# XXXXX This was extended to HP-UX dl targets, which use .sl suffix.
+# XXXXX This was extended to mingw targets, which use eay32.dll suffix without lib as prefix.
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @if [ -n "$(SHARED_LIBS)" ]; then \
+               set -e; \
+               $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines; \
+               for l in $(LIBNAMES); do \
+                       ( echo installing $$l; \
+                         pfx=lib; \
+                         if [ "$(PLATFORM)" != "Cygwin" ]; then \
+                               case "$(CFLAGS)" in \
+                               *DSO_BEOS*)     sfx=".so";;     \
+                               *DSO_DLFCN*)    sfx=`expr "$(SHLIB_EXT)" : '.*\(\.[a-z][a-z]*\)' \| ".so"`;;    \
+                               *DSO_DL*)       sfx=".sl";;     \
+                               *DSO_WIN32*)    sfx="eay32.dll"; pfx=;; \
+                               *)              sfx=".bad";;    \
+                               esac; \
+                               cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
+                         else \
+                               sfx=".so"; \
+                               cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
+                         fi; \
+                         chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
+                         mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
+               done; \
+       fi
+       @target=install; $(RECURSIVE_MAKE)
+
+tags:
+       ctags $(SRC)
+
+errors:
+       set -e; for l in $(LIBNAMES); do \
+               $(PERL) ../util/mkerr.pl -conf e_$$l.ec \
+                       -nostatic -staticloader -write e_$$l.c; \
+       done
+       (cd ccgost; $(MAKE) PERL=$(PERL) errors)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+       @target=lint; $(RECURSIVE_MAKE)
+
+depend:
+       @if [ -z "$(THIS)" ]; then \
+           $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; \
+       fi
+       @[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+       @[ -z "$(THIS)" ] || (set -e; target=depend; $(RECURSIVE_MAKE) )
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+       @target=dclean; $(RECURSIVE_MAKE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+       @target=clean; $(RECURSIVE_MAKE)
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+e_4758cca.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_4758cca.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_4758cca.o: ../include/openssl/crypto.h ../include/openssl/dso.h
+e_4758cca.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_4758cca.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_4758cca.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_4758cca.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_4758cca.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_4758cca.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_4758cca.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_4758cca.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+e_4758cca.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+e_4758cca.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+e_4758cca.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+e_4758cca.o: e_4758cca.c e_4758cca_err.c e_4758cca_err.h
+e_4758cca.o: vendor_defns/hw_4758_cca.h
+e_aep.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_aep.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_aep.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+e_aep.o: ../include/openssl/dsa.h ../include/openssl/dso.h
+e_aep.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_aep.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_aep.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_aep.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_aep.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_aep.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_aep.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_aep.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+e_aep.o: ../include/openssl/sha.h ../include/openssl/stack.h
+e_aep.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+e_aep.o: ../include/openssl/x509_vfy.h e_aep.c e_aep_err.c e_aep_err.h
+e_aep.o: vendor_defns/aep.h
+e_atalla.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_atalla.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_atalla.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+e_atalla.o: ../include/openssl/dsa.h ../include/openssl/dso.h
+e_atalla.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_atalla.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_atalla.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_atalla.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_atalla.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_atalla.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_atalla.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_atalla.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+e_atalla.o: ../include/openssl/sha.h ../include/openssl/stack.h
+e_atalla.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+e_atalla.o: ../include/openssl/x509_vfy.h e_atalla.c e_atalla_err.c
+e_atalla.o: e_atalla_err.h vendor_defns/atalla.h
+e_capi.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_capi.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_capi.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+e_capi.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+e_capi.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+e_capi.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_capi.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_capi.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_capi.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_capi.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+e_capi.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+e_capi.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h e_capi.c
+e_chil.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_chil.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_chil.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+e_chil.o: ../include/openssl/dso.h ../include/openssl/e_os2.h
+e_chil.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+e_chil.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+e_chil.o: ../include/openssl/err.h ../include/openssl/evp.h
+e_chil.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+e_chil.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+e_chil.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+e_chil.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+e_chil.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+e_chil.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+e_chil.o: ../include/openssl/sha.h ../include/openssl/stack.h
+e_chil.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
+e_chil.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h e_chil.c
+e_chil.o: e_chil_err.c e_chil_err.h vendor_defns/hwcryptohook.h
+e_cswift.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_cswift.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_cswift.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+e_cswift.o: ../include/openssl/dsa.h ../include/openssl/dso.h
+e_cswift.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_cswift.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_cswift.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_cswift.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_cswift.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_cswift.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_cswift.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_cswift.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+e_cswift.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+e_cswift.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+e_cswift.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h e_cswift.c
+e_cswift.o: e_cswift_err.c e_cswift_err.h vendor_defns/cswift.h
+e_gmp.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_gmp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_gmp.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+e_gmp.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+e_gmp.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+e_gmp.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_gmp.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_gmp.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_gmp.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_gmp.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+e_gmp.o: ../include/openssl/sha.h ../include/openssl/stack.h
+e_gmp.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+e_gmp.o: ../include/openssl/x509_vfy.h e_gmp.c
+e_nuron.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_nuron.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_nuron.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+e_nuron.o: ../include/openssl/dsa.h ../include/openssl/dso.h
+e_nuron.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_nuron.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_nuron.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_nuron.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_nuron.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_nuron.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_nuron.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_nuron.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+e_nuron.o: ../include/openssl/sha.h ../include/openssl/stack.h
+e_nuron.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+e_nuron.o: ../include/openssl/x509_vfy.h e_nuron.c e_nuron_err.c e_nuron_err.h
+e_padlock.o: ../include/openssl/aes.h ../include/openssl/asn1.h
+e_padlock.o: ../include/openssl/bio.h ../include/openssl/buffer.h
+e_padlock.o: ../include/openssl/crypto.h ../include/openssl/dso.h
+e_padlock.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_padlock.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_padlock.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_padlock.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_padlock.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_padlock.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_padlock.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_padlock.o: ../include/openssl/rand.h ../include/openssl/safestack.h
+e_padlock.o: ../include/openssl/sha.h ../include/openssl/stack.h
+e_padlock.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+e_padlock.o: ../include/openssl/x509_vfy.h e_padlock.c
+e_sureware.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_sureware.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_sureware.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+e_sureware.o: ../include/openssl/dsa.h ../include/openssl/dso.h
+e_sureware.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_sureware.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_sureware.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_sureware.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_sureware.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_sureware.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_sureware.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+e_sureware.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+e_sureware.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+e_sureware.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+e_sureware.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+e_sureware.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+e_sureware.o: e_sureware.c e_sureware_err.c e_sureware_err.h
+e_sureware.o: vendor_defns/sureware.h
+e_ubsec.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+e_ubsec.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+e_ubsec.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+e_ubsec.o: ../include/openssl/dsa.h ../include/openssl/dso.h
+e_ubsec.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+e_ubsec.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+e_ubsec.o: ../include/openssl/engine.h ../include/openssl/err.h
+e_ubsec.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+e_ubsec.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+e_ubsec.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+e_ubsec.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+e_ubsec.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+e_ubsec.o: ../include/openssl/sha.h ../include/openssl/stack.h
+e_ubsec.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+e_ubsec.o: ../include/openssl/x509_vfy.h e_ubsec.c e_ubsec_err.c e_ubsec_err.h
+e_ubsec.o: vendor_defns/hw_ubsec.h
diff --git a/deps/openssl/openssl/engines/ccgost/Makefile.save b/deps/openssl/openssl/engines/ccgost/Makefile.save
new file mode 100644 (file)
index 0000000..d661c10
--- /dev/null
@@ -0,0 +1,275 @@
+DIR=ccgost
+TOP=../..
+CC=cc
+INCLUDES= -I../../include
+CFLAG=-g
+MAKEFILE= Makefile
+AR= ar r
+CFLAGS= $(INCLUDES) $(CFLAG)
+LIB=$(TOP)/libcrypto.a
+
+LIBSRC= gost2001.c gost2001_keyx.c gost89.c gost94_keyx.c gost_ameth.c gost_asn1.c gost_crypt.c gost_ctl.c gost_eng.c gosthash.c gost_keywrap.c gost_md.c gost_params.c gost_pmeth.c gost_sign.c
+
+LIBOBJ= e_gost_err.o gost2001_keyx.o gost2001.o gost89.o gost94_keyx.o gost_ameth.o gost_asn1.o gost_crypt.o gost_ctl.o gost_eng.o gosthash.o gost_keywrap.o gost_md.o gost_params.o gost_pmeth.o gost_sign.o
+
+SRC=$(LIBSRC)
+
+LIBNAME=gost
+
+top: 
+       (cd $(TOP); $(MAKE) DIRS=engines EDIRS=$(DIR) sub_all)
+
+all: lib
+
+tags:
+       ctags $(SRC)
+
+errors:
+       $(PERL) ../../util/mkerr.pl -conf gost.ec -nostatic -write $(SRC)
+
+lib: $(LIBOBJ)
+       if [ -n "$(SHARED_LIBS)" ]; then \
+               $(MAKE) -f $(TOP)/Makefile.shared -e \
+                       LIBNAME=$(LIBNAME) \
+                       LIBEXTRAS='$(LIBOBJ)' \
+                       LIBDEPS='-L$(TOP) -lcrypto' \
+                       link_o.$(SHLIB_TARGET); \
+       else \
+               $(AR) $(LIB) $(LIBOBJ); \
+       fi
+       @touch lib
+
+install:
+       [ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       if [ -n "$(SHARED_LIBS)" ]; then \
+               set -e; \
+               echo installing $(LIBNAME); \
+               pfx=lib; \
+               if [ "$(PLATFORM)" != "Cygwin" ]; then \
+                       case "$(CFLAGS)" in \
+                       *DSO_BEOS*) sfx=".so";; \
+                       *DSO_DLFCN*) sfx=`expr "$(SHLIB_EXT)" : '.*\(\.[a-z][a-z]*\)' \| ".so"`;; \
+                       *DSO_DL*) sfx=".sl";; \
+                       *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \
+                       *) sfx=".bad";; \
+                       esac; \
+                       cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
+               else \
+                       sfx=".so"; \
+                       cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
+               fi; \
+               chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
+               mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \
+       fi
+
+links:
+
+tests:
+
+depend:
+       @if [ -z "$(THIS)" ]; then \
+           $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; \
+       else \
+           $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC); \
+       fi
+
+files:
+
+
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff *.so *.sl *.dll
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+gost2001.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost2001.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost2001.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost2001.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost2001.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost2001.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost2001.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+gost2001.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+gost2001.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+gost2001.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost2001.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+gost2001.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+gost2001.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+gost2001.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+gost2001.o: e_gost_err.h gost2001.c gost89.h gost_lcl.h gost_params.h
+gost2001.o: gosthash.h
+gost2001_keyx.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost2001_keyx.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost2001_keyx.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost2001_keyx.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost2001_keyx.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost2001_keyx.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost2001_keyx.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+gost2001_keyx.o: ../../include/openssl/obj_mac.h
+gost2001_keyx.o: ../../include/openssl/objects.h
+gost2001_keyx.o: ../../include/openssl/opensslconf.h
+gost2001_keyx.o: ../../include/openssl/opensslv.h
+gost2001_keyx.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+gost2001_keyx.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+gost2001_keyx.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+gost2001_keyx.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+gost2001_keyx.o: ../../include/openssl/x509_vfy.h e_gost_err.h gost2001_keyx.c
+gost2001_keyx.o: gost2001_keyx.h gost89.h gost_keywrap.h gost_lcl.h gosthash.h
+gost89.o: gost89.c gost89.h
+gost94_keyx.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost94_keyx.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost94_keyx.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost94_keyx.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
+gost94_keyx.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+gost94_keyx.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+gost94_keyx.o: ../../include/openssl/engine.h ../../include/openssl/evp.h
+gost94_keyx.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+gost94_keyx.o: ../../include/openssl/objects.h
+gost94_keyx.o: ../../include/openssl/opensslconf.h
+gost94_keyx.o: ../../include/openssl/opensslv.h
+gost94_keyx.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+gost94_keyx.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+gost94_keyx.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+gost94_keyx.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+gost94_keyx.o: ../../include/openssl/x509_vfy.h e_gost_err.h gost89.h
+gost94_keyx.o: gost94_keyx.c gost_keywrap.h gost_lcl.h gosthash.h
+gost_ameth.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_ameth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_ameth.o: ../../include/openssl/buffer.h ../../include/openssl/cms.h
+gost_ameth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+gost_ameth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+gost_ameth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+gost_ameth.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+gost_ameth.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+gost_ameth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+gost_ameth.o: ../../include/openssl/opensslconf.h
+gost_ameth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost_ameth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+gost_ameth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+gost_ameth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+gost_ameth.o: ../../include/openssl/x509_vfy.h e_gost_err.h gost89.h
+gost_ameth.o: gost_ameth.c gost_lcl.h gost_params.h gosthash.h
+gost_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_asn1.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost_asn1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost_asn1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost_asn1.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_asn1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+gost_asn1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+gost_asn1.o: ../../include/openssl/opensslconf.h
+gost_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+gost_asn1.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+gost_asn1.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+gost_asn1.o: ../../include/openssl/x509_vfy.h gost89.h gost_asn1.c gost_lcl.h
+gost_asn1.o: gosthash.h
+gost_crypt.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_crypt.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_crypt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost_crypt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost_crypt.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost_crypt.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_crypt.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+gost_crypt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+gost_crypt.o: ../../include/openssl/opensslconf.h
+gost_crypt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost_crypt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+gost_crypt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+gost_crypt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+gost_crypt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+gost_crypt.o: e_gost_err.h gost89.h gost_crypt.c gost_lcl.h gosthash.h
+gost_ctl.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_ctl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_ctl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost_ctl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost_ctl.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost_ctl.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_ctl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+gost_ctl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+gost_ctl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+gost_ctl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost_ctl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+gost_ctl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+gost_ctl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+gost_ctl.o: ../../include/openssl/x509_vfy.h gost89.h gost_ctl.c gost_lcl.h
+gost_ctl.o: gosthash.h
+gost_eng.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_eng.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_eng.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost_eng.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost_eng.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost_eng.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_eng.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+gost_eng.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+gost_eng.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+gost_eng.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost_eng.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+gost_eng.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+gost_eng.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+gost_eng.o: ../../include/openssl/x509_vfy.h e_gost_err.h gost89.h gost_eng.c
+gost_eng.o: gost_lcl.h gosthash.h
+gost_keywrap.o: gost89.h gost_keywrap.c gost_keywrap.h
+gost_md.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_md.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_md.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost_md.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost_md.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost_md.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_md.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+gost_md.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+gost_md.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+gost_md.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
+gost_md.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+gost_md.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+gost_md.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+gost_md.o: e_gost_err.h gost89.h gost_lcl.h gost_md.c gosthash.h
+gost_params.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+gost_params.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
+gost_params.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+gost_params.o: ../../include/openssl/opensslconf.h
+gost_params.o: ../../include/openssl/opensslv.h
+gost_params.o: ../../include/openssl/ossl_typ.h
+gost_params.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+gost_params.o: ../../include/openssl/symhacks.h gost_params.c gost_params.h
+gost_pmeth.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_pmeth.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_pmeth.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
+gost_pmeth.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
+gost_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
+gost_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
+gost_pmeth.o: ../../include/openssl/engine.h ../../include/openssl/evp.h
+gost_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+gost_pmeth.o: ../../include/openssl/objects.h
+gost_pmeth.o: ../../include/openssl/opensslconf.h
+gost_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
+gost_pmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+gost_pmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
+gost_pmeth.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
+gost_pmeth.o: e_gost_err.h gost89.h gost_lcl.h gost_params.h gost_pmeth.c
+gost_pmeth.o: gosthash.h
+gost_sign.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
+gost_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
+gost_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
+gost_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
+gost_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
+gost_sign.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+gost_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+gost_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+gost_sign.o: ../../include/openssl/opensslconf.h
+gost_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+gost_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
+gost_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+gost_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+gost_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+gost_sign.o: e_gost_err.h gost89.h gost_lcl.h gost_params.h gost_sign.c
+gost_sign.o: gosthash.h
+gosthash.o: gost89.h gosthash.c gosthash.h
index 2157852..8da2407 100644 (file)
@@ -87,10 +87,6 @@ extern gost_subst_block Gost28147_CryptoProParamSetB;
 extern gost_subst_block Gost28147_CryptoProParamSetC;
 extern gost_subst_block Gost28147_CryptoProParamSetD;
 extern const byte CryptoProKeyMeshingKey[]; 
-#if __LONG_MAX__ > 2147483647L 
 typedef unsigned int word32; 
-#else 
-typedef unsigned long word32; 
-#endif 
 
 #endif
index 8c278aa..91b2ce8 100644 (file)
@@ -180,8 +180,6 @@ int start_hash(gost_hash_ctx *ctx)
  */
 int hash_block(gost_hash_ctx *ctx,const byte *block, size_t length)
        {
-       const byte *curptr=block;
-       const byte *barrier=block+(length-32);/* Last byte we can safely hash*/
        if (ctx->left)
                {
                /*There are some bytes from previous step*/
@@ -196,24 +194,25 @@ int hash_block(gost_hash_ctx *ctx,const byte *block, size_t length)
                        {
                        return 1;
                        }       
-               curptr=block+add_bytes;
+               block+=add_bytes;
+               length-=add_bytes;
                hash_step(ctx->cipher_ctx,ctx->H,ctx->remainder);
                add_blocks(32,ctx->S,ctx->remainder);
                ctx->len+=32;
                ctx->left=0;
                }
-       while (curptr<=barrier)
+       while (length>=32)
                {       
-               hash_step(ctx->cipher_ctx,ctx->H,curptr);
+               hash_step(ctx->cipher_ctx,ctx->H,block);
                        
-               add_blocks(32,ctx->S,curptr);
+               add_blocks(32,ctx->S,block);
                ctx->len+=32;
-               curptr+=32;
+               block+=32;
+               length-=32;
                }       
-       if (curptr!=block+length)
+       if (length)
                {
-               ctx->left=block+length-curptr;
-               memcpy(ctx->remainder,curptr,ctx->left);
+               memcpy(ctx->remainder,block,ctx->left=length);
                }       
        return 1;       
        }
diff --git a/deps/openssl/openssl/include/openssl/md2.h b/deps/openssl/openssl/include/openssl/md2.h
deleted file mode 100644 (file)
index 4c3398c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../crypto/md2/md2.h"
diff --git a/deps/openssl/openssl/include/openssl/store.h b/deps/openssl/openssl/include/openssl/store.h
deleted file mode 100644 (file)
index 84dc39f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../crypto/store/store.h"
index ff8b19c..8768dc6 100755 (executable)
@@ -1,6 +1,6 @@
 perl util\mkfiles.pl >MINFO
 
-cmd /c "nasm -f win64 -v" >NUL: 2>&1
+cmd /c "nasm -f win64 -v" >NUL 2>&1
 if %errorlevel% neq 0 goto ml64
 
 perl ms\uplink-x86_64.pl nasm > ms\uptable.asm
index 8ad98b3..44147ce 100644 (file)
@@ -1,8 +1,5 @@
 %define _unpackaged_files_terminate_build 0
-%define libmaj 1
-%define libmin 0
-%define librel 1
-%define librev e
+
 Release: 1
 
 %define openssldir /var/ssl
@@ -10,9 +7,9 @@ Release: 1
 Summary: Secure Sockets Layer and cryptography libraries and tools
 Name: openssl
 #Version: %{libmaj}.%{libmin}.%{librel}
-Version: %{libmaj}.%{libmin}.%{librel}%{librev}
+Version: 1.0.1g
 Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz
-Copyright: Freely distributable
+License: OpenSSL
 Group: System Environment/Libraries
 Provides: SSL
 URL: http://www.openssl.org/
diff --git a/deps/openssl/openssl/ssl/Makefile.save b/deps/openssl/openssl/ssl/Makefile.save
new file mode 100644 (file)
index 0000000..debe074
--- /dev/null
@@ -0,0 +1,1061 @@
+#
+# OpenSSL/ssl/Makefile
+#
+
+DIR=   ssl
+TOP=   ..
+CC=    cc
+INCLUDES= -I../crypto -I$(TOP) -I../include $(KRB5_INCLUDES)
+CFLAG=-g
+MAKEFILE=      Makefile
+AR=            ar r
+# KRB5 stuff
+KRB5_INCLUDES=
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile README ssl-lib.com install.com
+TEST=ssltest.c
+APPS=
+
+LIB=$(TOP)/libssl.a
+SHARED_LIB= libssl$(SHLIB_EXT)
+LIBSRC=        \
+       s2_meth.c   s2_srvr.c s2_clnt.c  s2_lib.c  s2_enc.c s2_pkt.c \
+       s3_meth.c   s3_srvr.c s3_clnt.c  s3_lib.c  s3_enc.c s3_pkt.c s3_both.c s3_cbc.c \
+       s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c          s23_pkt.c \
+       t1_meth.c   t1_srvr.c t1_clnt.c  t1_lib.c  t1_enc.c \
+       d1_meth.c   d1_srvr.c d1_clnt.c  d1_lib.c  d1_pkt.c \
+       d1_both.c d1_enc.c d1_srtp.c \
+       ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c \
+       ssl_ciph.c ssl_stat.c ssl_rsa.c \
+       ssl_asn1.c ssl_txt.c ssl_algs.c \
+       bio_ssl.c ssl_err.c kssl.c tls_srp.c t1_reneg.c
+LIBOBJ= \
+       s2_meth.o  s2_srvr.o  s2_clnt.o  s2_lib.o  s2_enc.o s2_pkt.o \
+       s3_meth.o  s3_srvr.o  s3_clnt.o  s3_lib.o  s3_enc.o s3_pkt.o s3_both.o s3_cbc.o \
+       s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o          s23_pkt.o \
+       t1_meth.o   t1_srvr.o t1_clnt.o  t1_lib.o  t1_enc.o \
+       d1_meth.o   d1_srvr.o d1_clnt.o  d1_lib.o  d1_pkt.o \
+       d1_both.o d1_enc.o d1_srtp.o\
+       ssl_lib.o ssl_err2.o ssl_cert.o ssl_sess.o \
+       ssl_ciph.o ssl_stat.o ssl_rsa.o \
+       ssl_asn1.o ssl_txt.o ssl_algs.o \
+       bio_ssl.o ssl_err.o kssl.o tls_srp.o t1_reneg.o
+
+SRC= $(LIBSRC)
+
+EXHEADER= ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h kssl.h srtp.h
+HEADER=        $(EXHEADER) ssl_locl.h kssl_lcl.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ..; $(MAKE) DIRS=$(DIR) all)
+
+all:   shared
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+shared: lib
+       if [ -n "$(SHARED_LIBS)" ]; then \
+               (cd ..; $(MAKE) $(SHARED_LIB)); \
+       fi
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+       @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
+
+install:
+       @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
+       @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @if [ -z "$(THIS)" ]; then \
+           $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; \
+       else \
+           $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC); \
+       fi
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+bio_ssl.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+bio_ssl.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+bio_ssl.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+bio_ssl.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+bio_ssl.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+bio_ssl.o: ../include/openssl/err.h ../include/openssl/evp.h
+bio_ssl.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+bio_ssl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+bio_ssl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+bio_ssl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+bio_ssl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+bio_ssl.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+bio_ssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+bio_ssl.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+bio_ssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+bio_ssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+bio_ssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+bio_ssl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h bio_ssl.c
+d1_both.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_both.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+d1_both.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+d1_both.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_both.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_both.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_both.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_both.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_both.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+d1_both.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+d1_both.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+d1_both.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+d1_both.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+d1_both.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+d1_both.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+d1_both.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+d1_both.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+d1_both.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+d1_both.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+d1_both.o: ../include/openssl/x509_vfy.h d1_both.c ssl_locl.h
+d1_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+d1_clnt.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+d1_clnt.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+d1_clnt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_clnt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_clnt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_clnt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_clnt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_clnt.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+d1_clnt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+d1_clnt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+d1_clnt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+d1_clnt.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+d1_clnt.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+d1_clnt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+d1_clnt.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+d1_clnt.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+d1_clnt.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+d1_clnt.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+d1_clnt.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h d1_clnt.c
+d1_clnt.o: kssl_lcl.h ssl_locl.h
+d1_enc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+d1_enc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+d1_enc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_enc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_enc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_enc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_enc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_enc.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+d1_enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+d1_enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+d1_enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+d1_enc.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+d1_enc.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+d1_enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+d1_enc.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+d1_enc.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+d1_enc.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+d1_enc.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+d1_enc.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h d1_enc.c
+d1_enc.o: ssl_locl.h
+d1_lib.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+d1_lib.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+d1_lib.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_lib.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_lib.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_lib.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_lib.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_lib.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+d1_lib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+d1_lib.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+d1_lib.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+d1_lib.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+d1_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+d1_lib.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+d1_lib.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+d1_lib.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+d1_lib.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+d1_lib.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h d1_lib.c
+d1_lib.o: ssl_locl.h
+d1_meth.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_meth.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+d1_meth.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+d1_meth.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_meth.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_meth.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_meth.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_meth.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_meth.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+d1_meth.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+d1_meth.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+d1_meth.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+d1_meth.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+d1_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+d1_meth.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+d1_meth.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+d1_meth.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+d1_meth.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+d1_meth.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h d1_meth.c
+d1_meth.o: ssl_locl.h
+d1_pkt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_pkt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+d1_pkt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+d1_pkt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_pkt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_pkt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_pkt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_pkt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_pkt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+d1_pkt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+d1_pkt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+d1_pkt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+d1_pkt.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+d1_pkt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+d1_pkt.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+d1_pkt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+d1_pkt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+d1_pkt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+d1_pkt.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+d1_pkt.o: ../include/openssl/x509_vfy.h d1_pkt.c ssl_locl.h
+d1_srtp.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_srtp.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+d1_srtp.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+d1_srtp.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_srtp.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_srtp.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_srtp.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_srtp.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_srtp.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+d1_srtp.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+d1_srtp.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+d1_srtp.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+d1_srtp.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+d1_srtp.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+d1_srtp.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+d1_srtp.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+d1_srtp.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+d1_srtp.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+d1_srtp.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h d1_srtp.c
+d1_srtp.o: srtp.h ssl_locl.h
+d1_srvr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+d1_srvr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+d1_srvr.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+d1_srvr.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+d1_srvr.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+d1_srvr.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+d1_srvr.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+d1_srvr.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+d1_srvr.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+d1_srvr.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+d1_srvr.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+d1_srvr.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+d1_srvr.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+d1_srvr.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+d1_srvr.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+d1_srvr.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+d1_srvr.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+d1_srvr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+d1_srvr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+d1_srvr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+d1_srvr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h d1_srvr.c
+d1_srvr.o: ssl_locl.h
+kssl.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+kssl.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+kssl.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+kssl.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+kssl.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+kssl.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+kssl.o: ../include/openssl/krb5_asn.h ../include/openssl/kssl.h
+kssl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+kssl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+kssl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+kssl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+kssl.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+kssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+kssl.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+kssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+kssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+kssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+kssl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h kssl.c
+kssl.o: kssl_lcl.h
+s23_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s23_clnt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s23_clnt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s23_clnt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s23_clnt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s23_clnt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s23_clnt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s23_clnt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s23_clnt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s23_clnt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s23_clnt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s23_clnt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s23_clnt.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s23_clnt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s23_clnt.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s23_clnt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s23_clnt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s23_clnt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s23_clnt.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s23_clnt.o: ../include/openssl/x509_vfy.h s23_clnt.c ssl_locl.h
+s23_lib.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s23_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s23_lib.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s23_lib.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s23_lib.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s23_lib.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s23_lib.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s23_lib.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s23_lib.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s23_lib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s23_lib.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s23_lib.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s23_lib.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s23_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s23_lib.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s23_lib.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s23_lib.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s23_lib.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s23_lib.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s23_lib.c
+s23_lib.o: ssl_locl.h
+s23_meth.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s23_meth.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s23_meth.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s23_meth.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s23_meth.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s23_meth.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s23_meth.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s23_meth.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s23_meth.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s23_meth.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s23_meth.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s23_meth.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s23_meth.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s23_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s23_meth.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s23_meth.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s23_meth.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s23_meth.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s23_meth.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s23_meth.c
+s23_meth.o: ssl_locl.h
+s23_pkt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s23_pkt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s23_pkt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s23_pkt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s23_pkt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s23_pkt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s23_pkt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s23_pkt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s23_pkt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s23_pkt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s23_pkt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s23_pkt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s23_pkt.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s23_pkt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s23_pkt.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s23_pkt.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s23_pkt.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s23_pkt.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s23_pkt.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s23_pkt.c
+s23_pkt.o: ssl_locl.h
+s23_srvr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s23_srvr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s23_srvr.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s23_srvr.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s23_srvr.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s23_srvr.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s23_srvr.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s23_srvr.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s23_srvr.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s23_srvr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s23_srvr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s23_srvr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s23_srvr.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s23_srvr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s23_srvr.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s23_srvr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s23_srvr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s23_srvr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s23_srvr.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s23_srvr.o: ../include/openssl/x509_vfy.h s23_srvr.c ssl_locl.h
+s2_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s2_clnt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s2_clnt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s2_clnt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s2_clnt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s2_clnt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s2_clnt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s2_clnt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s2_clnt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s2_clnt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s2_clnt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s2_clnt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s2_clnt.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s2_clnt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s2_clnt.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s2_clnt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s2_clnt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s2_clnt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s2_clnt.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s2_clnt.o: ../include/openssl/x509_vfy.h s2_clnt.c ssl_locl.h
+s2_enc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s2_enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s2_enc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s2_enc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s2_enc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s2_enc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s2_enc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s2_enc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s2_enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s2_enc.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s2_enc.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s2_enc.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s2_enc.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s2_enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s2_enc.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s2_enc.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s2_enc.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s2_enc.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s2_enc.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s2_enc.c
+s2_enc.o: ssl_locl.h
+s2_lib.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s2_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s2_lib.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s2_lib.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s2_lib.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s2_lib.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s2_lib.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s2_lib.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s2_lib.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+s2_lib.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+s2_lib.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+s2_lib.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+s2_lib.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+s2_lib.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s2_lib.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s2_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s2_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s2_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s2_lib.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s2_lib.o: ../include/openssl/x509_vfy.h s2_lib.c ssl_locl.h
+s2_meth.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s2_meth.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s2_meth.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s2_meth.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s2_meth.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s2_meth.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s2_meth.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s2_meth.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s2_meth.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s2_meth.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s2_meth.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s2_meth.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s2_meth.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s2_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s2_meth.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s2_meth.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s2_meth.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s2_meth.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s2_meth.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s2_meth.c
+s2_meth.o: ssl_locl.h
+s2_pkt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s2_pkt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s2_pkt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s2_pkt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s2_pkt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s2_pkt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s2_pkt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s2_pkt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s2_pkt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s2_pkt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s2_pkt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s2_pkt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s2_pkt.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s2_pkt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s2_pkt.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s2_pkt.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s2_pkt.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s2_pkt.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s2_pkt.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s2_pkt.c
+s2_pkt.o: ssl_locl.h
+s2_srvr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s2_srvr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s2_srvr.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s2_srvr.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s2_srvr.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s2_srvr.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s2_srvr.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s2_srvr.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s2_srvr.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s2_srvr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s2_srvr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s2_srvr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s2_srvr.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s2_srvr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s2_srvr.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s2_srvr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s2_srvr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s2_srvr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s2_srvr.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s2_srvr.o: ../include/openssl/x509_vfy.h s2_srvr.c ssl_locl.h
+s3_both.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s3_both.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s3_both.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s3_both.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s3_both.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s3_both.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_both.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s3_both.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s3_both.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s3_both.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s3_both.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s3_both.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s3_both.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s3_both.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s3_both.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s3_both.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s3_both.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s3_both.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s3_both.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s3_both.o: ../include/openssl/x509_vfy.h s3_both.c ssl_locl.h
+s3_cbc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s3_cbc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s3_cbc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s3_cbc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s3_cbc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s3_cbc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_cbc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s3_cbc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s3_cbc.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+s3_cbc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+s3_cbc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+s3_cbc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+s3_cbc.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+s3_cbc.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s3_cbc.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s3_cbc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s3_cbc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s3_cbc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s3_cbc.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s3_cbc.o: ../include/openssl/x509_vfy.h s3_cbc.c ssl_locl.h
+s3_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s3_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+s3_clnt.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+s3_clnt.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+s3_clnt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s3_clnt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s3_clnt.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+s3_clnt.o: ../include/openssl/err.h ../include/openssl/evp.h
+s3_clnt.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+s3_clnt.o: ../include/openssl/lhash.h ../include/openssl/md5.h
+s3_clnt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s3_clnt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s3_clnt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s3_clnt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s3_clnt.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s3_clnt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s3_clnt.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s3_clnt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s3_clnt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s3_clnt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s3_clnt.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s3_clnt.o: ../include/openssl/x509_vfy.h kssl_lcl.h s3_clnt.c ssl_locl.h
+s3_enc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s3_enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s3_enc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s3_enc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s3_enc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s3_enc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_enc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s3_enc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s3_enc.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+s3_enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+s3_enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+s3_enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+s3_enc.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+s3_enc.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s3_enc.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s3_enc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s3_enc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s3_enc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s3_enc.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s3_enc.o: ../include/openssl/x509_vfy.h s3_enc.c ssl_locl.h
+s3_lib.o: ../crypto/ec/ec_lcl.h ../e_os.h ../include/openssl/asn1.h
+s3_lib.o: ../include/openssl/bio.h ../include/openssl/bn.h
+s3_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s3_lib.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+s3_lib.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
+s3_lib.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+s3_lib.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+s3_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
+s3_lib.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+s3_lib.o: ../include/openssl/lhash.h ../include/openssl/md5.h
+s3_lib.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s3_lib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s3_lib.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s3_lib.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s3_lib.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s3_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s3_lib.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s3_lib.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s3_lib.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s3_lib.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s3_lib.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h kssl_lcl.h
+s3_lib.o: s3_lib.c ssl_locl.h
+s3_meth.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s3_meth.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s3_meth.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s3_meth.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s3_meth.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s3_meth.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_meth.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s3_meth.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s3_meth.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s3_meth.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s3_meth.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s3_meth.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s3_meth.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+s3_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+s3_meth.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+s3_meth.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+s3_meth.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+s3_meth.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+s3_meth.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s3_meth.c
+s3_meth.o: ssl_locl.h
+s3_pkt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s3_pkt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+s3_pkt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+s3_pkt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s3_pkt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s3_pkt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_pkt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s3_pkt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+s3_pkt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s3_pkt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s3_pkt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s3_pkt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s3_pkt.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s3_pkt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s3_pkt.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s3_pkt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s3_pkt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s3_pkt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s3_pkt.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s3_pkt.o: ../include/openssl/x509_vfy.h s3_pkt.c ssl_locl.h
+s3_srvr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+s3_srvr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+s3_srvr.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+s3_srvr.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+s3_srvr.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+s3_srvr.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+s3_srvr.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+s3_srvr.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+s3_srvr.o: ../include/openssl/krb5_asn.h ../include/openssl/kssl.h
+s3_srvr.o: ../include/openssl/lhash.h ../include/openssl/md5.h
+s3_srvr.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+s3_srvr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+s3_srvr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+s3_srvr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+s3_srvr.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+s3_srvr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+s3_srvr.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+s3_srvr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+s3_srvr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+s3_srvr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+s3_srvr.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+s3_srvr.o: ../include/openssl/x509_vfy.h kssl_lcl.h s3_srvr.c ssl_locl.h
+ssl_algs.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_algs.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_algs.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+ssl_algs.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_algs.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_algs.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_algs.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+ssl_algs.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ssl_algs.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ssl_algs.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssl_algs.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssl_algs.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssl_algs.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+ssl_algs.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_algs.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_algs.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_algs.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_algs.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_algs.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_algs.c
+ssl_algs.o: ssl_locl.h
+ssl_asn1.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/asn1_mac.h
+ssl_asn1.o: ../include/openssl/bio.h ../include/openssl/buffer.h
+ssl_asn1.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+ssl_asn1.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
+ssl_asn1.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ssl_asn1.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ssl_asn1.o: ../include/openssl/err.h ../include/openssl/evp.h
+ssl_asn1.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+ssl_asn1.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ssl_asn1.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ssl_asn1.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ssl_asn1.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ssl_asn1.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+ssl_asn1.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+ssl_asn1.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+ssl_asn1.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+ssl_asn1.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+ssl_asn1.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ssl_asn1.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+ssl_asn1.o: ../include/openssl/x509_vfy.h ssl_asn1.c ssl_locl.h
+ssl_cert.o: ../crypto/o_dir.h ../e_os.h ../include/openssl/asn1.h
+ssl_cert.o: ../include/openssl/bio.h ../include/openssl/bn.h
+ssl_cert.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_cert.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ssl_cert.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ssl_cert.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_cert.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_cert.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_cert.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+ssl_cert.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ssl_cert.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ssl_cert.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssl_cert.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssl_cert.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssl_cert.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+ssl_cert.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_cert.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_cert.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_cert.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_cert.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_cert.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+ssl_cert.o: ../include/openssl/x509v3.h ssl_cert.c ssl_locl.h
+ssl_ciph.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_ciph.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_ciph.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+ssl_ciph.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_ciph.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_ciph.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssl_ciph.o: ../include/openssl/err.h ../include/openssl/evp.h
+ssl_ciph.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+ssl_ciph.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ssl_ciph.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ssl_ciph.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ssl_ciph.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ssl_ciph.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+ssl_ciph.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+ssl_ciph.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+ssl_ciph.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+ssl_ciph.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+ssl_ciph.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ssl_ciph.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+ssl_ciph.o: ../include/openssl/x509_vfy.h ssl_ciph.c ssl_locl.h
+ssl_err.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_err.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_err.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ssl_err.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ssl_err.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ssl_err.o: ../include/openssl/err.h ../include/openssl/evp.h
+ssl_err.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+ssl_err.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ssl_err.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ssl_err.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ssl_err.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ssl_err.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+ssl_err.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_err.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_err.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_err.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_err.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_err.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_err.c
+ssl_err2.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_err2.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_err2.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ssl_err2.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ssl_err2.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ssl_err2.o: ../include/openssl/err.h ../include/openssl/evp.h
+ssl_err2.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+ssl_err2.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ssl_err2.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ssl_err2.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ssl_err2.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ssl_err2.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+ssl_err2.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_err2.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_err2.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_err2.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_err2.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_err2.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_err2.c
+ssl_lib.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_lib.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ssl_lib.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ssl_lib.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_lib.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_lib.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssl_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
+ssl_lib.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+ssl_lib.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ssl_lib.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+ssl_lib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssl_lib.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssl_lib.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssl_lib.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+ssl_lib.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+ssl_lib.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+ssl_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+ssl_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+ssl_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ssl_lib.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+ssl_lib.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h kssl_lcl.h
+ssl_lib.o: ssl_lib.c ssl_locl.h
+ssl_rsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_rsa.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_rsa.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+ssl_rsa.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_rsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_rsa.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_rsa.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+ssl_rsa.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ssl_rsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ssl_rsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssl_rsa.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssl_rsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssl_rsa.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+ssl_rsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_rsa.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_rsa.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_rsa.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_rsa.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_rsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
+ssl_rsa.o: ssl_rsa.c
+ssl_sess.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_sess.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_sess.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+ssl_sess.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_sess.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_sess.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssl_sess.o: ../include/openssl/err.h ../include/openssl/evp.h
+ssl_sess.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+ssl_sess.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ssl_sess.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ssl_sess.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ssl_sess.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+ssl_sess.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+ssl_sess.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+ssl_sess.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_sess.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_sess.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_sess.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_sess.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_sess.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
+ssl_sess.o: ssl_sess.c
+ssl_stat.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_stat.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_stat.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+ssl_stat.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_stat.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_stat.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_stat.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+ssl_stat.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ssl_stat.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ssl_stat.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssl_stat.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssl_stat.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssl_stat.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+ssl_stat.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_stat.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_stat.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_stat.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_stat.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_stat.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
+ssl_stat.o: ssl_stat.c
+ssl_txt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssl_txt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_txt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+ssl_txt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+ssl_txt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssl_txt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+ssl_txt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+ssl_txt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ssl_txt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ssl_txt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssl_txt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssl_txt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssl_txt.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+ssl_txt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssl_txt.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssl_txt.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_txt.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_txt.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_txt.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
+ssl_txt.o: ssl_txt.c
+t1_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+t1_clnt.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+t1_clnt.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+t1_clnt.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+t1_clnt.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+t1_clnt.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_clnt.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+t1_clnt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+t1_clnt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+t1_clnt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+t1_clnt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+t1_clnt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+t1_clnt.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+t1_clnt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+t1_clnt.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+t1_clnt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+t1_clnt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+t1_clnt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+t1_clnt.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+t1_clnt.o: ../include/openssl/x509_vfy.h ssl_locl.h t1_clnt.c
+t1_enc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+t1_enc.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+t1_enc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+t1_enc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+t1_enc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+t1_enc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_enc.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+t1_enc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+t1_enc.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+t1_enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+t1_enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+t1_enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+t1_enc.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+t1_enc.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+t1_enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+t1_enc.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+t1_enc.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+t1_enc.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+t1_enc.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+t1_enc.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
+t1_enc.o: t1_enc.c
+t1_lib.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+t1_lib.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+t1_lib.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+t1_lib.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
+t1_lib.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+t1_lib.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+t1_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
+t1_lib.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+t1_lib.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+t1_lib.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+t1_lib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+t1_lib.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+t1_lib.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+t1_lib.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+t1_lib.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+t1_lib.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+t1_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+t1_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+t1_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+t1_lib.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+t1_lib.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h ssl_locl.h
+t1_lib.o: t1_lib.c
+t1_meth.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+t1_meth.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+t1_meth.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+t1_meth.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+t1_meth.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+t1_meth.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_meth.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+t1_meth.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+t1_meth.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+t1_meth.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+t1_meth.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+t1_meth.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+t1_meth.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+t1_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+t1_meth.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+t1_meth.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+t1_meth.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+t1_meth.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+t1_meth.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
+t1_meth.o: t1_meth.c
+t1_reneg.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+t1_reneg.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+t1_reneg.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+t1_reneg.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+t1_reneg.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+t1_reneg.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_reneg.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+t1_reneg.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+t1_reneg.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+t1_reneg.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+t1_reneg.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+t1_reneg.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+t1_reneg.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
+t1_reneg.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+t1_reneg.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+t1_reneg.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+t1_reneg.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+t1_reneg.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+t1_reneg.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
+t1_reneg.o: t1_reneg.c
+t1_srvr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+t1_srvr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+t1_srvr.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
+t1_srvr.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+t1_srvr.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+t1_srvr.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+t1_srvr.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+t1_srvr.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+t1_srvr.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+t1_srvr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+t1_srvr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+t1_srvr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+t1_srvr.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+t1_srvr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+t1_srvr.o: ../include/openssl/sha.h ../include/openssl/srtp.h
+t1_srvr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+t1_srvr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+t1_srvr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+t1_srvr.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+t1_srvr.o: ../include/openssl/x509_vfy.h ssl_locl.h t1_srvr.c
+tls_srp.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+tls_srp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+tls_srp.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+tls_srp.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
+tls_srp.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+tls_srp.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+tls_srp.o: ../include/openssl/err.h ../include/openssl/evp.h
+tls_srp.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
+tls_srp.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+tls_srp.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+tls_srp.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+tls_srp.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+tls_srp.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
+tls_srp.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+tls_srp.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+tls_srp.o: ../include/openssl/srp.h ../include/openssl/srtp.h
+tls_srp.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+tls_srp.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+tls_srp.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+tls_srp.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+tls_srp.o: ../include/openssl/x509_vfy.h ssl_locl.h tls_srp.c
index de8bab8..2e8cf68 100644 (file)
@@ -214,6 +214,12 @@ dtls1_hm_fragment_new(unsigned long frag_len, int reassembly)
 static void
 dtls1_hm_fragment_free(hm_fragment *frag)
        {
+
+       if (frag->msg_header.is_ccs)
+               {
+               EVP_CIPHER_CTX_free(frag->msg_header.saved_retransmit_state.enc_write_ctx);
+               EVP_MD_CTX_destroy(frag->msg_header.saved_retransmit_state.write_hash);
+               }
        if (frag->fragment) OPENSSL_free(frag->fragment);
        if (frag->reassembly) OPENSSL_free(frag->reassembly);
        OPENSSL_free(frag);
@@ -313,9 +319,10 @@ int dtls1_do_write(SSL *s, int type)
                                s->init_off -= DTLS1_HM_HEADER_LENGTH;
                                s->init_num += DTLS1_HM_HEADER_LENGTH;
 
-                               /* write atleast DTLS1_HM_HEADER_LENGTH bytes */
-                               if ( len <= DTLS1_HM_HEADER_LENGTH)  
-                                       len += DTLS1_HM_HEADER_LENGTH;
+                               if ( s->init_num > curr_mtu)
+                                       len = curr_mtu;
+                               else
+                                       len = s->init_num;
                                }
 
                        dtls1_fix_message_header(s, frag_off, 
@@ -1452,26 +1459,36 @@ dtls1_process_heartbeat(SSL *s)
        unsigned int payload;
        unsigned int padding = 16; /* Use minimum padding */
 
-       /* Read type and payload length first */
-       hbtype = *p++;
-       n2s(p, payload);
-       pl = p;
-
        if (s->msg_callback)
                s->msg_callback(0, s->version, TLS1_RT_HEARTBEAT,
                        &s->s3->rrec.data[0], s->s3->rrec.length,
                        s, s->msg_callback_arg);
 
+       /* Read type and payload length first */
+       if (1 + 2 + 16 > s->s3->rrec.length)
+               return 0; /* silently discard */
+       hbtype = *p++;
+       n2s(p, payload);
+       if (1 + 2 + payload + 16 > s->s3->rrec.length)
+               return 0; /* silently discard per RFC 6520 sec. 4 */
+       pl = p;
+
        if (hbtype == TLS1_HB_REQUEST)
                {
                unsigned char *buffer, *bp;
+               unsigned int write_length = 1 /* heartbeat type */ +
+                                           2 /* heartbeat length */ +
+                                           payload + padding;
                int r;
 
+               if (write_length > SSL3_RT_MAX_PLAIN_LENGTH)
+                       return 0;
+
                /* Allocate memory for the response, size is 1 byte
                 * message type, plus 2 bytes payload length, plus
                 * payload, plus padding
                 */
-               buffer = OPENSSL_malloc(1 + 2 + payload + padding);
+               buffer = OPENSSL_malloc(write_length);
                bp = buffer;
 
                /* Enter response type, length and copy payload */
@@ -1482,11 +1499,11 @@ dtls1_process_heartbeat(SSL *s)
                /* Random padding */
                RAND_pseudo_bytes(bp, padding);
 
-               r = dtls1_write_bytes(s, TLS1_RT_HEARTBEAT, buffer, 3 + payload + padding);
+               r = dtls1_write_bytes(s, TLS1_RT_HEARTBEAT, buffer, write_length);
 
                if (r >= 0 && s->msg_callback)
                        s->msg_callback(1, s->version, TLS1_RT_HEARTBEAT,
-                               buffer, 3 + payload + padding,
+                               buffer, write_length,
                                s, s->msg_callback_arg);
 
                OPENSSL_free(buffer);
index a6ed09c..48e5e06 100644 (file)
@@ -538,13 +538,6 @@ int dtls1_connect(SSL *s)
                                SSL3_ST_CW_CHANGE_A,SSL3_ST_CW_CHANGE_B);
                        if (ret <= 0) goto end;
 
-#ifndef OPENSSL_NO_SCTP
-                       /* Change to new shared key of SCTP-Auth,
-                        * will be ignored if no SCTP used.
-                        */
-                       BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL);
-#endif
-
                        s->state=SSL3_ST_CW_FINISHED_A;
                        s->init_num=0;
 
@@ -571,6 +564,16 @@ int dtls1_connect(SSL *s)
                                goto end;
                                }
                        
+#ifndef OPENSSL_NO_SCTP
+                               if (s->hit)
+                                       {
+                                       /* Change to new shared key of SCTP-Auth,
+                                        * will be ignored if no SCTP used.
+                                        */
+                                       BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL);
+                                       }
+#endif
+
                        dtls1_reset_seq_numbers(s, SSL3_CC_WRITE);
                        break;
 
@@ -613,6 +616,13 @@ int dtls1_connect(SSL *s)
                                }
                        else
                                {
+#ifndef OPENSSL_NO_SCTP
+                               /* Change to new shared key of SCTP-Auth,
+                                * will be ignored if no SCTP used.
+                                */
+                               BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL);
+#endif
+
 #ifndef OPENSSL_NO_TLSEXT
                                /* Allow NewSessionTicket if ticket expected */
                                if (s->tlsext_ticket_expected)
@@ -773,7 +783,7 @@ int dtls1_client_hello(SSL *s)
        unsigned char *buf;
        unsigned char *p,*d;
        unsigned int i,j;
-       unsigned long Time,l;
+       unsigned long l;
        SSL_COMP *comp;
 
        buf=(unsigned char *)s->init_buf->data;
@@ -798,13 +808,11 @@ int dtls1_client_hello(SSL *s)
 
                /* if client_random is initialized, reuse it, we are
                 * required to use same upon reply to HelloVerify */
-               for (i=0;p[i]=='\0' && i<sizeof(s->s3->client_random);i++) ;
+               for (i=0;p[i]=='\0' && i<sizeof(s->s3->client_random);i++)
+                       ;
                if (i==sizeof(s->s3->client_random))
-                       {
-                       Time=(unsigned long)time(NULL); /* Time */
-                       l2n(Time,p);
-                       RAND_pseudo_bytes(p,sizeof(s->s3->client_random)-4);
-                       }
+                       ssl_fill_hello_random(s, 0, p,
+                                             sizeof(s->s3->client_random));
 
                /* Do the message type and length last */
                d=p= &(buf[DTLS1_HM_HEADER_LENGTH]);
index f61f718..106939f 100644 (file)
@@ -196,6 +196,7 @@ void dtls1_free(SSL *s)
        pqueue_free(s->d1->buffered_app_data.q);
 
        OPENSSL_free(s->d1);
+       s->d1 = NULL;
        }
 
 void dtls1_clear(SSL *s)
index 0bf87be..8186462 100644 (file)
@@ -847,6 +847,12 @@ start:
                        }
                }
 
+       if (s->d1->listen && rr->type != SSL3_RT_HANDSHAKE)
+               {
+               rr->length = 0;
+               goto start;
+               }
+
        /* we now have a packet which can be read and processed */
 
        if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec,
@@ -1051,6 +1057,7 @@ start:
                        !(s->s3->flags & SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS) &&
                        !s->s3->renegotiate)
                        {
+                       s->d1->handshake_read_seq++;
                        s->new_session = 1;
                        ssl3_renegotiate(s);
                        if (ssl3_renegotiate_check(s))
index 29421da..9975e20 100644 (file)
@@ -276,10 +276,11 @@ int dtls1_accept(SSL *s)
                case SSL3_ST_SW_HELLO_REQ_B:
 
                        s->shutdown=0;
+                       dtls1_clear_record_buffer(s);
                        dtls1_start_timer(s);
                        ret=dtls1_send_hello_request(s);
                        if (ret <= 0) goto end;
-                       s->s3->tmp.next_state=SSL3_ST_SW_HELLO_REQ_C;
+                       s->s3->tmp.next_state=SSL3_ST_SR_CLNT_HELLO_A;
                        s->state=SSL3_ST_SW_FLUSH;
                        s->init_num=0;
 
@@ -721,10 +722,13 @@ int dtls1_accept(SSL *s)
                        if (ret <= 0) goto end;
 
 #ifndef OPENSSL_NO_SCTP
-                       /* Change to new shared key of SCTP-Auth,
-                        * will be ignored if no SCTP used.
-                        */
-                       BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL);
+                       if (!s->hit)
+                               {
+                               /* Change to new shared key of SCTP-Auth,
+                                * will be ignored if no SCTP used.
+                                */
+                               BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL);
+                               }
 #endif
 
                        s->state=SSL3_ST_SW_FINISHED_A;
@@ -749,7 +753,16 @@ int dtls1_accept(SSL *s)
                        if (ret <= 0) goto end;
                        s->state=SSL3_ST_SW_FLUSH;
                        if (s->hit)
+                               {
                                s->s3->tmp.next_state=SSL3_ST_SR_FINISHED_A;
+
+#ifndef OPENSSL_NO_SCTP
+                               /* Change to new shared key of SCTP-Auth,
+                                * will be ignored if no SCTP used.
+                                */
+                               BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL);
+#endif
+                               }
                        else
                                {
                                s->s3->tmp.next_state=SSL_ST_OK;
@@ -912,15 +925,13 @@ int dtls1_send_server_hello(SSL *s)
        unsigned char *p,*d;
        int i;
        unsigned int sl;
-       unsigned long l,Time;
+       unsigned long l;
 
        if (s->state == SSL3_ST_SW_SRVR_HELLO_A)
                {
                buf=(unsigned char *)s->init_buf->data;
                p=s->s3->server_random;
-               Time=(unsigned long)time(NULL);                 /* Time */
-               l2n(Time,p);
-               RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4);
+               ssl_fill_hello_random(s, 1, p, SSL3_RANDOM_SIZE);
                /* Do the message type and length last */
                d=p= &(buf[DTLS1_HM_HEADER_LENGTH]);
 
index 8242fd5..e4df843 100644 (file)
 #include <stdio.h>
 #include <ctype.h>
 #include <krb5.h>
+#ifdef OPENSSL_SYS_WIN32
+/* These can sometimes get redefined indirectly by krb5 header files
+ * after they get undefed in ossl_typ.h
+ */
+#undef X509_NAME
+#undef X509_EXTENSIONS
+#undef OCSP_REQUEST
+#undef OCSP_RESPONSE
+#endif
 
 #ifdef  __cplusplus
 extern "C" {
index 47673e7..2b93c63 100644 (file)
@@ -269,12 +269,35 @@ static int ssl23_no_ssl2_ciphers(SSL *s)
        return 1;
        }
 
+/* Fill a ClientRandom or ServerRandom field of length len. Returns <= 0
+ * on failure, 1 on success. */
+int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, int len)
+       {
+       int send_time = 0;
+
+       if (len < 4)
+               return 0;
+       if (server)
+               send_time = (s->mode & SSL_MODE_SEND_SERVERHELLO_TIME) != 0;
+       else
+               send_time = (s->mode & SSL_MODE_SEND_CLIENTHELLO_TIME) != 0;
+       if (send_time)
+               {
+               unsigned long Time = (unsigned long)time(NULL);
+               unsigned char *p = result;
+               l2n(Time, p);
+               return RAND_pseudo_bytes(p, len-4);
+               }
+       else
+               return RAND_pseudo_bytes(result, len);
+       }
+
 static int ssl23_client_hello(SSL *s)
        {
        unsigned char *buf;
        unsigned char *p,*d;
        int i,ch_len;
-       unsigned long Time,l;
+       unsigned long l;
        int ssl2_compat;
        int version = 0, version_major, version_minor;
 #ifndef OPENSSL_NO_COMP
@@ -355,9 +378,7 @@ static int ssl23_client_hello(SSL *s)
 #endif
 
                p=s->s3->client_random;
-               Time=(unsigned long)time(NULL);         /* Time */
-               l2n(Time,p);
-               if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0)
+               if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0)
                        return -1;
 
                if (version == TLS1_2_VERSION)
index ead01c8..53b9390 100644 (file)
@@ -161,6 +161,8 @@ int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen)
 
                i=s->method->ssl3_enc->final_finish_mac(s,
                        sender,slen,s->s3->tmp.finish_md);
+               if (i == 0)
+                       return 0;
                s->s3->tmp.finish_md_len = i;
                memcpy(p, s->s3->tmp.finish_md, i);
                p+=i;
@@ -208,7 +210,11 @@ static void ssl3_take_mac(SSL *s)
        {
        const char *sender;
        int slen;
-
+       /* If no new cipher setup return immediately: other functions will
+        * set the appropriate error.
+        */
+       if (s->s3->tmp.new_cipher == NULL)
+               return;
        if (s->state & SSL_ST_CONNECT)
                {
                sender=s->method->ssl3_enc->server_finished_label;
index 02edf3f..443a31e 100644 (file)
@@ -148,7 +148,7 @@ int tls1_cbc_remove_padding(const SSL* s,
        unsigned padding_length, good, to_check, i;
        const unsigned overhead = 1 /* padding length byte */ + mac_size;
        /* Check if version requires explicit IV */
-       if (s->version >= TLS1_1_VERSION || s->version == DTLS1_VERSION)
+       if (s->version >= TLS1_1_VERSION || s->version == DTLS1_BAD_VER)
                {
                /* These lengths are all public so we can test them in
                 * non-constant time.
index 344e2eb..a6b3c01 100644 (file)
@@ -655,7 +655,7 @@ int ssl3_client_hello(SSL *s)
        unsigned char *buf;
        unsigned char *p,*d;
        int i;
-       unsigned long Time,l;
+       unsigned long l;
 #ifndef OPENSSL_NO_COMP
        int j;
        SSL_COMP *comp;
@@ -680,9 +680,8 @@ int ssl3_client_hello(SSL *s)
                /* else use the pre-loaded session */
 
                p=s->s3->client_random;
-               Time=(unsigned long)time(NULL);                 /* Time */
-               l2n(Time,p);
-               if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0)
+
+               if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0)
                        goto err;
 
                /* Do the message type and length last */
index e7c5dcb..c4ef273 100644 (file)
@@ -1683,7 +1683,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
        SSL_3DES,
        SSL_SHA1,
        SSL_TLSV1,
-       SSL_NOT_EXP|SSL_HIGH,
+       SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
        SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF,
        168,
        168,
@@ -1699,7 +1699,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
        SSL_AES128,
        SSL_SHA1,
        SSL_TLSV1,
-       SSL_NOT_EXP|SSL_HIGH,
+       SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
        SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF,
        128,
        128,
@@ -1715,7 +1715,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
        SSL_AES256,
        SSL_SHA1,
        SSL_TLSV1,
-       SSL_NOT_EXP|SSL_HIGH,
+       SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
        SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF,
        256,
        256,
@@ -3037,6 +3037,11 @@ void ssl3_clear(SSL *s)
                s->s3->tmp.ecdh = NULL;
                }
 #endif
+#ifndef OPENSSL_NO_TLSEXT
+#ifndef OPENSSL_NO_EC
+       s->s3->is_probably_safari = 0;
+#endif /* !OPENSSL_NO_EC */
+#endif /* !OPENSSL_NO_TLSEXT */
 
        rp = s->s3->rbuf.buf;
        wp = s->s3->wbuf.buf;
@@ -4016,6 +4021,13 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
                ii=sk_SSL_CIPHER_find(allow,c);
                if (ii >= 0)
                        {
+#if !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_TLSEXT)
+                       if ((alg_k & SSL_kEECDH) && (alg_a & SSL_aECDSA) && s->s3->is_probably_safari)
+                               {
+                               if (!ret) ret=sk_SSL_CIPHER_value(allow,ii);
+                               continue;
+                               }
+#endif
                        ret=sk_SSL_CIPHER_value(allow,ii);
                        break;
                        }
@@ -4274,7 +4286,7 @@ need to go to SSL_ST_ACCEPT.
 long ssl_get_algorithm2(SSL *s)
        {
        long alg2 = s->s3->tmp.new_cipher->algorithm2;
-       if (TLS1_get_version(s) >= TLS1_2_VERSION &&
+       if (s->method->version == TLS1_2_VERSION &&
            alg2 == (SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF))
                return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256;
        return alg2;
index 804291e..96ba632 100644 (file)
@@ -335,7 +335,7 @@ fprintf(stderr, "Record type=%d, Length=%d\n", rr->type, rr->length);
                        if (version != s->version)
                                {
                                SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_WRONG_VERSION_NUMBER);
-                                if ((s->version & 0xFF00) == (version & 0xFF00))
+                                if ((s->version & 0xFF00) == (version & 0xFF00) && !s->enc_write_ctx && !s->write_hash)
                                        /* Send back error using their minor version number :-) */
                                        s->version = (unsigned short)version;
                                al=SSL_AD_PROTOCOL_VERSION;
@@ -1459,8 +1459,14 @@ int ssl3_do_change_cipher_spec(SSL *s)
                slen=s->method->ssl3_enc->client_finished_label_len;
                }
 
-       s->s3->tmp.peer_finish_md_len = s->method->ssl3_enc->final_finish_mac(s,
+       i = s->method->ssl3_enc->final_finish_mac(s,
                sender,slen,s->s3->tmp.peer_finish_md);
+       if (i == 0)
+               {
+               SSLerr(SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC, ERR_R_INTERNAL_ERROR);
+               return 0;
+               }
+       s->s3->tmp.peer_finish_md_len = i;
 
        return(1);
        }
index bfb8480..9ac19c0 100644 (file)
@@ -958,7 +958,8 @@ int ssl3_get_client_hello(SSL *s)
            (s->version != DTLS1_VERSION && s->client_version < s->version))
                {
                SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_WRONG_VERSION_NUMBER);
-               if ((s->client_version>>8) == SSL3_VERSION_MAJOR)
+               if ((s->client_version>>8) == SSL3_VERSION_MAJOR && 
+                       !s->enc_write_ctx && !s->write_hash)
                        {
                        /* similar to ssl3_get_record, send alert using remote version number */
                        s->version = s->client_version;
@@ -1193,12 +1194,9 @@ int ssl3_get_client_hello(SSL *s)
         * server_random before calling tls_session_secret_cb in order to allow
         * SessionTicket processing to use it in key derivation. */
        {
-               unsigned long Time;
                unsigned char *pos;
-               Time=(unsigned long)time(NULL);                 /* Time */
                pos=s->s3->server_random;
-               l2n(Time,pos);
-               if (RAND_pseudo_bytes(pos,SSL3_RANDOM_SIZE-4) <= 0)
+               if (ssl_fill_hello_random(s, 1, pos, SSL3_RANDOM_SIZE) <= 0)
                        {
                        al=SSL_AD_INTERNAL_ERROR;
                        goto f_err;
@@ -1435,19 +1433,13 @@ int ssl3_send_server_hello(SSL *s)
        unsigned char *p,*d;
        int i,sl;
        unsigned long l;
-#ifdef OPENSSL_NO_TLSEXT
-       unsigned long Time;
-#endif
 
        if (s->state == SSL3_ST_SW_SRVR_HELLO_A)
                {
                buf=(unsigned char *)s->init_buf->data;
 #ifdef OPENSSL_NO_TLSEXT
                p=s->s3->server_random;
-               /* Generate server_random if it was not needed previously */
-               Time=(unsigned long)time(NULL);                 /* Time */
-               l2n(Time,p);
-               if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0)
+               if (ssl_fill_hello_random(s, 1, p, SSL3_RANDOM_SIZE) <= 0)
                        return -1;
 #endif
                /* Do the message type and length last */
@@ -1838,7 +1830,7 @@ int ssl3_send_server_key_exchange(SSL *s)
                        SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE);
                        goto f_err;
                        }
-               for (i=0; r[i] != NULL && i<4; i++)
+               for (i=0; i < 4 && r[i] != NULL; i++)
                        {
                        nr[i]=BN_num_bytes(r[i]);
 #ifndef OPENSSL_NO_SRP
@@ -1874,7 +1866,7 @@ int ssl3_send_server_key_exchange(SSL *s)
                d=(unsigned char *)s->init_buf->data;
                p= &(d[4]);
 
-               for (i=0; r[i] != NULL && i<4; i++)
+               for (i=0; i < 4 && r[i] != NULL; i++)
                        {
 #ifndef OPENSSL_NO_SRP
                        if ((i == 2) && (type & SSL_kSRP))
index a77f770..c7bc6fb 100644 (file)
@@ -214,7 +214,7 @@ $!
 $! Define The Different SSL "library" Files.
 $!
 $ LIB_SSL = "s2_meth,s2_srvr,s2_clnt,s2_lib,s2_enc,s2_pkt,"+ -
-           "s3_meth,s3_srvr,s3_clnt,s3_lib,s3_enc,s3_pkt,s3_both,"+ -
+           "s3_meth,s3_srvr,s3_clnt,s3_lib,s3_enc,s3_pkt,s3_both,s3_cbc,"+ -
            "s23_meth,s23_srvr,s23_clnt,s23_lib,s23_pkt,"+ -
            "t1_meth,t1_srvr,t1_clnt,t1_lib,t1_enc,"+ -
            "d1_meth,d1_srvr,d1_clnt,d1_lib,d1_pkt,"+ -
@@ -857,7 +857,7 @@ $ CCDEFS = "TCPIP_TYPE_''P4'"
 $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
 $ CCEXTRAFLAGS = ""
 $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
-$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
+$ CCDISABLEWARNINGS = "MAYLOSEDATA3" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
 $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
        CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
 $!
index 593579e..7219a0e 100644 (file)
@@ -555,11 +555,14 @@ struct ssl_session_st
 #define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG                0x00000008L
 #define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG             0x00000010L
 #define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER              0x00000020L
-#define SSL_OP_MSIE_SSLV2_RSA_PADDING                  0x00000040L /* no effect since 0.9.7h and 0.9.8b */
+#define SSL_OP_SAFARI_ECDHE_ECDSA_BUG                  0x00000040L
 #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG                        0x00000080L
 #define SSL_OP_TLS_D5_BUG                              0x00000100L
 #define SSL_OP_TLS_BLOCK_PADDING_BUG                   0x00000200L
 
+/* Hasn't done anything since OpenSSL 0.9.7h, retained for compatibility */
+#define SSL_OP_MSIE_SSLV2_RSA_PADDING                  0x0
+
 /* Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added
  * in OpenSSL 0.9.6d.  Usually (depending on the application protocol)
  * the workaround is not needed.  Unfortunately some broken SSL/TLS
@@ -641,6 +644,12 @@ struct ssl_session_st
  * TLS only.)  "Released" buffers are put onto a free-list in the context
  * or just freed (depending on the context's setting for freelist_max_len). */
 #define SSL_MODE_RELEASE_BUFFERS 0x00000010L
+/* Send the current time in the Random fields of the ClientHello and
+ * ServerHello records for compatibility with hypothetical implementations
+ * that require it.
+ */
+#define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020L
+#define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040L
 
 /* Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value,
  * they cannot be used to clear bits. */
@@ -906,7 +915,7 @@ struct ssl_ctx_st
         */
        unsigned int max_send_fragment;
 
-#ifndef OPENSSL_ENGINE
+#ifndef OPENSSL_NO_ENGINE
        /* Engine to pass requests for client certs to
         */
        ENGINE *client_cert_engine;
index 247e88c..cb8b249 100644 (file)
@@ -539,6 +539,15 @@ typedef struct ssl3_state_st
        /* Set if we saw the Next Protocol Negotiation extension from our peer. */
        int next_proto_neg_seen;
 #endif
+
+#ifndef OPENSSL_NO_TLSEXT
+#ifndef OPENSSL_NO_EC
+       /* This is set to true if we believe that this is a version of Safari
+        * running on OS X 10.6 or newer. We wish to know this because Safari
+        * on 10.8 .. 10.8.3 has broken ECDHE-ECDSA support. */
+       char is_probably_safari;
+#endif /* !OPENSSL_NO_EC */
+#endif /* !OPENSSL_NO_TLSEXT */
        } SSL3_STATE;
 
 #endif
index 14d143d..6dbc3c1 100644 (file)
@@ -1797,7 +1797,9 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth)
        CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_CTX, ret, &ret->ex_data);
 
        ret->extra_certs=NULL;
-       ret->comp_methods=SSL_COMP_get_compression_methods();
+       /* No compression for DTLS */
+       if (meth->version != DTLS1_VERSION)
+               ret->comp_methods=SSL_COMP_get_compression_methods();
 
        ret->max_send_fragment = SSL3_RT_MAX_PLAIN_LENGTH;
 
@@ -2792,9 +2794,7 @@ void ssl_clear_cipher_ctx(SSL *s)
 /* Fix this function so that it takes an optional type parameter */
 X509 *SSL_get_certificate(const SSL *s)
        {
-       if (s->server)
-               return(ssl_get_server_send_cert(s));
-       else if (s->cert != NULL)
+       if (s->cert != NULL)
                return(s->cert->key->x509);
        else
                return(NULL);
index 1b98947..e485907 100644 (file)
@@ -621,6 +621,8 @@ extern SSL3_ENC_METHOD TLSv1_enc_data;
 extern SSL3_ENC_METHOD SSLv3_enc_data;
 extern SSL3_ENC_METHOD DTLSv1_enc_data;
 
+#define SSL_IS_DTLS(s) (s->method->version == DTLS1_VERSION)
+
 #define IMPLEMENT_tls_meth_func(version, func_name, s_accept, s_connect, \
                                s_get_meth) \
 const SSL_METHOD *func_name(void)  \
@@ -847,6 +849,7 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher);
 STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s);
 int ssl_verify_alarm_type(long type);
 void ssl_load_ciphers(void);
+int ssl_fill_hello_random(SSL *s, int server, unsigned char *field, int len);
 
 int ssl2_enc_init(SSL *s, int client);
 int ssl2_generate_key_material(SSL *s);
index 316bbb0..4f80be8 100644 (file)
@@ -881,7 +881,13 @@ bad:
                meth=SSLv23_method();
 #else
 #ifdef OPENSSL_NO_SSL2
-       meth=SSLv3_method();
+       if (tls1)
+               meth=TLSv1_method();
+       else
+       if (ssl3)
+               meth=SSLv3_method();
+       else
+               meth=SSLv23_method();
 #else
        meth=SSLv2_method();
 #endif
index 809ad2e..0c4cdde 100644 (file)
@@ -414,15 +414,20 @@ int tls1_change_cipher_state(SSL *s, int which)
                        s->mac_flags |= SSL_MAC_FLAG_WRITE_MAC_STREAM;
                        else
                        s->mac_flags &= ~SSL_MAC_FLAG_WRITE_MAC_STREAM;
-               if (s->enc_write_ctx != NULL)
+               if (s->enc_write_ctx != NULL && !SSL_IS_DTLS(s))
                        reuse_dd = 1;
-               else if ((s->enc_write_ctx=OPENSSL_malloc(sizeof(EVP_CIPHER_CTX))) == NULL)
+               else if ((s->enc_write_ctx=EVP_CIPHER_CTX_new()) == NULL)
                        goto err;
-               else
-                       /* make sure it's intialized in case we exit later with an error */
-                       EVP_CIPHER_CTX_init(s->enc_write_ctx);
                dd= s->enc_write_ctx;
-               mac_ctx = ssl_replace_hash(&s->write_hash,NULL);
+               if (SSL_IS_DTLS(s))
+                       {
+                       mac_ctx = EVP_MD_CTX_create();
+                       if (!mac_ctx)
+                               goto err;
+                       s->write_hash = mac_ctx;
+                       }
+               else
+                       mac_ctx = ssl_replace_hash(&s->write_hash,NULL);
 #ifndef OPENSSL_NO_COMP
                if (s->compress != NULL)
                        {
@@ -915,18 +920,19 @@ int tls1_final_finish_mac(SSL *s,
                if (mask & ssl_get_algorithm2(s))
                        {
                        int hashsize = EVP_MD_size(md);
-                       if (hashsize < 0 || hashsize > (int)(sizeof buf - (size_t)(q-buf)))
+                       EVP_MD_CTX *hdgst = s->s3->handshake_dgst[idx];
+                       if (!hdgst || hashsize < 0 || hashsize > (int)(sizeof buf - (size_t)(q-buf)))
                                {
                                /* internal error: 'buf' is too small for this cipersuite! */
                                err = 1;
                                }
                        else
                                {
-                               EVP_MD_CTX_copy_ex(&ctx,s->s3->handshake_dgst[idx]);
-                               EVP_DigestFinal_ex(&ctx,q,&i);
-                               if (i != (unsigned int)hashsize) /* can't really happen */
+                               if (!EVP_MD_CTX_copy_ex(&ctx, hdgst) ||
+                                       !EVP_DigestFinal_ex(&ctx,q,&i) ||
+                                       (i != (unsigned int)hashsize))
                                        err = 1;
-                               q+=i;
+                               q+=hashsize;
                                }
                        }
                }
@@ -980,7 +986,8 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send)
                }
                else
                {
-                       EVP_MD_CTX_copy(&hmac,hash);
+                       if (!EVP_MD_CTX_copy(&hmac,hash))
+                               return -1;
                        mac_ctx = &hmac;
                }
 
index e08088c..bddffd9 100644 (file)
@@ -342,19 +342,11 @@ static unsigned char tls12_sigalgs[] = {
 #ifndef OPENSSL_NO_SHA
        tlsext_sigalg(TLSEXT_hash_sha1)
 #endif
-#ifndef OPENSSL_NO_MD5
-       tlsext_sigalg_rsa(TLSEXT_hash_md5)
-#endif
 };
 
 int tls12_get_req_sig_algs(SSL *s, unsigned char *p)
        {
        size_t slen = sizeof(tls12_sigalgs);
-#ifdef OPENSSL_FIPS
-       /* If FIPS mode don't include MD5 which is last */
-       if (FIPS_mode())
-               slen -= 2;
-#endif
        if (p)
                memcpy(p, tls12_sigalgs, slen);
        return (int)slen;
@@ -670,6 +662,36 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *p, unsigned cha
                 }
 #endif
 
+#ifdef TLSEXT_TYPE_padding
+       /* Add padding to workaround bugs in F5 terminators.
+        * See https://tools.ietf.org/html/draft-agl-tls-padding-03
+        *
+        * NB: because this code works out the length of all existing
+        * extensions it MUST always appear last.
+        */
+       {
+       int hlen = ret - (unsigned char *)s->init_buf->data;
+       /* The code in s23_clnt.c to build ClientHello messages includes the
+        * 5-byte record header in the buffer, while the code in s3_clnt.c does
+        * not. */
+       if (s->state == SSL23_ST_CW_CLNT_HELLO_A)
+               hlen -= 5;
+       if (hlen > 0xff && hlen < 0x200)
+               {
+               hlen = 0x200 - hlen;
+               if (hlen >= 4)
+                       hlen -= 4;
+               else
+                       hlen = 0;
+
+               s2n(TLSEXT_TYPE_padding, ret);
+               s2n(hlen, ret);
+               memset(ret, 0, hlen);
+               ret += hlen;
+               }
+       }
+#endif
+
        if ((extdatalen = ret-p-2)== 0) 
                return p;
 
@@ -866,6 +888,89 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha
        return ret;
        }
 
+#ifndef OPENSSL_NO_EC
+/* ssl_check_for_safari attempts to fingerprint Safari using OS X
+ * SecureTransport using the TLS extension block in |d|, of length |n|.
+ * Safari, since 10.6, sends exactly these extensions, in this order:
+ *   SNI,
+ *   elliptic_curves
+ *   ec_point_formats
+ *
+ * We wish to fingerprint Safari because they broke ECDHE-ECDSA support in 10.8,
+ * but they advertise support. So enabling ECDHE-ECDSA ciphers breaks them.
+ * Sadly we cannot differentiate 10.6, 10.7 and 10.8.4 (which work), from
+ * 10.8..10.8.3 (which don't work).
+ */
+static void ssl_check_for_safari(SSL *s, const unsigned char *data, const unsigned char *d, int n) {
+       unsigned short type, size;
+       static const unsigned char kSafariExtensionsBlock[] = {
+               0x00, 0x0a,  /* elliptic_curves extension */
+               0x00, 0x08,  /* 8 bytes */
+               0x00, 0x06,  /* 6 bytes of curve ids */
+               0x00, 0x17,  /* P-256 */
+               0x00, 0x18,  /* P-384 */
+               0x00, 0x19,  /* P-521 */
+
+               0x00, 0x0b,  /* ec_point_formats */
+               0x00, 0x02,  /* 2 bytes */
+               0x01,        /* 1 point format */
+               0x00,        /* uncompressed */
+       };
+
+       /* The following is only present in TLS 1.2 */
+       static const unsigned char kSafariTLS12ExtensionsBlock[] = {
+               0x00, 0x0d,  /* signature_algorithms */
+               0x00, 0x0c,  /* 12 bytes */
+               0x00, 0x0a,  /* 10 bytes */
+               0x05, 0x01,  /* SHA-384/RSA */
+               0x04, 0x01,  /* SHA-256/RSA */
+               0x02, 0x01,  /* SHA-1/RSA */
+               0x04, 0x03,  /* SHA-256/ECDSA */
+               0x02, 0x03,  /* SHA-1/ECDSA */
+       };
+
+       if (data >= (d+n-2))
+               return;
+       data += 2;
+
+       if (data > (d+n-4))
+               return;
+       n2s(data,type);
+       n2s(data,size);
+
+       if (type != TLSEXT_TYPE_server_name)
+               return;
+
+       if (data+size > d+n)
+               return;
+       data += size;
+
+       if (TLS1_get_client_version(s) >= TLS1_2_VERSION)
+               {
+               const size_t len1 = sizeof(kSafariExtensionsBlock);
+               const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock);
+
+               if (data + len1 + len2 != d+n)
+                       return;
+               if (memcmp(data, kSafariExtensionsBlock, len1) != 0)
+                       return;
+               if (memcmp(data + len1, kSafariTLS12ExtensionsBlock, len2) != 0)
+                       return;
+               }
+       else
+               {
+               const size_t len = sizeof(kSafariExtensionsBlock);
+
+               if (data + len != d+n)
+                       return;
+               if (memcmp(data, kSafariExtensionsBlock, len) != 0)
+                       return;
+               }
+
+       s->s3->is_probably_safari = 1;
+}
+#endif /* !OPENSSL_NO_EC */
+
 int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, int n, int *al)
        {
        unsigned short type;
@@ -886,6 +991,11 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
                               SSL_TLSEXT_HB_DONT_SEND_REQUESTS);
 #endif
 
+#ifndef OPENSSL_NO_EC
+       if (s->options & SSL_OP_SAFARI_ECDHE_ECDSA_BUG)
+               ssl_check_for_safari(s, data, d, n);
+#endif /* !OPENSSL_NO_EC */
+
        if (data >= (d+n-2))
                goto ri_check;
        n2s(data,len);
@@ -1181,7 +1291,7 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
                                }
                        }
                else if (type == TLSEXT_TYPE_status_request &&
-                        s->version != DTLS1_VERSION && s->ctx->tlsext_status_cb)
+                        s->version != DTLS1_VERSION)
                        {
                
                        if (size < 5) 
@@ -2364,14 +2474,6 @@ const EVP_MD *tls12_get_hash(unsigned char hash_alg)
        {
        switch(hash_alg)
                {
-#ifndef OPENSSL_NO_MD5
-               case TLSEXT_hash_md5:
-#ifdef OPENSSL_FIPS
-               if (FIPS_mode())
-                       return NULL;
-#endif
-               return EVP_md5();
-#endif
 #ifndef OPENSSL_NO_SHA
                case TLSEXT_hash_sha1:
                return EVP_sha1();
@@ -2486,16 +2588,20 @@ tls1_process_heartbeat(SSL *s)
        unsigned int payload;
        unsigned int padding = 16; /* Use minimum padding */
 
-       /* Read type and payload length first */
-       hbtype = *p++;
-       n2s(p, payload);
-       pl = p;
-
        if (s->msg_callback)
                s->msg_callback(0, s->version, TLS1_RT_HEARTBEAT,
                        &s->s3->rrec.data[0], s->s3->rrec.length,
                        s, s->msg_callback_arg);
 
+       /* Read type and payload length first */
+       if (1 + 2 + 16 > s->s3->rrec.length)
+               return 0; /* silently discard */
+       hbtype = *p++;
+       n2s(p, payload);
+       if (1 + 2 + payload + 16 > s->s3->rrec.length)
+               return 0; /* silently discard per RFC 6520 sec. 4 */
+       pl = p;
+
        if (hbtype == TLS1_HB_REQUEST)
                {
                unsigned char *buffer, *bp;
index c39c267..c992091 100644 (file)
@@ -230,6 +230,12 @@ extern "C" {
 /* ExtensionType value from RFC5620 */
 #define TLSEXT_TYPE_heartbeat  15
 
+/* ExtensionType value for TLS padding extension.
+ * http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml
+ * http://tools.ietf.org/html/draft-agl-tls-padding-03
+ */
+#define TLSEXT_TYPE_padding    21
+
 /* ExtensionType value from RFC4507 */
 #define TLSEXT_TYPE_session_ticket             35
 
diff --git a/deps/openssl/openssl/test/Makefile.save b/deps/openssl/openssl/test/Makefile.save
new file mode 100644 (file)
index 0000000..4c9eabc
--- /dev/null
@@ -0,0 +1,729 @@
+#
+# test/Makefile
+#
+
+DIR=           test
+TOP=           ..
+CC=            cc
+INCLUDES=      -I$(TOP) -I../include $(KRB5_INCLUDES)
+CFLAG=         -g
+MAKEDEPEND=    $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
+PERL=          perl
+# KRB5 stuff
+KRB5_INCLUDES=
+LIBKRB5=
+
+PEX_LIBS=
+EX_LIBS= #-lnsl -lsocket
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile maketests.com \
+       tests.com testenc.com tx509.com trsa.com tcrl.com tsid.com treq.com \
+       tpkcs7.com tpkcs7d.com tverify.com testgen.com testss.com testssl.com \
+       testca.com VMSca-response.1 VMSca-response.2
+
+DLIBCRYPTO= ../libcrypto.a
+DLIBSSL= ../libssl.a
+LIBCRYPTO= -L.. -lcrypto
+LIBSSL= -L.. -lssl
+
+BNTEST=                bntest
+ECTEST=                ectest
+ECDSATEST=     ecdsatest
+ECDHTEST=      ecdhtest
+EXPTEST=       exptest
+IDEATEST=      ideatest
+SHATEST=       shatest
+SHA1TEST=      sha1test
+SHA256TEST=    sha256t
+SHA512TEST=    sha512t
+MDC2TEST=      mdc2test
+RMDTEST=       rmdtest
+MD2TEST=       md2test
+MD4TEST=       md4test
+MD5TEST=       md5test
+HMACTEST=      hmactest
+WPTEST=                wp_test
+RC2TEST=       rc2test
+RC4TEST=       rc4test
+RC5TEST=       rc5test
+BFTEST=                bftest
+CASTTEST=      casttest
+DESTEST=       destest
+RANDTEST=      randtest
+DHTEST=                dhtest
+DSATEST=       dsatest
+METHTEST=      methtest
+SSLTEST=       ssltest
+RSATEST=       rsa_test
+ENGINETEST=    enginetest
+EVPTEST=       evp_test
+IGETEST=       igetest
+JPAKETEST=     jpaketest
+SRPTEST=       srptest
+ASN1TEST=      asn1test
+
+TESTS=         alltests
+
+EXE=   $(BNTEST)$(EXE_EXT) $(ECTEST)$(EXE_EXT)  $(ECDSATEST)$(EXE_EXT) $(ECDHTEST)$(EXE_EXT) $(IDEATEST)$(EXE_EXT) \
+       $(MD2TEST)$(EXE_EXT)  $(MD4TEST)$(EXE_EXT) $(MD5TEST)$(EXE_EXT) $(HMACTEST)$(EXE_EXT) $(WPTEST)$(EXE_EXT) \
+       $(RC2TEST)$(EXE_EXT) $(RC4TEST)$(EXE_EXT) $(RC5TEST)$(EXE_EXT) \
+       $(DESTEST)$(EXE_EXT) $(SHATEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(SHA256TEST)$(EXE_EXT) $(SHA512TEST)$(EXE_EXT) \
+       $(MDC2TEST)$(EXE_EXT) $(RMDTEST)$(EXE_EXT) \
+       $(RANDTEST)$(EXE_EXT) $(DHTEST)$(EXE_EXT) $(ENGINETEST)$(EXE_EXT) \
+       $(BFTEST)$(EXE_EXT) $(CASTTEST)$(EXE_EXT) $(SSLTEST)$(EXE_EXT) $(EXPTEST)$(EXE_EXT) $(DSATEST)$(EXE_EXT) $(RSATEST)$(EXE_EXT) \
+       $(EVPTEST)$(EXE_EXT) $(IGETEST)$(EXE_EXT) $(JPAKETEST)$(EXE_EXT) $(SRPTEST)$(EXE_EXT) \
+       $(ASN1TEST)$(EXE_EXT)
+
+# $(METHTEST)$(EXE_EXT)
+
+OBJ=   $(BNTEST).o $(ECTEST).o  $(ECDSATEST).o $(ECDHTEST).o $(IDEATEST).o \
+       $(MD2TEST).o $(MD4TEST).o $(MD5TEST).o \
+       $(HMACTEST).o $(WPTEST).o \
+       $(RC2TEST).o $(RC4TEST).o $(RC5TEST).o \
+       $(DESTEST).o $(SHATEST).o $(SHA1TEST).o $(SHA256TEST).o $(SHA512TEST).o \
+       $(MDC2TEST).o $(RMDTEST).o \
+       $(RANDTEST).o $(DHTEST).o $(ENGINETEST).o $(CASTTEST).o \
+       $(BFTEST).o  $(SSLTEST).o  $(DSATEST).o  $(EXPTEST).o $(RSATEST).o \
+       $(EVPTEST).o $(IGETEST).o $(JPAKETEST).o $(ASN1TEST).o
+SRC=   $(BNTEST).c $(ECTEST).c  $(ECDSATEST).c $(ECDHTEST).c $(IDEATEST).c \
+       $(MD2TEST).c  $(MD4TEST).c $(MD5TEST).c \
+       $(HMACTEST).c $(WPTEST).c \
+       $(RC2TEST).c $(RC4TEST).c $(RC5TEST).c \
+       $(DESTEST).c $(SHATEST).c $(SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \
+       $(RANDTEST).c $(DHTEST).c $(ENGINETEST).c $(CASTTEST).c \
+       $(BFTEST).c  $(SSLTEST).c $(DSATEST).c   $(EXPTEST).c $(RSATEST).c \
+       $(EVPTEST).c $(IGETEST).c $(JPAKETEST).c $(SRPTEST).c $(ASN1TEST).c
+
+EXHEADER= 
+HEADER=        $(EXHEADER)
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ..; $(MAKE) DIRS=$(DIR) TESTS=$(TESTS) all)
+
+all:   exe
+
+exe:   $(EXE) dummytest$(EXE_EXT)
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+
+links:
+
+generate: $(SRC)
+$(SRC):
+       @sh $(TOP)/util/point.sh dummytest.c $@
+
+errors:
+
+install:
+
+tags:
+       ctags $(SRC)
+
+tests: exe apps $(TESTS)
+
+apps:
+       @(cd ..; $(MAKE) DIRS=apps all)
+
+alltests: \
+       test_des test_idea test_sha test_md4 test_md5 test_hmac \
+       test_md2 test_mdc2 test_wp \
+       test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_aes \
+       test_rand test_bn test_ec test_ecdsa test_ecdh \
+       test_enc test_x509 test_rsa test_crl test_sid \
+       test_gen test_req test_pkcs7 test_verify test_dh test_dsa \
+       test_ss test_ca test_engine test_evp test_ssl test_tsa test_ige \
+       test_jpake test_srp test_cms
+
+test_evp:
+       ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt
+
+test_des:
+       ../util/shlib_wrap.sh ./$(DESTEST)
+
+test_idea:
+       ../util/shlib_wrap.sh ./$(IDEATEST)
+
+test_sha:
+       ../util/shlib_wrap.sh ./$(SHATEST)
+       ../util/shlib_wrap.sh ./$(SHA1TEST)
+       ../util/shlib_wrap.sh ./$(SHA256TEST)
+       ../util/shlib_wrap.sh ./$(SHA512TEST)
+
+test_mdc2:
+       ../util/shlib_wrap.sh ./$(MDC2TEST)
+
+test_md5:
+       ../util/shlib_wrap.sh ./$(MD5TEST)
+
+test_md4:
+       ../util/shlib_wrap.sh ./$(MD4TEST)
+
+test_hmac:
+       ../util/shlib_wrap.sh ./$(HMACTEST)
+
+test_wp:
+       ../util/shlib_wrap.sh ./$(WPTEST)
+
+test_md2:
+       ../util/shlib_wrap.sh ./$(MD2TEST)
+
+test_rmd:
+       ../util/shlib_wrap.sh ./$(RMDTEST)
+
+test_bf:
+       ../util/shlib_wrap.sh ./$(BFTEST)
+
+test_cast:
+       ../util/shlib_wrap.sh ./$(CASTTEST)
+
+test_rc2:
+       ../util/shlib_wrap.sh ./$(RC2TEST)
+
+test_rc4:
+       ../util/shlib_wrap.sh ./$(RC4TEST)
+
+test_rc5:
+       ../util/shlib_wrap.sh ./$(RC5TEST)
+
+test_rand:
+       ../util/shlib_wrap.sh ./$(RANDTEST)
+
+test_enc:
+       @sh ./testenc
+
+test_x509:
+       echo test normal x509v1 certificate
+       sh ./tx509 2>/dev/null
+       echo test first x509v3 certificate
+       sh ./tx509 v3-cert1.pem 2>/dev/null
+       echo test second x509v3 certificate
+       sh ./tx509 v3-cert2.pem 2>/dev/null
+
+test_rsa: $(RSATEST)$(EXE_EXT)
+       @sh ./trsa 2>/dev/null
+       ../util/shlib_wrap.sh ./$(RSATEST)
+
+test_crl:
+       @sh ./tcrl 2>/dev/null
+
+test_sid:
+       @sh ./tsid 2>/dev/null
+
+test_req:
+       @sh ./treq 2>/dev/null
+       @sh ./treq testreq2.pem 2>/dev/null
+
+test_pkcs7:
+       @sh ./tpkcs7 2>/dev/null
+       @sh ./tpkcs7d 2>/dev/null
+
+test_bn:
+       @echo starting big number library test, could take a while...
+       @../util/shlib_wrap.sh ./$(BNTEST) >tmp.bntest
+       @echo quit >>tmp.bntest
+       @echo "running bc"
+       @<tmp.bntest sh -c "`sh ./bctest ignore`" | $(PERL) -e '$$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/) {die "\nFailed! bc: $$_";} else {print STDERR "."; $$i++;}} print STDERR "\n$$i tests passed\n"'
+       @echo 'test a^b%c implementations'
+       ../util/shlib_wrap.sh ./$(EXPTEST)
+
+test_ec:
+       @echo 'test elliptic curves'
+       ../util/shlib_wrap.sh ./$(ECTEST)
+
+test_ecdsa:
+       @echo 'test ecdsa'
+       ../util/shlib_wrap.sh ./$(ECDSATEST)
+
+test_ecdh:
+       @echo 'test ecdh'
+       ../util/shlib_wrap.sh ./$(ECDHTEST)
+
+test_verify:
+       @echo "The following command should have some OK's and some failures"
+       @echo "There are definitly a few expired certificates"
+       ../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs/demo ../certs/demo/*.pem
+
+test_dh:
+       @echo "Generate a set of DH parameters"
+       ../util/shlib_wrap.sh ./$(DHTEST)
+
+test_dsa:
+       @echo "Generate a set of DSA parameters"
+       ../util/shlib_wrap.sh ./$(DSATEST)
+       ../util/shlib_wrap.sh ./$(DSATEST) -app2_1
+
+test_gen:
+       @echo "Generate and verify a certificate request"
+       @sh ./testgen
+
+test_ss keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
+               intP1.ss intP2.ss: testss
+       @echo "Generate and certify a test certificate"
+       @sh ./testss
+       @cat certCA.ss certU.ss > intP1.ss
+       @cat certCA.ss certU.ss certP1.ss > intP2.ss
+
+test_engine: 
+       @echo "Manipulate the ENGINE structures"
+       ../util/shlib_wrap.sh ./$(ENGINETEST)
+
+test_ssl: keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
+               intP1.ss intP2.ss
+       @echo "test SSL protocol"
+       @if [ -n "$(FIPSCANLIB)" ]; then \
+         sh ./testfipsssl keyU.ss certU.ss certCA.ss; \
+       fi
+       ../util/shlib_wrap.sh ./$(SSLTEST) -test_cipherlist
+       @sh ./testssl keyU.ss certU.ss certCA.ss
+       @sh ./testsslproxy keyP1.ss certP1.ss intP1.ss
+       @sh ./testsslproxy keyP2.ss certP2.ss intP2.ss
+
+test_ca:
+       @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \
+         echo "skipping CA.sh test -- requires RSA"; \
+       else \
+         echo "Generate and certify a test certificate via the 'ca' program"; \
+         sh ./testca; \
+       fi
+
+test_aes: #$(AESTEST)
+#      @echo "test Rijndael"
+#      ../util/shlib_wrap.sh ./$(AESTEST)
+
+test_tsa:
+       @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \
+         echo "skipping testtsa test -- requires RSA"; \
+       else \
+         sh ./testtsa; \
+       fi
+
+test_ige: $(IGETEST)$(EXE_EXT)
+       @echo "Test IGE mode"
+       ../util/shlib_wrap.sh ./$(IGETEST)
+
+test_jpake: $(JPAKETEST)$(EXE_EXT)
+       @echo "Test JPAKE"
+       ../util/shlib_wrap.sh ./$(JPAKETEST)
+
+test_cms:
+       @echo "CMS consistency test"
+       $(PERL) cms-test.pl
+
+test_srp: $(SRPTEST)$(EXE_EXT)
+       @echo "Test SRP"
+       ../util/shlib_wrap.sh ./srptest
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       @if [ -z "$(THIS)" ]; then \
+           $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; \
+       else \
+           $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC); \
+       fi
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+       rm -f $(SRC) $(SHA256TEST).c $(SHA512TEST).c evptests.txt newkey.pem testkey.pem \
+                       testreq.pem
+
+clean:
+       rm -f .rnd tmp.bntest tmp.bctest *.o *.obj *.dll lib tags core .pure .nfs* *.old *.bak fluff $(EXE) *.ss *.srl log dummytest
+
+$(DLIBSSL):
+       (cd ..; $(MAKE) DIRS=ssl all)
+
+$(DLIBCRYPTO):
+       (cd ..; $(MAKE) DIRS=crypto all)
+
+BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
+               shlib_target="$(SHLIB_TARGET)"; \
+       fi; \
+       LIBRARIES="$(LIBSSL) $(LIBCRYPTO) $(LIBKRB5)"; \
+       $(MAKE) -f $(TOP)/Makefile.shared -e \
+               CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \
+               LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
+               link_app.$${shlib_target}
+
+FIPS_BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
+               shlib_target="$(SHLIB_TARGET)"; \
+       fi; \
+       LIBRARIES="$(LIBSSL) $(LIBCRYPTO) $(LIBKRB5)"; \
+       if [ -z "$(SHARED_LIBS)" -a -n "$(FIPSCANLIB)" ] ; then \
+               FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; export CC FIPSLD_CC; \
+       fi; \
+       $(MAKE) -f $(TOP)/Makefile.shared -e \
+               CC="$${CC}" APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \
+               LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
+               link_app.$${shlib_target}
+
+$(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
+       @target=$(RSATEST); $(BUILD_CMD)
+
+$(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
+       @target=$(BNTEST); $(BUILD_CMD)
+
+$(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
+       @target=$(ECTEST); $(BUILD_CMD)
+
+$(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
+       @target=$(EXPTEST); $(BUILD_CMD)
+
+$(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
+       @target=$(IDEATEST); $(BUILD_CMD)
+
+$(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
+       @target=$(MD2TEST); $(BUILD_CMD)
+
+$(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
+       @target=$(SHATEST); $(BUILD_CMD)
+
+$(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
+       @target=$(SHA1TEST); $(BUILD_CMD)
+
+$(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
+       @target=$(SHA256TEST); $(BUILD_CMD)
+
+$(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
+       @target=$(SHA512TEST); $(BUILD_CMD)
+
+$(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
+       @target=$(RMDTEST); $(BUILD_CMD)
+
+$(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
+       @target=$(MDC2TEST); $(BUILD_CMD)
+
+$(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
+       @target=$(MD4TEST); $(BUILD_CMD)
+
+$(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
+       @target=$(MD5TEST); $(BUILD_CMD)
+
+$(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
+       @target=$(HMACTEST); $(BUILD_CMD)
+
+$(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO)
+       @target=$(WPTEST); $(BUILD_CMD)
+
+$(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
+       @target=$(RC2TEST); $(BUILD_CMD)
+
+$(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
+       @target=$(BFTEST); $(BUILD_CMD)
+
+$(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
+       @target=$(CASTTEST); $(BUILD_CMD)
+
+$(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
+       @target=$(RC4TEST); $(BUILD_CMD)
+
+$(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
+       @target=$(RC5TEST); $(BUILD_CMD)
+
+$(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
+       @target=$(DESTEST); $(BUILD_CMD)
+
+$(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
+       @target=$(RANDTEST); $(BUILD_CMD)
+
+$(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
+       @target=$(DHTEST); $(BUILD_CMD)
+
+$(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
+       @target=$(DSATEST); $(BUILD_CMD)
+
+$(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
+       @target=$(METHTEST); $(BUILD_CMD)
+
+$(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
+       @target=$(SSLTEST); $(FIPS_BUILD_CMD)
+
+$(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
+       @target=$(ENGINETEST); $(BUILD_CMD)
+
+$(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
+       @target=$(EVPTEST); $(BUILD_CMD)
+
+$(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
+       @target=$(ECDSATEST); $(BUILD_CMD)
+
+$(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
+       @target=$(ECDHTEST); $(BUILD_CMD)
+
+$(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO)
+       @target=$(IGETEST); $(BUILD_CMD)
+
+$(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO)
+       @target=$(JPAKETEST); $(BUILD_CMD)
+
+$(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO)
+       @target=$(ASN1TEST); $(BUILD_CMD)
+
+$(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO)
+       @target=$(SRPTEST); $(BUILD_CMD)
+
+#$(AESTEST).o: $(AESTEST).c
+#      $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
+
+#$(AESTEST)$(EXE_EXT): $(AESTEST).o $(DLIBCRYPTO)
+#      if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
+#        $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
+#      else \
+#        $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
+#      fi
+
+dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
+       @target=dummytest; $(BUILD_CMD)
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+asn1test.o: ../include/openssl/asn1.h ../include/openssl/asn1_mac.h
+asn1test.o: ../include/openssl/bio.h ../include/openssl/buffer.h
+asn1test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+asn1test.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+asn1test.o: ../include/openssl/ecdsa.h ../include/openssl/evp.h
+asn1test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+asn1test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+asn1test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+asn1test.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+asn1test.o: ../include/openssl/sha.h ../include/openssl/stack.h
+asn1test.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+asn1test.o: ../include/openssl/x509_vfy.h asn1test.c
+bftest.o: ../e_os.h ../include/openssl/blowfish.h ../include/openssl/e_os2.h
+bftest.o: ../include/openssl/opensslconf.h bftest.c
+bntest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+bntest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+bntest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+bntest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+bntest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+bntest.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
+bntest.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+bntest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+bntest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+bntest.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+bntest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+bntest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+bntest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+bntest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h bntest.c
+casttest.o: ../e_os.h ../include/openssl/cast.h ../include/openssl/e_os2.h
+casttest.o: ../include/openssl/opensslconf.h casttest.c
+destest.o: ../include/openssl/des.h ../include/openssl/des_old.h
+destest.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
+destest.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+destest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+destest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h destest.c
+dhtest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
+dhtest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+dhtest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
+dhtest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
+dhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+dhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
+dhtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h dhtest.c
+dsatest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
+dsatest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+dsatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+dsatest.o: ../include/openssl/err.h ../include/openssl/lhash.h
+dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
+dsatest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+dsatest.o: ../include/openssl/symhacks.h dsatest.c
+ecdhtest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ecdhtest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
+ecdhtest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ecdhtest.o: ../include/openssl/ecdh.h ../include/openssl/err.h
+ecdhtest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ecdhtest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ecdhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ecdhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
+ecdhtest.o: ../include/openssl/sha.h ../include/openssl/stack.h
+ecdhtest.o: ../include/openssl/symhacks.h ecdhtest.c
+ecdsatest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+ecdsatest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ecdsatest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+ecdsatest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ecdsatest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ecdsatest.o: ../include/openssl/err.h ../include/openssl/evp.h
+ecdsatest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ecdsatest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ecdsatest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ecdsatest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+ecdsatest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ecdsatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ecdsatest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+ecdsatest.o: ecdsatest.c
+ectest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ectest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ectest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+ectest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ectest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ectest.o: ../include/openssl/err.h ../include/openssl/evp.h
+ectest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+ectest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+ectest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+ectest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+ectest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ectest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ectest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ectest.c
+enginetest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
+enginetest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
+enginetest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+enginetest.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+enginetest.o: ../include/openssl/engine.h ../include/openssl/err.h
+enginetest.o: ../include/openssl/evp.h ../include/openssl/lhash.h
+enginetest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+enginetest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+enginetest.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+enginetest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+enginetest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+enginetest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+enginetest.o: enginetest.c
+evp_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+evp_test.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+evp_test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+evp_test.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+evp_test.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+evp_test.o: ../include/openssl/err.h ../include/openssl/evp.h
+evp_test.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+evp_test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+evp_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+evp_test.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+evp_test.o: ../include/openssl/sha.h ../include/openssl/stack.h
+evp_test.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
+evp_test.o: ../include/openssl/x509_vfy.h evp_test.c
+exptest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
+exptest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+exptest.o: ../include/openssl/err.h ../include/openssl/lhash.h
+exptest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+exptest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
+exptest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+exptest.o: ../include/openssl/symhacks.h exptest.c
+hmactest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+hmactest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+hmactest.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+hmactest.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+hmactest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+hmactest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+hmactest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+hmactest.o: ../include/openssl/symhacks.h hmactest.c
+ideatest.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/idea.h
+ideatest.o: ../include/openssl/opensslconf.h ideatest.c
+igetest.o: ../include/openssl/aes.h ../include/openssl/e_os2.h
+igetest.o: ../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
+igetest.o: ../include/openssl/rand.h igetest.c
+jpaketest.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
+jpaketest.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
+jpaketest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+jpaketest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+jpaketest.o: ../include/openssl/symhacks.h jpaketest.c
+md2test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
+md2test.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
+md2test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+md2test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+md2test.o: ../include/openssl/symhacks.h md2test.c
+md4test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+md4test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+md4test.o: ../include/openssl/evp.h ../include/openssl/md4.h
+md4test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+md4test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+md4test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+md4test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h md4test.c
+md5test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+md5test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+md5test.o: ../include/openssl/evp.h ../include/openssl/md5.h
+md5test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+md5test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+md5test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+md5test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h md5test.c
+mdc2test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+mdc2test.o: ../include/openssl/crypto.h ../include/openssl/des.h
+mdc2test.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
+mdc2test.o: ../include/openssl/evp.h ../include/openssl/mdc2.h
+mdc2test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+mdc2test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+mdc2test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+mdc2test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+mdc2test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h mdc2test.c
+randtest.o: ../e_os.h ../include/openssl/e_os2.h
+randtest.o: ../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
+randtest.o: ../include/openssl/rand.h randtest.c
+rc2test.o: ../e_os.h ../include/openssl/e_os2.h
+rc2test.o: ../include/openssl/opensslconf.h ../include/openssl/rc2.h rc2test.c
+rc4test.o: ../e_os.h ../include/openssl/e_os2.h
+rc4test.o: ../include/openssl/opensslconf.h ../include/openssl/rc4.h
+rc4test.o: ../include/openssl/sha.h rc4test.c
+rc5test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
+rc5test.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
+rc5test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+rc5test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+rc5test.o: ../include/openssl/symhacks.h rc5test.c
+rmdtest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+rmdtest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+rmdtest.o: ../include/openssl/evp.h ../include/openssl/obj_mac.h
+rmdtest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+rmdtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+rmdtest.o: ../include/openssl/ripemd.h ../include/openssl/safestack.h
+rmdtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h rmdtest.c
+rsa_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+rsa_test.o: ../include/openssl/bn.h ../include/openssl/crypto.h
+rsa_test.o: ../include/openssl/e_os2.h ../include/openssl/err.h
+rsa_test.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
+rsa_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+rsa_test.o: ../include/openssl/rand.h ../include/openssl/rsa.h
+rsa_test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
+rsa_test.o: ../include/openssl/symhacks.h rsa_test.c
+sha1test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+sha1test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+sha1test.o: ../include/openssl/evp.h ../include/openssl/obj_mac.h
+sha1test.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+sha1test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+sha1test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+sha1test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h sha1test.c
+shatest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+shatest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+shatest.o: ../include/openssl/evp.h ../include/openssl/obj_mac.h
+shatest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
+shatest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+shatest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+shatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h shatest.c
+srptest.o: ../include/openssl/bio.h ../include/openssl/bn.h
+srptest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+srptest.o: ../include/openssl/err.h ../include/openssl/lhash.h
+srptest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+srptest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
+srptest.o: ../include/openssl/safestack.h ../include/openssl/srp.h
+srptest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h srptest.c
+ssltest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ssltest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ssltest.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ssltest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+ssltest.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
+ssltest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ssltest.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ssltest.o: ../include/openssl/engine.h ../include/openssl/err.h
+ssltest.o: ../include/openssl/evp.h ../include/openssl/hmac.h
+ssltest.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ssltest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ssltest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssltest.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssltest.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssltest.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+ssltest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+ssltest.o: ../include/openssl/sha.h ../include/openssl/srp.h
+ssltest.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
+ssltest.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssltest.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssltest.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssltest.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+ssltest.o: ../include/openssl/x509v3.h ssltest.c
+wp_test.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+wp_test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+wp_test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
+wp_test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+wp_test.o: ../include/openssl/whrlpool.h wp_test.c
index c938bcf..dfef799 100644 (file)
@@ -415,8 +415,10 @@ sub run_smime_tests {
 }
 
 sub cmp_files {
+    use FileHandle;
     my ( $f1, $f2 ) = @_;
-    my ( $fp1, $fp2 );
+    my $fp1 = FileHandle->new();
+    my $fp2 = FileHandle->new();
 
     my ( $rd1, $rd2 );
 
index 316bbb0..4f80be8 100644 (file)
@@ -881,7 +881,13 @@ bad:
                meth=SSLv23_method();
 #else
 #ifdef OPENSSL_NO_SSL2
-       meth=SSLv3_method();
+       if (tls1)
+               meth=TLSv1_method();
+       else
+       if (ssl3)
+               meth=SSLv3_method();
+       else
+               meth=SSLv23_method();
 #else
        meth=SSLv2_method();
 #endif
index 6debdb6..aa86b2b 100755 (executable)
@@ -3511,6 +3511,7 @@ BIO_set_callback                        3903      EXIST::FUNCTION:
 d2i_ASIdOrRange                         3904   EXIST::FUNCTION:RFC3779
 i2d_ASIdentifiers                       3905   EXIST::FUNCTION:RFC3779
 CRYPTO_memcmp                           3906   EXIST::FUNCTION:
+BN_consttime_swap                       3907   EXIST::FUNCTION:
 SEED_decrypt                            3908   EXIST::FUNCTION:SEED
 SEED_encrypt                            3909   EXIST::FUNCTION:SEED
 SEED_cbc_encrypt                        3910   EXIST::FUNCTION:SEED
index 1f1e13f..b41bb45 100644 (file)
@@ -18,7 +18,7 @@ $out_def="out32";
 $tmp_def="tmp32";
 $inc_def="inc32";
 #enable max error messages, disable most common warnings
-$cflags="-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl  -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp ";
+$cflags="-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl  -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp -D_timeb=timeb -D_ftime=ftime ";
 if ($debug)
 {
     $cflags.="-Od -y -v -vi- -D_DEBUG";
@@ -38,7 +38,7 @@ $efile="";
 $exep='.exe';
 if ($no_sock)
        { $ex_libs=""; }
-else   { $ex_libs="cw32mt.lib import32.lib"; }
+else   { $ex_libs="cw32mt.lib import32.lib crypt32.lib ws2_32.lib"; }
 
 # static library stuff
 $mklib='tlib /P64';
@@ -51,8 +51,8 @@ $lfile='';
 $shlib_ex_obj="";
 $app_ex_obj="c0x32.obj"; 
 
-$asm='nasmw -f obj -d__omf__';
-$asm.=" /Zi" if $debug;
+$asm=(`nasm -v 2>NUL` ge `nasmw -v 2>NUL`?"nasm":"nasmw")." -f obj -d__omf__";
+$asm.=" -g" if $debug;
 $afile='-o';
 
 $bn_mulw_obj='';
index 6c550f5..3705fc7 100644 (file)
@@ -27,6 +27,8 @@ $zlib_lib="zlib1.lib";
 $l_flags =~ s/-L("\[^"]+")/\/libpath:$1/g;
 $l_flags =~ s/-L(\S+)/\/libpath:$1/g;
 
+my $ff = "";
+
 # C compiler stuff
 $cc='cl';
 if ($FLAVOR =~ /WIN64/)
@@ -126,6 +128,7 @@ else        # Win32
     $base_cflags= " $mf_cflag";
     my $f = $shlib || $fips ?' /MD':' /MT';
     $lib_cflag='/Zl' if (!$shlib);     # remove /DEFAULTLIBs from static lib
+    $ff = "/fixed";
     $opt_cflags=$f.' /Ox /O2 /Ob2';
     $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
     $lflags="/nologo /subsystem:console /opt:ref";
@@ -318,7 +321,7 @@ sub do_lib_rule
                        $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
                        $ret.="\tSET FIPS_TARGET=$target\n";
                        $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
-                       $ret.="\t\$(FIPSLINK) \$(MLFLAGS) /map $base_arg $efile$target ";
+                       $ret.="\t\$(FIPSLINK) \$(MLFLAGS) $ff /map $base_arg $efile$target ";
                        $ret.="$name @<<\n  \$(SHLIB_EX_OBJ) $objs \$(EX_LIBS) ";
                        $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
                        }
@@ -355,7 +358,7 @@ sub do_link_rule
                $ret.="\tSET FIPS_TARGET=$target\n";
                $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
                $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
-               $ret.="\t\$(FIPSLINK) \$(LFLAGS) /map $efile$target @<<\n";
+               $ret.="\t\$(FIPSLINK) \$(LFLAGS) $ff /map $efile$target @<<\n";
                $ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
                }
        else
index 9416d59..8775cb5 100755 (executable)
@@ -90,4 +90,8 @@ fi
 
 cmd="$1${EXE_EXT}"
 shift
-exec "$cmd" "$@"
+if [ $# -eq 0 ]; then
+       exec "$cmd"     # old sh, such as Tru64 4.x, fails to expand empty "$@"
+else
+       exec "$cmd" "$@"
+fi