summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2005-02-25 16:58:19 +0000
committerRichard Levitte <levitte@openssl.org>2005-02-25 16:58:19 +0000
commit0e785e5e093d4c24eaf531dd5ffc655e3a91c6b5 (patch)
tree7c0a37f818c204f2eea0df4f5840f8a6a00c96d2
parentafcff52ef7256809a89a48347c7185644f56bb25 (diff)
downloadopenssl-new-0e785e5e093d4c24eaf531dd5ffc655e3a91c6b5.tar.gz
Many changes from 0.9.8-dev.
-rw-r--r--CHANGES86
-rwxr-xr-xConfigure759
-rw-r--r--FAQ37
-rw-r--r--INSTALL14
-rw-r--r--INSTALL.DJGPP47
-rw-r--r--Makefile.org162
-rw-r--r--Makefile.shared220
-rw-r--r--NEWS13
-rw-r--r--PROBLEMS9
-rw-r--r--TABLE2282
-rw-r--r--apps/CA.pl.in18
-rw-r--r--apps/CA.sh10
-rw-r--r--apps/Makefile.ssl29
-rw-r--r--apps/apps.c202
-rw-r--r--apps/apps.h3
-rw-r--r--apps/ca.c55
-rw-r--r--apps/crl.c6
-rw-r--r--apps/der_chop.in305
-rw-r--r--apps/dgst.c35
-rw-r--r--apps/ec.c4
-rw-r--r--apps/ecparam.c4
-rw-r--r--apps/openssl-vms.cnf53
-rw-r--r--apps/openssl.cnf53
-rw-r--r--apps/pkcs12.c19
-rw-r--r--apps/req.c11
-rw-r--r--apps/s_apps.h3
-rw-r--r--apps/s_cb.c32
-rw-r--r--apps/s_client.c77
-rw-r--r--apps/s_server.c121
-rw-r--r--apps/s_socket.c1
-rw-r--r--apps/smime.c539
-rw-r--r--apps/speed.c5
-rw-r--r--apps/verify.c44
-rw-r--r--apps/x509.c11
-rw-r--r--certs/ICE-CA.pem59
-rw-r--r--certs/ICE-root.pem48
-rw-r--r--certs/ICE-user.pem63
-rw-r--r--certs/ICE.crl9
-rw-r--r--certs/RegTP-4R.pem19
-rw-r--r--certs/ca-cert.pem33
-rw-r--r--certs/dsa-ca.pem43
-rw-r--r--certs/dsa-pca.pem49
-rw-r--r--certs/factory.pem15
-rw-r--r--certs/nortelCA.pem16
-rw-r--r--certs/pca-cert.pem33
-rw-r--r--certs/rsa-cca.pem19
-rw-r--r--certs/timCA.pem16
-rw-r--r--certs/tjhCA.pem15
-rw-r--r--certs/vsign2.pem18
-rw-r--r--certs/vsigntca.pem18
-rwxr-xr-xconfig230
-rw-r--r--crypto/LPdir_unix.c52
-rw-r--r--crypto/LPdir_vms.c26
-rw-r--r--crypto/LPdir_win.c118
-rw-r--r--crypto/LPdir_win32.c27
-rw-r--r--crypto/LPdir_wince.c28
-rw-r--r--crypto/Makefile.ssl27
-rw-r--r--crypto/aes/Makefile.ssl26
-rw-r--r--crypto/aes/aes.h4
-rw-r--r--crypto/aes/aes_cbc.c44
-rw-r--r--crypto/aes/aes_cfb.c67
-rw-r--r--crypto/aes/aes_core.c21
-rw-r--r--crypto/aes/aes_ctr.c8
-rw-r--r--crypto/aes/aes_locl.h6
-rw-r--r--crypto/aes/asm/aes-ia64.S1424
-rw-r--r--crypto/asn1/Makefile.ssl2
-rw-r--r--crypto/asn1/a_bitstr.c8
-rw-r--r--crypto/asn1/a_digest.c7
-rw-r--r--crypto/asn1/a_enum.c2
-rw-r--r--crypto/asn1/a_gentm.c12
-rw-r--r--crypto/asn1/a_int.c21
-rw-r--r--crypto/asn1/a_set.c23
-rw-r--r--crypto/asn1/a_type.c5
-rw-r--r--crypto/asn1/a_utctm.c11
-rw-r--r--crypto/asn1/a_verify.c7
-rw-r--r--crypto/asn1/asn1.h10
-rw-r--r--crypto/asn1/asn1_err.c8
-rw-r--r--crypto/asn1/asn1_lib.c1
-rw-r--r--crypto/asn1/evp_asn1.c6
-rw-r--r--crypto/asn1/p5_pbe.c26
-rw-r--r--crypto/asn1/t_bitst.c5
-rw-r--r--crypto/asn1/x_crl.c40
-rw-r--r--crypto/asn1/x_name.c19
-rw-r--r--crypto/asn1/x_pubkey.c52
-rw-r--r--crypto/bf/Makefile.ssl26
-rw-r--r--crypto/bio/Makefile.ssl2
-rw-r--r--crypto/bio/b_dump.c65
-rw-r--r--crypto/bio/bio.h9
-rw-r--r--crypto/bio/bss_file.c2
-rw-r--r--crypto/bn/Makefile.ssl93
-rw-r--r--crypto/bn/asm/alpha.s3199
-rw-r--r--crypto/bn/asm/alpha.s.works533
-rw-r--r--crypto/bn/asm/alpha.works/add.pl119
-rw-r--r--crypto/bn/asm/alpha.works/div.pl144
-rw-r--r--crypto/bn/asm/alpha.works/mul.pl116
-rw-r--r--crypto/bn/asm/alpha.works/mul_add.pl120
-rw-r--r--crypto/bn/asm/alpha.works/mul_c4.pl213
-rw-r--r--crypto/bn/asm/alpha.works/mul_c4.works.pl98
-rw-r--r--crypto/bn/asm/alpha.works/mul_c8.pl177
-rw-r--r--crypto/bn/asm/alpha.works/sqr.pl113
-rw-r--r--crypto/bn/asm/alpha.works/sqr_c4.pl109
-rw-r--r--crypto/bn/asm/alpha.works/sqr_c8.pl132
-rw-r--r--crypto/bn/asm/alpha.works/sub.pl108
-rw-r--r--crypto/bn/asm/alpha/add.pl118
-rw-r--r--crypto/bn/asm/alpha/div.pl144
-rw-r--r--crypto/bn/asm/alpha/mul.pl104
-rw-r--r--crypto/bn/asm/alpha/mul_add.pl123
-rw-r--r--crypto/bn/asm/alpha/mul_c4.pl215
-rw-r--r--crypto/bn/asm/alpha/mul_c4.works.pl98
-rw-r--r--crypto/bn/asm/alpha/mul_c8.pl177
-rw-r--r--crypto/bn/asm/alpha/sqr.pl113
-rw-r--r--crypto/bn/asm/alpha/sqr_c4.pl109
-rw-r--r--crypto/bn/asm/alpha/sqr_c8.pl132
-rw-r--r--crypto/bn/asm/alpha/sub.pl108
-rw-r--r--crypto/bn/asm/bn-586.pl9
-rw-r--r--crypto/bn/asm/bn-alpha.pl571
-rw-r--r--crypto/bn/asm/ca.pl33
-rw-r--r--crypto/bn/asm/co-alpha.pl116
-rw-r--r--crypto/bn/asm/mips1.s539
-rw-r--r--crypto/bn/asm/pa-risc.s710
-rw-r--r--crypto/bn/asm/pa-risc2.s.old416
-rw-r--r--crypto/bn/asm/r3000.s646
-rw-r--r--crypto/bn/bn_ctx.c3
-rw-r--r--crypto/bn/bn_mont.c2
-rw-r--r--crypto/bn/bn_print.c20
-rw-r--r--crypto/bn/bntest.c22
-rw-r--r--crypto/buffer/Makefile.ssl2
-rw-r--r--crypto/cast/Makefile.ssl31
-rw-r--r--crypto/comp/Makefile.ssl5
-rw-r--r--crypto/comp/c_zlib.c13
-rw-r--r--crypto/conf/Makefile.ssl2
-rw-r--r--crypto/cryptlib.c46
-rw-r--r--crypto/cryptlib.h3
-rw-r--r--crypto/crypto-lib.com12
-rw-r--r--crypto/crypto.h3
-rw-r--r--crypto/des/Makefile.ssl55
-rw-r--r--crypto/des/cfb64ede.c1
-rw-r--r--crypto/dh/Makefile.ssl2
-rw-r--r--crypto/dsa/Makefile.ssl2
-rw-r--r--crypto/dsa/dsa_gen.c40
-rw-r--r--crypto/dso/Makefile.ssl2
-rw-r--r--crypto/ec/Makefile.ssl2
-rw-r--r--crypto/ec/ec2_smpl.c49
-rw-r--r--crypto/ec/ecp_smpl.c53
-rw-r--r--crypto/ecdh/Makefile.ssl2
-rw-r--r--crypto/ecdh/ech_key.c2
-rw-r--r--crypto/ecdh/ech_lib.c8
-rw-r--r--crypto/ecdsa/Makefile.ssl2
-rw-r--r--crypto/ecdsa/ecdsatest.c2
-rw-r--r--crypto/ecdsa/ecs_lib.c8
-rw-r--r--crypto/ecdsa/ecs_sign.c2
-rw-r--r--crypto/ecdsa/ecs_vrf.c2
-rw-r--r--crypto/engine/Makefile.ssl16
-rw-r--r--crypto/engine/eng_all.c3
-rw-r--r--crypto/engine/engine.h1
-rw-r--r--crypto/err/Makefile.ssl2
-rw-r--r--crypto/evp/Makefile.ssl2
-rw-r--r--crypto/evp/bio_md.c10
-rw-r--r--crypto/evp/bio_ok.c60
-rw-r--r--crypto/evp/c_all.c6
-rw-r--r--crypto/evp/evp_pkey.c124
-rw-r--r--crypto/hmac/Makefile.ssl2
-rw-r--r--crypto/hmac/hmac.c2
-rw-r--r--crypto/idea/Makefile.ssl2
-rw-r--r--crypto/krb5/Makefile.ssl2
-rw-r--r--crypto/lhash/Makefile.ssl2
-rw-r--r--crypto/md2/Makefile.ssl2
-rw-r--r--crypto/md2/md2.h2
-rw-r--r--crypto/md2/md2test.c2
-rw-r--r--crypto/md32_common.h8
-rw-r--r--crypto/md4/Makefile.ssl2
-rw-r--r--crypto/md4/md4.h2
-rw-r--r--crypto/md4/md4test.c2
-rw-r--r--crypto/md5/Makefile.ssl38
-rw-r--r--crypto/md5/md5.h2
-rw-r--r--crypto/md5/md5test.c2
-rw-r--r--crypto/mdc2/Makefile.ssl2
-rw-r--r--crypto/mdc2/mdc2.h2
-rw-r--r--crypto/mdc2/mdc2dgst.c3
-rw-r--r--crypto/o_dir.c2
-rw-r--r--crypto/o_str.c21
-rw-r--r--crypto/o_time.c21
-rw-r--r--crypto/objects/Makefile.ssl13
-rw-r--r--crypto/objects/o_names.c7
-rw-r--r--crypto/objects/obj_dat.c12
-rw-r--r--crypto/objects/obj_dat.h2419
-rw-r--r--crypto/objects/obj_err.c4
-rw-r--r--crypto/objects/obj_mac.h512
-rw-r--r--crypto/objects/obj_mac.num490
-rw-r--r--crypto/objects/objects.h2
-rw-r--r--crypto/objects/objects.txt9
-rw-r--r--crypto/ocsp/Makefile.ssl2
-rw-r--r--crypto/pem/Makefile.ssl2
-rw-r--r--crypto/pem/pem_lib.c12
-rw-r--r--crypto/perlasm/alpha.pl434
-rw-r--r--crypto/perlasm/x86asm.pl21
-rw-r--r--crypto/perlasm/x86ms.pl49
-rw-r--r--crypto/perlasm/x86mwasm_nw.pl363
-rw-r--r--crypto/perlasm/x86nasm.pl114
-rw-r--r--crypto/perlasm/x86nasm_nw.pl364
-rw-r--r--crypto/perlasm/x86unix.pl169
-rw-r--r--crypto/pkcs12/Makefile.ssl2
-rw-r--r--crypto/pkcs12/p12_crpt.c6
-rw-r--r--crypto/pkcs12/p12_init.c12
-rw-r--r--crypto/pkcs12/p12_kiss.c18
-rw-r--r--crypto/pkcs12/p12_mutl.c5
-rw-r--r--crypto/pkcs7/Makefile.ssl2
-rw-r--r--crypto/pkcs7/pk7_attr.c9
-rw-r--r--crypto/pkcs7/pk7_doit.c42
-rw-r--r--crypto/pkcs7/pk7_lib.c48
-rw-r--r--crypto/pkcs7/pk7_smime.c48
-rw-r--r--crypto/rand/Makefile.ssl2
-rw-r--r--crypto/rand/rand_egd.c8
-rw-r--r--crypto/rand/rand_unix.c35
-rw-r--r--crypto/rand/rand_vms.c11
-rw-r--r--crypto/rand/rand_win.c102
-rw-r--r--crypto/rc2/Makefile.ssl2
-rw-r--r--crypto/rc4/Makefile.ssl55
-rw-r--r--crypto/rc4/asm/rc4-586.pl114
-rwxr-xr-xcrypto/rc4/asm/rc4-amd64.pl176
-rw-r--r--crypto/rc4/rc4.c3
-rw-r--r--crypto/rc4/rc4.h4
-rw-r--r--crypto/rc4/rc4_enc.c4
-rw-r--r--crypto/rc4/rc4_locl.h1
-rw-r--r--crypto/rc4/rc4_skey.c51
-rw-r--r--crypto/rc4/rc4test.c36
-rw-r--r--crypto/rc5/Makefile.ssl26
-rw-r--r--crypto/ripemd/Makefile.ssl26
-rw-r--r--crypto/ripemd/ripemd.h2
-rw-r--r--crypto/ripemd/rmdtest.c2
-rw-r--r--crypto/rsa/Makefile.ssl2
-rw-r--r--crypto/rsa/rsa_gen.c16
-rw-r--r--crypto/rsa/rsa_saos.c7
-rw-r--r--crypto/rsa/rsa_sign.c9
-rw-r--r--crypto/sha/Makefile.ssl54
-rw-r--r--crypto/sha/asm/sha1-586.pl71
-rwxr-xr-xcrypto/sha/asm/sha512-ia64.pl2
-rw-r--r--crypto/sha/sha.h5
-rw-r--r--crypto/sha/sha1test.c2
-rw-r--r--crypto/sha/sha256.c14
-rw-r--r--crypto/sha/sha256t.c44
-rw-r--r--crypto/sha/sha512.c76
-rw-r--r--crypto/sha/sha512t.c71
-rw-r--r--crypto/sha/sha_locl.h5
-rw-r--r--crypto/sha/shatest.c2
-rw-r--r--crypto/stack/Makefile.ssl2
-rw-r--r--crypto/stack/safestack.h87
-rw-r--r--crypto/stack/stack.c7
-rw-r--r--crypto/stack/stack.h1
-rw-r--r--crypto/store/Makefile.ssl2
-rw-r--r--crypto/symhacks.h2
-rw-r--r--crypto/txt_db/Makefile.ssl2
-rw-r--r--crypto/ui/Makefile.ssl2
-rw-r--r--crypto/x509/Makefile.ssl20
-rw-r--r--crypto/x509/by_file.c4
-rw-r--r--crypto/x509/x509.h2
-rw-r--r--crypto/x509/x509_cmp.c40
-rw-r--r--crypto/x509/x509_lu.c28
-rw-r--r--crypto/x509/x509_r2x.c6
-rw-r--r--crypto/x509/x509_req.c32
-rw-r--r--crypto/x509/x509_txt.c17
-rw-r--r--crypto/x509/x509_vfy.c283
-rw-r--r--crypto/x509/x509_vfy.h109
-rw-r--r--crypto/x509/x509cset.c1
-rw-r--r--crypto/x509/x_all.c1
-rw-r--r--crypto/x509v3/Makefile.ssl36
-rw-r--r--crypto/x509v3/ext_dat.h3
-rw-r--r--crypto/x509v3/v3_bitst.c7
-rw-r--r--crypto/x509v3/v3_ia5.c5
-rw-r--r--crypto/x509v3/v3_purp.c77
-rw-r--r--crypto/x509v3/v3err.c14
-rw-r--r--crypto/x509v3/x509v3.h29
-rw-r--r--demos/engines/rsaref/rsaref.c6
-rw-r--r--doc/apps/asn1parse.pod2
-rw-r--r--doc/apps/ca.pod9
-rw-r--r--doc/apps/config.pod2
-rw-r--r--doc/apps/dgst.pod6
-rw-r--r--doc/apps/ecparam.pod12
-rw-r--r--doc/apps/enc.pod2
-rw-r--r--doc/apps/s_client.pod16
-rw-r--r--doc/apps/s_server.pod23
-rw-r--r--doc/crypto/ASN1_STRING_print_ex.pod6
-rw-r--r--doc/crypto/ERR_error_string.pod2
-rw-r--r--doc/crypto/EVP_BytesToKey.pod2
-rw-r--r--doc/crypto/X509_NAME_print_ex.pod4
-rw-r--r--doc/crypto/blowfish.pod2
-rw-r--r--doc/crypto/des_modes.pod2
-rw-r--r--doc/ssl/SSL_shutdown.pod2
-rw-r--r--e_os.h1
-rw-r--r--e_os2.h7
-rwxr-xr-xms/test.bat40
-rwxr-xr-xms/testss.bat2
-rw-r--r--ssl/Makefile.ssl2
-rw-r--r--ssl/ssl.h10
-rw-r--r--ssl/ssl_cert.c14
-rw-r--r--ssl/ssl_ciph.c2
-rw-r--r--ssl/ssl_lib.c43
-rw-r--r--ssl/ssltest.c492
-rw-r--r--test/CAss.cnf4
-rw-r--r--test/Makefile.ssl242
-rw-r--r--test/Uss.cnf8
-rw-r--r--test/tcrl9
-rw-r--r--test/testca7
-rw-r--r--test/testenc2
-rw-r--r--test/testgen6
-rw-r--r--test/testss86
-rw-r--r--test/testssl14
-rw-r--r--test/tpkcs79
-rw-r--r--test/tpkcs7d9
-rw-r--r--test/treq9
-rw-r--r--test/trsa11
-rw-r--r--test/tsid9
-rw-r--r--test/tx5099
-rwxr-xr-xutil/cygwin.sh8
-rwxr-xr-xutil/libeay.num925
-rwxr-xr-xutil/mkdef.pl2
-rw-r--r--util/mkerr.pl4
-rwxr-xr-xutil/mklink.pl1
-rwxr-xr-xutil/mkstack.pl1
-rw-r--r--util/pl/VC-CE.pl2
320 files changed, 9604 insertions, 18252 deletions
diff --git a/CHANGES b/CHANGES
index 49630ea76e..10302e0dda 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,49 @@
Changes between 0.9.7e and 0.9.8 [xx XXX xxxx]
+ *) Change ./Configure so that certain algorithms can be disabled by default.
+ The new counterpiece to "no-xxx" is "enable-xxx", and RC5 will now be
+ disabled unless "enable-rc5" is specified.
+ [Bodo Moeller]
+
+ *) Add processing of proxy certificates (see RFC 3820). This work was
+ sponsored by KTH (The Royal Institute of Technology in Stockholm) and
+ EGEE (Enabling Grids for E-science in Europe).
+ [Richard Levitte]
+
+ *) RC4 performance overhaul on modern architectures/implementations, such
+ as Intel P4, IA-64 and AMD64.
+ [Andy Polyakov]
+
+ *) New utility extract-section.pl. This can be used specify an alternative
+ section number in a pod file instead of having to treat each file as
+ a separate case in Makefile. This can be done by adding two lines to the
+ pod file:
+
+ =for comment openssl_section:XXX
+
+ The blank line is mandatory.
+
+ [Steve Henson]
+
+ *) New arguments -certform, -keyform and -pass for s_client and s_server
+ to allow alternative format key and certificate files and passphrase
+ sources.
+ [Steve Henson]
+
+ *) New structure X509_VERIFY_PARAM which combines current verify parameters,
+ update associated structures and add various utility functions.
+
+ Add new policy related verify parameters, include policy checking in
+ standard verify code. Enhance 'smime' application with extra parameters
+ to support policy checking and print out.
+ [Steve Henson]
+
+ *) Add a new engine to support VIA PadLock ACE extensions in the VIA C3
+ Nehemiah processors. These extensions support AES encryption in hardware
+ as well as RNG (though RNG support is currently disabled).
+ [Michal Ludvig <michal@logix.cz>, with help from Andy Polyakov]
+
*) Deprecate BN_[get|set]_params() functions (they were ignored internally).
[Geoff Thorpe]
@@ -710,7 +753,48 @@
differing sizes.
[Richard Levitte]
- Changes between 0.9.7d and 0.9.7e [XX xxx XXXX]
+ Changes between 0.9.7e and 0.9.7f [XX xxx XXXX]
+
+ *) Fix hang in EGD/PRNGD query when communication socket is closed
+ prematurely by EGD/PRNGD.
+ [Darren Tucker <dtucker@zip.com.au> via Lutz Jänicke, resolves #1014]
+
+ *) Prompt for pass phrases when appropriate for PKCS12 input format.
+ [Steve Henson]
+
+ *) Add lots of checks for memory allocation failure, error codes to indicate
+ failure and freeing up memory if a failure occurs.
+ [Nauticus Networks SSL Team <openssl@nauticusnet.com>, Steve Henson]
+
+ *) Add new -passin argument to dgst.
+ [Steve Henson]
+
+ *) Perform some character comparisons of different types in X509_NAME_cmp:
+ this is needed for some certificates that reencode DNs into UTF8Strings
+ (in violation of RFC3280) and can't or wont issue name rollover
+ certificates.
+ [Steve Henson]
+
+ *) Make an explicit check during certificate validation to see that
+ the CA setting in each certificate on the chain is correct. As a
+ side effect always do the following basic checks on extensions,
+ not just when there's an associated purpose to the check:
+
+ - if there is an unhandled critical extension (unless the user
+ has chosen to ignore this fault)
+ - if the path length has been exceeded (if one is set at all)
+ - that certain extensions fit the associated purpose (if one has
+ been given)
+ [Richard Levitte]
+
+ Changes between 0.9.7d and 0.9.7e [25 Oct 2004]
+
+ *) Avoid a race condition when CRLs are checked in a multi threaded
+ environment. This would happen due to the reordering of the revoked
+ entries during signature checking and serial number lookup. Now the
+ encoding is cached and the serial number sort performed under a lock.
+ Add new STACK function sk_is_sorted().
+ [Steve Henson]
*) Add Delta CRL to the extension code.
[Steve Henson]
diff --git a/Configure b/Configure
index d8ae13c356..bd9d4a6495 100755
--- a/Configure
+++ b/Configure
@@ -10,7 +10,7 @@ use strict;
# see INSTALL for instructions.
-my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
+my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
# Options:
#
@@ -55,6 +55,7 @@ my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-
# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared
# library and will be loaded in run-time by the OpenSSL library.
# 386 generate 80386 code
+# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
# -<xxx> +<xxx> compiler options are passed through
#
@@ -86,9 +87,15 @@ my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-
# (intended for 64-bit CPUs running 32-bit OS).
# BF_PTR use 'pointer arithmatic' for Blowfish (unsafe on Alpha).
# BF_PTR2 intel specific version (generic version is more efficient).
+#
+# Following are set automatically by this script
+#
# MD5_ASM use some extra md5 assember,
# SHA1_ASM use some extra sha1 assember, must define L_ENDIAN for x86
# RMD160_ASM use some extra ripemd160 assember,
+# SHA256_ASM sha256_block is implemented in assembler
+# SHA512_ASM sha512_block is implemented in assembler
+# AES_ASM ASE_[en|de]crypt is implemented in assembler
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
@@ -107,19 +114,25 @@ my $tlib="-lnsl -lsocket";
my $bits1="THIRTY_TWO_BIT ";
my $bits2="SIXTY_FOUR_BIT ";
-my $x86_elf_asm="asm/bn86-elf.o asm/co86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm/bx86-elf.o:asm/mx86-elf.o:asm/sx86-elf.o:asm/cx86-elf.o:asm/rx86-elf.o:asm/rm86-elf.o:asm/r586-elf.o";
-my $x86_out_asm="asm/bn86-out.o asm/co86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
-my $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
+my $x86_elf_asm="x86cpuid-elf.o:bn86-elf.o co86-elf.o:dx86-elf.o yx86-elf.o:ax86-elf.o:bx86-elf.o:mx86-elf.o:sx86-elf.o s512sse2-elf.o:cx86-elf.o:rx86-elf.o:rm86-elf.o:r586-elf.o";
+my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o:dx86-cof.o yx86-cof.o:ax86-cof.o:bx86-cof.o:mx86-cof.o:sx86-cof.o s512sse2-cof.o:cx86-cof.o:rx86-cof.o:/rm86-cof.o:r586-cof.o";
+my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o:rm86-out.o:r586-out.o";
-my $mips3_irix_asm="asm/mips3.o::::::::";
-# There seems to be boundary faults in asm/alpha.s.
-#my $alpha_asm="asm/alpha.o::::::::";
-my $alpha_asm="::::::::";
+my $x86_64_asm="amd64cpuid.o:x86_64-gcc.o:::::::rc4-amd64.o::";
+my $ia64_asm=":ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o::";
-# -DB_ENDIAN slows things down on a sparc for md5, but helps sha1.
-# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
+my $no_asm="::::::::::";
-#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $bn_obj : $des_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags
+# As for $BSDthreads. Idea is to maintain "collective" set of flags,
+# which would cover all BSD flavors. -pthread applies to them all,
+# but is treated differently. OpenBSD expands is as -D_POSIX_THREAD
+# -lc_r, which is sufficient. FreeBSD 4.x expands it as -lc_r,
+# which has to be accompanied by explicit -D_THREAD_SAFE and
+# sometimes -D_REENTRANT. FreeBSD 5.x expands it as -lc_r, which
+# seems to be sufficient?
+my $BSDthreads="-pthread -D_THREAD_SAFE -D_REENTRANT";
+
+#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $cpuid_obj : $bn_obj : $des_obj : $aes_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags
my %table=(
# File 'TABLE' (created by 'make TABLE') contains the data from this list,
@@ -134,21 +147,25 @@ my %table=(
# Our development configs
"purify", "purify gcc:-g -DPURIFY -Wall::(unknown)::-lsocket -lnsl::::",
"debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror::(unknown)::-lefence::::",
-"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::asm/bn86-elf.o asm/co86-elf.o",
+"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown):::::bn86-elf.o co86-elf.o",
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
"debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(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:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -m486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
-"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32::::win32:cygwin-shared:::.dll",
-"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
-"debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT::dlfcn:linux-shared",
+"debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
+"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
+"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
+"debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-geoff","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-geoff","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
+"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
+"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"dist", "cc:-O::(unknown)::::::",
# Basic configs that should work on any (32 and less bit) box
@@ -156,10 +173,10 @@ my %table=(
"cc", "cc:-O::(unknown)::::::",
####VOS Configurations
-"vos-gcc","gcc:-b hppa1.1-stratus-vos -O3 -Wall -Wuninitialized -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map:BN_LLONG:::::::::::::.so:",
-"debug-vos-gcc","gcc:-b hppa1.1-stratus-vos -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:::::::::::::.so:",
-"vos-vcc","vcc:-b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map::::::::::::::.so:",
-"debug-vos-vcc","vcc:-b i386-stratus-vos -O0 -g -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map::::::::::::::.so:",
+"vos-gcc","gcc:-b hppa1.1-stratus-vos -O3 -Wall -Wuninitialized -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
+"debug-vos-gcc","gcc:-b hppa1.1-stratus-vos -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
+"vos-vcc","vcc:-b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map::${no_asm}:::::.so:",
+"debug-vos-vcc","vcc:-b i386-stratus-vos -O0 -g -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map::${no_asm}:::::.so:",
#### Solaris x86 with GNU C setups
# -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it
@@ -168,66 +185,47 @@ my %table=(
# 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
# error message.
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
#### Solaris x86 with Sun C setups
-"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
#### SPARC Solaris with GNU C setups
-"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:asm/des_enc-sparc.o fcrypt_b.o::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
-"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8
-# but keep the assembler modules.
-"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus-gcc27.o:asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
+"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
####
-"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
#### SPARC Solaris with Sun C setups
-# DO NOT use /xO[34] on sparc with SC3.0. It is broken, and will not pass the tests
-"solaris-sparc-sc3","cc:-fast -O -Xa -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
# SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
# SC5.0 note: Compiler common patch 107357-01 or later is required!
-"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:asm/des_enc-sparc.o fcrypt_b.o::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:-xarch=v9:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
+"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:-xarch=v9:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
####
-"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-#### SPARC Linux setups
-"linux-sparcv7","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::",
-# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
-# assisted with debugging of following two configs.
-"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:asm/des_enc-sparc.o fcrypt_b.o::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# it's a real mess with -mcpu=ultrasparc option under Linux, but
-# -Wa,-Av8plus should do the trick no matter what.
-"linux-sparcv9","gcc:-mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# GCC 3.1 is a requirement
-"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::asm/des_enc-sparc.o fcrypt_b.o::asm/md5-sparcv9.o::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# Sunos configs, assuming sparc for the gcc one.
-##"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:::",
-"sunos-gcc","gcc:-O3 -mv8 -Dssize_t=int::(unknown):SUNOS::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:::",
+#### SunOS configs, assuming sparc for the gcc one.
+#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
+"sunos-gcc","gcc:-O3 -mv8 -Dssize_t=int::(unknown):SUNOS::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:${no_asm}::",
#### IRIX 5.x configs
# -mips2 flag is added by ./config when appropriate.
-"irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::::::::dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"irix-cc", "cc:-O2 -use_readonly_const -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC2 DES_UNROLL BF_PTR::::::::::dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${no_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"irix-cc", "cc:-O2 -use_readonly_const -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC2 DES_UNROLL BF_PTR:${no_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
#### IRIX 6.x configs
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
# './Configure irix-cc -o32' manually.
-# -mips4 flag is added by ./config when appropriate.
-"irix-mips3-gcc","gcc:-mabi=n32 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT:${mips3_irix_asm}:dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:${mips3_irix_asm}:dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"irix-mips3-gcc","gcc:-mabi=n32 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT::mips3.o::::::::::dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT::mips3.o::::::::::dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
# N64 ABI builds.
-"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips3_irix_asm}:dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips3_irix_asm}:dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::mips3.o::::::::::dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::mips3.o::::::::::dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
#### Unified HP-UX ANSI C configs.
# Special notes:
@@ -258,89 +256,43 @@ my %table=(
# <appro@fy.chalmers.se>
#
# Since there is mention of this in shlib/hpux10-cc.sh
-"hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN::-D_REENTRANT::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1:asm/pa-risc2.o:::::::::dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# 64bit PARISC for GCC without optimization, which seems to make problems.
-# Submitted by <ross.alexander@uk.neceur.com>
-"hpux64-parisc-gcc","gcc:-DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::::::::::dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/pa-risc2W.o:::::::::dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1::pa-risc2.o::::::::::dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
# More attempts at unified 10.X and 11.X targets for HP C compiler.
#
# Chris Ruemmler <ruemmler@cup.hp.com>
# Kevin Steves <ks@hp.se>
-"hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/pa-risc2.o:::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/pa-risc2W.o:::::::::dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# Isn't the line below meaningless? HP-UX cc optimizes for host by default.
-# hpux-parisc1_0-cc with +DAportable flag would make more sense. <appro>
-"hpux-parisc1_1-cc","cc:+DA1.1 +DS1.1 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-parisc1_0-cc","cc:+DAportable +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2.o::::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
# HP/UX IA-64 targets
-"hpux-ia64-cc","cc:-Ae +DD32 +O3 +Olit=all -z -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/ia64-cpp.o:::::::::dlfcn:hpux-shared:+Z:+DD32 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-ia64-cc","cc:-Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD32 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
# Frank Geurts <frank.geurts@nl.abnamro.com> has patiently assisted with
# with debugging of the following config.
-"hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/ia64-cpp.o:::::::::dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# GCC builds [not tested yet]...
-# _ILP32 should have been defined by compiler driver, but it isn't...
-"hpux-ia64-gcc","gcc:-O3 -DB_ENDIAN -D_ILP32::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/ia64.o:::::::::dlfcn:hpux-shared:-fpic:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"hpux64-ia64-gcc","gcc:-mlp64 -O3 -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/ia64.o:::::::::dlfcn:hpux-shared:-fpic:-mlp64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-# HPUX 9.X config.
-# Don't use the bundled cc. It is broken. Use HP ANSI C if possible, or
-# egcs. gcc 2.8.1 is also broken.
-
-"hpux-cc", "cc:-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY -Ae +ESlit +O3 -z::(unknown)::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# If hpux-cc fails (e.g. during "make test"), try the next one; otherwise,
-# please report your OS and compiler version to the openssl-bugs@openssl.org
-# mailing list.
-"hpux-brokencc", "cc:-DB_ENDIAN -DBN_DIV2W -Ae +ESlit +O2 -z::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:+Z::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-"hpux-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# If hpux-gcc fails, try this one:
-"hpux-brokengcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:-fPIC::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-# HPUX 9.X on Motorola 68k platforms with gcc
-"hpux-m68k-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown):::BN_LLONG DES_PTR DES_UNROLL:::::::::::::",
-
-# HPUX 10.X config. Supports threads.
-"hpux10-cc", "cc:-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY -Ae +ESlit +O3 -z::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:+Z::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# If hpux10-cc fails, try this one (if still fails, try deleting BN_LLONG):
-"hpux10-brokencc", "cc:-DB_ENDIAN -DBN_DIV2W -Ae +ESlit +O2 -z::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:+Z::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-"hpux10-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:-fPIC::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# If hpux10-gcc fails, try this one:
-"hpux10-brokengcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::-D_REENTRANT::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1::::::::::dl:hpux-shared:-fPIC::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-# HPUX 11.X from www.globus.org.
-# Only works on PA-RISC 2.0 cpus, and not optimized. Why?
-#"hpux11-32bit-cc","cc:+DA2.0 -DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit::-D_REENTRANT:::DES_PTR DES_UNROLL DES_RISC1:::",
-#"hpux11-64bit-cc","cc:+DA2.0W -g -D_HPUX_SOURCE -Aa -Ae +ESlit::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT :::",
-# Use unified settings above instead.
+"hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+# GCC builds...
+"hpux-ia64-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT::ia64.o::aes-ia64.o:::sha256-ia64.o sha512-ia64.o::rc4-ia64.o:::dlfcn:hpux-shared:-fpic:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux64-ia64-gcc","gcc:-mlp64 -O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-mlp64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-#### HP MPE/iX http://jazz.external.hp.com/src/openssl/
-"MPE/iX-gcc", "gcc:-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
+# Legacy HPUX 9.X configs...
+"hpux-cc", "cc:-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY -Ae +ESlit +O2 -z::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-#### PARISC Linux setups
-"linux-parisc","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT:::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::",
+#### HP MPE/iX http://jazz.external.hp.com/src/openssl/
+"MPE/iX-gcc", "gcc:-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
-# Dec Alpha, OSF/1 - the alpha164-cc is historical, for the conversion
-# from the older DEC C Compiler to the newer compiler. It's now the
-# same as the preferred entry, alpha-cc. If you are still using the
-# older compiler (you're at 3.x or earlier, or perhaps very early 4.x)
-# you should use `alphaold-cc'.
+# DEC Alpha OSF/1/Tru64 targets.
#
# "What's in a name? That which we call a rose
# By any other word would smell as sweet."
#
# - William Shakespeare, "Romeo & Juliet", Act II, scene II.
#
-# For OSF/1 3.2b and earlier, and Digital UNIX 3.2c - 3.2g, with the
-# vendor compiler, use alphaold-cc.
-# For Digital UNIX 4.0 - 4.0e, with the vendor compiler, use alpha-cc.
-# For Tru64 UNIX 4.f - current, with the vendor compiler, use alpha-cc.
-#
# There's also an alternate target available (which `config' will never
# select) called alpha-cc-rpath. This target builds an RPATH into the
# shared libraries, which is very convenient on Tru64 since binaries
@@ -350,16 +302,38 @@ my %table=(
#
# For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version
#
-"alpha-gcc","gcc:-O3::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:${alpha_asm}:dlfcn:alpha-osf1-shared:::.so",
-"alphaold-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared:::.so",
-"alpha164-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:tru64-shared:::.so",
-"alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:tru64-shared:::.so",
-"alpha-cc-rpath", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:tru64-shared-rpath:::.so",
-#
-# This probably belongs in a different section.
-#
-"FreeBSD-alpha","gcc:-DTERMIOS -O -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"osf1-alpha-gcc", "gcc:-O3::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
+"ofs1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
+"tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:tru64-shared:::.so",
+"alpha-cc-rpath", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:tru64-shared-rpath:::.so",
+####
+#### Variety of LINUX:-)
+####
+# *-generic* is endian-neutral target, but ./config is free to
+# throw in -D[BL]_ENDIAN, whichever appropriate...
+"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc32.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+#### IA-32 targets...
+"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
+####
+"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+# -bpowerpc64-linux is transient option, -m64 should be the one to use...
+"linux-ppc64", "gcc:-bpowerpc64-linux -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-bpowerpc64-linux:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+#### SPARC Linux setups
+# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
+# assisted with debugging of following two configs.
+"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+# it's a real mess with -mcpu=ultrasparc option under Linux, but
+# -Wa,-Av8plus should do the trick no matter what.
+"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+# GCC 3.1 is a requirement
+"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
#### Alpha Linux with GNU C and Compaq C setups
# Special notes:
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
@@ -373,61 +347,38 @@ my %table=(
#
# <appro@fy.chalmers.se>
#
-"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
-"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
+"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${no_asm}",
+"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${no_asm}",
+
+#### *BSD [do see comment about ${BSDthreads} above!]
+"BSD-generic32","gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"BSD-sparcv8", "gcc:-DB_ENDIAN -DTERMIOS -O3 -mv8 -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
+"BSD-generic64","gcc:-DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
+# simply *happens* to work around a compiler bug in gcc 3.3.3,
+# triggered by RIPEMD160 code.
+"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-# assembler versions -- currently defunct:
-##"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer:::(unknown):SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:${alpha_asm}",
-
-# The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
-# bn86-elf.o file file since it is hand tweaked assembler.
-"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-pentium", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-ppro", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-k6", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=k6 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
-"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
-"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
-"linux-mipsel", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-mips", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/linux_ppc32.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/linux_ppc64.o:::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-m68k", "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::",
-"linux-s390", "gcc:-DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-s390x", "gcc:-DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-ia64-ecc", "ecc:-DL_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o::::::asm/rc4-amd64.o:::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"NetBSD-x86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"FreeBSD-elf", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::-pthread -D_REENTRANT -D_THREAD_SAFE -D_THREADSAFE:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"FreeBSD-sparc64","gcc:-DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer::-pthread -D_REENTRANT -D_THREAD_SAFE -D_THREADSAFE:::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2 BF_PTR::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"FreeBSD-ia64","gcc:-DL_ENDIAN -DTERMIOS -O -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64-cpp.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
-"bsdi-gcc", "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::(unknown):::RSA_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_bsdi_asm}",
"bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
"nextstep", "cc:-O -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
"nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
# NCR MP-RAS UNIX ver 02.03.01
"ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw::(unknown)::-lsocket -lnsl -lc89:${x86_gcc_des} ${x86_gcc_opts}:::",
-# QNX 4
+# QNX
"qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown):::${x86_gcc_des} ${x86_gcc_opts}:",
-
-# QNX 6
"qnx6", "cc:-DL_ENDIAN -DTERMIOS::(unknown)::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:",
-# Linux on ARM
-"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-# SCO/Caldera targets.
+#### SCO/Caldera targets.
#
# Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc.
# Now we only have blended unixware-* as it's the only one used by ./config.
@@ -450,14 +401,13 @@ my %table=(
"sco5-cc", "cc:-belf::(unknown)::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"sco5-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-# IBM's AIX.
-"aix-gcc", "gcc:-O -DB_ENDIAN::(unknown):AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:",
-"aix43-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::",
+#### IBM's AIX.
+"aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
+"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:",
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
# at build time. $OBJECT_MODE is respected at ./config stage!
-"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
-"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:asm/aix_ppc64.o:::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
+"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
+"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
#
# Cray T90 and similar (SDSC)
@@ -492,7 +442,7 @@ my %table=(
# Sinix/ReliantUNIX RM400
# NOTE: The CDS++ Compiler up to V2.0Bsomething has the IRIX_CC_BUG optimizer problem. Better use -g */
-"ReliantUNIX","cc:-KPIC -g -DTERMIOS -DB_ENDIAN::-Kthread:SNI:-lsocket -lnsl -lc -L/usr/ucblib -lucb:BN_LLONG DES_PTR DES_RISC2 DES_UNROLL BF_PTR::::::::::dlfcn:reliantunix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"ReliantUNIX","cc:-KPIC -g -DTERMIOS -DB_ENDIAN::-Kthread:SNI:-lsocket -lnsl -lc -L/usr/ucblib -lucb:BN_LLONG DES_PTR DES_RISC2 DES_UNROLL BF_PTR:${no_asm}:dlfcn:reliantunix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"SINIX","cc:-O::(unknown):SNI:-lsocket -lnsl -lc -L/usr/ucblib -lucb:RC4_INDEX RC4_CHAR:::",
"SINIX-N","/usr/ucb/cc:-O2 -misaligned::(unknown)::-lucb:RC4_INDEX RC4_CHAR:::",
@@ -505,30 +455,33 @@ my %table=(
#
"OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
-# Windows NT, Microsoft Visual C++ 4.0
+# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
+"VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32",
+"VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32",
-"VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
-"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
-"VC-WIN32","cl::::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
+# Visual C targets
+"VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
+"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
+"VC-WIN32","cl::::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
"VC-WIN16","cl:::(unknown):WIN16::MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
"VC-W31-16","cl:::(unknown):WIN16::BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT:::",
"VC-W31-32","cl::::WIN16::BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
"VC-MSDOS","cl:::(unknown):MSDOS::BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT:::",
# Borland C++ 4.5
-"BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN::::::::::win32",
+"BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN:${no_asm}:win32",
"BC-16","bcc:::(unknown):WIN16::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::",
# MinGW
-"mingw", "gcc:-DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -mno-cygwin -Wall:::MINGW32:-mno-cygwin -lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32::::.dll",
+"mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::MINGW32:-mno-cygwin -lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:win32:cygwin-shared:-D_DLL:-shared:.dll",
# UWIN
-"UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
+"UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
# Cygwin
-"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
-"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32:cygwin-shared:::.dll",
-"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32::::win32:cygwin-shared:::.dll",
+"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
+"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:win32:cygwin-shared:-D_DLL:-shared:.dll",
+"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
# NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools
# netware-clib => legacy CLib c-runtime support
@@ -538,7 +491,7 @@ my %table=(
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall::::${x86_gcc_opts}:::",
# DJGPP
-"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::",
+"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall -DDEVRANDOM=\"/dev/urandom\\x24\":::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
"ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::",
@@ -546,23 +499,10 @@ my %table=(
# K&R C is no longer supported; you need gcc on old Ultrix installations
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown):::::::",
-# Some OpenBSD from Bob Beck <beck@obtuse.com>
-"OpenBSD", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-alpha", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-i386", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-m68k", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-m88k", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-mips", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-powerpc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::asm/des_enc-sparc.o fcrypt_b.o::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2 BF_PTR::asm/des_enc-sparc.o fcrypt_b.o::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-vax", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-hppa", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
-"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
-"darwin-ppc-cc","cc:-O3 -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/osx_ppc32.o::::::::::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::::::::::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
+"darwin-ppc-cc","cc:-O3 -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o:::::::::::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
+"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
##### A/UX
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
@@ -581,15 +521,17 @@ my %table=(
"vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
"vxworks-ppc860","ccppc:-nostdinc -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
-"vxworks-mipsle","ccmips:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r::::::::::::::::ranlibmips:",
+"vxworks-mipsle","ccmips:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r::${no_asm}::::::ranlibmips:",
##### Compaq Non-Stop Kernel (Tandem)
"tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::",
);
-my @MK1MF_Builds=qw(VC-NT VC-CE VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS
- BC-32 BC-16 Mingw32 OS2-EMX netware-clib netware-libc);
+my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
+ VC-NT VC-CE VC-WIN32
+ VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS
+ BC-32 BC-16 OS2-EMX netware-clib netware-libc);
my $idx = 0;
my $idx_cc = $idx++;
@@ -599,8 +541,10 @@ my $idx_thread_cflag = $idx++;
my $idx_sys_id = $idx++;
my $idx_lflags = $idx++;
my $idx_bn_ops = $idx++;
+my $idx_cpuid_obj = $idx++;
my $idx_bn_obj = $idx++;
my $idx_des_obj = $idx++;
+my $idx_aes_obj = $idx++;
my $idx_bf_obj = $idx++;
my $idx_md5_obj = $idx++;
my $idx_sha1_obj = $idx++;
@@ -621,10 +565,10 @@ my $openssldir="";
my $exe_ext="";
my $install_prefix="";
my $no_threads=0;
-my $no_shared=1;
-my $zlib=0;
-my $no_krb5=0;
my $threads=0;
+my $no_shared=0; # but "no-shared" is default
+my $zlib=1; # but "no-zlib" is default
+my $no_krb5=0; # but "no-krb5" is implied unless "--with-krb5-..." is used
my $no_asm=0;
my $no_dso=0;
my @skip=();
@@ -640,6 +584,7 @@ my $rc2 ="crypto/rc2/rc2.h";
my $bf ="crypto/bf/bf_locl.h";
my $bn_asm ="bn_asm.o";
my $des_enc="des_enc.o fcrypt_b.o";
+my $aes_enc="aes_core.o aes_cbc.o";
my $bf_enc ="bf_enc.o";
my $cast_enc="c_enc.o";
my $rc4_enc="rc4_enc.o";
@@ -651,13 +596,21 @@ my $processor="";
my $default_ranlib;
my $perl;
-my $no_ssl2=0;
-my $no_ssl3=0;
-my $no_tls1=0;
-my $no_md5=0;
-my $no_sha=0;
-my $no_rsa=0;
-my $no_dh=0;
+
+# All of the following is disabled by default (RC5 was enabled before 0.9.8):
+
+my %disabled = ( # "what" => "comment"
+ "rc5" => "default",
+ "shared" => "default",
+ "zlib" => "default",
+ "zlib-dynamic" => "default"
+ );
+
+# Additional "no-..." options will be collected in %disabled.
+# To remove something from %disabled, use e.g. "enable-rc5".
+# For symmetry, "disable-..." is a synonym for "no-...".
+
+my $no_sse2=0;
&usage if ($#ARGV < 0);
@@ -699,118 +652,38 @@ PROCESS_ARGS:
foreach (@argvcopy)
{
s /^-no-/no-/; # some people just can't read the instructions
- if (/^--test-sanity$/)
- {
- exit(&test_sanity());
- }
- elsif (/^no-asm$/)
- {
- $no_asm=1;
- $openssl_other_defines .= "#define OPENSSL_NO_ASM\n";
- }
- elsif (/^no-err$/)
- {
- $flags .= "-DOPENSSL_NO_ERR ";
- $openssl_other_defines .= "#define OPENSSL_NO_ERR\n";
- }
- elsif (/^no-hw-(.+)$/)
- {
- my $hw=$1;
- $hw =~ tr/[a-z]/[A-Z]/;
- $openssl_other_defines .= "#define OPENSSL_NO_HW_$hw\n";
- }
- elsif (/^no-hw$/)
- {
- $openssl_other_defines .= "#define OPENSSL_NO_HW\n";
- }
- elsif (/^no-dso$/)
- { $no_dso=1; }
- elsif (/^no-krb5$/)
- { $no_krb5=1; }
- elsif (/^no-threads$/)
- { $no_threads=1; }
- elsif (/^threads$/)
- { $threads=1; }
- elsif (/^no-shared$/)
- { $no_shared=1; }
- elsif (/^shared$/ || /^-shared$/ || /^--shared$/)
- { $no_shared=0; }
- elsif (/^no-zlib$/)
- { $zlib=0; }
- elsif (/^zlib$/)
- { $zlib=1; }
- elsif (/^zlib-dynamic$/)
- { $zlib=2; }
- elsif (/^no-symlinks$/)
- { $symlink=0; }
- elsif (/^no-ssl$/)
- { $no_ssl2 = $no_ssl3 = 1; }
- elsif (/^no-ssl2$/)
- { $no_ssl2 = 1; }
- elsif (/^no-ssl3$/)
- { $no_ssl3 = 1; }
- elsif (/^no-tls1?$/)
- { $no_tls1 = 1; }
- elsif (/^no-(.+)$/)
+
+ # rewrite some options in "enable-..." form
+ s /^-?-?shared$/enable-shared/;
+ s /^threads$/enable-threads/;
+ s /^zlib$/enable-zlib/;
+ s /^zlib-dynamic$/enable-zlib-dynamic/;
+
+ if (/^no-(.+)$/ || /^disable-(.+)$/)
{
- my $algo=$1;
- push @skip,$algo;
- $algo =~ tr/[a-z]/[A-Z]/;
- #$flags .= "-DOPENSSL_NO_$algo ";
- #$depflags .= "-DOPENSSL_NO_$algo ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_$algo\n";
- if ($algo eq "RIJNDAEL")
- {
- push @skip, "aes";
- #$flags .= "-DOPENSSL_NO_AES ";
- #$depflags .= "-DOPENSSL_NO_AES ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_AES\n";
- }
- if ($algo eq "DES")
- {
- push @skip, "mdc2";
- $options .= " no-mdc2";
- #$flags .= "-DOPENSSL_NO_MDC2 ";
- #$depflags .= "-DOPENSSL_NO_MDC2 ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_MDC2\n";
- }
- if ($algo eq "EC")
- {
- push @skip, "ecdsa";
- push @skip, "ecdh";
- $options .= " no-ecdsa";
- $options .= " no-ecdh";
- $flags .= "-DOPENSSL_NO_ECDSA ";
- $flags .= "-DOPENSSL_NO_ECDH ";
- $depflags .= "-DOPENSSL_NO_ECDSA ";
- $depflags .= "-DOPENSSL_NO_ECDH ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_ECDSA\n";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_ECDH\n";
- }
- if ($algo eq "SHA" || $algo eq "SHA1")
- {
- push @skip, "ecdsa";
- $options .= " no-ecdsa";
- $flags .= "-DOPENSSL_NO_ECDSA ";
- $depflags .= "-DOPENSSL_NO_ECDSA ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_ECDSA\n";
- }
- if ($algo eq "MD5")
- {
- $no_md5 = 1;
- }
- if ($algo eq "SHA")
+ if ($1 eq "ssl")
{
- $no_sha = 1;
+ $disabled{"ssl2"} = "option(ssl)";
+ $disabled{"ssl3"} = "option(ssl)";
}
- if ($algo eq "RSA")
+ elsif ($1 eq "tls")
{
- $no_rsa = 1;
+ $disabled{"tls1"} = "option(tls)"
}
- if ($algo eq "DH")
+ else
{
- $no_dh = 1;
+ $disabled{$1} = "option";
}
+ }
+ elsif (/^enable-(.+)$/)
+ {
+ delete $disabled{$1};
+
+ $threads = 1 if ($1 eq "threads");
+ }
+ elsif (/^--test-sanity$/)
+ {
+ exit(&test_sanity());
}
elsif (/^reconfigure/ || /^reconf/)
{
@@ -885,49 +758,70 @@ PROCESS_ARGS:
die "target already defined - $target\n" if ($target ne "");
$target=$_;
}
- unless ($_ eq $target) {
- if ($options eq "") {
- $options = $_;
- } else {
- $options .= " ".$_;
+
+ unless ($_ eq $target || /^no-/ || /^disable-/)
+ {
+ # "no-..." follows later after implied disactivations
+ # have been derived. (Don't take this too seroiusly,
+ # we really only write OPTIONS to the Makefile out of
+ # nostalgia.)
+
+ if ($options eq "")
+ { $options = $_; }
+ else
+ { $options .= " ".$_; }
}
}
}
-}
-$no_ssl3=1 if ($no_md5 || $no_sha);
-$no_ssl3=1 if ($no_rsa && $no_dh);
-$no_ssl2=1 if ($no_md5);
-$no_ssl2=1 if ($no_rsa);
-$no_tls1=1 if ($no_md5 || $no_sha);
-$no_tls1=1 if ($no_dh);
+if ($processor eq "386")
+ {
+ $disabled{"sse2"} = "forced";
+ }
+
+if (!defined($withargs{"krb5-flavor"}) || $withargs{"krb5-flavor"} eq "")
+ {
+ $disabled{"krb5"} = "krb5-flavor not specified";
+ }
+
+if (!defined($disabled{"zlib-dynamic"}))
+ {
+ # "zlib-dynamic" was specifically enabled, so enable "zlib"
+ delete $disabled{"zlib"};
+ }
-if ($no_ssl2)
+if (defined($disabled{"rijndael"}))
{
- push @skip,"SSL2";
- #$flags .= "-DOPENSSL_NO_SSL2 ";
- #$depflags .= "-DOPENSSL_NO_SSL2 ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_SSL2\n";
+ $disabled{"aes"} = "forced";
+ }
+if (defined($disabled{"des"}))
+ {
+ $disabled{"mdc2"} = "forced";
+ }
+if (defined($disabled{"ec"}))
+ {
+ $disabled{"ecdsa"} = "forced";
+ $disabled{"ecdh"} = "forced";
}
-if ($no_ssl3)
+# SSL 2.0 requires MD5 and RSA
+if (defined($disabled{"md5"}) || defined($disabled{"rsa"}))
{
- push @skip,"SSL3";
- #$flags .= "-DOPENSSL_NO_SSL3 ";
- #$depflags .= "-DOPENSSL_NO_SSL3 ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_SSL3\n";
+ $disabled{"ssl2"} = "forced";
}
-if ($no_tls1)
+# SSL 3.0 and TLS requires MD5 and SHA and either RSA or DSA+DH
+if (defined($disabled{"md5"}) || defined($disabled{"sha"})
+ || (defined($disabled{"rsa"})
+ && (defined($disabled{"dsa"}) || defined($disabled{"dh"}))))
{
- push @skip,"TLS1";
- #$flags .= "-DOPENSSL_NO_TLS1 ";
- #$depflags .= "-DOPENSSL_NO_TLS1 ";
- $openssl_algorithm_defines .= "#define OPENSSL_NO_TLS1\n";
+ $disabled{"ssl3"} = "forced";
+ $disabled{"tls1"} = "forced";
}
+
if ($target eq "TABLE") {
foreach $target (sort keys %table) {
print_table_entry($target);
@@ -951,11 +845,65 @@ print "Configuring for $target\n";
&usage if (!defined($table{$target}));
+
+foreach (sort (keys %disabled))
+ {
+ $options .= " no-$_";
+
+ printf " no-%-12s %-10s", $_, "[$disabled{$_}]";
+
+ if (/^dso$/)
+ { $no_dso = 1; }
+ elsif (/^threads$/)
+ { $no_threads = 1; }
+ elsif (/^shared$/)
+ { $no_shared = 1; }
+ elsif (/^zlib$/)
+ { $zlib = 0; }
+ elsif (/^zlib-dynamic$/)
+ { }
+ elsif (/^symlinks$/)
+ { $symlink = 0; }
+ elsif (/^sse2$/)
+ { $no_sse2 = 1; }
+ else
+ {
+ my ($ALGO, $algo);
+ ($ALGO = $algo = $_) =~ tr/[a-z]/[A-Z]/;
+
+ if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/)
+ {
+ $openssl_other_defines .= "#define OPENSSL_NO_$ALGO\n";
+ print " OPENSSL_NO_$ALGO";
+
+ if (/^err$/)
+ { $flags .= "-DOPENSSL_NO_ERR "; }
+ }
+ else
+ {
+ $openssl_algorithm_defines .= "#define OPENSSL_NO_$ALGO\n";
+ print " OPENSSL_NO_$ALGO";
+
+ if (/^krb5$/)
+ { $no_krb5 = 1; }
+ else
+ {
+ push @skip, $algo;
+ print " (skip dir)";
+ }
+ }
+ }
+
+ print "\n";
+ }
+
+
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
-$exe_ext=".exe" if ($target eq "Cygwin");
-$exe_ext=".exe" if ($target eq "DJGPP");
-$exe_ext=".pm" if ($target eq "vos-gcc" or $target eq "debug-vos-gcc" or $target eq "vos-vcc" or $target eq "debug-vos-vcc");
+$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin");
+
+$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
+$exe_ext=".pm" if ($target =~ /vos/);
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
$prefix=$openssldir if $prefix eq "";
@@ -980,14 +928,16 @@ my $thread_cflag = $fields[$idx_thread_cflag];
my $sys_id = $fields[$idx_sys_id];
my $lflags = $fields[$idx_lflags];
my $bn_ops = $fields[$idx_bn_ops];
+my $cpuid_obj = $fields[$idx_cpuid_obj];
my $bn_obj = $fields[$idx_bn_obj];
my $des_obj = $fields[$idx_des_obj];
+my $aes_obj = $fields[$idx_aes_obj];
my $bf_obj = $fields[$idx_bf_obj];
-$md5_obj = $fields[$idx_md5_obj];
-$sha1_obj = $fields[$idx_sha1_obj];
+my $md5_obj = $fields[$idx_md5_obj];
+my $sha1_obj = $fields[$idx_sha1_obj];
my $cast_obj = $fields[$idx_cast_obj];
my $rc4_obj = $fields[$idx_rc4_obj];
-$rmd160_obj = $fields[$idx_rmd160_obj];
+my $rmd160_obj = $fields[$idx_rmd160_obj];
my $rc5_obj = $fields[$idx_rc5_obj];
my $dso_scheme = $fields[$idx_dso_scheme];
my $shared_target = $fields[$idx_shared_target];
@@ -998,20 +948,14 @@ my $ranlib = $fields[$idx_ranlib];
my $arflags = $fields[$idx_arflags];
my $no_shared_warn=0;
+my $no_user_cflags=0;
-$cflags="$flags$cflags" if ($flags ne "");
+if ($flags ne "") { $cflags="$flags$cflags"; }
+else { $no_user_cflags=1; }
# Kerberos settings. The flavor must be provided from outside, either through
# the script "config" or manually.
-if ($no_krb5
- || !defined($withargs{"krb5-flavor"})
- || $withargs{"krb5-flavor"} eq "")
- {
- #$cflags="-DOPENSSL_NO_KRB5 $cflags";
- $options.=" no-krb5" unless $no_krb5;
- $openssl_algorithm_defines .= "#define OPENSSL_NO_KRB5\n";
- }
-else
+if (!$no_krb5)
{
my ($lresolv, $lpath, $lext);
if ($withargs{"krb5-flavor"} =~ /^[Hh]eimdal$/)
@@ -1097,10 +1041,17 @@ if ($thread_cflag ne "(unknown)" && !$no_threads)
# If we know how to do it, support threads by default.
$threads = 1;
}
-if ($thread_cflag eq "(unknown)")
+if ($thread_cflag eq "(unknown)" && $threads)
{
- # If the user asked for "threads", hopefully they also provided
- # any system-dependent compiler options that are necessary.
+ # If the user asked for "threads", [s]he is also expected to
+ # provide any system-dependent compiler options that are
+ # necessary.
+ if ($no_user_cflags)
+ {
+ print "You asked for multi-threading support, but didn't\n";
+ print "provide any system-specific compiler options\n";
+ exit(1);
+ }
$thread_cflags="-DOPENSSL_THREADS $cflags" ;
$thread_defines .= "#define OPENSSL_THREADS\n";
}
@@ -1122,7 +1073,7 @@ $lflags="$libs$lflags" if ($libs ne "");
if ($no_asm)
{
- $bn_obj=$des_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj="";
+ $cpuid_obj=$bn_obj=$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj="";
$sha1_obj=$md5_obj=$rmd160_obj="";
}
@@ -1133,15 +1084,21 @@ if (!$no_shared)
if ($threads)
{
- #$cflags=$thread_cflags;
+ $cflags=$thread_cflags;
$openssl_thread_defines .= $thread_defines;
}
if ($zlib)
{
$cflags = "-DZLIB $cflags";
- $cflags = "-DZLIB_SHARED $cflags" if $zlib == 2;
- $lflags = "$lflags -lz" if $zlib == 1;
+ if (defined($disabled{"zlib-dynamic"}))
+ {
+ $lflags = "$lflags -lz";
+ }
+ else
+ {
+ $cflags = "-DZLIB_SHARED $cflags";
+ }
}
# You will find shlib_mark1 and shlib_mark2 explained in Makefile.org
@@ -1199,9 +1156,12 @@ if ($ranlib eq "")
#$bn1=$bn_asm unless ($bn1 =~ /\.o$/);
#$bn_obj="$bn1";
+$cpuid_obj="" if ($processor eq "386");
+
$bn_obj = $bn_asm unless $bn_obj ne "";
# bn86* is the only one implementing bn_*_part_words
$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);
+$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);
$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
@@ -1211,7 +1171,15 @@ $rc5_obj=$rc5_enc unless ($rc5_obj =~ /\.o$/);
if ($sha1_obj =~ /\.o$/)
{
# $sha1_obj=$sha1_enc;
- $cflags.=" -DSHA1_ASM";
+ $cflags.=" -DSHA1_ASM" if ($sha1_obj =~ /sx86/ || $sha1_obj =~ /sha1/);
+ $cflags.=" -DSHA256_ASM" if ($sha1_obj =~ /sha256/);
+ $cflags.=" -DSHA512_ASM" if ($sha1_obj =~ /sha512/);
+ if ($sha1_obj =~ /x86/)
+ { if ($no_sse2)
+ { $sha1_obj =~ s/\S*sse2\S+//; }
+ elsif ($cflags !~ /OPENSSL_IA32_SSE2/)
+ { $cflags.=" -DOPENSSL_IA32_SSE2"; }
+ }
}
if ($md5_obj =~ /\.o$/)
{
@@ -1223,6 +1191,13 @@ if ($rmd160_obj =~ /\.o$/)
# $rmd160_obj=$rmd160_enc;
$cflags.=" -DRMD160_ASM";
}
+if ($aes_obj =~ /\.o$/)
+ {
+ $cflags.=" -DAES_ASM";
+ }
+else {
+ $aes_obj=$aes_enc;
+ }
# "Stringify" the C flags string. This permits it to be made part of a string
# and works as well on command lines.
@@ -1296,8 +1271,10 @@ while (<IN>)
s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
+ s/^CPUID_OBJ=.*$/CPUID_OBJ= $cpuid_obj/;
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
+ s/^AES_ASM_OBJ=.*$/AES_ASM_OBJ= $aes_obj/;
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
s/^CAST_ENC=.*$/CAST_ENC= $cast_obj/;
s/^RC4_ENC=.*$/RC4_ENC= $rc4_obj/;
@@ -1343,8 +1320,10 @@ rename("$Makefile.new",$Makefile) || die "unable to rename $Makefile.new\n";
print "CC =$cc\n";
print "CFLAG =$cflags\n";
print "EX_LIBS =$lflags\n";
+print "CPUID_OBJ =$cpuid_obj\n";
print "BN_ASM =$bn_obj\n";
print "DES_ENC =$des_obj\n";
+print "AES_ASM_OBJ =$aes_obj\n";
print "BF_ENC =$bf_obj\n";
print "CAST_ENC =$cast_obj\n";
print "RC4_ENC =$rc4_obj\n";
@@ -1436,6 +1415,8 @@ print OUT "#ifdef OPENSSL_ALGORITHM_DEFINES\n";
print OUT $openssl_algorithm_defines_trans;
print OUT "#endif\n\n";
+print OUT "#define OPENSSL_CPUID_OBJ\n\n" if ($cpuid_obj);
+
while (<IN>)
{
if (/^#define\s+OPENSSLDIR/)
@@ -1486,7 +1467,7 @@ while (<IN>)
elsif (/^#((define)|(undef))\s+RC4_INDEX/)
{ printf OUT "#%s RC4_INDEX\n",($rc4_idx)?"define":"undef"; }
elsif (/^#(define|undef)\s+I386_ONLY/)
- { printf OUT "#%s I386_ONLY\n", ($processor == 386)?
+ { printf OUT "#%s I386_ONLY\n", ($processor eq "386")?
"define":"undef"; }
elsif (/^#define\s+MD2_INT\s/)
{ printf OUT "#define MD2_INT unsigned %s\n",$type[$md2_int]; }
@@ -1555,12 +1536,10 @@ EOF
if $make_targets ne "";
if ( $perl =~ m@^/@) {
&dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
- &dofile("apps/der_chop",$perl,'^#!/', '#!%s');
&dofile("apps/CA.pl",$perl,'^#!/', '#!%s');
} else {
# No path for Perl known ...
&dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
- &dofile("apps/der_chop",'/usr/local/bin/perl','^#!/', '#!%s');
&dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
}
if ($depflags ne "" && !$make_depend) {
@@ -1731,7 +1710,7 @@ sub print_table_entry
my $target = shift;
(my $cc,my $cflags,my $unistd,my $thread_cflag,my $sys_id,my $lflags,
- my $bn_ops,my $bn_obj,my $des_obj,my $bf_obj,
+ my $bn_ops,my $cpuid_obj,my $bn_obj,my $des_obj,my $aes_obj, my $bf_obj,
my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj,
my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag,
my $shared_ldflag,my $shared_extension,my $ranlib,my $arflags)=
@@ -1747,8 +1726,10 @@ sub print_table_entry
\$sys_id = $sys_id
\$lflags = $lflags
\$bn_ops = $bn_ops
+\$cpuid_obj = $cpuid_obj
\$bn_obj = $bn_obj
\$des_obj = $des_obj
+\$aes_obj = $aes_obj
\$bf_obj = $bf_obj
\$md5_obj = $md5_obj
\$sha1_obj = $sha1_obj
diff --git a/FAQ b/FAQ
index 25e101adbb..12f3d24d16 100644
--- a/FAQ
+++ b/FAQ
@@ -52,6 +52,7 @@ OpenSSL - Frequently Asked Questions
* Is OpenSSL thread-safe?
* I've compiled a program under Windows and it crashes: why?
* How do I read or write a DER encoded buffer using the ASN1 functions?
+* OpenSSL uses DER but I need BER format: does OpenSSL support BER?
* I've tried using <M_some_evil_pkcs12_macro> and I get errors why?
* I've called <some function> and it fails, why?
* I just get a load of numbers for the error output, what do they mean?
@@ -60,6 +61,7 @@ OpenSSL - Frequently Asked Questions
* Can I use OpenSSL's SSL library with non-blocking I/O?
* Why doesn't my server application receive a client certificate?
* Why does compilation fail due to an undefined symbol NID_uniqueIdentifier?
+* I think I've detected a memory leak, is this a bug?
===============================================================================
@@ -68,7 +70,7 @@ OpenSSL - Frequently Asked Questions
* Which is the current version of OpenSSL?
The current version is available from <URL: http://www.openssl.org>.
-OpenSSL 0.9.7c was released on September 30, 2003.
+OpenSSL 0.9.7e was released on October 25, 2004.
In addition to the current stable release, you can also access daily
snapshots of the OpenSSL development version at <URL:
@@ -150,7 +152,8 @@ Use MD5 to check that a tarball from a mirror site is identical:
md5sum TARBALL | awk '{print $1;}' | cmp - TARBALL.md5
You can check authenticity using pgp or gpg. You need the OpenSSL team
-member public key used to sign it (download it from a key server). Then
+member public key used to sign it (download it from a key server, see a
+list of keys at <URL: http://www.openssl.org/about/>). Then
just do:
pgp TARBALL.asc
@@ -470,6 +473,10 @@ This will only compile sha_dgst.c with -O0, the rest with the optimization
level chosen by the configuration process. When the above is done, do the
test and installation and you're set.
+3. Reconfigure the toolkit with no-sha0 option to leave out SHA0. It
+should not be used and is not used in SSL/TLS nor any other recognized
+protocol in either case.
+
* Why does the OpenSSL compilation fail with "ar: command not found"?
@@ -683,6 +690,20 @@ and attempts to free the buffer will have unpredictable results
because it no longer points to the same address.
+* OpenSSL uses DER but I need BER format: does OpenSSL support BER?
+
+The short answer is yes, because DER is a special case of BER and OpenSSL
+ASN1 decoders can process BER.
+
+The longer answer is that ASN1 structures can be encoded in a number of
+different ways. One set of ways is the Basic Encoding Rules (BER) with various
+permissible encodings. A restriction of BER is the Distinguished Encoding
+Rules (DER): these uniquely specify how a given structure is encoded.
+
+Therefore, because DER is a special case of BER, DER is an acceptable encoding
+for BER.
+
+
* I've tried using <M_some_evil_pkcs12_macro> and I get errors why?
This usually happens when you try compiling something using the PKCS#12
@@ -765,5 +786,17 @@ The correct name according to RFC2256 (LDAP) is x500UniqueIdentifier.
Change your code to use the new name when compiling against OpenSSL 0.9.7.
+* I think I've detected a memory leak, is this a bug?
+
+In most cases the cause of an apparent memory leak is an OpenSSL internal table
+that is allocated when an application starts up. Since such tables do not grow
+in size over time they are harmless.
+
+These internal tables can be freed up when an application closes using various
+functions. Currently these include: EVP_cleanup(), ERR_remove_state(),
+ERR_free_strings(), ENGINE_cleanup(), CONF_modules_unload() and
+CRYPTO_cleanup_all_ex_data().
+
+
===============================================================================
diff --git a/INSTALL b/INSTALL
index 1a1628f19b..91b639282f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -77,6 +77,20 @@
386 Use the 80386 instruction set only (the default x86 code is
more efficient, but requires at least a 486).
+ no-sse2 Exclude SSE2 code pathes. Normally SSE2 extention is
+ detected at run-time, but the decision whether or not the
+ machine code will be executed is taken solely on CPU
+ capability vector. This means that if you happen to run OS
+ kernel which does not support SSE2 extension on Intel P4
+ processor, then your application might be exposed to
+ "illegal instruction" exception. There might be a way
+ to enable support in kernel, e.g. FreeBSD kernel can be
+ compiled with CPU_ENABLE_SSE, and there is a way to
+ disengage SSE2 code pathes upon application start-up,
+ but if you aim for wider "audience" running such kernel,
+ consider no-sse2. Both 386 and no-asm options above imply
+ no-sse2.
+
no-<cipher> Build without the specified cipher (bf, cast, des, dh, dsa,
hmac, md2, md5, mdc2, rc2, rc4, rc5, rsa, sha).
The crypto/<cipher> directory can be removed after running
diff --git a/INSTALL.DJGPP b/INSTALL.DJGPP
index cdeac222b2..1047ec90a5 100644
--- a/INSTALL.DJGPP
+++ b/INSTALL.DJGPP
@@ -3,32 +3,45 @@
INSTALLATION ON THE DOS PLATFORM WITH DJGPP
-------------------------------------------
- Openssl has been ported to DOS, but only with long filename support. If
- you wish to compile on native DOS with 8+3 filenames, you will have to
- tweak the installation yourself, including renaming files with illegal
- or duplicate names.
+ OpenSSL has been ported to DJGPP, a Unix look-alike 32-bit run-time
+ environment for 16-bit DOS, but only with long filename support.
+ If you wish to compile on native DOS with 8+3 filenames, you will
+ have to tweak the installation yourself, including renaming files
+ with illegal or duplicate names.
You should have a full DJGPP environment installed, including the
latest versions of DJGPP, GCC, BINUTILS, BASH, etc. This package
requires that PERL and BC also be installed.
- All of these can be obtained from the usual DJGPP mirror sites, such
- as "ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp". You also need to
- have the WATT-32 networking package installed before you try to compile
- openssl. This can be obtained from "http://www.bgnett.no/~giva/".
+ All of these can be obtained from the usual DJGPP mirror sites or
+ directly at "http://www.delorie.com/pub/djgpp". For help on which
+ files to download, see the DJGPP "ZIP PICKER" page at
+ "http://www.delorie.com/djgpp/zip-picker.html". You also need to have
+ the WATT-32 networking package installed before you try to compile
+ OpenSSL. This can be obtained from "http://www.bgnett.no/~giva/".
The Makefile assumes that the WATT-32 code is in the directory
specified by the environment variable WATT_ROOT. If you have watt-32
in directory "watt32" under your main DJGPP directory, specify
WATT_ROOT="/dev/env/DJDIR/watt32".
- To compile openssl, start your BASH shell. Then configure for DOS by
- running "./Configure" with appropriate arguments. The basic syntax for
- DOS is:
- ./Configure no-threads --prefix=/dev/env/DJDIR DJGPP
+ To compile OpenSSL, start your BASH shell, then configure for DJGPP by
+ running "./Configure" with appropriate arguments:
+
+ ./Configure no-threads --prefix=/dev/env/DJDIR DJGPP
- You may run out of DPMI selectors when running in a DOS box under
- Windows. If so, just close the BASH shell, go back to Windows, and
- restart BASH. Then run "make" again.
+ And finally fire up "make". You may run out of DPMI selectors when
+ running in a DOS box under Windows. If so, just close the BASH
+ shell, go back to Windows, and restart BASH. Then run "make" again.
+
+ RUN-TIME CAVEAT LECTOR
+ --------------
+
+ Quoting FAQ:
+
+ "Cryptographic software needs a source of unpredictable data to work
+ correctly. Many open source operating systems provide a "randomness
+ device" (/dev/urandom or /dev/random) that serves this purpose."
- Building openssl under DJGPP has been tested with DJGPP 2.03,
- GCC 2.952, GCC 2.953, perl 5.005_02 and perl 5.006_01.
+ As of version 0.9.7f DJGPP port checks upon /dev/urandom$ for a 3rd
+ party "randomness" DOS driver. One such driver, NOISE.SYS, can be
+ obtained from "http://www.rahul.net/dkaufman/index.html".
diff --git a/Makefile.org b/Makefile.org
index 96b9ff885a..d47d3b937d 100644
--- a/Makefile.org
+++ b/Makefile.org
@@ -57,9 +57,8 @@ OPENSSLDIR=/usr/local/ssl
# equal 4.
# PKCS1_CHECK - pkcs1 tests.
-CC= gcc
-#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
-CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
+CC= cc
+CFLAG= -O
DEPFLAG=
PEX_LIBS=
EX_LIBS=
@@ -80,90 +79,22 @@ MAKEDEPPROG=makedepend
AS=$(CC) -c
ASFLAG=$(CFLAG)
-# Set BN_ASM to bn_asm.o if you want to use the C version
-BN_ASM= bn_asm.o
-#BN_ASM= bn_asm.o
-#BN_ASM= asm/bn86-elf.o # elf, linux-elf
-#BN_ASM= asm/bn86-sol.o # solaris
-#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
-#BN_ASM= asm/bn86bsdi.o # bsdi
-#BN_ASM= asm/alpha.o # DEC Alpha
-#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
-#BN_ASM= asm/r3000.o # SGI MIPS cpu
-#BN_ASM= asm/sparc.o # Sun solaris/SunOS
-#BN_ASM= asm/bn-win32.o # Windows 95/NT
-#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
-#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
-
# For x86 assembler: Set PROCESSOR to 386 if you want to support
# the 80386.
PROCESSOR=
-# Set DES_ENC to des_enc.o if you want to use the C version
-#There are 4 x86 assember options.
-DES_ENC= asm/dx86-out.o asm/yx86-out.o
-#DES_ENC= des_enc.o fcrypt_b.o # C
-#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
-#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
-#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
-#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
-
-# Set BF_ENC to bf_enc.o if you want to use the C version
-#There are 4 x86 assember options.
-BF_ENC= asm/bx86-out.o
-#BF_ENC= bf_enc.o
-#BF_ENC= asm/bx86-elf.o # elf
-#BF_ENC= asm/bx86-sol.o # solaris
-#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
-#BF_ENC= asm/bx86bsdi.o # bsdi
-
-# Set CAST_ENC to c_enc.o if you want to use the C version
-#There are 4 x86 assember options.
-CAST_ENC= asm/cx86-out.o
-#CAST_ENC= c_enc.o
-#CAST_ENC= asm/cx86-elf.o # elf
-#CAST_ENC= asm/cx86-sol.o # solaris
-#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
-#CAST_ENC= asm/cx86bsdi.o # bsdi
-
-# Set RC4_ENC to rc4_enc.o if you want to use the C version
-#There are 4 x86 assember options.
-RC4_ENC= asm/rx86-out.o
-#RC4_ENC= rc4_enc.o
-#RC4_ENC= asm/rx86-elf.o # elf
-#RC4_ENC= asm/rx86-sol.o # solaris
-#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
-#RC4_ENC= asm/rx86bsdi.o # bsdi
-
-# Set RC5_ENC to rc5_enc.o if you want to use the C version
-#There are 4 x86 assember options.
-RC5_ENC= asm/r586-out.o
-#RC5_ENC= rc5_enc.o
-#RC5_ENC= asm/r586-elf.o # elf
-#RC5_ENC= asm/r586-sol.o # solaris
-#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
-#RC5_ENC= asm/r586bsdi.o # bsdi
-
-# Also need MD5_ASM defined
-MD5_ASM_OBJ= asm/mx86-out.o
-#MD5_ASM_OBJ= asm/mx86-elf.o # elf
-#MD5_ASM_OBJ= asm/mx86-sol.o # solaris
-#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD
-#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi
-
-# Also need SHA1_ASM defined
-SHA1_ASM_OBJ= asm/sx86-out.o
-#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
-#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
-#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
-#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi
-
-# Also need RMD160_ASM defined
-RMD160_ASM_OBJ= asm/rm86-out.o
-#RMD160_ASM_OBJ= asm/rm86-elf.o # elf
-#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris
-#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
-#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi
+# CPUID module collects small commonly used assembler snippets
+CPUID_OBJ=
+BN_ASM= bn_asm.o
+DES_ENC= des_enc.o fcrypt_b.o
+AES_ASM_OBJ=aes_core.o aes_cbc.o
+BF_ENC= bf_enc.o
+CAST_ENC= c_enc.o
+RC4_ENC= rc4_enc.o
+RC5_ENC= rc5_enc.o
+MD5_ASM_OBJ=
+SHA1_ASM_OBJ=
+RMD160_ASM_OBJ=
# KRB5 stuff
KRB5_INCLUDES=
@@ -176,8 +107,8 @@ SHLIBDIRS= crypto ssl
SDIRS= \
objects \
md2 md4 md5 sha mdc2 hmac ripemd \
- des rc2 rc4 rc5 idea bf cast \
- bn ec rsa dsa ecdsa dh ecdh dso engine aes \
+ des aes rc2 rc4 rc5 idea bf cast \
+ 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 \
store
@@ -217,10 +148,29 @@ HEADER= e_os.h
all: Makefile.ssl build_all openssl.pc
+BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
+ SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' \
+ CC='${CC}' CFLAG='${CFLAG}' \
+ AS='${CC}' ASFLAG='${CFLAG} -c' \
+ AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
+ KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \
+ 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_ASM_OBJ='${AES_ASM_OBJ}' \
+ 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}'
+
BUILD_CMD=if echo " $(DIRS) " | grep " $$dir " >/dev/null 2>/dev/null; then \
if [ -d "$$dir" ]; then \
(cd $$dir && echo "making $$target in $$dir..." && \
- $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_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}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' SHARED_LDFLAGS='${SHARED_LDFLAGS}' LIBRPATH='$(INSTALLTOP)/lib' $$target ) || exit 1; \
+ $(MAKE) -e $(BUILDENV) $$target ) || exit 1; \
else \
$(MAKE) $$dir; \
fi; fi
@@ -252,6 +202,7 @@ libcrypto$(SHLIB_EXT): libcrypto.a
$(MAKE) SHLIBDIRS=crypto build-shared; \
else \
echo "There's no support for shared libraries on this platform" >&2; \
+ exit 1; \
fi
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
@@ -259,6 +210,7 @@ libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
$(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:
@@ -292,8 +244,7 @@ do_$(SHLIB_TARGET):
libs="$(LIBKRB5) $$libs"; \
fi; \
$(NEWMAKE) -f Makefile.shared \
- CC="$(CC)" LDFLAGS="$(LDFLAGS)" \
- SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
+ $(BUILDENV) \
LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
LIBDEPS="$$libs $(EX_LIBS)" \
@@ -363,7 +314,7 @@ links:
gentests:
@(cd test && echo "generating dummy tests (if needed)..." && \
- $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_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}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
+ $(MAKE) $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
dclean:
rm -f *.bak
@@ -377,29 +328,18 @@ dclean:
rehash: rehash.time
rehash.time: certs
- @(OPENSSL="`pwd`/apps/openssl$(EXE_EXT)"; OPENSSL_DEBUG_MEMORY=on; \
- export OPENSSL OPENSSL_DEBUG_MEMORY; \
- LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
- LIBPATH="`pwd`:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
- $(PERL) tools/c_rehash certs)
+ @(OPENSSL="`pwd`/util/opensslwrap.sh"; \
+ OPENSSL_DEBUG_MEMORY=on; \
+ export OPENSSL OPENSSL_DEBUG_MEMORY; \
+ $(PERL) tools/c_rehash certs)
touch rehash.time
test: tests
tests: rehash
@(cd test && echo "testing..." && \
- $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_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}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
- @LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
- LIBPATH="`pwd`:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
- apps/openssl version -a
+ $(MAKE) -e $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
+ util/opensslwrap.sh version -a
report:
@$(PERL) util/selftest.pl
@@ -491,7 +431,7 @@ dist:
@$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar
dist_pem_h:
- (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
+ (cd crypto/pem; $(MAKE) $(BUILDENV) pem.h; $(MAKE) clean)
install: all install_docs install_sw
@@ -504,7 +444,7 @@ install_sw:
$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
$(INSTALL_PREFIX)$(OPENSSLDIR)/private
- @set -e; for i in $(EXHEADER) ;\
+ @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 ); \
@@ -513,7 +453,7 @@ install_sw:
do \
if [ -d "$$i" ]; then \
(cd $$i; echo "installing $$i..."; \
- $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' install ); \
+ $(MAKE) $(BUILDENV) INSTALL_PREFIX='${INSTALL_PREFIX}' OPENSSLDIR='${OPENSSLDIR}' install ); \
fi; \
done
@set -e; for i in $(LIBS) ;\
@@ -574,7 +514,7 @@ install_docs:
fi; \
set -e; for i in doc/apps/*.pod; do \
fn=`basename $$i .pod`; \
- if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \
+ sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$$pod2man \
@@ -591,7 +531,7 @@ install_docs:
done; \
set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \
fn=`basename $$i .pod`; \
- if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \
+ sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
(cd `$(PERL) util/dirname.pl $$i`; \
sh -c "$$pod2man \
diff --git a/Makefile.shared b/Makefile.shared
index 81a72a4738..8593ead067 100644
--- a/Makefile.shared
+++ b/Makefile.shared
@@ -66,8 +66,8 @@ LIBDEPS=
#------------------------------------------------------------------------------
# The rest is private to this makefile.
-#DEBUG=:
-DEBUG=set -x
+#SET_X=:
+SET_X=set -x
top:
echo "Trying to use this makefile interactively? Don't."
@@ -87,33 +87,33 @@ CALC_VERSIONS= \
fi
LINK_APP= \
- ( $(DEBUG); \
+ ( $(SET_X); \
LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
- $$LDCMD $(LDFLAGS) $$LDFLAGS -o $$APPNAME $(OBJECTS) $$LIBDEPS )
+ $$LDCMD $$LDFLAGS -o $$APPNAME $(OBJECTS) $$LIBDEPS )
LINK_SO= \
- ( $(DEBUG); \
+ ( $(SET_X); \
nm -Pg $$SHOBJECTS | grep ' [BDT] ' | cut -f1 -d' ' > lib$(LIBNAME).exp; \
LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
- $$SHAREDCMD $(SHARED_LDFLAGS) $$SHAREDFLAGS -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
+ $$SHAREDCMD $$SHAREDFLAGS -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS ) && \
- $(SYMLINK_SO); ( $(DEBUG); rm -f lib$(LIBNAME).exp )
+ $(SYMLINK_SO); ( $(SET_X); rm -f lib$(LIBNAME).exp )
SYMLINK_SO= \
if [ -n "$$INHIBIT_SYMLINKS" ]; then :; else \
prev=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
if [ -n "$$SHLIB_COMPAT" ]; then \
for x in $$SHLIB_COMPAT; do \
- ( $(DEBUG); rm -f $$SHLIB$$x$$SHLIB_SUFFIX; \
+ ( $(SET_X); rm -f $$SHLIB$$x$$SHLIB_SUFFIX; \
ln -s $$prev $$SHLIB$$x$$SHLIB_SUFFIX ); \
prev=$$SHLIB$$x$$SHLIB_SUFFIX; \
done; \
fi; \
if [ -n "$$SHLIB_SOVER" ]; then \
- ( $(DEBUG); rm -f $$SHLIB$$SHLIB_SUFFIX; \
+ ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \
ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \
fi; \
fi
@@ -123,7 +123,7 @@ LINK_SO_O= SHOBJECTS="$(LIBEXTRAS)"; $(LINK_SO)
LINK_SO_A_VIA_O= \
SHOBJECTS=lib$(LIBNAME).o; \
ALL=$$ALLSYMSFLAGS; ALLSYMSFLAGS=; NOALLSYMSFLAGS=; \
- ( $(DEBUG); \
+ ( $(SET_X); \
ld $(LDFLAGS) -r -o lib$(LIBNAME).o $$ALL lib$(LIBNAME).a $(LIBEXTRAS) ); \
$(LINK_SO) && rm -f $(LIBNAME).o
LINK_SO_A_UNPACKED= \
@@ -138,14 +138,14 @@ DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
DO_GNU_SO=$(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS='-Wl,--whole-archive'; \
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
- SHAREDFLAGS="-shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-rpath,$(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-rpath,$(LIBRPATH)"; \
SHAREDCMD='$(CC)'
DO_GNU_APP=LDCMD=$(CC);\
- LDFLAGS="-Wl,-rpath,$(LIBRPATH)"; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME=$(APPNAME)
#This is rather special. It's a special target with which one can link
@@ -155,7 +155,7 @@ DO_GNU_APP=LDCMD=$(CC);\
#else...
link_app.:
LDCMD=$(CC); \
- LDFLAGS=""; \
+ LDFLAGS="$(CFLAGS)"; \
LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
$(LINK_APP)
@@ -167,15 +167,45 @@ link_a.gnu:
link_app.gnu:
@ $(DO_GNU_APP); $(LINK_APP)
+link_o.bsd:
+ @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
+ $(CALC_VERSIONS); \
+ SHLIB=lib$(LIBNAME).so; \
+ SHLIB_SUFFIX=; \
+ LIBDEPS=; \
+ ALLSYMSFLAGS="-Wl,-Bforcearchive"; \
+ NOALLSYMSFLAGS=; \
+ SHAREDFLAGS="$(CFLAGS) -shared -nostdlib"; \
+ SHAREDCMD=$(CC); \
+ fi; $(LINK_SO_O)
+link_a.bsd:
+ @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
+ $(CALC_VERSIONS); \
+ SHLIB=lib$(LIBNAME).so; \
+ SHLIB_SUFFIX=; \
+ LIBDEPS=; \
+ ALLSYMSFLAGS="-Wl,-Bforcearchive"; \
+ NOALLSYMSFLAGS=; \
+ SHAREDFLAGS="$(CFLAGS) -shared -nostdlib"; \
+ SHAREDCMD=$(CC); \
+ fi; $(LINK_SO_A)
+link_app.bsd:
+ @if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \
+ LDCMD=$(CC); \
+ LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBPATH)"; \
+ LIBDEPS="$(LIBDEPS)"; \
+ APPNAME="$(APPNAME)"; \
+ fi; $(LINK_APP)
+
# For Darwin AKA Mac OS/X (dyld)
link_o.darwin:
@ $(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME); \
SHLIB_SUFFIX=.dylib; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS='-all_load'; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS="-dynamiclib"; \
+ SHAREDFLAGS="$(CFLAGS) -dynamiclib"; \
SHAREDCMD='$(CC)'; \
if [ -n "$(LIBVERSION)" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
@@ -188,10 +218,10 @@ link_a.darwin:
@ $(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME); \
SHLIB_SUFFIX=.dylib; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS='-all_load'; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS="-dynamiclib"; \
+ SHAREDFLAGS="$(CFLAGS) -dynamiclib"; \
SHAREDCMD='$(CC)'; \
if [ -n "$(LIBVERSION)" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
@@ -202,8 +232,8 @@ link_a.darwin:
$(LINK_SO_A)
link_app.darwin:
LDCMD=$(CC);\
- LDFLAGS=""; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
$(LINK_APP)
@@ -211,31 +241,33 @@ link_o.cygwin:
@ $(CALC_VERSIONS); \
INHIBIT_SYMLINKS=yes; \
SHLIB=cyg$(LIBNAME); \
+ expr $(PLATFORM) : 'mingw' > /dev/null && SHLIB=$(LIBNAME)eay32; \
SHLIB_SUFFIX=.dll; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_SOVER=-$(LIBVERSION); \
ALLSYMSFLAGS='-Wl,--whole-archive'; \
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
- SHAREDFLAGS="-shared -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
+ SHAREDFLAGS="$(CFLAGS) -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
SHAREDCMD='${CC}'; \
$(LINK_SO_O)
link_a.cygwin:
@ $(CALC_VERSIONS); \
INHIBIT_SYMLINKS=yes; \
SHLIB=cyg$(LIBNAME); \
+ expr $(PLATFORM) : 'mingw' > /dev/null && SHLIB=$(LIBNAME)eay32; \
SHLIB_SUFFIX=.dll; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_SOVER=; \
ALLSYMSFLAGS='-Wl,--whole-archive'; \
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
- SHAREDFLAGS="-shared -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
+ SHAREDFLAGS="$(CFLAGS) -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
SHAREDCMD='${CC}'; \
$(LINK_SO_A)
link_app.cygwin:
LDCMD=$(CC);\
- LDFLAGS=""; \
- LIBDEPS="$(LIBDEPS) -lc"; \
- APPNAME="$(APPNAME).exe"
+ LDFLAGS="$(CFLAGS)"; \
+ LIBDEPS="$(LIBDEPS)"; \
+ APPNAME="$(APPNAME)"; \
$(LINK_APP)
link_o.alpha-osf1:
@@ -244,7 +276,7 @@ link_o.alpha-osf1:
else \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
if [ -n "$$SHLIB_HIST" ]; then \
SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
@@ -254,7 +286,7 @@ link_o.alpha-osf1:
SHLIB_SOVER=; \
ALLSYMSFLAGS='-all'; \
NOALLSYMSFLAGS='-none'; \
- SHAREDFLAGS="-shared"; \
+ SHAREDFLAGS="$(CFLAGS) -shared"; \
SHAREDCMD='$(CC)'; \
if [ -n "$$SHLIB_HIST" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
@@ -267,7 +299,7 @@ link_a.alpha-osf1:
else \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
if [ -n "$$SHLIB_HIST" ]; then \
SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
@@ -277,7 +309,7 @@ link_a.alpha-osf1:
SHLIB_SOVER=; \
ALLSYMSFLAGS='-all'; \
NOALLSYMSFLAGS='-none'; \
- SHAREDFLAGS="-shared"; \
+ SHAREDFLAGS="$(CFLAGS) -shared"; \
SHAREDCMD='$(CC)'; \
if [ -n "$$SHLIB_HIST" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
@@ -289,8 +321,8 @@ link_app.alpha-osf1:
$(DO_GNU_APP); \
else \
LDCMD=$(CC);\
- LDFLAGS=""; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"
fi; \
$(LINK_APP)
@@ -303,7 +335,7 @@ link_o.tru64:
else \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
if [ -n "$$SHLIB_HIST" ]; then \
SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
@@ -313,7 +345,7 @@ link_o.tru64:
SHLIB_SOVER=; \
ALLSYMSFLAGS='-all'; \
NOALLSYMSFLAGS='-none'; \
- SHAREDFLAGS="-shared -msym -rpath $(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -shared -msym -rpath $(LIBRPATH)"; \
SHAREDCMD='$(CC)'; \
if [ -n "$$SHLIB_HIST" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
@@ -326,7 +358,7 @@ link_a.tru64:
else \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
if [ -n "$$SHLIB_HIST" ]; then \
SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
@@ -336,7 +368,7 @@ link_a.tru64:
SHLIB_SOVER=; \
ALLSYMSFLAGS='-all'; \
NOALLSYMSFLAGS='-none'; \
- SHAREDFLAGS="-shared -msym -rpath $(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -shared -msym -rpath $(LIBRPATH)"; \
SHAREDCMD='$(CC)'; \
if [ -n "$$SHLIB_HIST" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
@@ -348,8 +380,8 @@ link_app.tru64:
$(DO_GNU_APP); \
else \
LDCMD=$(CC);\
- LDFLAGS="-rpath $(LIBRPATH)"; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS) -rpath $(LIBRPATH)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
fi; \
$(LINK_APP)
@@ -362,7 +394,7 @@ link_o.tru64-rpath:
else \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
if [ -n "$$SHLIB_HIST" ]; then \
SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
@@ -372,7 +404,7 @@ link_o.tru64-rpath:
SHLIB_SOVER=; \
ALLSYMSFLAGS='-all'; \
NOALLSYMSFLAGS='-none'; \
- SHAREDFLAGS="-shared -msym -rpath $(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -shared -msym -rpath $(LIBRPATH)"; \
SHAREDCMD='$(CC)'; \
if [ -n "$$SHLIB_HIST" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
@@ -385,7 +417,7 @@ link_a.tru64-rpath:
else \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
SHLIB_HIST=`echo "$(LIBCOMPATVERSIONS)" | cut -d';' -f2 | sed -e 's/ */:/'`; \
if [ -n "$$SHLIB_HIST" ]; then \
SHLIB_HIST="$${SHLIB_HIST}:$(LIBVERSION)"; \
@@ -395,7 +427,7 @@ link_a.tru64-rpath:
SHLIB_SOVER=; \
ALLSYMSFLAGS='-all'; \
NOALLSYMSFLAGS='-none'; \
- SHAREDFLAGS="-shared -msym -rpath $(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -shared -msym -rpath $(LIBRPATH)"; \
SHAREDCMD='$(CC)'; \
if [ -n "$$SHLIB_HIST" ]; then \
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
@@ -407,8 +439,8 @@ link_app.tru64-rpath:
$(DO_GNU_APP); \
else \
LDCMD=$(CC);\
- LDFLAGS="-rpath $(LIBRPATH)"; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS) -rpath $(LIBRPATH)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
fi; \
$(LINK_APP)
@@ -422,10 +454,10 @@ link_o.solaris:
(${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS="$${MINUSZ}allextract"; \
NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \
- SHAREDFLAGS="-G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH) -Wl,-Bsymbolic"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_O)
@@ -438,10 +470,10 @@ link_a.solaris:
(${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=;\
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS="$${MINUSZ}allextract"; \
NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \
- SHAREDFLAGS="-G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH) -Wl,-Bsymbolic"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_A)
@@ -450,8 +482,8 @@ link_app.solaris:
$(DO_GNU_APP); \
else \
LDCMD=$(CC);\
- LDFLAGS="-R $(LIBRPATH)"; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS) -R $(LIBRPATH)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
fi; \
$(LINK_APP)
@@ -464,10 +496,10 @@ link_o.svr3:
$(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS=''; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS="-G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
+ SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_O)
@@ -478,10 +510,10 @@ link_a.svr3:
$(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS=''; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS="-G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
+ SHAREDFLAGS="$(CFLAGS) -G -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_A_UNPACKED)
@@ -490,8 +522,8 @@ link_app.svr3:
$(DO_GNU_APP); \
else \
LDCMD=$(CC);\
- LDFLAGS=""; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
fi; \
$(LINK_APP)
@@ -506,10 +538,10 @@ link_o.svr5:
(${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS=''; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS="$${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
+ SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_O)
@@ -522,10 +554,10 @@ link_a.svr5:
(${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS=''; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS="$${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
+ SHAREDFLAGS="$(CFLAGS) $${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_A_UNPACKED)
@@ -534,8 +566,8 @@ link_app.svr5:
$(DO_GNU_APP); \
else \
LDCMD=$(CC);\
- LDFLAGS=""; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
fi; \
$(LINK_APP)
@@ -547,12 +579,12 @@ link_o.irix:
$(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
MINUSWL=""; \
($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \
ALLSYMSFLAGS="$${MINUSWL}-all"; \
- NOALLSYMSFLAGS="$${MINUSWL}-notall"; \
- SHAREDFLAGS="-shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-rpath,$(LIBRPATH)"; \
+ NOALLSYMSFLAGS="$${MINUSWL}-none"; \
+ SHAREDFLAGS="$(CFLAGS) -shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-rpath,$(LIBRPATH)"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_O)
@@ -563,12 +595,12 @@ link_a.irix:
$(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
MINUSWL=""; \
($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \
ALLSYMSFLAGS="$${MINUSWL}-all"; \
- NOALLSYMSFLAGS="$${MINUSWL}-notall"; \
- SHAREDFLAGS="-shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-rpath,$(LIBRPATH)"; \
+ NOALLSYMSFLAGS="$${MINUSWL}-none"; \
+ SHAREDFLAGS="$(CFLAGS) -shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -Wl,-rpath,$(LIBRPATH)"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_A)
@@ -577,8 +609,8 @@ link_app.irix:
$(DO_GNU_APP); \
else \
LDCMD=$(CC);\
- LDFLAGS="-Wl,-rpath,$(LIBRPATH)"; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
fi; \
$(LINK_APP)
@@ -595,12 +627,13 @@ link_o.hpux:
@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
$(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).sl; \
+ expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS='-Wl,-Fl'; \
NOALLSYMSFLAGS=''; \
expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
- SHAREDFLAGS="-Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \
SHAREDCMD=$(CC); \
fi; \
$(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
@@ -608,19 +641,20 @@ link_a.hpux:
@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
$(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).sl; \
+ expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS='-Wl,-Fl'; \
NOALLSYMSFLAGS=''; \
expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
- SHAREDFLAGS="-Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \
+ SHAREDFLAGS="$(CFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+b,$(LIBRPATH)"; \
SHAREDCMD='$(CC)'; \
fi; \
$(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
link_app.hpux:
@if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \
LDCMD=$(CC);\
- LDFLAGS="-Wl,+s,+cdp,../:,+cdp,./:,+b,$(LIBRPATH)"; \
+ LDFLAGS="$(CFLAGS) -Wl,+s,+cdp,../:,+cdp,./:,+b,$(LIBRPATH)"; \
LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"; \
fi; \
@@ -628,28 +662,32 @@ link_app.hpux:
link_o.aix:
@ $(CALC_VERSIONS); \
+ OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
+ OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS='-bnogc'; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS='-G -bE:lib$(LIBNAME).exp -bM:SRE -blibpath:$(LIBRPATH)'; \
+ SHAREDFLAGS='$(CFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE -blibpath:$(LIBRPATH)'; \
SHAREDCMD='$(CC)'; \
- $(LINK_SO_O)
+ $(LINK_SO_O); rm -rf lib$(LIBNAME).exp
link_a.aix:
@ $(CALC_VERSIONS); \
+ OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
+ OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS='-bnogc'; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS='-G -bE:lib$(LIBNAME).exp -bM:SRE -blibpath:$(LIBRPATH)'; \
+ SHAREDFLAGS='$(CFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE -blibpath:$(LIBRPATH)'; \
SHAREDCMD='$(CC)'; \
$(LINK_SO_A_VIA_O)
link_app.aix:
LDCMD=$(CC);\
- LDFLAGS="-blibpath:$(LIBRPATH)"; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS) -blibpath:$(LIBRPATH)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"
$(LINK_APP)
@@ -657,26 +695,26 @@ link_o.reliantunix:
@ $(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS=; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS='-G'; \
+ SHAREDFLAGS='$(CFLAGS) -G'; \
SHAREDCMD='$(CC)'; \
$(LINK_SO_O)
link_a.reliantunix:
@ $(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LIBDEPS="$(LIBDEPS)"; \
ALLSYMSFLAGS=; \
NOALLSYMSFLAGS=''; \
- SHAREDFLAGS='-G'; \
+ SHAREDFLAGS='$(CFLAGS) -G'; \
SHAREDCMD='$(CC)'; \
$(LINK_SO_A_UNPACKED)
link_app.reliantunix:
LDCMD=$(CC);\
- LDFLAGS=""; \
- LIBDEPS="$(LIBDEPS) -lc"; \
+ LDFLAGS="$(CFLAGS)"; \
+ LIBDEPS="$(LIBDEPS)"; \
APPNAME="$(APPNAME)"
$(LINK_APP)
@@ -694,6 +732,7 @@ symlink.darwin:
symlink.hpux:
@ $(CALC_VERSIONS); \
SHLIB=lib$(LIBNAME).sl; \
+ expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
$(SYMLINK_SO)
# The following lines means those specific architectures do no symlinks
symlink.cygwin symlib.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
@@ -702,7 +741,10 @@ symlink.cygwin symlib.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu
link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu
link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu
-symlink.bsd-gcc-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu
+symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu
+link_o.bsd-shared: link_o.bsd
+link_a.bsd-shared: link_a.bsd
+link_app.bsd-shared: link_app.bsd
link_o.darwin-shared: link_o.darwin
link_a.darwin-shared: link_a.darwin
link_app.darwin-shared: link_app.darwin
diff --git a/NEWS b/NEWS
index f0282ebb87..496f59de41 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,19 @@
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 0.9.7d and OpenSSL 0.9.7e:
+
+ 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:
+
+ o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug
+ o Security: Fix null-pointer assignment in do_change_cipher_spec()
+ o Allow multiple active certificates with same subject in CA index
+ o Multiple X509 verification fixes
+ o Speed up HMAC and other operations
+
Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c:
o Security: fix various ASN1 parsing bugs.
diff --git a/PROBLEMS b/PROBLEMS
index 85e96a5ebe..8301624639 100644
--- a/PROBLEMS
+++ b/PROBLEMS
@@ -90,15 +90,6 @@ failures in other parts of the code.
Workaround: modify the target to +O2 when building with no-asm.
-* Poor support for AIX shared builds.
-
-do_aix-shared rule is not flexible enough to parameterize through a
-config-line. './Configure aix43-cc shared' is working, but not
-'./Configure aix64-gcc shared'. In latter case make fails to create shared
-libraries. It's possible to build 64-bit shared libraries by running
-'env OBJECT_MODE=64 make', but we need more elegant solution. Preferably one
-supporting even gcc shared builds. See RT#463 for background information.
-
* Problems building shared libraries on SCO OpenServer Release 5.0.6
with gcc 2.95.3
diff --git a/TABLE b/TABLE
index d6589c95c8..a3f6f94213 100644
--- a/TABLE
+++ b/TABLE
@@ -8,8 +8,10 @@ $thread_cflag = (unknown)
$sys_id = WIN16
$lflags =
$bn_ops = BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -33,8 +35,10 @@ $thread_cflag =
$sys_id = WIN32
$lflags =
$bn_ops = BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -58,8 +62,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops = THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -75,116 +81,18 @@ $shared_extension =
$ranlib =
$arflags =
-*** Cygwin
-$cc = gcc
-$cflags = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall
-$unistd =
-$thread_cflag =
-$sys_id = CYGWIN32
-$lflags =
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-out.o asm/co86-out.o
-$des_obj = asm/dx86-out.o asm/yx86-out.o
-$bf_obj = asm/bx86-out.o
-$md5_obj = asm/mx86-out.o
-$sha1_obj = asm/sx86-out.o
-$cast_obj = asm/cx86-out.o
-$rc4_obj = asm/rx86-out.o
-$rmd160_obj = asm/rm86-out.o
-$rc5_obj = asm/r586-out.o
-$dso_scheme = win32
-$shared_target= cygwin-shared
-$shared_cflag =
-$shared_ldflag =
-$shared_extension = .dll
-$ranlib =
-$arflags =
-
-*** Cygwin-pre1.3
-$cc = gcc
-$cflags = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall
-$unistd =
-$thread_cflag = (unknown)
-$sys_id = CYGWIN32
-$lflags =
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = win32
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** DJGPP
-$cc = gcc
-$cflags = -I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall
-$unistd =
-$thread_cflag =
-$sys_id = MSDOS
-$lflags = -L/dev/env/WATT_ROOT/lib -lwatt
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** FreeBSD
-$cc = gcc
-$cflags = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-out.o asm/co86-out.o
-$des_obj = asm/dx86-out.o asm/yx86-out.o
-$bf_obj = asm/bx86-out.o
-$md5_obj = asm/mx86-out.o
-$sha1_obj = asm/sx86-out.o
-$cast_obj = asm/cx86-out.o
-$rc4_obj = asm/rx86-out.o
-$rmd160_obj = asm/rm86-out.o
-$rc5_obj = asm/r586-out.o
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** FreeBSD-alpha
+*** BSD-generic32
$cc = gcc
-$cflags = -DTERMIOS -O -fomit-frame-pointer
+$cflags = -DTERMIOS -O3 -fomit-frame-pointer -Wall
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2
+$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -200,66 +108,18 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** FreeBSD-elf
-$cc = gcc
-$cflags = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall
-$unistd =
-$thread_cflag = -pthread -D_REENTRANT -D_THREAD_SAFE -D_THREADSAFE
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** FreeBSD-ia64
-$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIOS -O -fomit-frame-pointer
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR
-$bn_obj = asm/ia64-cpp.o
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** FreeBSD-sparc64
+*** BSD-generic64
$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -DTERMIOS -O3 -Wall
$unistd =
-$thread_cflag = -pthread -D_REENTRANT -D_THREAD_SAFE -D_THREADSAFE
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2 BF_PTR
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -275,46 +135,23 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** MPE/iX-gcc
-$cc = gcc
-$cflags = -D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB
-$unistd =
-$thread_cflag = (unknown)
-$sys_id = MPE
-$lflags = -L/SYSLOG/PUB -lsyslog -lsocket -lcurses
-$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** NetBSD-m68
+*** BSD-ia64
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN
+$cflags = -DL_ENDIAN -DTERMIOS -O3 -Wall
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL
-$bn_obj =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
+$cpuid_obj =
+$bn_obj = ia64.o
$des_obj =
+$aes_obj = aes_core.o aes_cbc.o aes-ia64.o
$bf_obj =
$md5_obj =
-$sha1_obj =
+$sha1_obj = sha1-ia64.o sha256-ia64.o sha512-ia64.o
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-ia64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
@@ -325,18 +162,20 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** NetBSD-sparc
+*** BSD-sparc64
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN
+$cflags = -DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL
+$bn_ops = SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR
+$cpuid_obj =
$bn_obj =
-$des_obj =
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj =
+$md5_obj = md5-sparcv9.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -350,16 +189,18 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** NetBSD-x86
+*** BSD-sparcv8
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall
+$cflags = -DB_ENDIAN -DTERMIOS -O3 -mv8 -Wall
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj =
-$des_obj =
+$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
+$cpuid_obj =
+$bn_obj = sparcv8.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -375,121 +216,77 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** OS2-EMX
-$cc = gcc
-$cflags =
-$unistd =
-$thread_cflag =
-$sys_id =
-$lflags =
-$bn_ops =
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** OS390-Unix
-$cc = c89.sh
-$cflags = -O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** OpenBSD
+*** BSD-x86
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
+$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj = x86cpuid-out.o
+$bn_obj = bn86-out.o co86-out.o
+$des_obj = dx86-out.o yx86-out.o
+$aes_obj = ax86-out.o
+$bf_obj = bx86-out.o
+$md5_obj = mx86-out.o
+$sha1_obj = sx86-out.o s512sse2-out.o
+$cast_obj = cx86-out.o
+$rc4_obj = rx86-out.o
+$rmd160_obj = rm86-out.o
+$rc5_obj = r586-out.o
$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
+$shared_target= bsd-shared
$shared_cflag = -fPIC
$shared_ldflag =
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** OpenBSD-alpha
+*** BSD-x86-elf
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
+$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
+$shared_target= bsd-shared
$shared_cflag = -fPIC
$shared_ldflag =
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** OpenBSD-hppa
+*** BSD-x86_64
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -pthread -D_THREAD_SAFE -D_REENTRANT
$sys_id =
$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL
-$bn_obj =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL
+$cpuid_obj = amd64cpuid.o
+$bn_obj = x86_64-gcc.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-amd64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
@@ -500,41 +297,45 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** OpenBSD-i386
+*** Cygwin
$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall
$unistd =
-$thread_cflag = (unknown)
-$sys_id =
+$thread_cflag =
+$sys_id = CYGWIN32
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-out.o asm/co86-out.o
-$des_obj = asm/dx86-out.o asm/yx86-out.o
-$bf_obj = asm/bx86-out.o
-$md5_obj = asm/mx86-out.o
-$sha1_obj = asm/sx86-out.o
-$cast_obj = asm/cx86-out.o
-$rc4_obj = asm/rx86-out.o
-$rmd160_obj = asm/rm86-out.o
-$rc5_obj = asm/r586-out.o
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$cpuid_obj = x86cpuid-cof.o
+$bn_obj = bn86-cof.o co86-cof.o
+$des_obj = dx86-cof.o yx86-cof.o
+$aes_obj = ax86-cof.o
+$bf_obj = bx86-cof.o
+$md5_obj = mx86-cof.o
+$sha1_obj = sx86-cof.o s512sse2-cof.o
+$cast_obj = cx86-cof.o
+$rc4_obj = rx86-cof.o
+$rmd160_obj = /rm86-cof.o
+$rc5_obj = r586-cof.o
+$dso_scheme = win32
+$shared_target= cygwin-shared
+$shared_cflag = -D_DLL
+$shared_ldflag = -shared
+$shared_extension = .dll
$ranlib =
$arflags =
-*** OpenBSD-m68k
+*** Cygwin-pre1.3
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall
$unistd =
$thread_cflag = (unknown)
-$sys_id =
+$sys_id = CYGWIN32
$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
+$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -542,49 +343,53 @@ $cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
+$dso_scheme = win32
+$shared_target=
+$shared_cflag =
$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension =
$ranlib =
$arflags =
-*** OpenBSD-m88k
+*** DJGPP
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall -DDEVRANDOM="/dev/urandom\x24"
$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
+$thread_cflag =
+$sys_id = MSDOS
+$lflags = -L/dev/env/WATT_ROOT/lib -lwatt
+$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj = x86cpuid-out.o
+$bn_obj = bn86-out.o co86-out.o
+$des_obj = dx86-out.o yx86-out.o
+$aes_obj = ax86-out.o
+$bf_obj = bx86-out.o
+$md5_obj = mx86-out.o
+$sha1_obj = sx86-out.o s512sse2-out.o
+$cast_obj = cx86-out.o
+$rc4_obj = rx86-out.o
+$rmd160_obj = rm86-out.o
+$rc5_obj = r586-out.o
+$dso_scheme =
+$shared_target=
+$shared_cflag =
$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension =
$ranlib =
$arflags =
-*** OpenBSD-mips
+*** MPE/iX-gcc
$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer
+$cflags = -D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB
$unistd =
$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2
+$sys_id = MPE
+$lflags = -L/SYSLOG/PUB -lsyslog -lsocket -lcurses
+$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -592,24 +397,26 @@ $cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
+$dso_scheme =
+$shared_target=
+$shared_cflag =
$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension =
$ranlib =
$arflags =
-*** OpenBSD-powerpc
+*** OS2-EMX
$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer
+$cflags =
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag =
$sys_id =
$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
+$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -617,74 +424,26 @@ $cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** OpenBSD-sparc
-$cc = gcc
-$cflags = -DTERMIOS -O3 -fomit-frame-pointer
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
-$bn_obj =
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** OpenBSD-sparc64
-$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2 BF_PTR
-$bn_obj =
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
+$dso_scheme =
+$shared_target=
+$shared_cflag =
$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension =
$ranlib =
$arflags =
-*** OpenBSD-vax
-$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer
+*** OS390-Unix
+$cc = c89.sh
+$cflags = -O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE
$unistd =
$thread_cflag = (unknown)
$sys_id =
$lflags =
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL
+$bn_ops = THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -692,11 +451,11 @@ $cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= bsd-gcc-shared
-$shared_cflag = -fPIC
+$dso_scheme =
+$shared_target=
+$shared_cflag =
$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension =
$ranlib =
$arflags =
@@ -708,15 +467,17 @@ $thread_cflag = -Kthread
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops = BN_LLONG MD2_CHAR RC4_INDEX DES_PTR DES_RISC1 DES_UNROLL
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= svr5-shared
$shared_cflag = -Kpic
@@ -733,15 +494,17 @@ $thread_cflag = -pthread
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops = BN_LLONG MD2_CHAR RC4_INDEX DES_PTR DES_RISC1 DES_UNROLL
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= svr5-shared
$shared_cflag = -fPIC
@@ -758,8 +521,10 @@ $thread_cflag = -Kthread
$sys_id = SNI
$lflags = -lsocket -lnsl -lc -L/usr/ucblib -lucb
$bn_ops = BN_LLONG DES_PTR DES_RISC2 DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -783,8 +548,10 @@ $thread_cflag = (unknown)
$sys_id = SNI
$lflags = -lsocket -lnsl -lc -L/usr/ucblib -lucb
$bn_ops = RC4_INDEX RC4_CHAR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -808,8 +575,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lucb
$bn_ops = RC4_INDEX RC4_CHAR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -833,8 +602,10 @@ $thread_cflag =
$sys_id = UWIN
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -858,8 +629,10 @@ $thread_cflag =
$sys_id = WINCE
$lflags =
$bn_ops = BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -883,8 +656,10 @@ $thread_cflag = (unknown)
$sys_id = MSDOS
$lflags =
$bn_ops = BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -908,8 +683,10 @@ $thread_cflag =
$sys_id = WINNT
$lflags =
$bn_ops = BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -933,8 +710,10 @@ $thread_cflag = (unknown)
$sys_id = WIN16
$lflags =
$bn_ops = BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -958,8 +737,10 @@ $thread_cflag =
$sys_id = WIN16
$lflags =
$bn_ops = BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -983,8 +764,10 @@ $thread_cflag = (unknown)
$sys_id = WIN16
$lflags =
$bn_ops = MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1008,8 +791,10 @@ $thread_cflag =
$sys_id = WIN32
$lflags =
$bn_ops = BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1025,41 +810,18 @@ $shared_extension =
$ranlib =
$arflags =
-*** aix-cc
-$cc = cc
-$cflags = -q32 -O -DB_ENDIAN -qmaxmem=16384
-$unistd =
-$thread_cflag = (unknown)
-$sys_id = AIX
-$lflags =
-$bn_ops = BN_LLONG RC4_CHAR
-$bn_obj = asm/aix_ppc32.o
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= aix-shared
-$shared_cflag =
-$shared_ldflag = -q32
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags = -X 32
-
-*** aix-gcc
-$cc = gcc
-$cflags = -O -DB_ENDIAN
+*** VC-WIN64A
+$cc = cl
+$cflags =
$unistd =
-$thread_cflag = (unknown)
-$sys_id = AIX
+$thread_cflag =
+$sys_id = WIN64A
$lflags =
-$bn_ops = BN_LLONG RC4_CHAR
-$bn_obj = asm/aix_ppc32.o
+$bn_ops = SIXTY_FOUR_BIT EXPORT_VAR_AS_FN
+$cpuid_obj =
+$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1067,7 +829,7 @@ $cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme = dlfcn
+$dso_scheme = win32
$shared_target=
$shared_cflag =
$shared_ldflag =
@@ -1075,16 +837,18 @@ $shared_extension =
$ranlib =
$arflags =
-*** aix43-cc
-$cc = cc
-$cflags = -O -DB_ENDIAN -qmaxmem=16384
+*** VC-WIN64I
+$cc = cl
+$cflags =
$unistd =
-$thread_cflag = (unknown)
-$sys_id =
+$thread_cflag =
+$sys_id = WIN64I
$lflags =
-$bn_ops = BN_LLONG RC4_CHAR
-$bn_obj = asm/aix_ppc32.o
+$bn_ops = SIXTY_FOUR_BIT EXPORT_VAR_AS_FN
+$cpuid_obj =
+$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1092,24 +856,26 @@ $cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= aix-shared
+$dso_scheme = win32
+$shared_target=
$shared_cflag =
$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension =
$ranlib =
$arflags =
-*** aix64-cc
+*** aix-cc
$cc = cc
-$cflags = -q64 -O -DB_ENDIAN -qmaxmem=16384
+$cflags = -q32 -O -DB_ENDIAN -qmaxmem=16384
$unistd =
-$thread_cflag = (unknown)
+$thread_cflag = -qthreaded
$sys_id = AIX
$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR
-$bn_obj = asm/aix_ppc64.o
+$bn_ops = BN_LLONG RC4_CHAR
+$cpuid_obj =
+$bn_obj = aix_ppc32.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1120,21 +886,23 @@ $rc5_obj =
$dso_scheme = dlfcn
$shared_target= aix-shared
$shared_cflag =
-$shared_ldflag = -q64
+$shared_ldflag = -q32
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
-$arflags = -X 64
+$arflags = -X 32
-*** alpha-cc
-$cc = cc
-$cflags = -std1 -tune host -fast -readonly_strings
+*** aix-gcc
+$cc = gcc
+$cflags = -O -DB_ENDIAN
$unistd =
-$thread_cflag = -pthread
-$sys_id =
+$thread_cflag = -D_THREAD_SAFE
+$sys_id = AIX
$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
-$bn_obj =
+$bn_ops = BN_LLONG RC4_CHAR
+$cpuid_obj =
+$bn_obj = aix_ppc32.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1143,23 +911,25 @@ $rc4_obj =
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
-$shared_target= tru64-shared
+$shared_target=
$shared_cflag =
$shared_ldflag =
-$shared_extension = .so
+$shared_extension =
$ranlib =
$arflags =
-*** alpha-cc-rpath
+*** aix3-cc
$cc = cc
-$cflags = -std1 -tune host -fast -readonly_strings
+$cflags = -O -DB_ENDIAN -qmaxmem=16384
$unistd =
-$thread_cflag = -pthread
-$sys_id =
+$thread_cflag = (unknown)
+$sys_id = AIX
$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
+$bn_ops = BN_LLONG RC4_CHAR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1167,24 +937,26 @@ $cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= tru64-shared-rpath
+$dso_scheme =
+$shared_target=
$shared_cflag =
$shared_ldflag =
-$shared_extension = .so
+$shared_extension =
$ranlib =
$arflags =
-*** alpha-gcc
-$cc = gcc
-$cflags = -O3
+*** aix64-cc
+$cc = cc
+$cflags = -q64 -O -DB_ENDIAN -qmaxmem=16384
$unistd =
$thread_cflag = (unknown)
-$sys_id =
+$sys_id = AIX
$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1
-$bn_obj =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR
+$cpuid_obj =
+$bn_obj = aix_ppc64.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1193,14 +965,14 @@ $rc4_obj =
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
-$shared_target= alpha-osf1-shared
+$shared_target= aix-shared
$shared_cflag =
-$shared_ldflag =
-$shared_extension = .so
+$shared_ldflag = -q64
+$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
-$arflags =
+$arflags = -X 64
-*** alpha164-cc
+*** alpha-cc-rpath
$cc = cc
$cflags = -std1 -tune host -fast -readonly_strings
$unistd =
@@ -1208,8 +980,10 @@ $thread_cflag = -pthread
$sys_id =
$lflags =
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1218,32 +992,7 @@ $rc4_obj =
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
-$shared_target= tru64-shared
-$shared_cflag =
-$shared_ldflag =
-$shared_extension = .so
-$ranlib =
-$arflags =
-
-*** alphaold-cc
-$cc = cc
-$cflags = -std1 -tune host -O4 -readonly_strings
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= alpha-osf1-shared
+$shared_target= tru64-shared-rpath
$shared_cflag =
$shared_ldflag =
$shared_extension = .so
@@ -1258,8 +1007,10 @@ $thread_cflag = (unknown)
$sys_id = AUX
$lflags = -lbsd
$bn_ops = RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1283,15 +1034,17 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= bsd-gcc-shared
$shared_cflag = -fPIC
@@ -1300,31 +1053,6 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** bsdi-gcc
-$cc = gcc
-$cflags = -O3 -ffast-math -DL_ENDIAN -DPERL5 -m486
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = RSA_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86bsdi.o asm/co86bsdi.o
-$des_obj = asm/dx86bsdi.o asm/yx86bsdi.o
-$bf_obj = asm/bx86bsdi.o
-$md5_obj = asm/mx86bsdi.o
-$sha1_obj = asm/sx86bsdi.o
-$cast_obj = asm/cx86bsdi.o
-$rc4_obj = asm/rx86bsdi.o
-$rmd160_obj = asm/rm86bsdi.o
-$rc5_obj = asm/r586bsdi.o
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
*** cc
$cc = cc
$cflags = -O
@@ -1333,8 +1061,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1358,8 +1088,10 @@ $thread_cflag = (unknown)
$sys_id = CRAY
$lflags =
$bn_ops = SIXTY_FOUR_BIT_LONG DES_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1383,8 +1115,10 @@ $thread_cflag = (unknown)
$sys_id = CRAY
$lflags =
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1408,8 +1142,10 @@ $thread_cflag = -D_REENTRANT
$sys_id = MACOSX
$lflags =
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1433,8 +1169,10 @@ $thread_cflag = -D_REENTRANT
$sys_id = MACOSX
$lflags =
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/osx_ppc32.o
+$cpuid_obj =
+$bn_obj = osx_ppc32.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1458,8 +1196,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lefence
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1483,20 +1223,22 @@ $thread_cflag =
$sys_id = CYGWIN32
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
-$des_obj = win32
-$bf_obj = cygwin-shared
+$des_obj =
+$aes_obj =
+$bf_obj =
$md5_obj =
$sha1_obj =
-$cast_obj = .dll
+$cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme =
-$shared_target=
+$dso_scheme = win32
+$shared_target= cygwin-shared
$shared_cflag =
$shared_ldflag =
-$shared_extension =
+$shared_extension = .dll
$ranlib =
$arflags =
@@ -1508,8 +1250,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
+$cpuid_obj =
+$bn_obj = bn86-elf.o co86-elf.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1533,8 +1277,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1558,8 +1304,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1583,8 +1331,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1608,8 +1358,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1627,21 +1379,23 @@ $arflags =
*** debug-bodo
$cc = gcc
-$cflags = -DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -m486 -pedantic -Wshadow -Wall
+$cflags = -DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme =
$shared_target=
$shared_cflag =
@@ -1658,8 +1412,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1683,15 +1439,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
@@ -1708,15 +1466,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
@@ -1733,8 +1493,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1758,8 +1520,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1783,15 +1547,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lefence -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
@@ -1808,15 +1574,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
@@ -1833,15 +1601,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target=
$shared_cflag =
@@ -1858,15 +1628,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target=
$shared_cflag =
@@ -1883,15 +1655,17 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme =
$shared_target=
$shared_cflag =
@@ -1908,8 +1682,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8.o
+$cpuid_obj =
+$bn_obj = sparcv8.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1933,8 +1709,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8.o
+$cpuid_obj =
+$bn_obj = sparcv8.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -1958,10 +1736,12 @@ $thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8plus.o
+$cpuid_obj =
+$bn_obj = sparcv8plus.o
$des_obj =
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv8plus.o
+$md5_obj = md5-sparcv8plus.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -1983,10 +1763,12 @@ $thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8plus.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$cpuid_obj =
+$bn_obj = sparcv8plus.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv8plus.o
+$md5_obj = md5-sparcv8plus.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -2007,16 +1789,18 @@ $unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -rdynamic -ldl
-$bn_ops = DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag =
@@ -2033,17 +1817,19 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -rdynamic -ldl
$bn_ops = SIXTY_FOUR_BIT
+$cpuid_obj =
$bn_obj =
-$des_obj = dlfcn
-$bf_obj = linux-shared
+$des_obj =
+$aes_obj =
+$bf_obj =
$md5_obj =
$sha1_obj =
$cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme =
-$shared_target=
+$dso_scheme = dlfcn
+$shared_target= linux-shared
$shared_cflag =
$shared_ldflag =
$shared_extension =
@@ -2058,20 +1844,22 @@ $thread_cflag =
$sys_id = CYGWIN32
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
-$des_obj = win32
-$bf_obj = cygwin-shared
+$des_obj =
+$aes_obj =
+$bf_obj =
$md5_obj =
$sha1_obj =
-$cast_obj = .dll
+$cast_obj =
$rc4_obj =
$rmd160_obj =
$rc5_obj =
-$dso_scheme =
-$shared_target=
+$dso_scheme = win32
+$shared_target= cygwin-shared
$shared_cflag =
$shared_ldflag =
-$shared_extension =
+$shared_extension = .dll
$ranlib =
$arflags =
@@ -2083,8 +1871,10 @@ $thread_cflag = (unknown)
$sys_id = VOS
$lflags = -Wl,-map
$bn_ops = BN_LLONG
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2095,8 +1885,8 @@ $rc5_obj =
$dso_scheme =
$shared_target=
$shared_cflag =
-$shared_ldflag = .so
-$shared_extension =
+$shared_ldflag =
+$shared_extension = .so
$ranlib =
$arflags =
@@ -2108,8 +1898,10 @@ $thread_cflag = (unknown)
$sys_id = VOS
$lflags = -Wl,-map
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2120,8 +1912,8 @@ $rc5_obj =
$dso_scheme =
$shared_target=
$shared_cflag =
-$shared_ldflag = .so
-$shared_extension =
+$shared_ldflag =
+$shared_extension = .so
$ranlib =
$arflags =
@@ -2133,8 +1925,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = RC4_INDEX DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2158,8 +1952,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lnsl -lsocket
$bn_ops = RC4_INDEX DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2183,15 +1979,17 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lnsl -lsocket
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme =
$shared_target=
$shared_cflag =
@@ -2208,8 +2006,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2233,8 +2033,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = BN_LLONG
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2250,66 +2052,18 @@ $shared_extension =
$ranlib =
$arflags =
-*** hpux-brokencc
-$cc = cc
-$cflags = -DB_ENDIAN -DBN_DIV2W -Ae +ESlit +O2 -z
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags = -Wl,+s -ldld
-$bn_ops = DES_PTR DES_UNROLL DES_RISC1
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dl
-$shared_target= hpux-shared
-$shared_cflag = +Z
-$shared_ldflag =
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** hpux-brokengcc
-$cc = gcc
-$cflags = -DB_ENDIAN -DBN_DIV2W -O3
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags = -Wl,+s -ldld
-$bn_ops = DES_PTR DES_UNROLL DES_RISC1
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dl
-$shared_target= hpux-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
*** hpux-cc
$cc = cc
-$cflags = -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY -Ae +ESlit +O3 -z
+$cflags = -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY -Ae +ESlit +O2 -z
$unistd =
$thread_cflag = (unknown)
$sys_id =
$lflags = -Wl,+s -ldld
-$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
+$bn_ops = DES_PTR DES_UNROLL DES_RISC1
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2332,9 +2086,11 @@ $unistd =
$thread_cflag = (unknown)
$sys_id =
$lflags = -Wl,+s -ldld
-$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
+$bn_ops = DES_PTR DES_UNROLL DES_RISC1
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2352,44 +2108,48 @@ $arflags =
*** hpux-ia64-cc
$cc = cc
-$cflags = -Ae +DD32 +O3 +Olit=all -z -DB_ENDIAN
+$cflags = -Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj = asm/ia64-cpp.o
+$bn_ops = SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
+$cpuid_obj =
+$bn_obj = ia64.o
$des_obj =
+$aes_obj = aes_core.o aes_cbc.o aes-ia64.o
$bf_obj =
$md5_obj =
-$sha1_obj =
+$sha1_obj = sha1-ia64.o sha256-ia64.o sha512-ia64.o
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-ia64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
$shared_target= hpux-shared
$shared_cflag = +Z
$shared_ldflag = +DD32 -b
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
*** hpux-ia64-gcc
$cc = gcc
-$cflags = -O3 -DB_ENDIAN -D_ILP32
+$cflags = -O3 -DB_ENDIAN -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj = asm/ia64.o
+$bn_ops = SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
+$cpuid_obj =
+$bn_obj = ia64.o
$des_obj =
+$aes_obj = aes-ia64.o
$bf_obj =
$md5_obj =
-$sha1_obj =
+$sha1_obj = sha256-ia64.o sha512-ia64.o
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-ia64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
@@ -2400,31 +2160,6 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** hpux-m68k-gcc
-$cc = gcc
-$cflags = -DB_ENDIAN -DBN_DIV2W -O3
-$unistd =
-$thread_cflag = (unknown)
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG DES_PTR DES_UNROLL
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
*** hpux-parisc-cc
$cc = cc
$cflags = +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY
@@ -2433,8 +2168,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -Wl,+s -ldld
$bn_ops = MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2454,12 +2191,14 @@ $arflags =
$cc = cc
$cflags = -Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY
$unistd =
-$thread_cflag =
+$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldld
$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2479,12 +2218,14 @@ $arflags =
$cc = gcc
$cflags = -O3 -DB_ENDIAN -DBN_DIV2W
$unistd =
-$thread_cflag =
+$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -Wl,+s -ldld
$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2500,16 +2241,18 @@ $shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** hpux-parisc1_1-cc
+*** hpux-parisc1_0-cc
$cc = cc
-$cflags = +DA1.1 +DS1.1 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY
+$cflags = +DAportable +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -Wl,+s -ldld
$bn_ops = MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2527,14 +2270,16 @@ $arflags =
*** hpux-parisc2-cc
$cc = cc
-$cflags = +DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY
+$cflags = +DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -Wl,+s -ldld
$bn_ops = SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj = asm/pa-risc2.o
+$cpuid_obj =
+$bn_obj = pa-risc2.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2552,14 +2297,16 @@ $arflags =
*** hpux-parisc2-gcc
$cc = gcc
-$cflags = -march=2.0 -O3 -DB_ENDIAN
+$cflags = -march=2.0 -O3 -DB_ENDIAN -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -Wl,+s -ldld
$bn_ops = SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1
-$bn_obj = asm/pa-risc2.o
+$cpuid_obj =
+$bn_obj = pa-risc2.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2575,146 +2322,50 @@ $shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** hpux10-brokencc
-$cc = cc
-$cflags = -DB_ENDIAN -DBN_DIV2W -Ae +ESlit +O2 -z
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -Wl,+s -ldld
-$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dl
-$shared_target= hpux-shared
-$shared_cflag = +Z
-$shared_ldflag =
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** hpux10-brokengcc
-$cc = gcc
-$cflags = -DB_ENDIAN -DBN_DIV2W -O3
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -Wl,+s -ldld
-$bn_ops = DES_PTR DES_UNROLL DES_RISC1
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dl
-$shared_target= hpux-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** hpux10-cc
-$cc = cc
-$cflags = -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY -Ae +ESlit +O3 -z
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -Wl,+s -ldld
-$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dl
-$shared_target= hpux-shared
-$shared_cflag = +Z
-$shared_ldflag =
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** hpux10-gcc
-$cc = gcc
-$cflags = -DB_ENDIAN -DBN_DIV2W -O3
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -Wl,+s -ldld
-$bn_ops = BN_LLONG DES_PTR DES_UNROLL DES_RISC1
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dl
-$shared_target= hpux-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
*** hpux64-ia64-cc
$cc = cc
-$cflags = -Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN
+$cflags = -Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj = asm/ia64-cpp.o
+$bn_ops = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
+$cpuid_obj =
+$bn_obj = ia64.o
$des_obj =
+$aes_obj = aes_core.o aes_cbc.o aes-ia64.o
$bf_obj =
$md5_obj =
-$sha1_obj =
+$sha1_obj = sha1-ia64.o sha256-ia64.o sha512-ia64.o
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-ia64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
$shared_target= hpux-shared
$shared_cflag = +Z
$shared_ldflag = +DD64 -b
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
*** hpux64-ia64-gcc
$cc = gcc
-$cflags = -mlp64 -O3 -DB_ENDIAN
+$cflags = -mlp64 -O3 -DB_ENDIAN -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj = asm/ia64.o
+$bn_ops = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
+$cpuid_obj =
+$bn_obj = ia64.o
$des_obj =
+$aes_obj = aes_core.o aes_cbc.o aes-ia64.o
$bf_obj =
$md5_obj =
-$sha1_obj =
+$sha1_obj = sha1-ia64.o sha256-ia64.o sha512-ia64.o
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-ia64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
@@ -2725,41 +2376,18 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** hpux64-parisc-gcc
-$cc = gcc
-$cflags = -DB_ENDIAN -DMD32_XARRAY
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= hpux-shared
-$shared_cflag = -fpic
-$shared_ldflag = -shared
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
*** hpux64-parisc2-cc
$cc = cc
-$cflags = +DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY
+$cflags = +DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj = asm/pa-risc2W.o
+$cpuid_obj =
+$bn_obj = pa-risc2W.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2777,14 +2405,16 @@ $arflags =
*** hpux64-parisc2-gcc
$cc = gcc
-$cflags = -O3 -DB_ENDIAN
+$cflags = -O3 -DB_ENDIAN -D_REENTRANT
$unistd =
-$thread_cflag = -D_REENTRANT
+$thread_cflag =
$sys_id =
$lflags = -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT
-$bn_obj = asm/pa-risc2W.o
+$cpuid_obj =
+$bn_obj = pa-risc2W.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2808,15 +2438,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
@@ -2833,8 +2465,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC2 DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2858,8 +2492,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2883,8 +2519,10 @@ $thread_cflag = -D_SGI_MP_SOURCE
$sys_id =
$lflags =
$bn_ops = DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT
-$bn_obj = asm/mips3.o
+$cpuid_obj =
+$bn_obj = mips3.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2908,8 +2546,10 @@ $thread_cflag = -D_SGI_MP_SOURCE
$sys_id =
$lflags =
$bn_ops = MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT
-$bn_obj = asm/mips3.o
+$cpuid_obj =
+$bn_obj = mips3.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2933,8 +2573,10 @@ $thread_cflag = -D_SGI_MP_SOURCE
$sys_id =
$lflags =
$bn_ops = RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG
-$bn_obj = asm/mips3.o
+$cpuid_obj =
+$bn_obj = mips3.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2958,8 +2600,10 @@ $thread_cflag = -D_SGI_MP_SOURCE
$sys_id =
$lflags =
$bn_ops = RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG
-$bn_obj = asm/mips3.o
+$cpuid_obj =
+$bn_obj = mips3.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -2983,8 +2627,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags =
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3008,8 +2654,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3033,8 +2681,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags =
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3058,8 +2708,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3083,15 +2735,17 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-out.o asm/co86-out.o
-$des_obj = asm/dx86-out.o asm/yx86-out.o
-$bf_obj = asm/bx86-out.o
-$md5_obj = asm/mx86-out.o
-$sha1_obj = asm/sx86-out.o
-$cast_obj = asm/cx86-out.o
-$rc4_obj = asm/rx86-out.o
-$rmd160_obj = asm/rm86-out.o
-$rc5_obj = asm/r586-out.o
+$cpuid_obj = x86cpuid-out.o
+$bn_obj = bn86-out.o co86-out.o
+$des_obj = dx86-out.o yx86-out.o
+$aes_obj = ax86-out.o
+$bf_obj = bx86-out.o
+$md5_obj = mx86-out.o
+$sha1_obj = sx86-out.o s512sse2-out.o
+$cast_obj = cx86-out.o
+$rc4_obj = rx86-out.o
+$rmd160_obj = rm86-out.o
+$rc5_obj = r586-out.o
$dso_scheme =
$shared_target=
$shared_cflag =
@@ -3102,21 +2756,23 @@ $arflags =
*** linux-elf
$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall
+$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
@@ -3125,16 +2781,18 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** linux-elf-arm
+*** linux-generic32
$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
+$cflags = -DTERMIO -O3 -fomit-frame-pointer -Wall
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
-$bn_ops = BN_LLONG
+$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3150,66 +2808,18 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** linux-ia32-icc
-$cc = icc
-$cflags = -DL_ENDIAN -DTERMIO -O2 -no_cpprt
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -ldl
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
-$dso_scheme = dlfcn
-$shared_target= linux-shared
-$shared_cflag = -KPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** linux-ia64
+*** linux-generic64
$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
+$cflags = -DTERMIO -O3 -Wall
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR
-$bn_obj = asm/ia64.o
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= linux-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** linux-ia64-ecc
-$cc = ecc
-$cflags = -DL_ENDIAN -DTERMIO -O2 -Wall
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR
-$bn_obj = asm/ia64.o
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR
+$cpuid_obj =
+$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3225,71 +2835,50 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** linux-k6
-$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=k6 -Wall
+*** linux-ia32-icc
+$cc = icc
+$cflags = -DL_ENDIAN -DTERMIO -O2 -no_cpprt
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
-$shared_cflag = -fPIC
+$shared_cflag = -KPIC
$shared_ldflag =
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** linux-m68k
-$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** linux-mips
+*** linux-ia64
$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
+$cflags = -DL_ENDIAN -DTERMIO -O3 -Wall
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2
-$bn_obj =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
+$cpuid_obj =
+$bn_obj = ia64.o
$des_obj =
+$aes_obj = aes_core.o aes_cbc.o aes-ia64.o
$bf_obj =
$md5_obj =
-$sha1_obj =
+$sha1_obj = sha1-ia64.o sha256-ia64.o sha512-ia64.o
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-ia64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
@@ -3300,73 +2889,25 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** linux-mipsel
-$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
+*** linux-ia64-ecc
+$cc = ecc
+$cflags = -DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
-$bn_ops = BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= linux-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** linux-parisc
-$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
+$cpuid_obj =
+$bn_obj = ia64.o
$des_obj =
+$aes_obj = aes_core.o aes_cbc.o aes-ia64.o
$bf_obj =
$md5_obj =
-$sha1_obj =
+$sha1_obj = sha1-ia64.o sha256-ia64.o sha512-ia64.o
$cast_obj =
-$rc4_obj =
+$rc4_obj = rc4-ia64.o
$rmd160_obj =
$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
-*** linux-pentium
-$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=pentium -Wall
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -ldl
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
@@ -3383,8 +2924,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL
-$bn_obj = asm/linux_ppc32.o
+$cpuid_obj =
+$bn_obj = linux_ppc32.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3402,64 +2945,16 @@ $arflags =
*** linux-ppc64
$cc = gcc
-$cflags = -m64 -DB_ENDIAN -DTERMIO -O3 -Wall
+$cflags = -bpowerpc64-linux -DB_ENDIAN -DTERMIO -O3 -Wall
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL
-$bn_obj = asm/linux_ppc64.o
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= linux-shared
-$shared_cflag = -fPIC
-$shared_ldflag = -m64
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** linux-ppro
-$cc = gcc
-$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=pentiumpro -Wall
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -ldl
-$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
-$dso_scheme = dlfcn
-$shared_target= linux-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** linux-s390
-$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -ldl
-$bn_ops = BN_LLONG
-$bn_obj =
+$cpuid_obj =
+$bn_obj = linux_ppc64.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3470,61 +2965,11 @@ $rc5_obj =
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
-$shared_ldflag =
+$shared_ldflag = -bpowerpc64-linux
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** linux-s390x
-$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT_LONG
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= linux-shared
-$shared_cflag = -fPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** linux-sparcv7
-$cc = gcc
-$cflags = -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags =
-$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme =
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
-$shared_extension =
-$ranlib =
-$arflags =
-
*** linux-sparcv8
$cc = gcc
$cflags = -mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W
@@ -3533,8 +2978,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$cpuid_obj =
+$bn_obj = sparcv8.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3552,16 +2999,18 @@ $arflags =
*** linux-sparcv9
$cc = gcc
-$cflags = -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W
+$cflags = -m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8plus.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$cpuid_obj =
+$bn_obj = sparcv8plus.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv8plus.o
+$md5_obj = md5-sparcv8plus.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -3570,7 +3019,7 @@ $rc5_obj =
$dso_scheme = dlfcn
$shared_target= linux-shared
$shared_cflag = -fPIC
-$shared_ldflag =
+$shared_ldflag = -m32
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
@@ -3583,13 +3032,15 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL
-$bn_obj = asm/x86_64-gcc.o
+$cpuid_obj = amd64cpuid.o
+$bn_obj = x86_64-gcc.o
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
$cast_obj =
-$rc4_obj = asm/rc4-amd64.o
+$rc4_obj = rc4-amd64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
@@ -3608,10 +3059,12 @@ $thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv9.o
+$md5_obj = md5-sparcv9.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -3627,25 +3080,27 @@ $arflags =
*** mingw
$cc = gcc
-$cflags = -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -mno-cygwin -Wall
+$cflags = -mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall
$unistd =
$thread_cflag =
$sys_id = MINGW32
$lflags = -mno-cygwin -lwsock32 -lgdi32
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-out.o asm/co86-out.o
-$des_obj = asm/dx86-out.o asm/yx86-out.o
-$bf_obj = asm/bx86-out.o
-$md5_obj = asm/mx86-out.o
-$sha1_obj = asm/sx86-out.o
-$cast_obj = asm/cx86-out.o
-$rc4_obj = asm/rx86-out.o
-$rmd160_obj = asm/rm86-out.o
-$rc5_obj = asm/r586-out.o
+$cpuid_obj = x86cpuid-cof.o
+$bn_obj = bn86-cof.o co86-cof.o
+$des_obj = dx86-cof.o yx86-cof.o
+$aes_obj = ax86-cof.o
+$bf_obj = bx86-cof.o
+$md5_obj = mx86-cof.o
+$sha1_obj = sx86-cof.o s512sse2-cof.o
+$cast_obj = cx86-cof.o
+$rc4_obj = rx86-cof.o
+$rmd160_obj = /rm86-cof.o
+$rc5_obj = r586-cof.o
$dso_scheme = win32
-$shared_target=
-$shared_cflag =
-$shared_ldflag =
+$shared_target= cygwin-shared
+$shared_cflag = -D_DLL
+$shared_ldflag = -shared
$shared_extension = .dll
$ranlib =
$arflags =
@@ -3658,8 +3113,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lsocket -lnsl -lc89
$bn_ops = DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3683,8 +3140,10 @@ $thread_cflag =
$sys_id =
$lflags = RC4_INDEX MD2_INT
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3708,8 +3167,10 @@ $thread_cflag =
$sys_id =
$lflags = BN_LLONG RC4_INDEX MD2_INT
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3733,8 +3194,10 @@ $thread_cflag =
$sys_id =
$lflags = RC4_INDEX MD2_INT
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3758,8 +3221,10 @@ $thread_cflag = (unknown)
$sys_id = NEWS4
$lflags = -lmld -liberty
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3783,8 +3248,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3808,8 +3275,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3825,6 +3294,60 @@ $shared_extension =
$ranlib =
$arflags =
+*** ofs1-alpha-cc
+$cc = cc
+$cflags = -std1 -tune host -O4 -readonly_strings
+$unistd =
+$thread_cflag = (unknown)
+$sys_id =
+$lflags =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
+$cpuid_obj =
+$bn_obj =
+$des_obj =
+$aes_obj =
+$bf_obj =
+$md5_obj =
+$sha1_obj =
+$cast_obj =
+$rc4_obj =
+$rmd160_obj =
+$rc5_obj =
+$dso_scheme = dlfcn
+$shared_target= alpha-osf1-shared
+$shared_cflag =
+$shared_ldflag =
+$shared_extension = .so
+$ranlib =
+$arflags =
+
+*** osf1-alpha-gcc
+$cc = gcc
+$cflags = -O3
+$unistd =
+$thread_cflag = (unknown)
+$sys_id =
+$lflags =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1
+$cpuid_obj =
+$bn_obj =
+$des_obj =
+$aes_obj =
+$bf_obj =
+$md5_obj =
+$sha1_obj =
+$cast_obj =
+$rc4_obj =
+$rmd160_obj =
+$rc5_obj =
+$dso_scheme = dlfcn
+$shared_target= alpha-osf1-shared
+$shared_cflag =
+$shared_ldflag =
+$shared_extension = .so
+$ranlib =
+$arflags =
+
*** purify
$cc = purify gcc
$cflags = -g -DPURIFY -Wall
@@ -3833,8 +3356,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3858,8 +3383,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3883,8 +3410,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lsocket
$bn_ops = DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3908,8 +3437,10 @@ $thread_cflag = (unknown)
$sys_id = MACOSX_RHAPSODY
$lflags =
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3933,8 +3464,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lsocket
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -3958,15 +3491,17 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops = DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= svr3-shared
$shared_cflag = -Kpic
@@ -3983,15 +3518,17 @@ $thread_cflag = (unknown)
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= svr3-shared
$shared_cflag = -fPIC
@@ -4000,31 +3537,6 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
-*** solaris-sparc-sc3
-$cc = cc
-$cflags = -fast -O -Xa -DB_ENDIAN
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id =
-$lflags = -lsocket -lnsl -ldl
-$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR
-$bn_obj =
-$des_obj =
-$bf_obj =
-$md5_obj =
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= solaris-shared
-$shared_cflag = -KPIC
-$shared_ldflag =
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
*** solaris-sparcv7-cc
$cc = cc
$cflags = -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W
@@ -4033,8 +3545,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4058,8 +3572,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4083,8 +3599,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$cpuid_obj =
+$bn_obj = sparcv8.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4108,8 +3626,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$cpuid_obj =
+$bn_obj = sparcv8.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4133,10 +3653,12 @@ $thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8plus.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$cpuid_obj =
+$bn_obj = sparcv8plus.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv8plus.o
+$md5_obj = md5-sparcv8plus.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -4158,35 +3680,12 @@ $thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8plus.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$cpuid_obj =
+$bn_obj = sparcv8plus.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv8plus.o
-$sha1_obj =
-$cast_obj =
-$rc4_obj =
-$rmd160_obj =
-$rc5_obj =
-$dso_scheme = dlfcn
-$shared_target= solaris-shared
-$shared_cflag = -fPIC
-$shared_ldflag = -shared
-$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
-$ranlib =
-$arflags =
-
-*** solaris-sparcv9-gcc27
-$cc = gcc
-$cflags = -mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W
-$unistd =
-$thread_cflag = -D_REENTRANT
-$sys_id = ULTRASPARC
-$lflags = -lsocket -lnsl -ldl
-$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
-$bn_obj = asm/sparcv8plus-gcc27.o
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
-$bf_obj =
-$md5_obj = asm/md5-sparcv8plus-gcc27.o
+$md5_obj = md5-sparcv8plus.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -4208,8 +3707,10 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4233,15 +3734,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl -ldl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= solaris-shared
$shared_cflag = -fPIC
@@ -4258,10 +3761,12 @@ $thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -lsocket -lnsl -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv9.o
+$md5_obj = md5-sparcv9.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -4283,10 +3788,12 @@ $thread_cflag = -D_REENTRANT
$sys_id = ULTRASPARC
$lflags = -lsocket -lnsl -ldl
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR
+$cpuid_obj =
$bn_obj =
-$des_obj = asm/des_enc-sparc.o fcrypt_b.o
+$des_obj = des_enc-sparc.o fcrypt_b.o
+$aes_obj =
$bf_obj =
-$md5_obj = asm/md5-sparcv9.o
+$md5_obj = md5-sparcv9.o
$sha1_obj =
$cast_obj =
$rc4_obj =
@@ -4308,8 +3815,10 @@ $thread_cflag = (unknown)
$sys_id = SUNOS
$lflags =
$bn_ops = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4333,8 +3842,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops = THIRTY_TWO_BIT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4350,6 +3861,33 @@ $shared_extension =
$ranlib =
$arflags =
+*** tru64-alpha-cc
+$cc = cc
+$cflags = -std1 -tune host -fast -readonly_strings
+$unistd =
+$thread_cflag = -pthread
+$sys_id =
+$lflags =
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK
+$cpuid_obj =
+$bn_obj =
+$des_obj =
+$aes_obj =
+$bf_obj =
+$md5_obj =
+$sha1_obj =
+$cast_obj =
+$rc4_obj =
+$rmd160_obj =
+$rc5_obj =
+$dso_scheme = dlfcn
+$shared_target= tru64-shared
+$shared_cflag =
+$shared_ldflag =
+$shared_extension = .so
+$ranlib =
+$arflags =
+
*** ultrix-cc
$cc = cc
$cflags = -std1 -O -Olimit 2500 -DL_ENDIAN
@@ -4358,8 +3896,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4383,8 +3923,10 @@ $thread_cflag = (unknown)
$sys_id =
$lflags =
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4408,8 +3950,10 @@ $thread_cflag = -Kthread
$sys_id =
$lflags = -lsocket -lnsl -lresolv -lx
$bn_ops = DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4433,8 +3977,10 @@ $thread_cflag = -Kthread
$sys_id =
$lflags = -lsocket -lnsl -lresolv -lx
$bn_ops = DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4458,15 +4004,17 @@ $thread_cflag = -Kthread
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops = BN_LLONG MD2_CHAR RC4_INDEX DES_PTR DES_RISC1 DES_UNROLL
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= svr5-shared
$shared_cflag = -Kpic
@@ -4483,15 +4031,17 @@ $thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -lsocket -lnsl
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
-$bn_obj = asm/bn86-elf.o asm/co86-elf.o
-$des_obj = asm/dx86-elf.o asm/yx86-elf.o
-$bf_obj = asm/bx86-elf.o
-$md5_obj = asm/mx86-elf.o
-$sha1_obj = asm/sx86-elf.o
-$cast_obj = asm/cx86-elf.o
-$rc4_obj = asm/rx86-elf.o
-$rmd160_obj = asm/rm86-elf.o
-$rc5_obj = asm/r586-elf.o
+$cpuid_obj = x86cpuid-elf.o
+$bn_obj = bn86-elf.o co86-elf.o
+$des_obj = dx86-elf.o yx86-elf.o
+$aes_obj = ax86-elf.o
+$bf_obj = bx86-elf.o
+$md5_obj = mx86-elf.o
+$sha1_obj = sx86-elf.o s512sse2-elf.o
+$cast_obj = cx86-elf.o
+$rc4_obj = rx86-elf.o
+$rmd160_obj = rm86-elf.o
+$rc5_obj = r586-elf.o
$dso_scheme = dlfcn
$shared_target= gnu-shared
$shared_cflag = -fPIC
@@ -4508,8 +4058,10 @@ $thread_cflag = (unknown)
$sys_id = VOS
$lflags = -Wl,-map
$bn_ops = BN_LLONG
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4520,8 +4072,8 @@ $rc5_obj =
$dso_scheme =
$shared_target=
$shared_cflag =
-$shared_ldflag = .so
-$shared_extension =
+$shared_ldflag =
+$shared_extension = .so
$ranlib =
$arflags =
@@ -4533,8 +4085,10 @@ $thread_cflag = (unknown)
$sys_id = VOS
$lflags = -Wl,-map
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4545,8 +4099,8 @@ $rc5_obj =
$dso_scheme =
$shared_target=
$shared_cflag =
-$shared_ldflag = .so
-$shared_extension =
+$shared_ldflag =
+$shared_extension = .so
$ranlib =
$arflags =
@@ -4558,8 +4112,10 @@ $thread_cflag =
$sys_id = VXWORKS
$lflags = -r
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4583,8 +4139,10 @@ $thread_cflag =
$sys_id = VXWORKS
$lflags = -r
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4608,8 +4166,10 @@ $thread_cflag =
$sys_id = VXWORKS
$lflags = -r
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4633,8 +4193,10 @@ $thread_cflag =
$sys_id = VXWORKS
$lflags = -r
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
@@ -4658,8 +4220,10 @@ $thread_cflag =
$sys_id = VXWORKS
$lflags = -r
$bn_ops =
+$cpuid_obj =
$bn_obj =
$des_obj =
+$aes_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
diff --git a/apps/CA.pl.in b/apps/CA.pl.in
index b09820755d..5d829c05eb 100644
--- a/apps/CA.pl.in
+++ b/apps/CA.pl.in
@@ -36,14 +36,22 @@
# default openssl.cnf file has setup as per the following
# demoCA ... where everything is stored
+my $openssl;
+if(defined $ENV{OPENSSL}) {
+ $openssl = $ENV{OPENSSL};
+} else {
+ $openssl = "openssl";
+ $ENV{OPENSSL} = $openssl;
+}
+
$SSLEAY_CONFIG=$ENV{"SSLEAY_CONFIG"};
$DAYS="-days 365"; # 1 year
$CADAYS="-days 1095"; # 3 years
-$REQ="openssl req $SSLEAY_CONFIG";
-$CA="openssl ca $SSLEAY_CONFIG";
-$VERIFY="openssl verify";
-$X509="openssl x509";
-$PKCS12="openssl pkcs12";
+$REQ="$openssl req $SSLEAY_CONFIG";
+$CA="$openssl ca $SSLEAY_CONFIG";
+$VERIFY="$openssl verify";
+$X509="$openssl x509";
+$PKCS12="$openssl pkcs12";
$CATOP="./demoCA";
$CAKEY="cakey.pem";
diff --git a/apps/CA.sh b/apps/CA.sh
index e63a2267ee..46e86bf94b 100644
--- a/apps/CA.sh
+++ b/apps/CA.sh
@@ -30,12 +30,14 @@
# default openssl.cnf file has setup as per the following
# demoCA ... where everything is stored
+if [ -z "$OPENSSL" ]; then OPENSSL=openssl; fi
+
DAYS="-days 365" # 1 year
CADAYS="-days 1095" # 3 years
-REQ="openssl req $SSLEAY_CONFIG"
-CA="openssl ca $SSLEAY_CONFIG"
-VERIFY="openssl verify"
-X509="openssl x509"
+REQ="$OPENSSL req $SSLEAY_CONFIG"
+CA="$OPENSSL ca $SSLEAY_CONFIG"
+VERIFY="$OPENSSL verify"
+X509="$OPENSSL x509"
CATOP=./demoCA
CAKEY=./cakey.pem
diff --git a/apps/Makefile.ssl b/apps/Makefile.ssl
index 3d75664660..8fd61bfe54 100644
--- a/apps/Makefile.ssl
+++ b/apps/Makefile.ssl
@@ -38,7 +38,7 @@ LIBSSL=-L.. -lssl
PROGRAM= openssl
-SCRIPTS=CA.sh CA.pl der_chop
+SCRIPTS=CA.sh CA.pl
EXE= $(PROGRAM)$(EXE_EXT)
@@ -62,14 +62,16 @@ E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o er
rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o \
x509.o genrsa.o gendsa.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 spkac.o smime.o rand.o engine.o ocsp.o
+ ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o smime.o rand.o engine.o \
+ ocsp.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 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 spkac.c smime.c rand.c engine.c ocsp.c
+ ciphers.c nseq.c pkcs12.c pkcs8.c spkac.c smime.c rand.c engine.c \
+ ocsp.c
SRC=$(E_SRC)
@@ -92,7 +94,8 @@ req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
shlib_target="$(SHLIB_TARGET)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=req LDFLAGS="$(CFLAG)" \
+ APPNAME=req CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAG)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="sreq.o $(A_OBJ) $(RAND_OBJ)" \
LIBDEPS="$(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -162,19 +165,16 @@ $(EXE): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
LIBRARIES="$(LIBSSL) $(LIBKRB5) $(LIBCRYPTO)" ; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(EXE) LDFLAGS="$(CFLAG)" \
+ APPNAME=$(EXE) CC="$(CC)" CFLAGS="$(CFLAG)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(PROGRAM).o $(E_OBJ)" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
- -(cd ..; OPENSSL="`pwd`/apps/$(EXE)"; export OPENSSL; \
- LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
- LIBPATH="`pwd`:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
- $(PERL) tools/c_rehash certs)
+ @case "../*.dll" in *\**) ;; *) cp -p ../*.dll .;; esac
+ -(cd ..; \
+ OPENSSL="`pwd`/util/opensslwrap.sh"; export OPENSSL; \
+ $(PERL) tools/c_rehash certs)
progs.h: progs.pl
$(PERL) progs.pl $(E_EXE) >progs.h
@@ -787,7 +787,8 @@ smime.o: ../include/openssl/pem.h ../include/openssl/pem2.h
smime.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
smime.o: ../include/openssl/sha.h ../include/openssl/stack.h
smime.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
-smime.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h smime.c
+smime.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+smime.o: ../include/openssl/x509v3.h apps.h 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
diff --git a/apps/apps.c b/apps/apps.c
index 3c3a11ce4d..1bcebc749a 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -539,7 +539,7 @@ int password_callback(char *buf, int bufsiz, int verify,
char *prompt = NULL;
prompt = UI_construct_prompt(ui, "pass phrase",
- cb_data->prompt_info);
+ prompt_info);
ui_flags |= UI_INPUT_FLAG_DEFAULT_PWD;
UI_ctrl(ui, UI_CTRL_PRINT_ERRORS, 1, 0, 0);
@@ -688,6 +688,51 @@ int add_oid_section(BIO *err, CONF *conf)
return 1;
}
+static int load_pkcs12(BIO *err, BIO *in, const char *desc,
+ pem_password_cb *pem_cb, void *cb_data,
+ EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca)
+ {
+ const char *pass;
+ char tpass[PEM_BUFSIZE];
+ int len, ret = 0;
+ PKCS12 *p12;
+ p12 = d2i_PKCS12_bio(in, NULL);
+ if (p12 == NULL)
+ {
+ BIO_printf(err, "Error loading PKCS12 file for %s\n", desc);
+ goto die;
+ }
+ /* See if an empty password will do */
+ if (PKCS12_verify_mac(p12, "", 0) || PKCS12_verify_mac(p12, NULL, 0))
+ pass = "";
+ else
+ {
+ if (!pem_cb)
+ pem_cb = (pem_password_cb *)password_callback;
+ len = pem_cb(tpass, PEM_BUFSIZE, 0, cb_data);
+ if (len < 0)
+ {
+ BIO_printf(err, "Passpharse callback error for %s\n",
+ desc);
+ goto die;
+ }
+ if (len < PEM_BUFSIZE)
+ tpass[len] = 0;
+ if (!PKCS12_verify_mac(p12, tpass, len))
+ {
+ BIO_printf(err,
+ "Mac verify error (wrong password?) in PKCS12 file for %s\n", desc);
+ goto die;
+ }
+ pass = tpass;
+ }
+ ret = PKCS12_parse(p12, pass, pkey, cert, ca);
+ die:
+ if (p12)
+ PKCS12_free(p12);
+ return ret;
+ }
+
X509 *load_cert(BIO *err, const char *file, int format,
const char *pass, ENGINE *e, const char *cert_descrip)
{
@@ -768,11 +813,9 @@ X509 *load_cert(BIO *err, const char *file, int format,
(pem_password_cb *)password_callback, NULL);
else if (format == FORMAT_PKCS12)
{
- PKCS12 *p12 = d2i_PKCS12_bio(cert, NULL);
-
- PKCS12_parse(p12, NULL, NULL, &x, NULL);
- PKCS12_free(p12);
- p12 = NULL;
+ if (!load_pkcs12(err, cert,cert_descrip, NULL, NULL,
+ NULL, &x, NULL))
+ goto end;
}
else {
BIO_printf(err,"bad input format specified for %s\n",
@@ -851,11 +894,10 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
#endif
else if (format == FORMAT_PKCS12)
{
- PKCS12 *p12 = d2i_PKCS12_bio(key, NULL);
-
- PKCS12_parse(p12, pass, &pkey, NULL, NULL);
- PKCS12_free(p12);
- p12 = NULL;
+ if (!load_pkcs12(err, key, key_descrip,
+ (pem_password_cb *)password_callback, &cb_data,
+ &pkey, NULL, NULL))
+ goto end;
}
else
{
@@ -2140,3 +2182,141 @@ int WIN32_rename(char *from, char *to)
#endif
}
#endif
+
+int args_verify(char ***pargs, int *pargc,
+ int *badarg, BIO *err, X509_VERIFY_PARAM **pm)
+ {
+ ASN1_OBJECT *otmp = NULL;
+ unsigned long flags = 0;
+ int i;
+ int purpose = 0;
+ char **oldargs = *pargs;
+ char *arg = **pargs, *argn = (*pargs)[1];
+ if (!strcmp(arg, "-policy"))
+ {
+ if (!argn)
+ *badarg = 1;
+ else
+ {
+ otmp = OBJ_txt2obj(argn, 0);
+ if (!otmp)
+ {
+ BIO_printf(err, "Invalid Policy \"%s\"\n",
+ argn);
+ *badarg = 1;
+ }
+ }
+ (*pargs)++;
+ }
+ else if (strcmp(arg,"-purpose") == 0)
+ {
+ X509_PURPOSE *xptmp;
+ if (!argn)
+ *badarg = 1;
+ else
+ {
+ i = X509_PURPOSE_get_by_sname(argn);
+ if(i < 0)
+ {
+ BIO_printf(err, "unrecognized purpose\n");
+ *badarg = 1;
+ }
+ else
+ {
+ xptmp = X509_PURPOSE_get0(i);
+ purpose = X509_PURPOSE_get_id(xptmp);
+ }
+ }
+ (*pargs)++;
+ }
+ else if (!strcmp(arg, "-ignore_critical"))
+ flags |= X509_V_FLAG_IGNORE_CRITICAL;
+ else if (!strcmp(arg, "-issuer_checks"))
+ flags |= X509_V_FLAG_CB_ISSUER_CHECK;
+ else if (!strcmp(arg, "-crl_check"))
+ flags |= X509_V_FLAG_CRL_CHECK;
+ else if (!strcmp(arg, "-crl_check_all"))
+ flags |= X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL;
+ else if (!strcmp(arg, "-policy_check"))
+ flags |= X509_V_FLAG_POLICY_CHECK;
+ else if (!strcmp(arg, "-explicit_policy"))
+ flags |= X509_V_FLAG_EXPLICIT_POLICY;
+ else if (!strcmp(arg, "-x509_strict"))
+ flags |= X509_V_FLAG_X509_STRICT;
+ else if (!strcmp(arg, "-policy_print"))
+ flags |= X509_V_FLAG_NOTIFY_POLICY;
+ else
+ return 0;
+
+ if (*badarg)
+ {
+ if (*pm)
+ X509_VERIFY_PARAM_free(*pm);
+ *pm = NULL;
+ goto end;
+ }
+
+ if (!*pm && !(*pm = X509_VERIFY_PARAM_new()))
+ {
+ *badarg = 1;
+ goto end;
+ }
+
+ if (otmp)
+ X509_VERIFY_PARAM_add0_policy(*pm, otmp);
+ if (flags)
+ X509_VERIFY_PARAM_set_flags(*pm, flags);
+
+ if (purpose)
+ X509_VERIFY_PARAM_set_purpose(*pm, purpose);
+
+ end:
+
+ (*pargs)++;
+
+ if (pargc)
+ *pargc -= *pargs - oldargs;
+
+ return 1;
+
+ }
+
+static void nodes_print(BIO *out, char *name, STACK_OF(X509_POLICY_NODE) *nodes)
+ {
+ X509_POLICY_NODE *node;
+ int i;
+ BIO_printf(out, "%s Policies:", name);
+ if (nodes)
+ {
+ BIO_puts(out, "\n");
+ for (i = 0; i < sk_X509_POLICY_NODE_num(nodes); i++)
+ {
+ node = sk_X509_POLICY_NODE_value(nodes, i);
+ X509_POLICY_NODE_print(out, node, 2);
+ }
+ }
+ else
+ BIO_puts(out, " <empty>\n");
+ }
+
+void policies_print(BIO *out, X509_STORE_CTX *ctx)
+ {
+ X509_POLICY_TREE *tree;
+ int explicit_policy;
+ int free_out = 0;
+ if (out == NULL)
+ {
+ out = BIO_new_fp(stderr, BIO_NOCLOSE);
+ free_out = 1;
+ }
+ tree = X509_STORE_CTX_get0_policy_tree(ctx);
+ explicit_policy = X509_STORE_CTX_get_explicit_policy(ctx);
+
+ BIO_printf(out, "Require explicit Policy: %s\n",
+ explicit_policy ? "True" : "False");
+
+ nodes_print(out, "Authority", X509_policy_tree_get0_policies(tree));
+ nodes_print(out, "User", X509_policy_tree_get0_user_policies(tree));
+ if (free_out)
+ BIO_free(out);
+ }
diff --git a/apps/apps.h b/apps/apps.h
index e653bf1b46..7d879637b7 100644
--- a/apps/apps.h
+++ b/apps/apps.h
@@ -317,6 +317,9 @@ int index_name_cmp(const char **a, const char **b);
int parse_yesno(char *str, int def);
X509_NAME *parse_name(char *str, long chtype, int multirdn);
+int args_verify(char ***pargs, int *pargc,
+ int *badarg, BIO *err, X509_VERIFY_PARAM **pm);
+void policies_print(BIO *out, X509_STORE_CTX *ctx);
#define FORMAT_UNDEF 0
#define FORMAT_ASN1 1
diff --git a/apps/ca.c b/apps/ca.c
index 0fd445613d..15c5741624 100644
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -549,10 +549,6 @@ bad:
ERR_load_crypto_strings();
-#ifndef OPENSSL_NO_ENGINE
- e = setup_engine(bio_err, engine, 0);
-#endif
-
/*****************************************************************/
tofree=NULL;
if (configfile == NULL) configfile = getenv("OPENSSL_CONF");
@@ -597,6 +593,10 @@ bad:
if (!load_config(bio_err, conf))
goto err;
+#ifndef OPENSSL_NO_ENGINE
+ e = setup_engine(bio_err, engine, 0);
+#endif
+
/* Lets get the config section we are using */
if (section == NULL)
{
@@ -995,25 +995,27 @@ bad:
}
}
+ if ((md == NULL) && ((md=NCONF_get_string(conf,
+ section,ENV_DEFAULT_MD)) == NULL))
+ {
+ lookup_fail(section,ENV_DEFAULT_MD);
+ goto err;
+ }
+
+ if ((dgst=EVP_get_digestbyname(md)) == NULL)
+ {
+ BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
+ goto err;
+ }
+
if (req)
{
- if ((md == NULL) && ((md=NCONF_get_string(conf,
- section,ENV_DEFAULT_MD)) == NULL))
- {
- lookup_fail(section,ENV_DEFAULT_MD);
- goto err;
- }
if ((email_dn == 1) && ((tmp_email_dn=NCONF_get_string(conf,
section,ENV_DEFAULT_EMAIL_DN)) != NULL ))
{
if(strcmp(tmp_email_dn,"no") == 0)
email_dn=0;
}
- if ((dgst=EVP_get_digestbyname(md)) == NULL)
- {
- BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
- goto err;
- }
if (verbose)
BIO_printf(bio_err,"message digest is %s\n",
OBJ_nid2ln(dgst->type));
@@ -1396,28 +1398,15 @@ bad:
/* we now have a CRL */
if (verbose) BIO_printf(bio_err,"signing CRL\n");
- if (md != NULL)
- {
- if ((dgst=EVP_get_digestbyname(md)) == NULL)
- {
- BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
- goto err;
- }
- }
- else
- {
#ifndef OPENSSL_NO_DSA
- if (pkey->type == EVP_PKEY_DSA)
- dgst=EVP_dss1();
- else
+ if (pkey->type == EVP_PKEY_DSA)
+ dgst=EVP_dss1();
+ else
#endif
#ifndef OPENSSL_NO_ECDSA
- if (pkey->type == EVP_PKEY_EC)
- dgst=EVP_ecdsa();
- else
+ if (pkey->type == EVP_PKEY_EC)
+ dgst=EVP_ecdsa();
#endif
- dgst=EVP_md5();
- }
/* Add any extensions asked for */
diff --git a/apps/crl.c b/apps/crl.c
index 81d66587c1..878f65468e 100644
--- a/apps/crl.c
+++ b/apps/crl.c
@@ -355,7 +355,11 @@ bad:
if (text) X509_CRL_print(out, x);
- if (noout) goto end;
+ if (noout)
+ {
+ ret = 0;
+ goto end;
+ }
if (outformat == FORMAT_ASN1)
i=(int)i2d_X509_CRL_bio(out,x);
diff --git a/apps/der_chop.in b/apps/der_chop.in
deleted file mode 100644
index 9070b032fc..0000000000
--- a/apps/der_chop.in
+++ /dev/null
@@ -1,305 +0,0 @@
-#!/usr/local/bin/perl
-#
-# der_chop ... this is one total hack that Eric is really not proud of
-# so don't look at it and don't ask for support
-#
-# The "documentation" for this (i.e. all the comments) are my fault --tjh
-#
-# This program takes the "raw" output of derparse/asn1parse and
-# converts it into tokens and then runs regular expression matches
-# to try to figure out what to grab to get the things that are needed
-# and it is possible that this will do the wrong thing as it is a *hack*
-#
-# SSLeay 0.5.2+ should have direct read support for x509 (via -inform NET)
-# [I know ... promises promises :-)]
-#
-# To convert a Netscape Certificate:
-# der_chop < ServerCert.der > cert.pem
-# To convert a Netscape Key (and encrypt it again to protect it)
-# rsa -inform NET -in ServerKey.der -des > key.pem
-#
-# 23-Apr-96 eay Added the extra ASN.1 string types, I still think this
-# is an evil hack. If nothing else the parsing should
-# be relative, not absolute.
-# 19-Apr-96 tjh hacked (with eay) into 0.5.x format
-#
-# Tim Hudson
-# tjh@cryptsoft.com
-#
-
-
-require 'getopts.pl';
-
-$debug=0;
-
-# this was the 0.4.x way of doing things ...
-$cmd="derparse";
-$x509_cmd="x509";
-$crl_cmd="crl";
-$rc4_cmd="rc4";
-$md2_cmd="md2";
-$md4_cmd="md4";
-$rsa_cmd="rsa -des -inform der ";
-
-# this was the 0.5.x way of doing things ...
-$cmd="openssl asn1parse";
-$x509_cmd="openssl x509";
-$crl_cmd="openssl crl";
-$rc4_cmd="openssl rc4";
-$md2_cmd="openssl md2";
-$md4_cmd="openssl md4";
-$rsa_cmd="openssl rsa -des -inform der ";
-
-&Getopts('vd:') || die "usage:$0 [-v] [-d num] file";
-$depth=($opt_d =~ /^\d+$/)?$opt_d:0;
-
-&init_der();
-
-if ($#ARGV != -1)
- {
- foreach $file (@ARGV)
- {
- print STDERR "doing $file\n";
- &dofile($file);
- }
- }
-else
- {
- $file="/tmp/a$$.DER";
- open(OUT,">$file") || die "unable to open $file:$!\n";
- for (;;)
- {
- $i=sysread(STDIN,$b,1024*10);
- last if ($i <= 0);
- $i=syswrite(OUT,$b,$i);
- }
- &dofile($file);
- unlink($file);
- }
-
-sub dofile
- {
- local($file)=@_;
- local(@p);
-
- $b=&load_file($file);
- @p=&load_file_parse($file);
-
- foreach $_ (@p)
- {
- ($off,$d,$hl,$len)=&parse_line($_);
- $d-=$depth;
- next if ($d != 0);
- next if ($len == 0);
-
- $o=substr($b,$off,$len+$hl);
- ($str,@data)=&der_str($o);
- print "$str\n" if ($opt_v);
- if ($str =~ /^$crl/)
- {
- open(OUT,"|$crl_cmd -inform d -hash -issuer") ||
- die "unable to run $crl_cmd:$!\n";
- print OUT $o;
- close(OUT);
- }
- elsif ($str =~ /^$x509/)
- {
- open(OUT,"|$x509_cmd -inform d -hash -subject -issuer")
- || die "unable to run $x509_cmd:$!\n";
- print OUT $o;
- close(OUT);
- }
- elsif ($str =~ /^$rsa/)
- {
- ($type)=($data[3] =~ /OBJECT_IDENTIFIER :(.*)\s*$/);
- next unless ($type eq "rsaEncryption");
- ($off,$d,$hl,$len)=&parse_line($data[5]);
- $os=substr($o,$off+$hl,$len);
- open(OUT,"|$rsa_cmd")
- || die "unable to run $rsa_cmd:$!\n";
- print OUT $os;
- close(OUT);
- }
- elsif ($str =~ /^0G-1D-1G/)
- {
- ($off,$d,$hl,$len)=&parse_line($data[1]);
- $os=substr($o,$off+$hl,$len);
- print STDERR "<$os>\n" if $opt_v;
- &do_certificate($o,@data)
- if (($os eq "certificate") &&
- ($str =! /^0G-1D-1G-2G-3F-3E-2D/));
- &do_private_key($o,@data)
- if (($os eq "private-key") &&
- ($str =! /^0G-1D-1G-2G-3F-3E-2D/));
- }
- }
- }
-
-sub der_str
- {
- local($str)=@_;
- local(*OUT,*IN,@a,$t,$d,$ret);
- local($file)="/tmp/b$$.DER";
- local(@ret);
-
- open(OUT,">$file");
- print OUT $str;
- close(OUT);
- open(IN,"$cmd -inform 'd' -in $file |") ||
- die "unable to run $cmd:$!\n";
- $ret="";
- while (<IN>)
- {
- chop;
- push(@ret,$_);
-
- print STDERR "$_\n" if ($debug);
-
- @a=split(/\s*:\s*/);
- ($d)=($a[1] =~ /d=\s*(\d+)/);
- $a[2] =~ s/\s+$//;
- $t=$DER_s2i{$a[2]};
- $ret.="$d$t-";
- }
- close(IN);
- unlink($file);
- chop $ret;
- $ret =~ s/(-3H(-4G-5F-5[IJKMQRS])+)+/-NAME/g;
- $ret =~ s/(-3G-4B-4L)+/-RCERT/g;
- return($ret,@ret);
- }
-
-sub init_der
- {
- $crl= "0G-1G-2G-3F-3E-2G-NAME-2L-2L-2G-RCERT-1G-2F-2E-1C";
- $x509="0G-1G-2B-2G-3F-3E-2G-NAME-2G-3L-3L-2G-NAME-2G-3G-4F-4E-3C-1G-2F-2E-1C";
- $rsa= "0G-1B-1G-2F-2E-1D";
-
- %DER_i2s=(
- # SSLeay 0.4.x has this list
- "A","EOC",
- "B","INTEGER",
- "C","BIT STRING",
- "D","OCTET STRING",
- "E","NULL",
- "F","OBJECT",
- "G","SEQUENCE",
- "H","SET",
- "I","PRINTABLESTRING",
- "J","T61STRING",
- "K","IA5STRING",
- "L","UTCTIME",
- "M","NUMERICSTRING",
- "N","VIDEOTEXSTRING",
- "O","GENERALIZEDTIME",
- "P","GRAPHICSTRING",
- "Q","ISO64STRING",
- "R","GENERALSTRING",
- "S","UNIVERSALSTRING",
-
- # SSLeay 0.5.x changed some things ... and I'm
- # leaving in the old stuff but adding in these
- # to handle the new as well --tjh
- # - Well I've just taken them out and added the extra new
- # ones :-) - eay
- );
-
- foreach (keys %DER_i2s)
- { $DER_s2i{$DER_i2s{$_}}=$_; }
- }
-
-sub parse_line
- {
- local($_)=@_;
-
- return(/\s*(\d+):d=\s*(\d+)\s+hl=\s*(\d+)\s+l=\s*(\d+|inf)\s/);
- }
-
-# 0:d=0 hl=4 l=377 cons: univ: SEQUENCE
-# 4:d=1 hl=2 l= 11 prim: univ: OCTET_STRING
-# 17:d=1 hl=4 l=360 cons: univ: SEQUENCE
-# 21:d=2 hl=2 l= 12 cons: univ: SEQUENCE
-# 23:d=3 hl=2 l= 8 prim: univ: OBJECT_IDENTIFIER :rc4
-# 33:d=3 hl=2 l= 0 prim: univ: NULL
-# 35:d=2 hl=4 l=342 prim: univ: OCTET_STRING
-sub do_private_key
- {
- local($data,@struct)=@_;
- local($file)="/tmp/b$$.DER";
- local($off,$d,$hl,$len,$_,$b,@p,$s);
-
- ($type)=($struct[4] =~ /OBJECT_IDENTIFIER :(.*)\s*$/);
- if ($type eq "rc4")
- {
- ($off,$d,$hl,$len)=&parse_line($struct[6]);
- open(OUT,"|$rc4_cmd >$file") ||
- die "unable to run $rc4_cmd:$!\n";
- print OUT substr($data,$off+$hl,$len);
- close(OUT);
-
- $b=&load_file($file);
- unlink($file);
-
- ($s,@p)=&der_str($b);
- die "unknown rsa key type\n$s\n"
- if ($s ne '0G-1B-1G-2F-2E-1D');
- local($off,$d,$hl,$len)=&parse_line($p[5]);
- $b=substr($b,$off+$hl,$len);
- ($s,@p)=&der_str($b);
- open(OUT,"|$rsa_cmd") || die "unable to run $rsa_cmd:$!\n";
- print OUT $b;
- close(OUT);
- }
- else
- {
- print "'$type' is unknown\n";
- exit(1);
- }
- }
-
-sub do_certificate
- {
- local($data,@struct)=@_;
- local($file)="/tmp/b$$.DER";
- local($off,$d,$hl,$len,$_,$b,@p,$s);
-
- ($off,$d,$hl,$len)=&parse_line($struct[2]);
- $b=substr($data,$off,$len+$hl);
-
- open(OUT,"|$x509_cmd -inform d") || die "unable to run $x509_cmd:$!\n";
- print OUT $b;
- close(OUT);
- }
-
-sub load_file
- {
- local($file)=@_;
- local(*IN,$r,$b,$i);
-
- $r="";
- open(IN,"<$file") || die "unable to open $file:$!\n";
- for (;;)
- {
- $i=sysread(IN,$b,10240);
- last if ($i <= 0);
- $r.=$b;
- }
- close(IN);
- return($r);
- }
-
-sub load_file_parse
- {
- local($file)=@_;
- local(*IN,$r,@ret,$_,$i,$n,$b);
-
- open(IN,"$cmd -inform d -in $file|")
- || die "unable to run der_parse\n";
- while (<IN>)
- {
- chop;
- push(@ret,$_);
- }
- return($r,@ret);
- }
-
diff --git a/apps/dgst.c b/apps/dgst.c
index be25dafef7..c13535f3b2 100644
--- a/apps/dgst.c
+++ b/apps/dgst.c
@@ -100,6 +100,7 @@ int MAIN(int argc, char **argv)
EVP_PKEY *sigkey = NULL;
unsigned char *sigbuf = NULL;
int siglen = 0;
+ char *passargin = NULL, *passin = NULL;
#ifndef OPENSSL_NO_ENGINE
char *engine=NULL;
#endif
@@ -145,6 +146,12 @@ int MAIN(int argc, char **argv)
if (--argc < 1) break;
keyfile=*(++argv);
}
+ else if (!strcmp(*argv,"-passin"))
+ {
+ if (--argc < 1)
+ break;
+ passargin=*++argv;
+ }
else if (strcmp(*argv,"-verify") == 0)
{
if (--argc < 1) break;
@@ -222,10 +229,20 @@ int MAIN(int argc, char **argv)
LN_md4,LN_md4);
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
LN_md2,LN_md2);
+#ifndef OPENSSL_NO_SHA
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
LN_sha1,LN_sha1);
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
LN_sha,LN_sha);
+#ifndef OPENSSL_NO_SHA256
+ BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
+ LN_sha256,LN_sha256);
+#endif
+#ifndef OPENSSL_NO_SHA512
+ BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
+ LN_sha512,LN_sha512);
+#endif
+#endif
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
LN_mdc2,LN_mdc2);
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
@@ -247,6 +264,12 @@ int MAIN(int argc, char **argv)
BIO_set_callback_arg(in,bio_err);
}
+ if(!app_passwd(bio_err, passargin, NULL, &passin, NULL))
+ {
+ BIO_printf(bio_err, "Error getting password\n");
+ goto end;
+ }
+
if ((in == NULL) || (bmd == NULL))
{
ERR_print_errors(bio_err);
@@ -288,7 +311,7 @@ int MAIN(int argc, char **argv)
sigkey = load_pubkey(bio_err, keyfile, keyform, 0, NULL,
e, "key file");
else
- sigkey = load_key(bio_err, keyfile, keyform, 0, NULL,
+ sigkey = load_key(bio_err, keyfile, keyform, 0, passin,
e, "key file");
if (!sigkey)
{
@@ -322,7 +345,13 @@ int MAIN(int argc, char **argv)
/* we use md as a filter, reading from 'in' */
- BIO_set_md(bmd,md);
+ if (!BIO_set_md(bmd,md))
+ {
+ BIO_printf(bio_err, "Error setting digest %s\n", pname);
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
inp=BIO_push(bmd,in);
if (argc == 0)
@@ -369,6 +398,8 @@ end:
OPENSSL_free(buf);
}
if (in != NULL) BIO_free(in);
+ if (passin)
+ OPENSSL_free(passin);
BIO_free_all(out);
EVP_PKEY_free(sigkey);
if(sigbuf) OPENSSL_free(sigbuf);
diff --git a/apps/ec.c b/apps/ec.c
index 7d57341cb4..392e6a2ef6 100644
--- a/apps/ec.c
+++ b/apps/ec.c
@@ -84,7 +84,9 @@ int MAIN(int, char **);
int MAIN(int argc, char **argv)
{
+#ifndef OPENSSL_NO_ENGINE
ENGINE *e = NULL;
+#endif
int ret = 1;
EC_KEY *eckey = NULL;
int i, badops = 0;
@@ -249,7 +251,9 @@ bad:
ERR_load_crypto_strings();
+#ifndef OPENSSL_NO_ENGINE
e = setup_engine(bio_err, engine, 0);
+#endif
if(!app_passwd(bio_err, passargin, passargout, &passin, &passout))
{
diff --git a/apps/ecparam.c b/apps/ecparam.c
index ae046f9a8d..29d215e883 100644
--- a/apps/ecparam.c
+++ b/apps/ecparam.c
@@ -127,7 +127,9 @@ int MAIN(int argc, char **argv)
char *infile = NULL, *outfile = NULL, *prog;
BIO *in = NULL, *out = NULL;
int informat, outformat, noout = 0, C = 0, ret = 1;
+#ifndef OPENSSL_NO_ENGINE
ENGINE *e = NULL;
+#endif
char *engine = NULL;
BIGNUM *ec_p = NULL, *ec_a = NULL, *ec_b = NULL,
@@ -335,7 +337,9 @@ bad:
}
}
+#ifndef OPENSSL_NO_ENGINE
e = setup_engine(bio_err, engine, 0);
+#endif
if (list_curves)
{
diff --git a/apps/openssl-vms.cnf b/apps/openssl-vms.cnf
index 15073a0a0b..7d5fec3747 100644
--- a/apps/openssl-vms.cnf
+++ b/apps/openssl-vms.cnf
@@ -258,3 +258,56 @@ basicConstraints = CA:true
# issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always
+
+[ proxy_cert_ext ]
+# These extensions should be added when creating a proxy certificate
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+# This really needs to be in place for it to be a proxy certificate.
+proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
diff --git a/apps/openssl.cnf b/apps/openssl.cnf
index 8941f454f8..6d731cbe8b 100644
--- a/apps/openssl.cnf
+++ b/apps/openssl.cnf
@@ -258,3 +258,56 @@ basicConstraints = CA:true
# issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always
+
+[ proxy_cert_ext ]
+# These extensions should be added when creating a proxy certificate
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+# This really needs to be in place for it to be a proxy certificate.
+proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
diff --git a/apps/pkcs12.c b/apps/pkcs12.c
index dd0d29bfaa..c92f713f5c 100644
--- a/apps/pkcs12.c
+++ b/apps/pkcs12.c
@@ -621,7 +621,7 @@ int MAIN(int argc, char **argv)
CRYPTO_push_info("verify MAC");
#endif
/* If we enter empty password try no password first */
- if(!macpass[0] && PKCS12_verify_mac(p12, NULL, 0)) {
+ if(!mpass[0] && PKCS12_verify_mac(p12, NULL, 0)) {
/* If mac and crypto pass the same set it to NULL too */
if(!twopass) cpass = NULL;
} else if (!PKCS12_verify_mac(p12, mpass, -1)) {
@@ -665,9 +665,10 @@ int MAIN(int argc, char **argv)
int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass,
int passlen, int options, char *pempass)
{
- STACK_OF(PKCS7) *asafes;
+ STACK_OF(PKCS7) *asafes = NULL;
STACK_OF(PKCS12_SAFEBAG) *bags;
int i, bagnid;
+ int ret = 0;
PKCS7 *p7;
if (!( asafes = PKCS12_unpack_authsafes(p12))) return 0;
@@ -685,16 +686,22 @@ int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass,
}
bags = PKCS12_unpack_p7encdata(p7, pass, passlen);
} else continue;
- if (!bags) return 0;
+ if (!bags) goto err;
if (!dump_certs_pkeys_bags (out, bags, pass, passlen,
options, pempass)) {
sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free);
- return 0;
+ goto err;
}
sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free);
+ bags = NULL;
}
- sk_PKCS7_pop_free (asafes, PKCS7_free);
- return 1;
+ ret = 1;
+
+ err:
+
+ if (asafes)
+ sk_PKCS7_pop_free (asafes, PKCS7_free);
+ return ret;
}
int dump_certs_pkeys_bags (BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags,
diff --git a/apps/req.c b/apps/req.c
index 0f3d496d47..d634268653 100644
--- a/apps/req.c
+++ b/apps/req.c
@@ -567,13 +567,16 @@ bad:
else
{
req_conf=config;
- if( verbose )
- BIO_printf(bio_err,"Using configuration from %s\n",
- default_config_file);
+
if (req_conf == NULL)
{
- BIO_printf(bio_err,"Unable to load config info\n");
+ BIO_printf(bio_err,"Unable to load config info from %s\n", default_config_file);
+ if (newreq)
+ goto end;
}
+ else if( verbose )
+ BIO_printf(bio_err,"Using configuration from %s\n",
+ default_config_file);
}
if (req_conf != NULL)
diff --git a/apps/s_apps.h b/apps/s_apps.h
index f4c85aa81f..4e989b819c 100644
--- a/apps/s_apps.h
+++ b/apps/s_apps.h
@@ -154,13 +154,14 @@ int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
#endif
#ifdef HEADER_SSL_H
int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file);
+int set_cert_key_stuff(SSL_CTX *ctx, X509 *cert, EVP_PKEY *key);
#endif
int init_client(int *sock, char *server, int port);
int should_retry(int i);
int extract_port(char *str, short *port_ptr);
int extract_host_port(char *str,char **host_ptr,unsigned char *ip,short *p);
-long MS_CALLBACK bio_dump_cb(BIO *bio, int cmd, const char *argp,
+long MS_CALLBACK bio_dump_callback(BIO *bio, int cmd, const char *argp,
int argi, long argl, long ret);
#ifdef HEADER_SSL_H
diff --git a/apps/s_cb.c b/apps/s_cb.c
index 28f8acc1e3..92d9ae8893 100644
--- a/apps/s_cb.c
+++ b/apps/s_cb.c
@@ -229,8 +229,36 @@ int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file)
return(1);
}
-long MS_CALLBACK bio_dump_cb(BIO *bio, int cmd, const char *argp, int argi,
- long argl, long ret)
+int set_cert_key_stuff(SSL_CTX *ctx, X509 *cert, EVP_PKEY *key)
+ {
+ if (cert == NULL)
+ return 1;
+ if (SSL_CTX_use_certificate(ctx,cert) <= 0)
+ {
+ BIO_printf(bio_err,"error setting certificate\n");
+ ERR_print_errors(bio_err);
+ return 0;
+ }
+ if (SSL_CTX_use_PrivateKey(ctx,key) <= 0)
+ {
+ BIO_printf(bio_err,"error setting private key\n");
+ ERR_print_errors(bio_err);
+ return 0;
+ }
+
+
+ /* Now we know that a key and cert have been set against
+ * the SSL context */
+ if (!SSL_CTX_check_private_key(ctx))
+ {
+ BIO_printf(bio_err,"Private key does not match the certificate public key\n");
+ return 0;
+ }
+ return 1;
+ }
+
+long MS_CALLBACK bio_dump_callback(BIO *bio, int cmd, const char *argp,
+ int argi, long argl, long ret)
{
BIO *out;
diff --git a/apps/s_client.c b/apps/s_client.c
index 4c6830e2ff..e8d5234796 100644
--- a/apps/s_client.c
+++ b/apps/s_client.c
@@ -193,14 +193,20 @@ static void sc_usage(void)
BIO_printf(bio_err," -verify arg - turn on peer certificate verification\n");
BIO_printf(bio_err," -cert arg - certificate file to use, PEM format assumed\n");
- BIO_printf(bio_err," -key arg - Private key file to use, PEM format assumed, in cert file if\n");
+ BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
+ BIO_printf(bio_err," -key arg - Private key file to use, in cert file if\n");
BIO_printf(bio_err," not specified but cert file is.\n");
+ BIO_printf(bio_err," -keyform arg - key format (PEM or DER) PEM default\n");
+ BIO_printf(bio_err," -pass arg - private key file pass phrase source\n");
BIO_printf(bio_err," -CApath arg - PEM format directory of CA's\n");
BIO_printf(bio_err," -CAfile arg - PEM format file of CA's\n");
BIO_printf(bio_err," -reconnect - Drop and re-make the connection with the same Session-ID\n");
BIO_printf(bio_err," -pause - sleep(1) after each read(2) and write(2) system call\n");
BIO_printf(bio_err," -showcerts - show all certificates in the chain\n");
BIO_printf(bio_err," -debug - extra output\n");
+#ifdef WATT32
+ BIO_printf(bio_err," -wdebug - WATT-32 tcp debugging\n");
+#endif
BIO_printf(bio_err," -msg - Show protocol messages\n");
BIO_printf(bio_err," -nbio_test - more ssl protocol testing\n");
BIO_printf(bio_err," -state - print the 'ssl' states\n");
@@ -245,6 +251,10 @@ int MAIN(int argc, char **argv)
int full_log=1;
char *host=SSL_HOST_NAME;
char *cert_file=NULL,*key_file=NULL;
+ int cert_format = FORMAT_PEM, key_format = FORMAT_PEM;
+ char *passarg = NULL, *pass = NULL;
+ X509 *cert = NULL;
+ EVP_PKEY *key = NULL;
char *CApath=NULL,*CAfile=NULL,*cipher=NULL;
int reconnect=0,badop=0,verify=SSL_VERIFY_NONE,bugs=0;
int crlf=0;
@@ -338,6 +348,11 @@ int MAIN(int argc, char **argv)
if (--argc < 1) goto bad;
cert_file= *(++argv);
}
+ else if (strcmp(*argv,"-certform") == 0)
+ {
+ if (--argc < 1) goto bad;
+ cert_format = str2fmt(*(++argv));
+ }
else if (strcmp(*argv,"-crl_check") == 0)
vflags |= X509_V_FLAG_CRL_CHECK;
else if (strcmp(*argv,"-crl_check_all") == 0)
@@ -357,6 +372,10 @@ int MAIN(int argc, char **argv)
c_Pause=1;
else if (strcmp(*argv,"-debug") == 0)
c_debug=1;
+#ifdef WATT32
+ else if (strcmp(*argv,"-wdebug") == 0)
+ dbug_init();
+#endif
else if (strcmp(*argv,"-msg") == 0)
c_msg=1;
else if (strcmp(*argv,"-showcerts") == 0)
@@ -379,6 +398,16 @@ int MAIN(int argc, char **argv)
#endif
else if (strcmp(*argv,"-bugs") == 0)
bugs=1;
+ else if (strcmp(*argv,"-keyform") == 0)
+ {
+ if (--argc < 1) goto bad;
+ key_format = str2fmt(*(++argv));
+ }
+ else if (strcmp(*argv,"-pass") == 0)
+ {
+ if (--argc < 1) goto bad;
+ passarg = *(++argv);
+ }
else if (strcmp(*argv,"-key") == 0)
{
if (--argc < 1) goto bad;
@@ -460,6 +489,42 @@ bad:
#ifndef OPENSSL_NO_ENGINE
e = setup_engine(bio_err, engine_id, 1);
#endif
+ if (!app_passwd(bio_err, passarg, NULL, &pass, NULL))
+ {
+ BIO_printf(bio_err, "Error getting password\n");
+ goto end;
+ }
+
+ if (key_file == NULL)
+ key_file = cert_file;
+
+
+ if (key_file)
+
+ {
+
+ key = load_key(bio_err, key_file, key_format, 0, pass, e,
+ "client certificate private key file");
+ if (!key)
+ {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ }
+
+ if (cert_file)
+
+ {
+ cert = load_cert(bio_err,cert_file,cert_format,
+ NULL, e, "client certificate file");
+
+ if (!cert)
+ {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+ }
if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL
&& !RAND_status())
@@ -508,7 +573,7 @@ bad:
#endif
SSL_CTX_set_verify(ctx,verify,verify_callback);
- if (!set_cert_stuff(ctx,cert_file,key_file))
+ if (!set_cert_key_stuff(ctx,cert,key))
goto end;
if ((!SSL_CTX_load_verify_locations(ctx,CAfile,CApath)) ||
@@ -567,7 +632,7 @@ re_start:
if (c_debug)
{
con->debug=1;
- BIO_set_callback(sbio,bio_dump_cb);
+ BIO_set_callback(sbio,bio_dump_callback);
BIO_set_callback_arg(sbio,bio_c_out);
}
if (c_msg)
@@ -962,6 +1027,12 @@ end:
if (con != NULL) SSL_free(con);
if (con2 != NULL) SSL_free(con2);
if (ctx != NULL) SSL_CTX_free(ctx);
+ if (cert)
+ X509_free(cert);
+ if (key)
+ EVP_PKEY_free(key);
+ if (pass)
+ OPENSSL_free(pass);
if (cbuf != NULL) { OPENSSL_cleanse(cbuf,BUFSIZZ); OPENSSL_free(cbuf); }
if (sbuf != NULL) { OPENSSL_cleanse(sbuf,BUFSIZZ); OPENSSL_free(sbuf); }
if (mbuf != NULL) { OPENSSL_cleanse(mbuf,BUFSIZZ); OPENSSL_free(mbuf); }
diff --git a/apps/s_server.c b/apps/s_server.c
index bf2a3d2c93..3aae7c3742 100644
--- a/apps/s_server.c
+++ b/apps/s_server.c
@@ -300,12 +300,18 @@ static void sv_usage(void)
BIO_printf(bio_err," -context arg - set session ID context\n");
BIO_printf(bio_err," -verify arg - turn on peer certificate verification\n");
BIO_printf(bio_err," -Verify arg - turn on peer certificate verification, must have a cert.\n");
- BIO_printf(bio_err," -cert arg - certificate file to use, PEM format assumed\n");
+ BIO_printf(bio_err," -cert arg - certificate file to use\n");
BIO_printf(bio_err," (default is %s)\n",TEST_CERT);
- BIO_printf(bio_err," -key arg - Private Key file to use, PEM format assumed, in cert file if\n");
+ BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
+ BIO_printf(bio_err," -key arg - Private Key file to use, in cert file if\n");
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT);
+ BIO_printf(bio_err," -keyform arg - key format (PEM, DER or ENGINE) PEM default\n");
+ BIO_printf(bio_err," -pass arg - private key file pass phrase source\n");
BIO_printf(bio_err," -dcert arg - second certificate file to use (usually for DSA)\n");
+ BIO_printf(bio_err," -dcertform x - second certificate format (PEM or DER) PEM default\n");
BIO_printf(bio_err," -dkey arg - second private key file to use (usually for DSA)\n");
+ BIO_printf(bio_err," -dkeyform arg - second key format (PEM, DER or ENGINE) PEM default\n");
+ BIO_printf(bio_err," -dpass arg - second private key file pass phrase source\n");
BIO_printf(bio_err," -dhparam arg - DH parameter file to use, in cert file if not specified\n");
BIO_printf(bio_err," or a default set of parameters is used\n");
#ifndef OPENSSL_NO_ECDH
@@ -526,6 +532,12 @@ int MAIN(int argc, char *argv[])
ENGINE *e=NULL;
#endif
char *inrand=NULL;
+ int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM;
+ char *passarg = NULL, *pass = NULL;
+ char *dpassarg = NULL, *dpass = NULL;
+ int s_dcert_format = FORMAT_PEM, s_dkey_format = FORMAT_PEM;
+ X509 *s_cert = NULL, *s_dcert = NULL;
+ EVP_PKEY *s_key = NULL, *s_dkey = NULL;
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
meth=SSLv23_server_method();
@@ -592,11 +604,26 @@ int MAIN(int argc, char *argv[])
if (--argc < 1) goto bad;
s_cert_file= *(++argv);
}
+ else if (strcmp(*argv,"-certform") == 0)
+ {
+ if (--argc < 1) goto bad;
+ s_cert_format = str2fmt(*(++argv));
+ }
else if (strcmp(*argv,"-key") == 0)
{
if (--argc < 1) goto bad;
s_key_file= *(++argv);
}
+ else if (strcmp(*argv,"-keyform") == 0)
+ {
+ if (--argc < 1) goto bad;
+ s_key_format = str2fmt(*(++argv));
+ }
+ else if (strcmp(*argv,"-pass") == 0)
+ {
+ if (--argc < 1) goto bad;
+ passarg = *(++argv);
+ }
else if (strcmp(*argv,"-dhparam") == 0)
{
if (--argc < 1) goto bad;
@@ -609,11 +636,26 @@ int MAIN(int argc, char *argv[])
named_curve = *(++argv);
}
#endif
+ else if (strcmp(*argv,"-dcertform") == 0)
+ {
+ if (--argc < 1) goto bad;
+ s_dcert_format = str2fmt(*(++argv));
+ }
else if (strcmp(*argv,"-dcert") == 0)
{
if (--argc < 1) goto bad;
s_dcert_file= *(++argv);
}
+ else if (strcmp(*argv,"-dkeyform") == 0)
+ {
+ if (--argc < 1) goto bad;
+ s_dkey_format = str2fmt(*(++argv));
+ }
+ else if (strcmp(*argv,"-dpass") == 0)
+ {
+ if (--argc < 1) goto bad;
+ dpassarg = *(++argv);
+ }
else if (strcmp(*argv,"-dkey") == 0)
{
if (--argc < 1) goto bad;
@@ -743,6 +785,59 @@ bad:
e = setup_engine(bio_err, engine_id, 1);
#endif
+ if (!app_passwd(bio_err, passarg, dpassarg, &pass, &dpass))
+ {
+ BIO_printf(bio_err, "Error getting password\n");
+ goto end;
+ }
+
+
+ if (s_key_file == NULL)
+ s_key_file = s_cert_file;
+
+ s_key = load_key(bio_err, s_key_file, s_key_format, 0, pass, e,
+ "server certificate private key file");
+ if (!s_key)
+ {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ s_cert = load_cert(bio_err,s_cert_file,s_cert_format,
+ NULL, e, "server certificate file");
+
+ if (!s_cert)
+ {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ if (s_dcert_file)
+ {
+
+ if (s_dkey_file == NULL)
+ s_dkey_file = s_dcert_file;
+
+ s_dkey = load_key(bio_err, s_dkey_file, s_dkey_format,
+ 0, dpass, e,
+ "second certificate private key file");
+ if (!s_dkey)
+ {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ s_dcert = load_cert(bio_err,s_dcert_file,s_dcert_format,
+ NULL, e, "second server certificate file");
+
+ if (!s_dcert)
+ {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ }
+
if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL
&& !RAND_status())
{
@@ -907,11 +1002,11 @@ bad:
}
#endif
- if (!set_cert_stuff(ctx,s_cert_file,s_key_file))
+ if (!set_cert_key_stuff(ctx,s_cert,s_key))
goto end;
- if (s_dcert_file != NULL)
+ if (s_dcert != NULL)
{
- if (!set_cert_stuff(ctx,s_dcert_file,s_dkey_file))
+ if (!set_cert_key_stuff(ctx,s_dcert,s_dkey))
goto end;
}
@@ -962,6 +1057,18 @@ bad:
ret=0;
end:
if (ctx != NULL) SSL_CTX_free(ctx);
+ if (s_cert)
+ X509_free(s_cert);
+ if (s_dcert)
+ X509_free(s_dcert);
+ if (s_key)
+ EVP_PKEY_free(s_key);
+ if (s_dkey)
+ EVP_PKEY_free(s_dkey);
+ if (pass)
+ OPENSSL_free(pass);
+ if (dpass)
+ OPENSSL_free(dpass);
if (bio_s_out != NULL)
{
BIO_free(bio_s_out);
@@ -1063,7 +1170,7 @@ static int sv_body(char *hostname, int s, unsigned char *context)
if (s_debug)
{
con->debug=1;
- BIO_set_callback(SSL_get_rbio(con),bio_dump_cb);
+ BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
BIO_set_callback_arg(SSL_get_rbio(con),bio_s_out);
}
if (s_msg)
@@ -1492,7 +1599,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
if (s_debug)
{
con->debug=1;
- BIO_set_callback(SSL_get_rbio(con),bio_dump_cb);
+ BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
BIO_set_callback_arg(SSL_get_rbio(con),bio_s_out);
}
if (s_msg)
diff --git a/apps/s_socket.c b/apps/s_socket.c
index 28c6b1e27a..45014fa14d 100644
--- a/apps/s_socket.c
+++ b/apps/s_socket.c
@@ -172,7 +172,6 @@ static int ssl_sock_init(void)
#ifdef WATT32
extern int _watt_do_exit;
_watt_do_exit = 0;
- dbug_init();
if (sock_init())
return (0);
#elif defined(OPENSSL_SYS_WINDOWS)
diff --git a/apps/smime.c b/apps/smime.c
index 418e03cd66..57ac6d8a26 100644
--- a/apps/smime.c
+++ b/apps/smime.c
@@ -3,7 +3,7 @@
* project.
*/
/* ====================================================================
- * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -64,10 +64,13 @@
#include <openssl/crypto.h>
#include <openssl/pem.h>
#include <openssl/err.h>
+#include <openssl/x509_vfy.h>
+#include <openssl/x509v3.h>
#undef PROG
#define PROG smime_main
static int save_certs(char *signerfile, STACK_OF(X509) *signers);
+static int smime_cb(int ok, X509_STORE_CTX *ctx);
#define SMIME_OP 0x10
#define SMIME_ENCRYPT (1 | SMIME_OP)
@@ -79,7 +82,7 @@ static int save_certs(char *signerfile, STACK_OF(X509) *signers);
int MAIN(int, char **);
int MAIN(int argc, char **argv)
-{
+ {
ENGINE *e = NULL;
int operation = 0;
int ret = 0;
@@ -96,7 +99,7 @@ int MAIN(int argc, char **argv)
STACK_OF(X509) *encerts = NULL, *other = NULL;
BIO *in = NULL, *out = NULL, *indata = NULL;
int badarg = 0;
- int flags = PKCS7_DETACHED, store_flags = 0;
+ int flags = PKCS7_DETACHED;
char *to = NULL, *from = NULL, *subject = NULL;
char *CAfile = NULL, *CApath = NULL;
char *passargin = NULL, *passin = NULL;
@@ -108,24 +111,34 @@ int MAIN(int argc, char **argv)
char *engine=NULL;
#endif
+ X509_VERIFY_PARAM *vpm = NULL;
+
args = argv + 1;
ret = 1;
apps_startup();
if (bio_err == NULL)
+ {
if ((bio_err = BIO_new(BIO_s_file())) != NULL)
BIO_set_fp(bio_err, stderr, BIO_NOCLOSE|BIO_FP_TEXT);
+ }
if (!load_config(bio_err, NULL))
goto end;
- while (!badarg && *args && *args[0] == '-') {
- if (!strcmp (*args, "-encrypt")) operation = SMIME_ENCRYPT;
- else if (!strcmp (*args, "-decrypt")) operation = SMIME_DECRYPT;
- else if (!strcmp (*args, "-sign")) operation = SMIME_SIGN;
- else if (!strcmp (*args, "-verify")) operation = SMIME_VERIFY;
- else if (!strcmp (*args, "-pk7out")) operation = SMIME_PK7OUT;
+ while (!badarg && *args && *args[0] == '-')
+ {
+ if (!strcmp (*args, "-encrypt"))
+ operation = SMIME_ENCRYPT;
+ else if (!strcmp (*args, "-decrypt"))
+ operation = SMIME_DECRYPT;
+ else if (!strcmp (*args, "-sign"))
+ operation = SMIME_SIGN;
+ else if (!strcmp (*args, "-verify"))
+ operation = SMIME_VERIFY;
+ else if (!strcmp (*args, "-pk7out"))
+ operation = SMIME_PK7OUT;
#ifndef OPENSSL_NO_DES
else if (!strcmp (*args, "-des3"))
cipher = EVP_des_ede3_cbc();
@@ -172,127 +185,225 @@ int MAIN(int argc, char **argv)
flags |= PKCS7_NOOLDMIMETYPE;
else if (!strcmp (*args, "-crlfeol"))
flags |= PKCS7_CRLFEOL;
- else if (!strcmp (*args, "-crl_check"))
- store_flags |= X509_V_FLAG_CRL_CHECK;
- else if (!strcmp (*args, "-crl_check_all"))
- store_flags |= X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL;
- else if (!strcmp(*args,"-rand")) {
- if (args[1]) {
+ else if (!strcmp(*args,"-rand"))
+ {
+ if (args[1])
+ {
args++;
inrand = *args;
- } else badarg = 1;
+ }
+ else
+ badarg = 1;
need_rand = 1;
+ }
#ifndef OPENSSL_NO_ENGINE
- } else if (!strcmp(*args,"-engine")) {
- if (args[1]) {
+ else if (!strcmp(*args,"-engine"))
+ {
+ if (args[1])
+ {
args++;
engine = *args;
- } else badarg = 1;
+ }
+ else badarg = 1;
+ }
#endif
- } else if (!strcmp(*args,"-passin")) {
- if (args[1]) {
+ else if (!strcmp(*args,"-passin"))
+ {
+ if (args[1])
+ {
args++;
passargin = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-to")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-to"))
+ {
+ if (args[1])
+ {
args++;
to = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-from")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-from"))
+ {
+ if (args[1])
+ {
args++;
from = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-subject")) {
- if (args[1]) {
+ }
+ else badarg = 1;
+ }
+ else if (!strcmp (*args, "-subject"))
+ {
+ if (args[1])
+ {
args++;
subject = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-signer")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-signer"))
+ {
+ if (args[1])
+ {
args++;
signerfile = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-recip")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-recip"))
+ {
+ if (args[1])
+ {
args++;
recipfile = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-inkey")) {
- if (args[1]) {
+ }
+ else badarg = 1;
+ }
+ else if (!strcmp (*args, "-inkey"))
+ {
+ if (args[1])
+ {
args++;
keyfile = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-keyform")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-keyform"))
+ {
+ if (args[1])
+ {
args++;
keyform = str2fmt(*args);
- } else badarg = 1;
- } else if (!strcmp (*args, "-certfile")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-certfile"))
+ {
+ if (args[1])
+ {
args++;
certfile = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-CAfile")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-CAfile"))
+ {
+ if (args[1])
+ {
args++;
CAfile = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-CApath")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-CApath"))
+ {
+ if (args[1])
+ {
args++;
CApath = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-in")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-in"))
+ {
+ if (args[1])
+ {
args++;
infile = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-inform")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-inform"))
+ {
+ if (args[1])
+ {
args++;
informat = str2fmt(*args);
- } else badarg = 1;
- } else if (!strcmp (*args, "-outform")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-outform"))
+ {
+ if (args[1])
+ {
args++;
outformat = str2fmt(*args);
- } else badarg = 1;
- } else if (!strcmp (*args, "-out")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-out"))
+ {
+ if (args[1])
+ {
args++;
outfile = *args;
- } else badarg = 1;
- } else if (!strcmp (*args, "-content")) {
- if (args[1]) {
+ }
+ else
+ badarg = 1;
+ }
+ else if (!strcmp (*args, "-content"))
+ {
+ if (args[1])
+ {
args++;
contfile = *args;
- } else badarg = 1;
- } else badarg = 1;
+ }
+ else
+ badarg = 1;
+ }
+ else if (args_verify(&args, NULL, &badarg, bio_err, &vpm))
+ continue;
+ else
+ badarg = 1;
args++;
- }
+ }
- if(operation == SMIME_SIGN) {
- if(!signerfile) {
+
+ if (operation == SMIME_SIGN)
+ {
+ if (!signerfile)
+ {
BIO_printf(bio_err, "No signer certificate specified\n");
badarg = 1;
- }
+ }
need_rand = 1;
- } else if(operation == SMIME_DECRYPT) {
- if(!recipfile) {
+ }
+ else if (operation == SMIME_DECRYPT)
+ {
+ if (!recipfile)
+ {
BIO_printf(bio_err, "No recipient certificate and key specified\n");
badarg = 1;
+ }
}
- } else if(operation == SMIME_ENCRYPT) {
- if(!*args) {
+ else if (operation == SMIME_ENCRYPT)
+ {
+ if (!*args)
+ {
BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
badarg = 1;
- }
+ }
need_rand = 1;
- } else if(!operation) badarg = 1;
+ }
+ else if (!operation)
+ badarg = 1;
- if (badarg) {
+ if (badarg)
+ {
BIO_printf (bio_err, "Usage smime [options] cert.pem ...\n");
BIO_printf (bio_err, "where options are\n");
BIO_printf (bio_err, "-encrypt encrypt message\n");
@@ -347,121 +458,155 @@ int MAIN(int argc, char **argv)
BIO_printf(bio_err, " the random number generator\n");
BIO_printf (bio_err, "cert.pem recipient certificate(s) for encryption\n");
goto end;
- }
+ }
#ifndef OPENSSL_NO_ENGINE
e = setup_engine(bio_err, engine, 0);
#endif
- if(!app_passwd(bio_err, passargin, NULL, &passin, NULL)) {
+ if (!app_passwd(bio_err, passargin, NULL, &passin, NULL))
+ {
BIO_printf(bio_err, "Error getting password\n");
goto end;
- }
+ }
- if (need_rand) {
+ if (need_rand)
+ {
app_RAND_load_file(NULL, bio_err, (inrand != NULL));
if (inrand != NULL)
BIO_printf(bio_err,"%ld semi-random bytes loaded\n",
app_RAND_load_files(inrand));
- }
+ }
ret = 2;
- if(operation != SMIME_SIGN) flags &= ~PKCS7_DETACHED;
+ if (operation != SMIME_SIGN)
+ flags &= ~PKCS7_DETACHED;
- if(operation & SMIME_OP) {
- if(flags & PKCS7_BINARY) inmode = "rb";
- if(outformat == FORMAT_ASN1) outmode = "wb";
- } else {
- if(flags & PKCS7_BINARY) outmode = "wb";
- if(informat == FORMAT_ASN1) inmode = "rb";
- }
+ if (operation & SMIME_OP)
+ {
+ if (flags & PKCS7_BINARY)
+ inmode = "rb";
+ if (outformat == FORMAT_ASN1)
+ outmode = "wb";
+ }
+ else
+ {
+ if (flags & PKCS7_BINARY)
+ outmode = "wb";
+ if (informat == FORMAT_ASN1)
+ inmode = "rb";
+ }
- if(operation == SMIME_ENCRYPT) {
- if (!cipher) {
+ if (operation == SMIME_ENCRYPT)
+ {
+ if (!cipher)
+ {
#ifndef OPENSSL_NO_RC2
cipher = EVP_rc2_40_cbc();
#else
BIO_printf(bio_err, "No cipher selected\n");
goto end;
#endif
- }
+ }
encerts = sk_X509_new_null();
- while (*args) {
- if(!(cert = load_cert(bio_err,*args,FORMAT_PEM,
- NULL, e, "recipient certificate file"))) {
+ while (*args)
+ {
+ if (!(cert = load_cert(bio_err,*args,FORMAT_PEM,
+ NULL, e, "recipient certificate file")))
+ {
#if 0 /* An appropriate message is already printed */
BIO_printf(bio_err, "Can't read recipient certificate file %s\n", *args);
#endif
goto end;
- }
+ }
sk_X509_push(encerts, cert);
cert = NULL;
args++;
+ }
}
- }
- if(signerfile && (operation == SMIME_SIGN)) {
- if(!(signer = load_cert(bio_err,signerfile,FORMAT_PEM, NULL,
- e, "signer certificate"))) {
+ if (signerfile && (operation == SMIME_SIGN))
+ {
+ if (!(signer = load_cert(bio_err,signerfile,FORMAT_PEM, NULL,
+ e, "signer certificate")))
+ {
#if 0 /* An appropri message has already been printed */
BIO_printf(bio_err, "Can't read signer certificate file %s\n", signerfile);
#endif
goto end;
+ }
}
- }
- if(certfile) {
- if(!(other = load_certs(bio_err,certfile,FORMAT_PEM, NULL,
- e, "certificate file"))) {
+ if (certfile)
+ {
+ if (!(other = load_certs(bio_err,certfile,FORMAT_PEM, NULL,
+ e, "certificate file")))
+ {
#if 0 /* An appropriate message has already been printed */
BIO_printf(bio_err, "Can't read certificate file %s\n", certfile);
#endif
ERR_print_errors(bio_err);
goto end;
+ }
}
- }
- if(recipfile && (operation == SMIME_DECRYPT)) {
- if(!(recip = load_cert(bio_err,recipfile,FORMAT_PEM,NULL,
- e, "recipient certificate file"))) {
+ if (recipfile && (operation == SMIME_DECRYPT))
+ {
+ if (!(recip = load_cert(bio_err,recipfile,FORMAT_PEM,NULL,
+ e, "recipient certificate file")))
+ {
#if 0 /* An appropriate message has alrady been printed */
BIO_printf(bio_err, "Can't read recipient certificate file %s\n", recipfile);
#endif
ERR_print_errors(bio_err);
goto end;
+ }
}
- }
- if(operation == SMIME_DECRYPT) {
- if(!keyfile) keyfile = recipfile;
- } else if(operation == SMIME_SIGN) {
- if(!keyfile) keyfile = signerfile;
- } else keyfile = NULL;
+ if (operation == SMIME_DECRYPT)
+ {
+ if (!keyfile)
+ keyfile = recipfile;
+ }
+ else if (operation == SMIME_SIGN)
+ {
+ if (!keyfile)
+ keyfile = signerfile;
+ }
+ else keyfile = NULL;
- if(keyfile) {
+ if (keyfile)
+ {
key = load_key(bio_err, keyfile, keyform, 0, passin, e,
"signing key file");
- if (!key) {
+ if (!key)
goto end;
- }
- }
+ }
- if (infile) {
- if (!(in = BIO_new_file(infile, inmode))) {
+ if (infile)
+ {
+ if (!(in = BIO_new_file(infile, inmode)))
+ {
BIO_printf (bio_err,
"Can't open input file %s\n", infile);
goto end;
+ }
}
- } else in = BIO_new_fp(stdin, BIO_NOCLOSE);
+ else
+ in = BIO_new_fp(stdin, BIO_NOCLOSE);
- if (outfile) {
- if (!(out = BIO_new_file(outfile, outmode))) {
+ if (outfile)
+ {
+ if (!(out = BIO_new_file(outfile, outmode)))
+ {
BIO_printf (bio_err,
"Can't open output file %s\n", outfile);
goto end;
+ }
}
- } else {
+ else
+ {
out = BIO_new_fp(stdout, BIO_NOCLOSE);
#ifdef OPENSSL_SYS_VMS
{
@@ -469,19 +614,24 @@ int MAIN(int argc, char **argv)
out = BIO_push(tmpbio, out);
}
#endif
- }
+ }
- if(operation == SMIME_VERIFY) {
- if(!(store = setup_verify(bio_err, CAfile, CApath))) goto end;
- X509_STORE_set_flags(store, store_flags);
- }
+ if (operation == SMIME_VERIFY)
+ {
+ if (!(store = setup_verify(bio_err, CAfile, CApath)))
+ goto end;
+ X509_STORE_set_verify_cb_func(store, smime_cb);
+ if (vpm)
+ X509_STORE_set1_param(store, vpm);
+ }
ret = 3;
- if(operation == SMIME_ENCRYPT) {
+ if (operation == SMIME_ENCRYPT)
p7 = PKCS7_encrypt(encerts, in, cipher, flags);
- } else if(operation == SMIME_SIGN) {
+ else if (operation == SMIME_SIGN)
+ {
/* If detached data and SMIME output enable partial
* signing.
*/
@@ -489,86 +639,108 @@ int MAIN(int argc, char **argv)
flags |= PKCS7_STREAM;
p7 = PKCS7_sign(signer, key, other, in, flags);
/* Don't need to rewind for partial signing */
- if (!(flags & PKCS7_STREAM) && (BIO_reset(in) != 0)) {
- BIO_printf(bio_err, "Can't rewind input file\n");
- goto end;
+ if (!(flags & PKCS7_STREAM) && (BIO_reset(in) != 0))
+ {
+ BIO_printf(bio_err, "Can't rewind input file\n");
+ goto end;
+ }
}
- } else {
- if(informat == FORMAT_SMIME)
+ else
+ {
+ if (informat == FORMAT_SMIME)
p7 = SMIME_read_PKCS7(in, &indata);
- else if(informat == FORMAT_PEM)
+ else if (informat == FORMAT_PEM)
p7 = PEM_read_bio_PKCS7(in, NULL, NULL, NULL);
- else if(informat == FORMAT_ASN1)
+ else if (informat == FORMAT_ASN1)
p7 = d2i_PKCS7_bio(in, NULL);
- else {
+ else
+ {
BIO_printf(bio_err, "Bad input format for PKCS#7 file\n");
goto end;
- }
+ }
- if(!p7) {
+ if (!p7)
+ {
BIO_printf(bio_err, "Error reading S/MIME message\n");
goto end;
- }
- if(contfile) {
+ }
+ if (contfile)
+ {
BIO_free(indata);
- if(!(indata = BIO_new_file(contfile, "rb"))) {
+ if (!(indata = BIO_new_file(contfile, "rb")))
+ {
BIO_printf(bio_err, "Can't read content file %s\n", contfile);
goto end;
+ }
}
}
- }
- if(!p7) {
+ if (!p7)
+ {
BIO_printf(bio_err, "Error creating PKCS#7 structure\n");
goto end;
- }
+ }
ret = 4;
- if(operation == SMIME_DECRYPT) {
- if(!PKCS7_decrypt(p7, key, recip, out, flags)) {
+ if (operation == SMIME_DECRYPT)
+ {
+ if (!PKCS7_decrypt(p7, key, recip, out, flags))
+ {
BIO_printf(bio_err, "Error decrypting PKCS#7 structure\n");
goto end;
+ }
}
- } else if(operation == SMIME_VERIFY) {
+ else if (operation == SMIME_VERIFY)
+ {
STACK_OF(X509) *signers;
- if(PKCS7_verify(p7, other, store, indata, out, flags)) {
+ if (PKCS7_verify(p7, other, store, indata, out, flags))
BIO_printf(bio_err, "Verification successful\n");
- } else {
+ else
+ {
BIO_printf(bio_err, "Verification failure\n");
goto end;
- }
+ }
signers = PKCS7_get0_signers(p7, other, flags);
- if(!save_certs(signerfile, signers)) {
+ if (!save_certs(signerfile, signers))
+ {
BIO_printf(bio_err, "Error writing signers to %s\n",
signerfile);
ret = 5;
goto end;
- }
+ }
sk_X509_free(signers);
- } else if(operation == SMIME_PK7OUT) {
+ }
+ else if (operation == SMIME_PK7OUT)
PEM_write_bio_PKCS7(out, p7);
- } else {
- if(to) BIO_printf(out, "To: %s\n", to);
- if(from) BIO_printf(out, "From: %s\n", from);
- if(subject) BIO_printf(out, "Subject: %s\n", subject);
- if(outformat == FORMAT_SMIME)
+ else
+ {
+ if (to)
+ BIO_printf(out, "To: %s\n", to);
+ if (from)
+ BIO_printf(out, "From: %s\n", from);
+ if (subject)
+ BIO_printf(out, "Subject: %s\n", subject);
+ if (outformat == FORMAT_SMIME)
SMIME_write_PKCS7(out, p7, in, flags);
- else if(outformat == FORMAT_PEM)
+ else if (outformat == FORMAT_PEM)
PEM_write_bio_PKCS7(out,p7);
- else if(outformat == FORMAT_ASN1)
+ else if (outformat == FORMAT_ASN1)
i2d_PKCS7_bio(out,p7);
- else {
+ else
+ {
BIO_printf(bio_err, "Bad output format for PKCS#7 file\n");
goto end;
+ }
}
- }
ret = 0;
end:
if (need_rand)
app_RAND_write_file(NULL, bio_err);
- if(ret) ERR_print_errors(bio_err);
+ if (ret) ERR_print_errors(bio_err);
sk_X509_pop_free(encerts, X509_free);
sk_X509_pop_free(other, X509_free);
+ if (vpm)
+ X509_VERIFY_PARAM_free(vpm);
X509_STORE_free(store);
X509_free(cert);
X509_free(recip);
@@ -578,20 +750,39 @@ end:
BIO_free(in);
BIO_free(indata);
BIO_free_all(out);
- if(passin) OPENSSL_free(passin);
+ if (passin) OPENSSL_free(passin);
return (ret);
}
static int save_certs(char *signerfile, STACK_OF(X509) *signers)
-{
+ {
int i;
BIO *tmp;
- if(!signerfile) return 1;
+ if (!signerfile)
+ return 1;
tmp = BIO_new_file(signerfile, "w");
- if(!tmp) return 0;
+ if (!tmp) return 0;
for(i = 0; i < sk_X509_num(signers); i++)
PEM_write_bio_X509(tmp, sk_X509_value(signers, i));
BIO_free(tmp);
return 1;
-}
+ }
+
+/* Minimal callback just to output policy info (if any) */
+
+static int smime_cb(int ok, X509_STORE_CTX *ctx)
+ {
+ int error;
+
+ error = X509_STORE_CTX_get_error(ctx);
+
+ if ((error != X509_V_ERR_NO_EXPLICIT_POLICY)
+ && ((error != X509_V_OK) || (ok != 2)))
+ return ok;
+
+ policies_print(NULL, ctx);
+
+ return ok;
+
+ }
diff --git a/apps/speed.c b/apps/speed.c
index a3b0833b69..5697d3aef4 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -1576,6 +1576,7 @@ int MAIN(int argc, char **argv)
}
}
+#ifndef OPENSSL_NO_SHA256
if (doit[D_SHA256])
{
for (j=0; j<SIZE_NUM; j++)
@@ -1588,7 +1589,9 @@ int MAIN(int argc, char **argv)
print_result(D_SHA256,j,count,d);
}
}
+#endif
+#ifndef OPENSSL_NO_SHA512
if (doit[D_SHA512])
{
for (j=0; j<SIZE_NUM; j++)
@@ -1602,6 +1605,8 @@ int MAIN(int argc, char **argv)
}
}
#endif
+
+#endif
#ifndef OPENSSL_NO_RIPEMD
if (doit[D_RMD160])
{
diff --git a/apps/verify.c b/apps/verify.c
index 6a93c018b8..9ff32cb068 100644
--- a/apps/verify.c
+++ b/apps/verify.c
@@ -79,13 +79,14 @@ int MAIN(int, char **);
int MAIN(int argc, char **argv)
{
ENGINE *e = NULL;
- int i,ret=1;
+ int i,ret=1, badarg = 0;
int purpose = -1;
char *CApath=NULL,*CAfile=NULL;
char *untfile = NULL, *trustfile = NULL;
STACK_OF(X509) *untrusted = NULL, *trusted = NULL;
X509_STORE *cert_ctx=NULL;
X509_LOOKUP *lookup=NULL;
+ X509_VERIFY_PARAM *vpm = NULL;
#ifndef OPENSSL_NO_ENGINE
char *engine=NULL;
#endif
@@ -121,18 +122,12 @@ int MAIN(int argc, char **argv)
if (argc-- < 1) goto end;
CAfile= *(++argv);
}
- else if (strcmp(*argv,"-purpose") == 0)
+ else if (args_verify(&argv, &argc, &badarg, bio_err,
+ &vpm))
{
- X509_PURPOSE *xptmp;
- if (argc-- < 1) goto end;
- i = X509_PURPOSE_get_by_sname(*(++argv));
- if(i < 0)
- {
- BIO_printf(bio_err, "unrecognized purpose\n");
+ if (badarg)
goto end;
- }
- xptmp = X509_PURPOSE_get0(i);
- purpose = X509_PURPOSE_get_id(xptmp);
+ continue;
}
else if (strcmp(*argv,"-untrusted") == 0)
{
@@ -153,14 +148,6 @@ int MAIN(int argc, char **argv)
#endif
else if (strcmp(*argv,"-help") == 0)
goto end;
- else if (strcmp(*argv,"-ignore_critical") == 0)
- vflags |= X509_V_FLAG_IGNORE_CRITICAL;
- else if (strcmp(*argv,"-issuer_checks") == 0)
- vflags |= X509_V_FLAG_CB_ISSUER_CHECK;
- else if (strcmp(*argv,"-crl_check") == 0)
- vflags |= X509_V_FLAG_CRL_CHECK;
- else if (strcmp(*argv,"-crl_check_all") == 0)
- vflags |= X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL;
else if (strcmp(*argv,"-verbose") == 0)
v_verbose=1;
else if (argv[0][0] == '-')
@@ -178,6 +165,9 @@ int MAIN(int argc, char **argv)
e = setup_engine(bio_err, engine, 0);
#endif
+ if (vpm)
+ X509_STORE_set1_param(cert_ctx, vpm);
+
lookup=X509_STORE_add_lookup(cert_ctx,X509_LOOKUP_file());
if (lookup == NULL) abort();
if (CAfile) {
@@ -238,6 +228,7 @@ end:
X509_PURPOSE_get0_name(ptmp));
}
}
+ if (vpm) X509_VERIFY_PARAM_free(vpm);
if (cert_ctx != NULL) X509_STORE_free(cert_ctx);
sk_X509_pop_free(untrusted, X509_free);
sk_X509_pop_free(trusted, X509_free);
@@ -339,10 +330,13 @@ static int MS_CALLBACK cb(int ok, X509_STORE_CTX *ctx)
if (!ok)
{
- X509_NAME_oneline(
+ if (ctx->current_cert)
+ {
+ X509_NAME_oneline(
X509_get_subject_name(ctx->current_cert),buf,
sizeof buf);
- printf("%s\n",buf);
+ printf("%s\n",buf);
+ }
printf("error %d at %d depth lookup:%s\n",ctx->error,
ctx->error_depth,
X509_verify_cert_error_string(ctx->error));
@@ -354,13 +348,21 @@ static int MS_CALLBACK cb(int ok, X509_STORE_CTX *ctx)
if (ctx->error == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) ok=1;
/* Continue after extension errors too */
if (ctx->error == X509_V_ERR_INVALID_CA) ok=1;
+ if (ctx->error == X509_V_ERR_INVALID_NON_CA) ok=1;
if (ctx->error == X509_V_ERR_PATH_LENGTH_EXCEEDED) ok=1;
if (ctx->error == X509_V_ERR_INVALID_PURPOSE) ok=1;
if (ctx->error == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) ok=1;
if (ctx->error == X509_V_ERR_CRL_HAS_EXPIRED) ok=1;
if (ctx->error == X509_V_ERR_CRL_NOT_YET_VALID) ok=1;
if (ctx->error == X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION) ok=1;
+
+ if (ctx->error == X509_V_ERR_NO_EXPLICIT_POLICY)
+ policies_print(NULL, ctx);
+ return ok;
+
}
+ if ((ctx->error == X509_V_OK) && (ok == 2))
+ policies_print(NULL, ctx);
if (!v_verbose)
ERR_clear_error();
return(ok);
diff --git a/apps/x509.c b/apps/x509.c
index d00511c78a..294fc69573 100644
--- a/apps/x509.c
+++ b/apps/x509.c
@@ -606,9 +606,12 @@ bad:
sno = ASN1_INTEGER_new();
if (!sno || !rand_serial(NULL, sno))
goto end;
+ if (!X509_set_serialNumber(x, sno))
+ goto end;
+ ASN1_INTEGER_free(sno);
+ sno = NULL;
}
-
- if (!X509_set_serialNumber(x, sno))
+ else if (!X509_set_serialNumber(x, sno))
goto end;
if (!X509_set_issuer_name(x,req->req_info->subject)) goto end;
@@ -996,9 +999,9 @@ bad:
if (checkend)
{
- time_t tnow=time(NULL);
+ time_t tcheck=time(NULL) + checkoffset;
- if (ASN1_UTCTIME_cmp_time_t(X509_get_notAfter(x), tnow+checkoffset) == -1)
+ if (X509_cmp_time(X509_get_notAfter(x), &tcheck) < 0)
{
BIO_printf(out,"Certificate will expire\n");
ret=1;
diff --git a/certs/ICE-CA.pem b/certs/ICE-CA.pem
deleted file mode 100644
index 75652366c2..0000000000
--- a/certs/ICE-CA.pem
+++ /dev/null
@@ -1,59 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: md5WithRSAEncryption
- Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
- Validity
- Not Before: Apr 2 17:35:53 1997 GMT
- Not After : Apr 2 17:35:53 1998 GMT
- Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
- Subject Public Key Info:
- Public Key Algorithm: rsa
- RSA Public Key: (512 bit)
- Modulus (512 bit):
- 00:82:75:ba:f6:d1:60:b5:f9:15:b3:6a:dd:29:8f:
- 8b:a4:6f:1a:88:e0:50:43:40:0b:79:41:d5:d3:16:
- 44:7d:74:65:17:42:06:52:0b:e9:50:c8:10:cd:24:
- e2:ae:8d:22:30:73:e6:b4:b7:93:1f:e5:6e:a2:ae:
- 49:11:a5:c9:45
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Authority Key Identifier:
- 0.........z.."p......e..
- X509v3 Subject Key Identifier:
- ..~r..:..B.44fu......3
- X509v3 Key Usage: critical
- ....
- X509v3 Certificate Policies: critical
- 0.0...*...
- X509v3 Subject Alternative Name:
- 0!..secude-support@darmstadt.gmd.de
- X509v3 Issuer Alternative Name:
- 0I..ice-tel-ca@darmstadt.gmd.de.*http://www.darmstadt.gmd.de/ice-tel/euroca
- X509v3 Basic Constraints: critical
- 0....
- X509v3 CRL Distribution Points:
- 0200...,.*http://www.darmstadt.gmd.de/ice-tel/euroca
- Signature Algorithm: md5WithRSAEncryption
- 17:a2:88:b7:99:5a:05:41:e4:13:34:67:e6:1f:3e:26:ec:4b:
- 69:f9:3e:28:22:be:9d:1c:ab:41:6f:0c:00:85:fe:45:74:f6:
- 98:f0:ce:9b:65:53:4a:50:42:c7:d4:92:bd:d7:a2:a8:3d:98:
- 88:73:cd:60:28:79:a3:fc:48:7a
------BEGIN CERTIFICATE-----
-MIICzDCCAnagAwIBAgIBATANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
-cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzU1M1oXDTk4MDQwMjE3MzU1M1owXDEhMB8G
-A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTESMBAGA1UEBxMJRGFybXN0YWR0MFkwCgYEVQgB
-AQICAgADSwAwSAJBAIJ1uvbRYLX5FbNq3SmPi6RvGojgUENAC3lB1dMWRH10ZRdC
-BlIL6VDIEM0k4q6NIjBz5rS3kx/lbqKuSRGlyUUCAwEAAaOCATgwggE0MB8GA1Ud
-IwQYMBaAFIr3yNUOx3ro1yJw4AuJ1bbsZbzPMB0GA1UdDgQWBBR+cvL4OoacQog0
-NGZ1w9T80aIRMzAOBgNVHQ8BAf8EBAMCAfYwFAYDVR0gAQH/BAowCDAGBgQqAwQF
-MCoGA1UdEQQjMCGBH3NlY3VkZS1zdXBwb3J0QGRhcm1zdGFkdC5nbWQuZGUwUgYD
-VR0SBEswSYEbaWNlLXRlbC1jYUBkYXJtc3RhZHQuZ21kLmRlhipodHRwOi8vd3d3
-LmRhcm1zdGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2EwDwYDVR0TAQH/BAUwAwEB
-/zA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vd3d3LmRhcm1zdGFkdC5nbWQuZGUv
-aWNlLXRlbC9ldXJvY2EwDQYJKoZIhvcNAQEEBQADQQAXooi3mVoFQeQTNGfmHz4m
-7Etp+T4oIr6dHKtBbwwAhf5FdPaY8M6bZVNKUELH1JK916KoPZiIc81gKHmj/Eh6
------END CERTIFICATE-----
diff --git a/certs/ICE-root.pem b/certs/ICE-root.pem
deleted file mode 100644
index fa991599c9..0000000000
--- a/certs/ICE-root.pem
+++ /dev/null
@@ -1,48 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 0 (0x0)
- Signature Algorithm: md5WithRSAEncryption
- Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
- Validity
- Not Before: Apr 2 17:33:36 1997 GMT
- Not After : Apr 2 17:33:36 1998 GMT
- Subject: O=European ICE-TEL project, OU=V3-Certification Authority
- Subject Public Key Info:
- Public Key Algorithm: rsa
- RSA Public Key: (512 bit)
- Modulus (512 bit):
- 00:80:3e:eb:ae:47:a9:fe:10:54:0b:81:8b:9c:2b:
- 82:ab:3a:61:36:65:8b:f3:73:9f:ac:ac:7a:15:a7:
- 13:8f:b4:c4:ba:a3:0f:bc:a5:58:8d:cc:b1:93:31:
- 9e:81:9e:8c:19:61:86:fa:52:73:54:d1:97:76:22:
- e7:c7:9f:41:cd
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- ........z.."p......e..
- X509v3 Key Usage: critical
- ....
- X509v3 Subject Alternative Name:
- 0I.*http://www.darmstadt.gmd.de/ice-tel/euroca..ice-tel-ca@darmstadt.gmd.de
- X509v3 Basic Constraints: critical
- 0....
- Signature Algorithm: md5WithRSAEncryption
- 76:69:61:db:b7:cf:8b:06:9e:d8:8c:96:53:d2:4d:a8:23:a6:
- 03:44:e8:8f:24:a5:c0:84:a8:4b:77:d4:2d:2b:7d:37:91:67:
- f2:2c:ce:02:31:4c:6b:cc:ce:f2:68:a6:11:11:ab:7d:88:b8:
- 7e:22:9f:25:06:60:bd:79:30:3d
------BEGIN CERTIFICATE-----
-MIICFjCCAcCgAwIBAgIBADANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
-cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzMzNloXDTk4MDQwMjE3MzMzNlowSDEhMB8G
-A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTBZMAoGBFUIAQECAgIAA0sAMEgCQQCAPuuuR6n+
-EFQLgYucK4KrOmE2ZYvzc5+srHoVpxOPtMS6ow+8pViNzLGTMZ6BnowZYYb6UnNU
-0Zd2IufHn0HNAgMBAAGjgZcwgZQwHQYDVR0OBBYEFIr3yNUOx3ro1yJw4AuJ1bbs
-ZbzPMA4GA1UdDwEB/wQEAwIB9jBSBgNVHREESzBJhipodHRwOi8vd3d3LmRhcm1z
-dGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2GBG2ljZS10ZWwtY2FAZGFybXN0YWR0
-LmdtZC5kZTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA0EAdmlh27fP
-iwae2IyWU9JNqCOmA0TojySlwISoS3fULSt9N5Fn8izOAjFMa8zO8mimERGrfYi4
-fiKfJQZgvXkwPQ==
------END CERTIFICATE-----
diff --git a/certs/ICE-user.pem b/certs/ICE-user.pem
deleted file mode 100644
index 28065fd37d..0000000000
--- a/certs/ICE-user.pem
+++ /dev/null
@@ -1,63 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: md5WithRSAEncryption
- Issuer: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
- Validity
- Not Before: Apr 2 17:35:59 1997 GMT
- Not After : Apr 2 17:35:59 1998 GMT
- Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt, CN=USER
- Subject Public Key Info:
- Public Key Algorithm: rsa
- RSA Public Key: (512 bit)
- Modulus (512 bit):
- 00:a8:a8:53:63:49:1b:93:c3:c3:0b:6c:88:11:55:
- de:7e:6a:e2:f9:52:a0:dc:69:25:c4:c8:bf:55:e1:
- 31:a8:ce:e4:a9:29:85:99:8a:15:9a:de:f6:2f:e1:
- b4:50:5f:5e:04:75:a6:f4:76:dc:3c:0e:39:dc:3a:
- be:3e:a4:61:8b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Authority Key Identifier:
- 0...~r..:..B.44fu......3
- X509v3 Subject Key Identifier:
- ...... .*...1.*.......
- X509v3 Key Usage: critical
- ....
- X509v3 Certificate Policies: critical
- 0.0...*...0.......
- X509v3 Subject Alternative Name:
- 0:..user@darmstadt.gmd.de.!http://www.darmstadt.gmd.de/~user
- X509v3 Issuer Alternative Name:
- 0....gmdca@gmd.de..http://www.gmd.de..saturn.darmstadt.gmd.de.\1!0...U.
-..European ICE-TEL project1#0!..U....V3-Certification Authority1.0...U....Darmstadt..141.12.62.26
- X509v3 Basic Constraints: critical
- 0.
- X509v3 CRL Distribution Points:
- 0.0.......gmdca@gmd.de
- Signature Algorithm: md5WithRSAEncryption
- 69:0c:e1:b7:a7:f2:d8:fb:e8:69:c0:13:cd:37:ad:21:06:22:
- 4d:e8:c6:db:f1:04:0b:b7:e0:b3:d6:0c:81:03:ce:c3:6a:3e:
- c7:e7:24:24:a4:92:64:c2:83:83:06:42:53:0e:6f:09:1e:84:
- 9a:f7:6f:63:9b:94:99:83:d6:a4
------BEGIN CERTIFICATE-----
-MIIDTzCCAvmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBcMSEwHwYDVQQKExhFdXJv
-cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHQwHhcNOTcwNDAyMTczNTU5WhcN
-OTgwNDAyMTczNTU5WjBrMSEwHwYDVQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2pl
-Y3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQH
-EwlEYXJtc3RhZHQxDTALBgNVBAMTBFVTRVIwWTAKBgRVCAEBAgICAANLADBIAkEA
-qKhTY0kbk8PDC2yIEVXefmri+VKg3GklxMi/VeExqM7kqSmFmYoVmt72L+G0UF9e
-BHWm9HbcPA453Dq+PqRhiwIDAQABo4IBmDCCAZQwHwYDVR0jBBgwFoAUfnLy+DqG
-nEKINDRmdcPU/NGiETMwHQYDVR0OBBYEFJfc4B8gjSoRmLUx4Sq/ucIYiMrPMA4G
-A1UdDwEB/wQEAwIB8DAcBgNVHSABAf8EEjAQMAYGBCoDBAUwBgYECQgHBjBDBgNV
-HREEPDA6gRV1c2VyQGRhcm1zdGFkdC5nbWQuZGWGIWh0dHA6Ly93d3cuZGFybXN0
-YWR0LmdtZC5kZS9+dXNlcjCBsQYDVR0SBIGpMIGmgQxnbWRjYUBnbWQuZGWGEWh0
-dHA6Ly93d3cuZ21kLmRlghdzYXR1cm4uZGFybXN0YWR0LmdtZC5kZaRcMSEwHwYD
-VQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHSHDDE0MS4xMi42
-Mi4yNjAMBgNVHRMBAf8EAjAAMB0GA1UdHwQWMBQwEqAQoA6BDGdtZGNhQGdtZC5k
-ZTANBgkqhkiG9w0BAQQFAANBAGkM4ben8tj76GnAE803rSEGIk3oxtvxBAu34LPW
-DIEDzsNqPsfnJCSkkmTCg4MGQlMObwkehJr3b2OblJmD1qQ=
------END CERTIFICATE-----
diff --git a/certs/ICE.crl b/certs/ICE.crl
deleted file mode 100644
index 21939e8cc4..0000000000
--- a/certs/ICE.crl
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN X509 CRL-----
-MIIBNDCBnjANBgkqhkiG9w0BAQIFADBFMSEwHwYDVQQKExhFdXJvcGVhbiBJQ0Ut
-VEVMIFByb2plY3QxIDAeBgNVBAsTF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05
-NzA2MDkxNDQyNDNaFw05NzA3MDkxNDQyNDNaMCgwEgIBChcNOTcwMzAzMTQ0MjU0
-WjASAgEJFw05NjEwMDIxMjI5MjdaMA0GCSqGSIb3DQEBAgUAA4GBAH4vgWo2Tej/
-i7kbiw4Imd30If91iosjClNpBFwvwUDBclPEeMuYimHbLOk4H8Nofc0fw11+U/IO
-KSNouUDcqG7B64oY7c4SXKn+i1MWOb5OJiWeodX3TehHjBlyWzoNMWCnYA8XqFP1
-mOKp8Jla1BibEZf14+/HqCi2hnZUiEXh
------END X509 CRL-----
diff --git a/certs/RegTP-4R.pem b/certs/RegTP-4R.pem
deleted file mode 100644
index 6f2c6abccd..0000000000
--- a/certs/RegTP-4R.pem
+++ /dev/null
@@ -1,19 +0,0 @@
-issuer= CN=4R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
-notBefore=Jan 21 16:04:53 1999 GMT
-notAfter=Jan 21 16:04:53 2004 GMT
-subject= CN=4R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
------BEGIN CERTIFICATE-----
-MIICZzCCAdOgAwIBAgIEOwVn1DAKBgYrJAMDAQIFADBvMQswCQYDVQQGEwJERTE9
-MDsGA1UEChQ0UmVndWxpZXJ1bmdzYmVoyG9yZGUgZsh1ciBUZWxla29tbXVuaWth
-dGlvbiB1bmQgUG9zdDEhMAwGBwKCBgEKBxQTATEwEQYDVQQDFAo0Ui1DQSAxOlBO
-MCIYDzE5OTkwMTIxMTYwNDUzWhgPMjAwNDAxMjExNjA0NTNaMG8xCzAJBgNVBAYT
-AkRFMT0wOwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21t
-dW5pa2F0aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjRSLUNB
-IDE6UE4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGAjzHbq2asUlqeWbXTQHso
-aVF6YIPVH3c/B2cbuy9HJ/lnE6x0asOzM2DGDqi47xkdAxPc0LZ0fxO87rkmz7xs
-jJObnVrMXpyUSDSp5Y0wqKJdsFdr6mGFOQZteIti8AJnr8xMkwnWVyuOlEXsFe1h
-5gxwQXrOcPinE6qu1t/3PmECBMAAAAGjEjAQMA4GA1UdDwEB/wQEAwIBBjAKBgYr
-JAMDAQIFAAOBgQA+RdocBmA2VV9E5aKPBcp01tdZAvvW9Tve3docArVKR/4/yvSX
-Z+wvzzk+uu4qBp49HN3nqPYMrzbTmjBFu4ce5fkZ7dHF0W1sSBL0rox5z36Aq2re
-JjfEOEmSnNe0+opuh4FSVOssXblXTE8lEQU0FhhItgDx2ADnWZibaxLG4w==
------END CERTIFICATE-----
diff --git a/certs/ca-cert.pem b/certs/ca-cert.pem
deleted file mode 100644
index bcba68aefa..0000000000
--- a/certs/ca-cert.pem
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC5TCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQQFADBcMQswCQYDVQQGEwJBVTET
-MBEGA1UECBMKUXVlZW5zbGFuZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQx
-HDAaBgNVBAMTE1Rlc3QgUENBICgxMDI0IGJpdCkwHhcNOTkxMjAyMjEzODUxWhcN
-MDUwNzEwMjEzODUxWjBbMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFu
-ZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxGzAZBgNVBAMTElRlc3QgQ0Eg
-KDEwMjQgYml0KTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAo7ujy3XXpU/p
-yDJtOxkMJmGv3mdiVm7JrdoKLUgqjO2rBaeNuYMUiuI6oYU+tlD6agwRML0Pn2JF
-b90VdK/UXrmRr9djaEuH17EIKjte5RwOzndCndsjcCYyoeODMTyg7dqPIkDMmRNM
-5R5xBTabD+Aji0wzQupYxBLuW5PLj7ECAwEAAaOBtzCBtDAdBgNVHQ4EFgQU1WWA
-U42mkhi3ecgey1dsJjU61+UwgYQGA1UdIwR9MHuAFE0RaEcrj18q1dw+G6nJbsTW
-R213oWCkXjBcMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
-A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxHDAaBgNVBAMTE1Rlc3QgUENBICgxMDI0
-IGJpdCmCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBb39BRphHL
-6aRAQyymsvBvPSCiG9+kR0R1L23aTpNbhXp2BebyFjbEQYZc2kWGiKKcHkNECA35
-3d4LoqUlVey8DFyafOIJd9hxdZfg+rxlHMxnL7uCJRmx9+xB411Jtsol9/wg1uCK
-sleGpgB4j8cG2SVCz7V2MNZNK+d5QCnR7A==
------END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCju6PLddelT+nIMm07GQwmYa/eZ2JWbsmt2gotSCqM7asFp425
-gxSK4jqhhT62UPpqDBEwvQ+fYkVv3RV0r9ReuZGv12NoS4fXsQgqO17lHA7Od0Kd
-2yNwJjKh44MxPKDt2o8iQMyZE0zlHnEFNpsP4COLTDNC6ljEEu5bk8uPsQIDAQAB
-AoGAVZmpFZsDZfr0l2S9tLLwpjRWNOlKATQkno6q2WesT0eGLQufTciY+c8ypfU6
-hyio8r5iUl/VhhdjhAtKx1mRpiotftHo/eYf8rtsrnprOnWG0bWjLjtIoMbcxGn2
-J3bN6LJmbJMjDs0eJ3KnTu646F3nDUw2oGAwmpzKXA1KAP0CQQDRvQhxk2D3Pehs
-HvG665u2pB5ipYQngEFlZO7RHJZzJOZEWSLuuMqaF/7pTfA5jiBvWqCgJeCRRInL
-21ru4dlPAkEAx9jj7BgKn5TYnMoBSSe0afjsV9oApVpN1Nacb1YDtCwy+scp3++s
-nFxlv98wxIlSdpwMUn+AUWfjiWR7Tu/G/wJBAJ/KjwZIrFVxewP0x2ILYsTRYLzz
-MS4PDsO7FB+I0i7DbBOifXS2oNSpd3I0CNMwrxFnUHzynpbOStVfN3ZL5w0CQQCa
-pwFahxBRhkJKsxhjoFJBX9yl75JoY4Wvm5Tbo9ih6UJaRx3kqfkN14L2BKYcsZgb
-KY9vmDOYy6iNfjDeWTfJAkBkfPUb8oTJ/nSP5zN6sqGxSY4krc4xLxpRmxoJ8HL2
-XfhqXkTzbU13RX9JJ/NZ8vQN9Vm2NhxRGJocQkmcdVtJ
------END RSA PRIVATE KEY-----
diff --git a/certs/dsa-ca.pem b/certs/dsa-ca.pem
deleted file mode 100644
index 9eb08f3ddd..0000000000
--- a/certs/dsa-ca.pem
+++ /dev/null
@@ -1,43 +0,0 @@
------BEGIN DSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,C5B6C7CC9E1FE2C0
-
-svCXBcBRhMuU22UXOfiKZA+thmz6KYXpt1Yg5Rd+TYQcQ1MdvNy0B0tkP1SxzDq0
-Xh1eMeTML9/9/0rKakgNXXXbpi5RB8t6BmwRSyej89F7nn1mtR3qzoyPRpp15SDl
-Tn67C+2v+HDF3MFk88hiNCYkNbcmi7TWvChsl8N1r7wdZwtIox56yXdgxw6ZIpa/
-par0oUCzN7fiavPgCWz1kfPNSaBQSdxwH7TZi5tMHAr0J3C7a7QRnZfE09R59Uqr
-zslrq+ndIw1BZAxoY0SlBu+iFOVaBVlwToC4AsHkv7j7l8ITtr7f42YbBa44D9TO
-uOhONmkk/v3Fso4RaOEzdKZC+hnmmzvHs6TiTWm6yzJgSFwyOUK0eGmKEeVxpcH5
-rUOlHOwzen+FFtocZDZAfdFnb7QY7L/boQvyA5A+ZbRG4DUpmBQeQsSaICHM5Rxx
-1QaLF413VNPXTLPbW0ilSc2H8x2iZTIVKfd33oSO6NhXPtSYQgfecEF4BvNHY5c4
-HovjT4mckbK95bcBzoCHu43vuSQkmZzdYo/ydSZt6zoPavbBLueTpgSbdXiDi827
-MVqOsYxGCb+kez0FoDSTgw==
------END DSA PRIVATE KEY-----
------BEGIN CERTIFICATE REQUEST-----
-MIICUjCCAhECAQAwUjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
-ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDELMAkGA1UEAxMCQ0Ew
-ggG0MIIBKQYFKw4DAgwwggEeAoGBAKc/boW/QWopffCfRxkwkJoJHdpqMx7FPYaW
-sxXgUy6P4FmCc5A+dTGZR3pS+4Xk2aZ7OJtoioSbh8YetX6GS1NbWc9xZRmIbs5m
-rmuINvvsKNzC16W75Sw5JkvamnAYlTeVEFYj9hXtugRe3jlP/bdDH7WkZW/NgBHk
-cJVbUM1JAhUA9wcx7fpsBgPVhYocrJxl51BmZW8CgYBN30wDppGK9RlvUEYlmeVo
-bzDjaeHls12YuyiGSPzemQQ/X4gMnHMkDSBduSqaPxiWJ+Rih8F7dGJT/GEnqHqR
-CZ228U2cVA9YBu5JdAfOVX4jzhb2ytxaYQF+yXG1TfbcNCmHaPZeIJOz2/XkCWxB
-F5WS6wG1c6Vqftgy7Q4CuAOBhAACgYAapll6iqz9XrZFlk2GCVcB+KihxWnH7IuH
-vSLw9YUrJahcBHmbpvt494lF4gC5w3WPM+vXJofbusk4GoQEEsQNMDaah4m49uUq
-AylOVFJJJXuirVJ+o+0TtOFDITEAl+YZZariXOD7tdOSOl9RLMPC6+daHKS9e68u
-3enxhqnDGaAAMAkGBSsOAwIbBQADMAAwLQIVAJGVuFsG/0DBuSZ0jF7ypdU0/G0v
-AhQfeF5BoMMDbX/kidUVpQ6gadPlZA==
------END CERTIFICATE REQUEST-----
------BEGIN CERTIFICATE-----
-MIIBrjCCAWwCAQswCQYFKw4DAhsFADBTMQswCQYDVQQGEwJBVTETMBEGA1UECBMK
-U29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQww
-CgYDVQQDEwNQQ0EwHhcNOTcwNjE1MDIxNDI5WhcNOTcwNzE1MDIxNDI5WjBSMQsw
-CQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJu
-ZXQgV2lkZ2l0cyBQdHkgTHRkMQswCQYDVQQDEwJDQTCBkjAJBgUrDgMCDAUAA4GE
-AAKBgBqmWXqKrP1etkWWTYYJVwH4qKHFacfsi4e9IvD1hSslqFwEeZum+3j3iUXi
-ALnDdY8z69cmh9u6yTgahAQSxA0wNpqHibj25SoDKU5UUkkle6KtUn6j7RO04UMh
-MQCX5hllquJc4Pu105I6X1Esw8Lr51ocpL17ry7d6fGGqcMZMAkGBSsOAwIbBQAD
-MQAwLgIVAJ4wtQsANPxHo7Q4IQZYsL12SKdbAhUAjJ9n38zxT+iai2164xS+LIfa
-C1Q=
------END CERTIFICATE-----
-
diff --git a/certs/dsa-pca.pem b/certs/dsa-pca.pem
deleted file mode 100644
index e3641ad47e..0000000000
--- a/certs/dsa-pca.pem
+++ /dev/null
@@ -1,49 +0,0 @@
------BEGIN DSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,F80EEEBEEA7386C4
-
-GZ9zgFcHOlnhPoiSbVi/yXc9mGoj44A6IveD4UlpSEUt6Xbse3Fr0KHIUyQ3oGnS
-mClKoAp/eOTb5Frhto85SzdsxYtac+X1v5XwdzAMy2KowHVk1N8A5jmE2OlkNPNt
-of132MNlo2cyIRYaa35PPYBGNCmUm7YcYS8O90YtkrQZZTf4+2C4kllhMcdkQwkr
-FWSWC8YOQ7w0LHb4cX1FejHHom9Nd/0PN3vn3UyySvfOqoR7nbXkrpHXmPIr0hxX
-RcF0aXcV/CzZ1/nfXWQf4o3+oD0T22SDoVcZY60IzI0oIc3pNCbDV3uKNmgekrFd
-qOUJ+QW8oWp7oefRx62iBfIeC8DZunohMXaWAQCU0sLQOR4yEdeUCnzCSywe0bG1
-diD0KYaEe+Yub1BQH4aLsBgDjardgpJRTQLq0DUvw0/QGO1irKTJzegEDNVBKrVn
-V4AHOKT1CUKqvGNRP1UnccUDTF6miOAtaj/qpzra7sSk7dkGBvIEeFoAg84kfh9h
-hVvF1YyzC9bwZepruoqoUwke/WdNIR5ymOVZ/4Liw0JdIOcq+atbdRX08niqIRkf
-dsZrUj4leo3zdefYUQ7w4N2Ns37yDFq7
------END DSA PRIVATE KEY-----
------BEGIN CERTIFICATE REQUEST-----
-MIICVTCCAhMCAQAwUzELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
-ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAxMDUENB
-MIIBtTCCASkGBSsOAwIMMIIBHgKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2G
-lrMV4FMuj+BZgnOQPnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7O
-Zq5riDb77Cjcwtelu+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR
-5HCVW1DNSQIVAPcHMe36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnl
-aG8w42nh5bNdmLsohkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6
-kQmdtvFNnFQPWAbuSXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15Als
-QReVkusBtXOlan7YMu0OArgDgYUAAoGBAKbtuR5AdW+ICjCFe2ixjUiJJzM2IKwe
-6NZEMXg39+HQ1UTPTmfLZLps+rZfolHDXuRKMXbGFdSF0nXYzotPCzi7GauwEJTZ
-yr27ZZjA1C6apGSQ9GzuwNvZ4rCXystVEagAS8OQ4H3D4dWS17Zg31ICb5o4E5r0
-z09o/Uz46u0VoAAwCQYFKw4DAhsFAAMxADAuAhUArRubTxsbIXy3AhtjQ943AbNB
-nSICFQCu+g1iW3jwF+gOcbroD4S/ZcvB3w==
------END CERTIFICATE REQUEST-----
------BEGIN CERTIFICATE-----
-MIIC0zCCApECAQAwCQYFKw4DAhsFADBTMQswCQYDVQQGEwJBVTETMBEGA1UECBMK
-U29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQww
-CgYDVQQDEwNQQ0EwHhcNOTcwNjE0MjI1NDQ1WhcNOTcwNzE0MjI1NDQ1WjBTMQsw
-CQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJu
-ZXQgV2lkZ2l0cyBQdHkgTHRkMQwwCgYDVQQDEwNQQ0EwggG1MIIBKQYFKw4DAgww
-ggEeAoGBAKc/boW/QWopffCfRxkwkJoJHdpqMx7FPYaWsxXgUy6P4FmCc5A+dTGZ
-R3pS+4Xk2aZ7OJtoioSbh8YetX6GS1NbWc9xZRmIbs5mrmuINvvsKNzC16W75Sw5
-JkvamnAYlTeVEFYj9hXtugRe3jlP/bdDH7WkZW/NgBHkcJVbUM1JAhUA9wcx7fps
-BgPVhYocrJxl51BmZW8CgYBN30wDppGK9RlvUEYlmeVobzDjaeHls12YuyiGSPze
-mQQ/X4gMnHMkDSBduSqaPxiWJ+Rih8F7dGJT/GEnqHqRCZ228U2cVA9YBu5JdAfO
-VX4jzhb2ytxaYQF+yXG1TfbcNCmHaPZeIJOz2/XkCWxBF5WS6wG1c6Vqftgy7Q4C
-uAOBhQACgYEApu25HkB1b4gKMIV7aLGNSIknMzYgrB7o1kQxeDf34dDVRM9OZ8tk
-umz6tl+iUcNe5EoxdsYV1IXSddjOi08LOLsZq7AQlNnKvbtlmMDULpqkZJD0bO7A
-29nisJfKy1URqABLw5DgfcPh1ZLXtmDfUgJvmjgTmvTPT2j9TPjq7RUwCQYFKw4D
-AhsFAAMxADAuAhUAvtv6AkMolix1Jvy3UnVEIUqdCUICFQC+jq8P49mwrY9oJ24n
-5rKUjNBhSg==
------END CERTIFICATE-----
-
diff --git a/certs/factory.pem b/certs/factory.pem
deleted file mode 100644
index 8e28b391b2..0000000000
--- a/certs/factory.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICTTCCAbagAwIBAgIBADANBgkqhkiG9w0BAQQFADBMMQswCQYDVQQGEwJHQjEM
-MAoGA1UEChMDVUNMMRgwFgYDVQQLEw9JQ0UtVEVMIFByb2plY3QxFTATBgNVBAMT
-DFRydXN0RmFjdG9yeTAeFw05NzA0MjIxNDM5MTRaFw05ODA0MjIxNDM5MTRaMEwx
-CzAJBgNVBAYTAkdCMQwwCgYDVQQKEwNVQ0wxGDAWBgNVBAsTD0lDRS1URUwgUHJv
-amVjdDEVMBMGA1UEAxMMVHJ1c3RGYWN0b3J5MIGcMAoGBFUIAQECAgQAA4GNADCB
-iQKBgQCEieR8NcXkUW1f0G6aC6u0i8q/98JqS6RxK5YmHIGKCkuTWAUjzLfUa4dt
-U9igGCjTuxaDqlzEim+t/02pmiBZT9HaX++35MjQPUWmsChcYU5WyzGErXi+rQaw
-zlwS73zM8qiPj/97lXYycWhgL0VaiDSPxRXEUdWoaGruom4mNQIDAQABo0IwQDAd
-BgNVHQ4EFgQUHal1LZr7oVg5z6lYzrhTgZRCmcUwDgYDVR0PAQH/BAQDAgH2MA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAfaggfl6FZoioecjv0dq8
-/DXo/u11iMZvXn08gjX/zl2b4wtPbShOSY5FhkSm8GeySasz+/Nwb/uzfnIhokWi
-lfPZHtlCWtXbIy/TN51eJyq04ceDCQDWvLC2enVg9KB+GJ34b5c5VaPRzq8MBxsA
-S7ELuYGtmYgYm9NZOIr7yU0=
------END CERTIFICATE-----
diff --git a/certs/nortelCA.pem b/certs/nortelCA.pem
deleted file mode 100644
index 207f34ab3a..0000000000
--- a/certs/nortelCA.pem
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICajCCAdMCBDGA0QUwDQYJKoZIhvcNAQEEBQAwfTELMAkGA1UEBhMCQ2ExDzAN
-BgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmlsaXR5IEFjY2VwdGVkMR8w
-HQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRwwGgYDVQQDExNFbnRydXN0
-IERlbW8gV2ViIENBMB4XDTk2MDQyNjEzMzUwMVoXDTA2MDQyNjEzMzUwMVowfTEL
-MAkGA1UEBhMCQ2ExDzANBgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmls
-aXR5IEFjY2VwdGVkMR8wHQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRww
-GgYDVQQDExNFbnRydXN0IERlbW8gV2ViIENBMIGdMA0GCSqGSIb3DQEBAQUAA4GL
-ADCBhwKBgQCaroS7O1DA0hm4IefNYU1cx/nqOmzEnk291d1XqznDeF4wEgakbkCc
-zTKxK791yNpXG5RmngqH7cygDRTHZJ6mfCRn0wGC+AI00F2vYTGqPGRQL1N3lZT0
-YDKFC0SQeMMjFIZ1aeQigroFQnHo0VB3zWIMpNkka8PY9lxHZAmWwQIBAzANBgkq
-hkiG9w0BAQQFAAOBgQBAx0UMVA1s54lMQyXjMX5kj99FJN5itb8bK1Rk+cegPQPF
-cWO9SEWyEjjBjIkjjzAwBkaEszFsNGxemxtXvwjIm1xEUMTVlPEWTs2qnDvAUA9W
-YqhWbhH0toGT36236QAsqCZ76rbTRVSSX2BHyJwJMG2tCRv7kRJ//NIgxj3H4w==
------END CERTIFICATE-----
-
diff --git a/certs/pca-cert.pem b/certs/pca-cert.pem
deleted file mode 100644
index 9d754d460d..0000000000
--- a/certs/pca-cert.pem
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC5jCCAk+gAwIBAgIBADANBgkqhkiG9w0BAQQFADBcMQswCQYDVQQGEwJBVTET
-MBEGA1UECBMKUXVlZW5zbGFuZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQx
-HDAaBgNVBAMTE1Rlc3QgUENBICgxMDI0IGJpdCkwHhcNOTkxMjAyMjEzNTQ4WhcN
-MDUwNzExMjEzNTQ4WjBcMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFu
-ZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxHDAaBgNVBAMTE1Rlc3QgUENB
-ICgxMDI0IGJpdCkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ2haT/f5Zwy
-V+MiuSDjSR62adBoSiBB7Usty44lXqsp9RICw+DCCxpsn/CfxPEDXLLd4olsWXc6
-JRcxGynbYmnzk+Z6aIPPJQhK3CTvaqGnWKZsA1m+WaUIUqJCuNTK4N+7hMAGaf6S
-S3e9HVgEQ4a34gXJ7VQFVIBNV1EnZRWHAgMBAAGjgbcwgbQwHQYDVR0OBBYEFE0R
-aEcrj18q1dw+G6nJbsTWR213MIGEBgNVHSMEfTB7gBRNEWhHK49fKtXcPhupyW7E
-1kdtd6FgpF4wXDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxGjAY
-BgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYDVQQDExNUZXN0IFBDQSAoMTAy
-NCBiaXQpggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAUa8B3pho
-+Mvxeq9HsEzJxHIFQla05S5J/e/V+DQTYoKiRFchKPrDAdrzYSEvP3h4QJEtsNqQ
-JfOxg5M42uLFq7aPGWkF6ZZqZsYS+zA9IVT14g7gNA6Ne+5QtJqQtH9HA24st0T0
-Tga/lZ9M2ovImovaxSL/kRHbpCWcqWVxpOw=
------END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQCdoWk/3+WcMlfjIrkg40ketmnQaEogQe1LLcuOJV6rKfUSAsPg
-wgsabJ/wn8TxA1yy3eKJbFl3OiUXMRsp22Jp85PmemiDzyUIStwk72qhp1imbANZ
-vlmlCFKiQrjUyuDfu4TABmn+kkt3vR1YBEOGt+IFye1UBVSATVdRJ2UVhwIDAQAB
-AoGAba4fTtuap5l7/8ZsbE7Z1O32KJY4ZcOZukLOLUUhXxXduT+FTgGWujc0/rgc
-z9qYCLlNZHOouMYTgtSfYvuMuLZ11VIt0GYH+nRioLShE59Yy+zCRyC+gPigS1kz
-xvo14AsOIPYV14Tk/SsHyq6E0eTk7VzaIE197giiINUERPECQQDSKmtPTh/lRKw7
-HSZSM0I1mFWn/1zqrAbontRQY5w98QWIOe5qmzYyFbPXYT3d9BzlsMyhgiRNoBbD
-yvohSHXJAkEAwAHx6ezAZeWWzD5yXD36nyjpkVCw7Tk7TSmOceLJMWt1QcrCfqlS
-xA5jjpQ6Z8suU5DdtWAryM2sAir1WisYzwJAd6Zcx56jvAQ3xcPXsE6scBTVFzrj
-7FqZ6E+cclPzfLQ+QQsyOBE7bpI6e/FJppY26XGZXo3YGzV8IGXrt40oOQJALETG
-h86EFXo3qGOFbmsDy4pdP5nBERCu8X1xUCSfintiD4c2DInxgS5oGclnJeMcjTvL
-QjQoJCX3UJCi/OUO1QJBAKgcDHWjMvt+l1pjJBsSEZ0HX9AAIIVx0RQmbFGS+F2Q
-hhu5l77WnnZOQ9vvhV5u7NPCUF9nhU3jh60qWWO8mkc=
------END RSA PRIVATE KEY-----
diff --git a/certs/rsa-cca.pem b/certs/rsa-cca.pem
deleted file mode 100644
index 69f5c1c84c..0000000000
--- a/certs/rsa-cca.pem
+++ /dev/null
@@ -1,19 +0,0 @@
-subject=/C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
-issuer= /C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
-notBefore=941104185834Z
-notAfter =991103185834Z
------BEGIN X509 CERTIFICATE-----
-
-MIICIzCCAZACBQJBAAAWMA0GCSqGSIb3DQEBAgUAMFwxCzAJBgNVBAYTAlVTMSAw
-HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVy
-Y2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDQxODU4MzRaFw05
-OTExMDMxODU4MzRaMFwxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBT
-ZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVyY2lhbCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCk+4Fie84QJ93o
-975sbsZwmdu41QUDaSiCnHJ/lj+O7Kwpkj+KFPhCdr69XQO5kNTQvAayUTNfxMK/
-touPmbZiImDd298ggrTKoi8tUO2UMt7gVY3UaOLgTNLNBRYulWZcYVI4HlGogqHE
-7yXpCuaLK44xZtn42f29O2nZ6wIDAQABMA0GCSqGSIb3DQEBAgUAA34AdrW2EP4j
-9/dZYkuwX5zBaLxJu7NJbyFHXSudVMQAKD+YufKKg5tgf+tQx6sFEC097TgCwaVI
-0v5loMC86qYjFmZsGySp8+x5NRhPJsjjr1BKx6cxa9B8GJ1Qv6km+iYrRpwUqbtb
-MJhCKLVLU7tDCZJAuqiqWqTGtotXTcU=
------END X509 CERTIFICATE-----
diff --git a/certs/timCA.pem b/certs/timCA.pem
deleted file mode 100644
index 9c8d5bf9c6..0000000000
--- a/certs/timCA.pem
+++ /dev/null
@@ -1,16 +0,0 @@
-Tims test GCI CA
-
------BEGIN CERTIFICATE-----
-MIIB8DCCAZoCAQAwDQYJKoZIhvcNAQEEBQAwgYIxCzAJBgNVBAYTAkFVMRMwEQYD
-VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
-cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2RldmVsb3BtZW50MRkwFwYDVQQDExBD
-cnlwdFNvZnQgRGV2IENBMB4XDTk3MDMyMjEzMzQwNFoXDTk4MDMyMjEzMzQwNFow
-gYIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhC
-cmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2Rl
-dmVsb3BtZW50MRkwFwYDVQQDExBDcnlwdFNvZnQgRGV2IENBMFwwDQYJKoZIhvcN
-AQEBBQADSwAwSAJBAOAOAqogG5QwAmLhzyO4CoRnx/wVy4NZP4dxJy83O1EnL0rw
-OdsamJKvPOLHgSXo3gDu9uVyvCf/QJmZAmC5ml8CAwEAATANBgkqhkiG9w0BAQQF
-AANBADRRS/GVdd7rAqRW6SdmgLJduOU2yq3avBu99kRqbp9A/dLu6r6jU+eP4oOA
-TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
------END CERTIFICATE-----
-
diff --git a/certs/tjhCA.pem b/certs/tjhCA.pem
deleted file mode 100644
index 67bee1b200..0000000000
--- a/certs/tjhCA.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICVjCCAgACAQAwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAkFVMRMwEQYD
-VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
-cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsTI1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9O
-IEFVVEhPUklUSUVTMTQwMgYDVQQDEytaRVJPIFZBTFVFIENBIC0gREVNT05TVFJB
-VElPTiBQVVJQT1NFUyBPTkxZMB4XDTk3MDQwMzEzMjI1NFoXDTk4MDQwMzEzMjI1
-NFowgbUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH
-EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsT
-I1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9OIEFVVEhPUklUSUVTMTQwMgYDVQQDEyta
-RVJPIFZBTFVFIENBIC0gREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZMFwwDQYJ
-KoZIhvcNAQEBBQADSwAwSAJBAOZ7T7yqP/tyspcko3yPY1y0Cm2EmwNvzW4QgVXR
-Fjs3HmJ4xtSpXdo6mwcGezL3Abt/aQXaxv9PU8xt+Jr0OFUCAwEAATANBgkqhkiG
-9w0BAQQFAANBAOQpYmGgyCqCy1OljgJhCqQOu627oVlHzK1L+t9vBaMfn40AVUR4
-WzQVWO31KTgi5vTK1U+3h46fgUWqQ0h+6rU=
------END CERTIFICATE-----
diff --git a/certs/vsign2.pem b/certs/vsign2.pem
deleted file mode 100644
index d8bdd8c812..0000000000
--- a/certs/vsign2.pem
+++ /dev/null
@@ -1,18 +0,0 @@
-subject=/C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority
-notBefore=Jan 29 00:00:00 1996 GMT
-notAfter=Jan 7 23:59:59 2004 GMT
------BEGIN CERTIFICATE-----
-MIICPTCCAaYCEQC6WslMBTuS1qe2307QU5INMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
-c3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
-NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
-VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMiBQdWJsaWMgUHJp
-bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEAtlqLow1qI4OAa885h/QhEzMGTCWi7VUSl8WngLn6g8EgoPovFQ18
-oWBrfnks+gYPOq72G2+x0v8vKFJfg31LxHq3+GYfgFT8t8KOWUoUV0bRmpO+QZED
-uxWAk1zr58wIbD8+s0r8/0tsI9VQgiZEGY4jw3HqGSRHBJ51v8imAB8CAwEAATAN
-BgkqhkiG9w0BAQIFAAOBgQC2AB+TV6QHp0DOZUA/VV7t7/pUSaUw1iF8YYfug5ML
-v7Qz8pisnwa/TqjOFIFMywROWMPPX+5815pvy0GKt3+BuP+EYcYnQ2UdDOyxAArd
-G6S7x3ggKLKi3TaVLuFUT79guXdoEZkj6OpS6KoATmdOu5C1RZtG644W78QzWzM9
-1Q==
------END CERTIFICATE-----
diff --git a/certs/vsigntca.pem b/certs/vsigntca.pem
deleted file mode 100644
index 05acf76e66..0000000000
--- a/certs/vsigntca.pem
+++ /dev/null
@@ -1,18 +0,0 @@
-subject=/O=VeriSign, Inc/OU=www.verisign.com/repository/TestCPS Incorp. By Ref. Liab. LTD./OU=For VeriSign authorized testing only. No assurances (C)VS1997
-notBefore=Mar 4 00:00:00 1997 GMT
-notAfter=Mar 4 23:59:59 2025 GMT
------BEGIN CERTIFICATE-----
-MIICTTCCAfcCEEdoCqpuXxnoK27q7d58Qc4wDQYJKoZIhvcNAQEEBQAwgakxFjAU
-BgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52ZXJpc2lnbi5jb20v
-cmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBMaWFiLiBMVEQuMUYw
-RAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0aW5nIG9ubHkuIE5v
-IGFzc3VyYW5jZXMgKEMpVlMxOTk3MB4XDTk3MDMwNDAwMDAwMFoXDTI1MDMwNDIz
-NTk1OVowgakxFjAUBgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52
-ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBM
-aWFiLiBMVEQuMUYwRAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0
-aW5nIG9ubHkuIE5vIGFzc3VyYW5jZXMgKEMpVlMxOTk3MFwwDQYJKoZIhvcNAQEB
-BQADSwAwSAJBAMak6xImJx44jMKcbkACy5/CyMA2fqXK4PlzTtCxRq5tFkDzne7s
-cI8oFK/J+gFZNE3bjidDxf07O3JOYG9RGx8CAwEAATANBgkqhkiG9w0BAQQFAANB
-ADT523tENOKrEheZFpsJx1UUjPrG7TwYc/C4NBHrZI4gZJcKVFIfNulftVS6UMYW
-ToLEMaUojc3DuNXHG21PDG8=
------END CERTIFICATE-----
diff --git a/config b/config
index d69ffaf355..711af61541 100755
--- a/config
+++ b/config
@@ -111,12 +111,16 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
echo "m68k-apple-aux3"; exit 0
;;
+ AIX:[3-9]:4:*)
+ echo "${MACHINE}-ibm-aix"; exit 0
+ ;;
+
AIX:*:[5-9]:*)
- echo "${MACHINE}-ibm-aix5"; exit 0
+ echo "${MACHINE}-ibm-aix"; exit 0
;;
AIX:*)
- echo "${MACHINE}-ibm-aix"; exit 0
+ echo "${MACHINE}-ibm-aix3"; exit 0
;;
dgux:*)
@@ -487,88 +491,81 @@ case "$GUESSOS" in
OUT="irix-$CC"
;;
mips3-sgi-irix)
- CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
- CPU=${CPU:-0}
- if [ $CPU -ge 5000 ]; then
- options="$options -mips4"
- else
- options="$options -mips3"
- fi
+ #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
+ #CPU=${CPU:-0}
+ #if [ $CPU -ge 5000 ]; then
+ # options="$options -mips4"
+ #else
+ # options="$options -mips3"
+ #fi
OUT="irix-mips3-$CC"
;;
mips4-sgi-irix64)
echo "WARNING! If you wish to build 64-bit library, then you have to"
echo " invoke './Configure irix64-mips4-$CC' *manually*."
- if [ "$TEST" = "false" ]; then
+ if [ "$TEST" = "false" -a -t 1 ]; then
echo " You have about 5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
- CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
- CPU=${CPU:-0}
- if [ $CPU -ge 5000 ]; then
- options="$options -mips4"
- else
- options="$options -mips3"
- fi
+ #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
+ #CPU=${CPU:-0}
+ #if [ $CPU -ge 5000 ]; then
+ # options="$options -mips4"
+ #else
+ # options="$options -mips3"
+ #fi
OUT="irix-mips3-$CC"
;;
+ ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
+ ppc-apple-darwin*) OUT="darwin-ppc-cc" ;;
+ i386-apple-darwin*) OUT="darwin-i386-cc" ;;
alpha-*-linux2)
- ISA=`awk '/cpu model/{print$4}' /proc/cpuinfo`
+ ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo`
case ${ISA:-generic} in
- *[67]) OUT="linux-alpha+bwx-$CC" ;;
+ *[678]) OUT="linux-alpha+bwx-$CC" ;;
*) OUT="linux-alpha-$CC" ;;
esac
if [ "$CC" = "gcc" ]; then
case ${ISA:-generic} in
EV5|EV45) options="$options -mcpu=ev5";;
EV56|PCA56) options="$options -mcpu=ev56";;
- EV6|EV67|PCA57) options="$options -mcpu=ev6";;
+ *) options="$options -mcpu=ev6";;
esac
fi
;;
- mips-*-linux?)
- cat >dummy.c <<EOF
-#include <stdio.h> /* for printf() prototype */
- int main (argc, argv) int argc; char *argv[]; {
-#ifdef __MIPSEB__
- printf ("linux-%s\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
- printf ("linux-%sel\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- ${CC} -o dummy dummy.c && OUT=`./dummy ${MACHINE}`
- rm dummy dummy.c
+ ppc64-*-linux2)
+ echo "WARNING! If you wish to build 64-bit library, then you have to"
+ echo " invoke './Configure linux-ppc64' *manually*."
+ if [ "$TEST" = "false" -a -t 1 ]; then
+ echo " You have about 5 seconds to press Ctrl-C to abort."
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
+ fi
+ OUT="linux-ppc"
;;
- ppc64-*-linux2) OUT="linux-ppc64" ;;
ppc-*-linux2) OUT="linux-ppc" ;;
- m68k-*-linux*) OUT="linux-m68k" ;;
ia64-*-linux?) OUT="linux-ia64" ;;
- ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
- ppc-apple-darwin*) OUT="darwin-ppc-cc" ;;
- i386-apple-darwin*) OUT="darwin-i386-cc" ;;
sparc64-*-linux2)
echo "WARNING! If you *know* that your GNU C supports 64-bit/V9 ABI"
echo " and wish to build 64-bit library, then you have to"
echo " invoke './Configure linux64-sparcv9' *manually*."
- if [ "$TEST" = "false" ]; then
+ if [ "$TEST" = "false" -a -t 1 ]; then
echo " You have about 5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
OUT="linux-sparcv9" ;;
sparc-*-linux2)
- KARCH=`awk '/^type/{print$3}' /proc/cpuinfo`
+ KARCH=`awk '/^type/{print$3;exit(0);}' /proc/cpuinfo`
case ${KARCH:-sun4} in
sun4u*) OUT="linux-sparcv9" ;;
sun4m) OUT="linux-sparcv8" ;;
sun4d) OUT="linux-sparcv8" ;;
- *) OUT="linux-sparcv7" ;;
+ *) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
esac ;;
- parisc-*-linux2)
- CPUARCH=`awk '/cpu family/{print substr($5,1,3)}' /proc/cpuinfo`
- CPUSCHEDULE=`awk '/^cpu.[ ]: PA/{print substr($3,3)}' /proc/cpuinfo`
+ parisc*-*-linux2)
+ # 64-bit builds under parisc64 linux are not supported and
+ # compiler is expected to generate 32-bit objects...
+ CPUARCH=`awk '/cpu family/{print substr($5,1,3); exit(0);}' /proc/cpuinfo`
+ CPUSCHEDULE=`awk '/^cpu.[ ]*: PA/{print substr($3,3); exit(0);}' /proc/cpuinfo`
# ??TODO ?? Model transformations
# 0. CPU Architecture for the 1.1 processor has letter suffixes. We strip that off
@@ -581,28 +578,29 @@ EOF
# PA8500 -> 8000 (2.0)
# PA8600 -> 8000 (2.0)
- CPUSCHEDULE=`echo $CPUSCHEDULE|sed -e 's/7300LC/7100LC/' -e 's/8?00/8000/'`
+ CPUSCHEDULE=`echo $CPUSCHEDULE|sed -e 's/7300LC/7100LC/' -e 's/8.00/8000/'`
# Finish Model transformations
- options="$options -mschedule=$CPUSCHEDULE -march=$CPUARCH"
- OUT="linux-parisc" ;;
- arm*-*-linux2) OUT="linux-elf-arm" ;;
- s390-*-linux2) OUT="linux-s390" ;;
- s390x-*-linux?) OUT="linux-s390x" ;;
+ options="$options -DB_ENDIAN -mschedule=$CPUSCHEDULE -march=$CPUARCH"
+ OUT="linux-generic32" ;;
+ arm*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
+ arm*l-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
+ s390*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN -DNO_ASM" ;;
x86_64-*-linux?) OUT="linux-x86_64" ;;
- *-*-linux2) OUT="linux-elf"
+ *86-*-linux2) OUT="linux-elf"
if [ "$GCCVER" -gt 28 ]; then
if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then
- OUT="linux-pentium"
+ options="$options -mcpu=pentium"
fi
if grep '^model.*Pentium Pro' /proc/cpuinfo >/dev/null ; then
- OUT="linux-ppro"
+ options="$options -mcpu=pentiumpro"
fi
if grep '^model.*K6' /proc/cpuinfo >/dev/null ; then
- OUT="linux-k6"
+ options="$options -mcpu=k6"
fi
fi ;;
*-*-linux1) OUT="linux-aout" ;;
+ *-*-linux2) OUT="linux-generic32" ;;
sun4u*-*-solaris2)
OUT="solaris-sparcv9-$CC"
ISA64=`(isalist) 2>/dev/null | grep sparcv9`
@@ -610,9 +608,9 @@ EOF
if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then
echo "WARNING! If you wish to build 64-bit library, then you have to"
echo " invoke './Configure solaris64-sparcv9-cc' *manually*."
- if [ "$TEST" = "false" ]; then
+ if [ "$TEST" = "false" -a -t 1 ]; then
echo " You have about 5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then
# $GCC_ARCH denotes default ABI chosen by compiler driver
@@ -622,17 +620,17 @@ EOF
OUT="solaris64-sparcv9-gcc"
echo "WARNING! If you wish to build 32-bit library, then you have to"
echo " invoke './Configure solaris-sparcv9-gcc' *manually*."
- if [ "$TEST" = "false" ]; then
+ if [ "$TEST" = "false" -a -t 1 ]; then
echo " You have about 5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
elif [ "$GCC_ARCH" = "-m32" ]; then
echo "NOTICE! If you *know* that your GNU C supports 64-bit/V9 ABI"
echo " and wish to build 64-bit library, then you have to"
echo " invoke './Configure solaris64-sparcv9-gcc' *manually*."
- if [ "$TEST" = "false" ]; then
+ if [ "$TEST" = "false" -a -t 1 ]; then
echo " You have about 5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
fi
fi
@@ -640,31 +638,23 @@ EOF
sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;;
- *86*-*-solaris2) OUT="solaris-x86-$CC" ;;
- *-*-sunos4) OUT="sunos-$CC" ;;
- alpha*-*-freebsd*) OUT="FreeBSD-alpha" ;;
- sparc64-*-freebsd*) OUT="FreeBSD-sparc64" ;;
- ia64-*-freebsd*) OUT="FreeBSD-ia64" ;;
- *-freebsd[3-9]*) OUT="FreeBSD-elf" ;;
- *-freebsd[1-2]*) OUT="FreeBSD" ;;
- *86*-*-netbsd) OUT="NetBSD-x86" ;;
- sun3*-*-netbsd) OUT="NetBSD-m68" ;;
- *-*-netbsd) OUT="NetBSD-sparc" ;;
- alpha*-*-openbsd) OUT="OpenBSD-alpha" ;;
- *86*-*-openbsd) OUT="OpenBSD-i386" ;;
- m68k*-*-openbsd) OUT="OpenBSD-m68k" ;;
- m88k*-*-openbsd) OUT="OpenBSD-m88k" ;;
- mips*-*-openbsd) OUT="OpenBSD-mips" ;;
- pmax*-*-openbsd) OUT="OpenBSD-mips" ;;
- powerpc*-*-openbsd) OUT="OpenBSD-powerpc" ;;
- sparc64*-*-openbsd) OUT="OpenBSD-sparc64" ;;
- sparc*-*-openbsd) OUT="OpenBSD-sparc" ;;
- vax*-*-openbsd) OUT="OpenBSD-vax" ;;
- hppa*-*-openbsd) OUT="OpenBSD-hppa" ;;
- *-*-openbsd) OUT="OpenBSD" ;;
- *86*-*-bsdi4) OUT="bsdi-elf-gcc" ;;
- *-*-osf) OUT="alphaold-cc" ;;
- *-*-tru64) OUT="alpha-cc" ;;
+ *86*-*-solaris2) OUT="solaris-x86-$CC" ;;
+ *-*-sunos4) OUT="sunos-$CC" ;;
+
+ *86*-*-bsdi4) OUT="bsdi-elf-gcc" ;;
+ alpha*-*-*bsd*) OUT="BSD-generic64; options="$options -DL_ENDIAN" ;;
+ powerpc64-*-*bsd*) OUT="BSD-generic64; options="$options -DB_ENDIAN" ;;
+ sparc64-*-*bsd*) OUT="BSD-sparc64" ;;
+ ia64-*-*bsd*) OUT="BSD-ia64" ;;
+ amd64-*-*bsd*) OUT="BSD-x86_64" ;;
+ *86*-*-*bsd*) case "`(file -L /usr/lib/libc.so.*) 2>/dev/null`" in
+ *ELF*) OUT="BSD-x86-elf" ;;
+ *) OUT="BSD-x86" ;;
+ esac ;;
+ *-*-*bsd*) OUT="BSD-generic32" ;;
+
+ *-*-osf) OUT="osf1-alpha-cc" ;;
+ *-*-tru64) OUT="tru64-alpha-cc" ;;
*-*-OpenUNIX*)
if [ "$CC" = "gcc" ]; then
OUT="OpenUNIX-8-gcc"
@@ -672,15 +662,9 @@ EOF
OUT="OpenUNIX-8"
fi
;;
- *-*-unixware7) OUT="unixware-7" ;;
- *-*-UnixWare7) OUT="unixware-7" ;;
- *-*-Unixware7) OUT="unixware-7" ;;
- *-*-unixware20*) OUT="unixware-2.0" ;;
- *-*-unixware21*) OUT="unixware-2.1" ;;
- *-*-UnixWare20*) OUT="unixware-2.0" ;;
- *-*-UnixWare21*) OUT="unixware-2.1" ;;
- *-*-Unixware20*) OUT="unixware-2.0" ;;
- *-*-Unixware21*) OUT="unixware-2.1" ;;
+ *-*-[Uu]nix[Ww]are7) OUT="unixware-7" ;;
+ *-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0" ;;
+ *-*-[Uu]nix[Ww]are21*) OUT="unixware-2.1" ;;
*-*-vos)
options="$options no-threads no-shared no-asm no-dso"
EXE=".pm"
@@ -701,9 +685,9 @@ EOF
echo "WARNING! 64-bit ABI is the default configured ABI on HP-UXi."
echo " If you wish to build 32-bit library, the you have to"
echo " invoke './Configure hpux-ia64-cc' *manually*."
- if [ "$TEST" = "false" ]; then
+ if [ "$TEST" = "false" -a -t 1 ]; then
echo " You have about 5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
OUT="hpux64-ia64-cc"
elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU
@@ -711,9 +695,9 @@ EOF
if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
echo "WARNING! If you wish to build 64-bit library then you have to"
echo " invoke './Configure hpux64-parisc2-cc' *manually*."
- if [ "$TEST" = "false" ]; then
+ if [ "$TEST" = "false" -a -t 1 ]; then
echo " You have about 5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
fi
elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU
@@ -725,37 +709,28 @@ EOF
fi
options="$options -D_REENTRANT" ;;
*-hpux) OUT="hpux-parisc-$CC" ;;
- *-aix5)
+ *-aix)
KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null`
KERNEL_BITS=${KERNEL_BITS:-32}
- if [ $KERNEL_BITS -eq 64 ]; then
- # we default to 64-bit because PKI performance is >3x better...
- OBJECT_MODE=${OBJECT_MODE:-$KERNEL_BITS}
- else
- OBJECT_MODE=32
- fi
- OUT="aix-cc"
- if [ "$CC" = "cc" -a $OBJECT_MODE -eq 64 ]; then
- OUT="aix64-cc"
- echo "WARNING! If you wish to build 32-bit kit, then you have to"
- echo " invoke './Configure aix-cc' *manually*."
- if [ "$TEST" = "false" ]; then
- echo " You have ~5 seconds to press Ctrl-C to abort."
- (stty -icanon min 0 time 50; read waste) < /dev/tty
- fi
- elif [ "$CC" = "gcc" ]; then
- OUT="aix-gcc"
- fi
- ;;
- *-aix)
+ OBJECT_MODE=${OBJECT_MODE:-32}
if [ "$CC" = "gcc" ]; then
OUT="aix-gcc"
+ elif [ $OBJECT_MODE -eq 64 ]; then
+ echo 'Your $OBJECT_MODE was found to be set to 64'
+ OUT="aix64-cc"
else
- OUT="aix43-cc"
+ OUT="aix-cc"
+ if [ $KERNEL_BITS -eq 64 ]; then
+ echo "WARNING! If you wish to build 64-bit kit, then you have to"
+ echo " invoke './Configure aix64-cc' *manually*."
+ if [ "$TEST" = "false" -a -t 1 ]; then
+ echo " You have ~5 seconds to press Ctrl-C to abort."
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
+ fi
+ fi
fi
;;
# these are all covered by the catchall below
- # *-aix) OUT="aix-$CC" ;;
# *-dgux) OUT="dgux" ;;
mips-sony-newsos4) OUT="newsos4-gcc" ;;
*-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;;
@@ -781,9 +756,10 @@ esac
# gcc < 2.8 does not support -mcpu=ultrasparc
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
then
- echo "WARNING! Do consider upgrading to gcc-2.8 or later."
+ echo "WARNING! Falling down to 'solaris-sparcv8-gcc'."
+ echo " Upgrade to gcc-2.8 or later."
sleep 5
- OUT=solaris-sparcv9-gcc27
+ OUT=solaris-sparcv8-gcc
fi
if [ "$OUT" = "linux-sparcv9" -a $GCCVER -lt 28 ]
then
diff --git a/crypto/LPdir_unix.c b/crypto/LPdir_unix.c
index 83686e8e78..b004cd99e8 100644
--- a/crypto/LPdir_unix.c
+++ b/crypto/LPdir_unix.c
@@ -1,4 +1,4 @@
-/* $LP: LPlib/source/LPdir_unix.c,v 1.6 2004/06/14 10:08:43 _cvs_levitte Exp $ */
+/* $LP: LPlib/source/LPdir_unix.c,v 1.11 2004/09/23 22:07:22 _cvs_levitte Exp $ */
/*
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
* All rights reserved.
@@ -11,22 +11,23 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stddef.h>
#include <stdlib.h>
+#include <limits.h>
#include <string.h>
#include <sys/types.h>
#include <dirent.h>
@@ -35,10 +36,30 @@
#include "LPdir.h"
#endif
+/* The POSIXly macro for the maximum number of characters in a file path
+ is NAME_MAX. However, some operating systems use PATH_MAX instead.
+ Therefore, it seems natural to first check for PATH_MAX and use that,
+ and if it doesn't exist, use NAME_MAX. */
+#if defined(PATH_MAX)
+# define LP_ENTRY_SIZE PATH_MAX
+#elif defined(NAME_MAX)
+# define LP_ENTRY_SIZE NAME_MAX
+#endif
+
+/* Of course, there's the possibility that neither PATH_MAX nor NAME_MAX
+ exist. It's also possible that NAME_MAX exists but is define to a
+ very small value (HP-UX offers 14), so we need to check if we got a
+ result, and if it meets a minimum standard, and create or change it
+ if not. */
+#if !defined(LP_ENTRY_SIZE) || LP_ENTRY_SIZE<255
+# undef LP_ENTRY_SIZE
+# define LP_ENTRY_SIZE 255
+#endif
+
struct LP_dir_context_st
{
DIR *dir;
- char entry_name[NAME_MAX+1];
+ char entry_name[LP_ENTRY_SIZE+1];
};
const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
@@ -79,7 +100,8 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
return 0;
}
- strncpy((*ctx)->entry_name, direntry->d_name, sizeof((*ctx)->entry_name));
+ strncpy((*ctx)->entry_name, direntry->d_name, sizeof((*ctx)->entry_name) - 1);
+ (*ctx)->entry_name[sizeof((*ctx)->entry_name) - 1] = '\0';
return (*ctx)->entry_name;
}
diff --git a/crypto/LPdir_vms.c b/crypto/LPdir_vms.c
index 3f883f90f3..85b427a623 100644
--- a/crypto/LPdir_vms.c
+++ b/crypto/LPdir_vms.c
@@ -1,4 +1,4 @@
-/* $LP: LPlib/source/LPdir_vms.c,v 1.19 2004/07/11 20:17:45 _cvs_levitte Exp $ */
+/* $LP: LPlib/source/LPdir_vms.c,v 1.20 2004/08/26 13:36:05 _cvs_levitte Exp $ */
/*
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
* All rights reserved.
@@ -11,18 +11,18 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stddef.h>
diff --git a/crypto/LPdir_win.c b/crypto/LPdir_win.c
index fdd955fe38..09b475beed 100644
--- a/crypto/LPdir_win.c
+++ b/crypto/LPdir_win.c
@@ -1,4 +1,4 @@
-/* $LP: LPlib/source/LPdir_win.c,v 1.1 2004/06/14 10:07:56 _cvs_levitte Exp $ */
+/* $LP: LPlib/source/LPdir_win.c,v 1.10 2004/08/26 13:36:05 _cvs_levitte Exp $ */
/*
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
* All rights reserved.
@@ -11,24 +11,40 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <windows.h>
+#include <tchar.h>
#ifndef LPDIR_H
#include "LPdir.h"
#endif
+/* We're most likely overcautious here, but let's reserve for
+ broken WinCE headers and explicitly opt for UNICODE call.
+ Keep in mind that our WinCE builds are compiled with -DUNICODE
+ [as well as -D_UNICODE]. */
+#if defined(LP_SYS_WINCE) && !defined(FindFirstFile)
+# define FindFirstFile FindFirstFileW
+#endif
+#if defined(LP_SYS_WINCE) && !defined(FindFirstFile)
+# define FindNextFile FindNextFileW
+#endif
+
+#ifndef NAME_MAX
+#define NAME_MAX 255
+#endif
+
struct LP_dir_context_st
{
WIN32_FIND_DATA ctx;
@@ -53,35 +69,37 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
if (*ctx == NULL)
{
errno = ENOMEM;
- free(*ctx);
return 0;
}
memset(*ctx, '\0', sizeof(LP_DIR_CTX));
-#ifdef LP_SYS_WINCE
- {
- WCHAR *wdir = NULL;
- size_t index = 0;
-
- wdir = (WCHAR *)malloc((strlen(directory) + 1) * 2);
- if (wdir == NULL)
- {
- errno = ENOMEM;
- free(*ctx);
- free(wdir);
- return 0;
- }
-
- for (index = 0; index < strlen(directory) + 1; index++)
- wdir[index] = (short)directory[index];
-
- (*ctx)->handle = FindFirstFile(wdir, &(*ctx)->ctx);
-
- free(wdir);
- }
-#else
- (*ctx)->handle = FindFirstFile(directory, &(*ctx)->ctx);
+ if (sizeof(TCHAR) != sizeof(char))
+ {
+ TCHAR *wdir = NULL;
+ /* len_0 denotes string length *with* trailing 0 */
+ size_t index = 0,len_0 = strlen(directory) + 1;
+
+ wdir = (TCHAR *)malloc(len_0 * sizeof(TCHAR));
+ if (wdir == NULL)
+ {
+ free(*ctx);
+ *ctx = NULL;
+ errno = ENOMEM;
+ return 0;
+ }
+
+#ifdef LP_MULTIBYTE_AVAILABLE
+ if (!MultiByteToWideChar(CP_ACP, 0, directory, len_0, (WCHAR *)wdir, len_0))
#endif
+ for (index = 0; index < len_0; index++)
+ wdir[index] = (TCHAR)directory[index];
+
+ (*ctx)->handle = FindFirstFile(wdir, &(*ctx)->ctx);
+
+ free(wdir);
+ }
+ else
+ (*ctx)->handle = FindFirstFile((TCHAR *)directory, &(*ctx)->ctx);
if ((*ctx)->handle == INVALID_HANDLE_VALUE)
{
@@ -93,14 +111,33 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
}
else
{
- if (FindNextFile((*ctx)->handle, (*ctx)->ctx) == FALSE)
+ if (FindNextFile((*ctx)->handle, &(*ctx)->ctx) == FALSE)
{
return 0;
}
}
- strncpy((*ctx)->entry_name, (*ctx)->ctx.cFileName,
- sizeof((*ctx)->entry_name));
+ if (sizeof(TCHAR) != sizeof(char))
+ {
+ TCHAR *wdir = (*ctx)->ctx.cFileName;
+ size_t index, len_0 = 0;
+
+ while (wdir[len_0] && len_0 < (sizeof((*ctx)->entry_name) - 1)) len_0++;
+ len_0++;
+
+#ifdef LP_MULTIBYTE_AVAILABLE
+ if (!WideCharToMultiByte(CP_ACP, 0, (WCHAR *)wdir, len_0, (*ctx)->entry_name,
+ sizeof((*ctx)->entry_name), NULL, 0))
+#endif
+ for (index = 0; index < len_0; index++)
+ (*ctx)->entry_name[index] = (char)wdir[index];
+ }
+ else
+ strncpy((*ctx)->entry_name, (const char *)(*ctx)->ctx.cFileName,
+ sizeof((*ctx)->entry_name)-1);
+
+ (*ctx)->entry_name[sizeof((*ctx)->entry_name)-1] = '\0';
+
return (*ctx)->entry_name;
}
@@ -110,6 +147,7 @@ int LP_find_file_end(LP_DIR_CTX **ctx)
{
FindClose((*ctx)->handle);
free(*ctx);
+ *ctx = NULL;
return 1;
}
errno = EINVAL;
diff --git a/crypto/LPdir_win32.c b/crypto/LPdir_win32.c
index 59505898c1..e39872da52 100644
--- a/crypto/LPdir_win32.c
+++ b/crypto/LPdir_win32.c
@@ -1,4 +1,4 @@
-/* $LP: LPlib/source/LPdir_win32.c,v 1.1 2004/06/14 10:07:56 _cvs_levitte Exp $ */
+/* $LP: LPlib/source/LPdir_win32.c,v 1.3 2004/08/26 13:36:05 _cvs_levitte Exp $ */
/*
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
* All rights reserved.
@@ -11,19 +11,20 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#define LP_SYS_WIN32
+#define LP_MULTIBYTE_AVAILABLE
#include "LPdir_win.c"
diff --git a/crypto/LPdir_wince.c b/crypto/LPdir_wince.c
index f652178ec4..ab0e1e6f4f 100644
--- a/crypto/LPdir_wince.c
+++ b/crypto/LPdir_wince.c
@@ -1,4 +1,4 @@
-/* $LP: LPlib/source/LPdir_wince.c,v 1.1 2004/06/14 10:07:56 _cvs_levitte Exp $ */
+/* $LP: LPlib/source/LPdir_wince.c,v 1.3 2004/08/26 13:36:05 _cvs_levitte Exp $ */
/*
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
* All rights reserved.
@@ -11,19 +11,21 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#define LP_SYS_WINCE
+/* We might want to define LP_MULTIBYTE_AVAILABLE here. It's currently
+ under investigation what the exact conditions would be */
#include "LPdir_win.c"
diff --git a/crypto/Makefile.ssl b/crypto/Makefile.ssl
index 40b3b7c113..bb9df4a642 100644
--- a/crypto/Makefile.ssl
+++ b/crypto/Makefile.ssl
@@ -22,7 +22,8 @@ PEX_LIBS=
EX_LIBS=
CFLAGS= $(INCLUDE) $(CFLAG)
-
+ASFLAGS= $(INCLUDE) $(ASFLAG)
+AFLAGS=$(ASFLAGS)
LIBS=
@@ -39,7 +40,7 @@ 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 tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c
-LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o
+LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o $(CPUID_OBJ)
SRC= $(LIBSRC)
@@ -62,6 +63,18 @@ buildinf.h: ../Makefile.ssl
echo " #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
echo '#endif' ) >buildinf.h
+x86cpuid-elf.s: x86cpuid.pl perlasm/x86asm.pl
+ $(PERL) x86cpuid.pl elf $(CFLAGS) $(PROCESSOR) > $@
+x86cpuid-cof.s: x86cpuid.pl perlasm/x86asm.pl
+ $(PERL) x86cpuid.pl coff $(CFLAGS) $(PROCESSOR) > $@
+x86cpuid-out.s: x86cpuid.pl perlasm/x86asm.pl
+ $(PERL) x86cpuid.pl a.out $(CFLAGS) $(PROCESSOR) > $@
+
+amd64cpuid.s: amd64cpuid.pl
+ $(PERL) amd64cpuid.pl $@
+ia64cpuid.s: ia64cpuid.S
+ $(CC) $(CFLAGS) -E ia64cpuid.S > $@
+
testapps:
if echo ${SDIRS} | fgrep ' des '; \
then cd des && $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' des; fi
@@ -72,7 +85,7 @@ subdirs:
@for i in $(SDIRS) ;\
do \
(cd $$i && echo "making all in crypto/$$i..." && \
- $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
+ $(MAKE) -e INCLUDES='${INCLUDES}' all ) || exit 1; \
done;
files:
@@ -119,7 +132,7 @@ tests:
done;
install:
- @for i in $(EXHEADER) ;\
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ;\
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -148,7 +161,7 @@ depend:
done;
clean:
- rm -f buildinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+ rm -f buildinf.h *.s *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
@for i in $(SDIRS) ;\
do \
(cd $$i && echo "making clean in crypto/$$i..." && \
@@ -214,8 +227,8 @@ 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_str.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_str.c
-o_str.o: o_str.h
+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
tmdiff.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
diff --git a/crypto/aes/Makefile.ssl b/crypto/aes/Makefile.ssl
index f353aeb697..7f7f141b44 100644
--- a/crypto/aes/Makefile.ssl
+++ b/crypto/aes/Makefile.ssl
@@ -17,8 +17,11 @@ MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
MAKEFILE= Makefile.ssl
AR= ar r
-# CFLAGS= -mpentiumpro $(INCLUDES) $(CFLAG) -O3 -fexpensive-optimizations -funroll-loops -fforce-addr
+AES_ASM_OBJ=aes_core.o aes_cbc.o
+
CFLAGS= $(INCLUDES) $(CFLAG)
+ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
#TEST=aestest.c
@@ -27,7 +30,7 @@ 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
-LIBOBJ=aes_core.o aes_misc.o aes_ecb.o aes_cbc.o aes_cfb.o aes_ofb.o aes_ctr.o
+LIBOBJ=aes_misc.o aes_ecb.o aes_cfb.o aes_ofb.o aes_ctr.o $(AES_ASM_OBJ)
SRC= $(LIBSRC)
@@ -48,6 +51,16 @@ lib: $(LIBOBJ)
$(LIBOBJ): $(LIBSRC)
+aes-ia64.s: asm/aes-ia64.S
+ $(CC) $(CFLAGS) -E asm/aes-ia64.S > $@
+
+ax86-elf.s: asm/aes-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) aes-586.pl elf $(CFLAGS) $(PROCESSOR) > ../$@)
+ax86-cof.s: asm/aes-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) aes-586.pl coff $(CFLAGS) $(PROCESSOR) > ../$@)
+ax86-out.s: asm/aes-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) aes-586.pl a.out $(CFLAGS) $(PROCESSOR) > ../$@)
+
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -60,7 +73,7 @@ links:
install: installs
installs:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -82,14 +95,15 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+ 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/e_os2.h
aes_cbc.o: ../../include/openssl/opensslconf.h aes_cbc.c aes_locl.h
-aes_cfb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
-aes_cfb.o: ../../include/openssl/opensslconf.h aes_cfb.c aes_locl.h
+aes_cfb.o: ../../e_os.h ../../include/openssl/aes.h
+aes_cfb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+aes_cfb.o: aes_cfb.c aes_locl.h
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/e_os2.h
diff --git a/crypto/aes/aes.h b/crypto/aes/aes.h
index 20c4dbc0f7..9ffcc9ff2a 100644
--- a/crypto/aes/aes.h
+++ b/crypto/aes/aes.h
@@ -72,7 +72,11 @@ extern "C" {
/* This should be a hidden type, but EVP requires that the size be known */
struct aes_key_st {
+#ifdef AES_LONG
unsigned long rd_key[4 *(AES_MAXNR + 1)];
+#else
+ unsigned int rd_key[4 *(AES_MAXNR + 1)];
+#endif
int rounds;
};
typedef struct aes_key_st AES_KEY;
diff --git a/crypto/aes/aes_cbc.c b/crypto/aes/aes_cbc.c
index 1222a21002..d2ba6bcdb4 100644
--- a/crypto/aes/aes_cbc.c
+++ b/crypto/aes/aes_cbc.c
@@ -66,6 +66,7 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
unsigned long n;
unsigned long len = length;
unsigned char tmp[AES_BLOCK_SIZE];
+ const unsigned char *iv = ivec;
assert(in && out && key && ivec);
assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
@@ -73,22 +74,39 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
if (AES_ENCRYPT == enc) {
while (len >= AES_BLOCK_SIZE) {
for(n=0; n < AES_BLOCK_SIZE; ++n)
- tmp[n] = in[n] ^ ivec[n];
- AES_encrypt(tmp, out, key);
- memcpy(ivec, out, AES_BLOCK_SIZE);
+ out[n] = in[n] ^ iv[n];
+ AES_encrypt(out, out, key);
+ iv = out;
len -= AES_BLOCK_SIZE;
in += AES_BLOCK_SIZE;
out += AES_BLOCK_SIZE;
}
if (len) {
for(n=0; n < len; ++n)
- tmp[n] = in[n] ^ ivec[n];
+ out[n] = in[n] ^ iv[n];
for(n=len; n < AES_BLOCK_SIZE; ++n)
- tmp[n] = ivec[n];
- AES_encrypt(tmp, tmp, key);
- memcpy(out, tmp, AES_BLOCK_SIZE);
- memcpy(ivec, tmp, AES_BLOCK_SIZE);
- }
+ out[n] = iv[n];
+ AES_encrypt(out, out, key);
+ iv = out;
+ }
+ memcpy(ivec,iv,AES_BLOCK_SIZE);
+ } else if (in != out) {
+ while (len >= AES_BLOCK_SIZE) {
+ AES_decrypt(in, out, key);
+ for(n=0; n < AES_BLOCK_SIZE; ++n)
+ out[n] ^= iv[n];
+ iv = in;
+ len -= AES_BLOCK_SIZE;
+ in += AES_BLOCK_SIZE;
+ out += AES_BLOCK_SIZE;
+ }
+ if (len) {
+ AES_decrypt(in,tmp,key);
+ for(n=0; n < len; ++n)
+ out[n] = tmp[n] ^ iv[n];
+ iv = in;
+ }
+ memcpy(ivec,iv,AES_BLOCK_SIZE);
} else {
while (len >= AES_BLOCK_SIZE) {
memcpy(tmp, in, AES_BLOCK_SIZE);
@@ -102,10 +120,12 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
}
if (len) {
memcpy(tmp, in, AES_BLOCK_SIZE);
- AES_decrypt(tmp, tmp, key);
+ AES_decrypt(tmp, out, key);
for(n=0; n < len; ++n)
- out[n] = tmp[n] ^ ivec[n];
+ out[n] ^= ivec[n];
+ for(n=len; n < AES_BLOCK_SIZE; ++n)
+ out[n] = tmp[n];
memcpy(ivec, tmp, AES_BLOCK_SIZE);
- }
+ }
}
}
diff --git a/crypto/aes/aes_cfb.c b/crypto/aes/aes_cfb.c
index 2e0c41ec2b..49f0411010 100644
--- a/crypto/aes/aes_cfb.c
+++ b/crypto/aes/aes_cfb.c
@@ -114,6 +114,7 @@
#include <openssl/aes.h>
#include "aes_locl.h"
+#include "e_os.h"
/* The input and output encrypted as though 128bit cfb mode is being
* used. The extra state information to record how much of the
@@ -157,61 +158,35 @@ void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
/* This expects a single block of size nbits for both in and out. Note that
it corrupts any extra bits in the last byte of out */
-/* Untested, once it is working, it will be optimised */
void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out,
const int nbits,const AES_KEY *key,
unsigned char *ivec,const int enc)
{
- int n;
+ int n,rem,num;
unsigned char ovec[AES_BLOCK_SIZE*2];
- assert(in && out && key && ivec);
- if(enc)
- {
- /* construct the new IV */
- AES_encrypt(ivec,ovec,key);
- /* encrypt the input */
- for(n=0 ; n < (nbits+7)/8 ; ++n)
- out[n]=in[n]^ovec[n];
- /* fill in the first half of the new IV with the current IV */
- memcpy(ovec,ivec,AES_BLOCK_SIZE);
- /* and put the ciphertext in the second half */
- memcpy(ovec+AES_BLOCK_SIZE,out,(nbits+7)/8);
- /* shift ovec left most of the bits... */
- memmove(ovec,ovec+nbits/8,AES_BLOCK_SIZE+(nbits%8 ? 1 : 0));
- /* now the remaining bits */
- if(nbits%8 != 0)
- for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
- {
- ovec[n]<<=nbits%8;
- ovec[n]|=ovec[n+1]>>(8-nbits%8);
- }
- /* finally, move it back into place */
- memcpy(ivec,ovec,AES_BLOCK_SIZE);
- }
- else
- {
- /* construct the new IV in the first half of ovec */
- AES_encrypt(ivec,ovec,key);
- /* decrypt the input */
- for(n=0 ; n < (nbits+7)/8 ; ++n)
- out[n]=in[n]^ovec[n];
+ if (nbits<=0 || nbits>128) return;
+
/* fill in the first half of the new IV with the current IV */
memcpy(ovec,ivec,AES_BLOCK_SIZE);
- /* append the ciphertext */
- memcpy(ovec+AES_BLOCK_SIZE,in,(nbits+7)/8);
- /* shift ovec left most of the bits... */
- memmove(ovec,ovec+nbits/8,AES_BLOCK_SIZE+(nbits%8 ? 1 : 0));
- /* now the remaining bits */
- if(nbits%8 != 0)
+ /* construct the new IV */
+ AES_encrypt(ivec,ivec,key);
+ num = (nbits+7)/8;
+ if (enc) /* encrypt the input */
+ for(n=0 ; n < num ; ++n)
+ out[n] = (ovec[AES_BLOCK_SIZE+n] = in[n] ^ ivec[n]);
+ else /* decrypt the input */
+ for(n=0 ; n < num ; ++n)
+ out[n] = (ovec[AES_BLOCK_SIZE+n] = in[n]) ^ ivec[n];
+ /* shift ovec left... */
+ rem = nbits%8;
+ num = nbits/8;
+ if(rem==0)
+ memcpy(ivec,ovec+num,AES_BLOCK_SIZE);
+ else
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
- {
- ovec[n]<<=nbits%8;
- ovec[n]|=ovec[n+1]>>(8-nbits%8);
- }
- /* finally, move it back into place */
- memcpy(ivec,ovec,AES_BLOCK_SIZE);
- }
+ ivec[n] = ovec[n+num]<<rem | ovec[n+num+1]>>(8-rem);
+
/* it is not necessary to cleanse ovec, since the IV is not secret */
}
diff --git a/crypto/aes/aes_core.c b/crypto/aes/aes_core.c
index 2f41a825f8..410ae2e8e8 100644
--- a/crypto/aes/aes_core.c
+++ b/crypto/aes/aes_core.c
@@ -53,6 +53,13 @@ Td3[x] = Si[x].[09, 0d, 0b, 0e];
Td4[x] = Si[x].[01, 01, 01, 01];
*/
+#ifdef AES_ASM
+extern const u32 AES_Te[5][256];
+#define Te0 AES_Te[0]
+#define Te1 AES_Te[1]
+#define Te2 AES_Te[2]
+#define Te3 AES_Te[3]
+#else
static const u32 Te0[256] = {
0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
@@ -252,7 +259,6 @@ static const u32 Te2[256] = {
0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
};
static const u32 Te3[256] = {
-
0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
@@ -318,6 +324,7 @@ static const u32 Te3[256] = {
0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
};
+#endif
static const u32 Te4[256] = {
0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
@@ -384,6 +391,14 @@ static const u32 Te4[256] = {
0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
};
+
+#ifdef AES_ASM
+extern const u32 AES_Td[5][256];
+#define Td0 AES_Td[0]
+#define Td1 AES_Td[1]
+#define Td2 AES_Td[2]
+#define Td3 AES_Td[3]
+#else
static const u32 Td0[256] = {
0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
@@ -537,7 +552,6 @@ static const u32 Td2[256] = {
0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
-
0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
@@ -649,6 +663,7 @@ static const u32 Td3[256] = {
0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
};
+#endif
static const u32 Td4[256] = {
0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
@@ -873,6 +888,7 @@ int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
return 0;
}
+#ifndef AES_ASM
/*
* Encrypt a single block
* in and out can overlap
@@ -1255,3 +1271,4 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
PUTU32(out + 12, s3);
}
+#endif /* AES_ASM */
diff --git a/crypto/aes/aes_ctr.c b/crypto/aes/aes_ctr.c
index 2487d83fb1..f36982be1e 100644
--- a/crypto/aes/aes_ctr.c
+++ b/crypto/aes/aes_ctr.c
@@ -68,7 +68,7 @@ static void AES_ctr128_inc(unsigned char *counter) {
/* Grab bottom dword of counter and increment */
c = GETU32(counter + 12);
- c++;
+ c++; c &= 0xFFFFFFFF;
PUTU32(counter + 12, c);
/* if no overflow, we're done */
@@ -77,7 +77,7 @@ static void AES_ctr128_inc(unsigned char *counter) {
/* Grab 1st dword of counter and increment */
c = GETU32(counter + 8);
- c++;
+ c++; c &= 0xFFFFFFFF;
PUTU32(counter + 8, c);
/* if no overflow, we're done */
@@ -86,7 +86,7 @@ static void AES_ctr128_inc(unsigned char *counter) {
/* Grab 2nd dword of counter and increment */
c = GETU32(counter + 4);
- c++;
+ c++; c &= 0xFFFFFFFF;
PUTU32(counter + 4, c);
/* if no overflow, we're done */
@@ -95,7 +95,7 @@ static void AES_ctr128_inc(unsigned char *counter) {
/* Grab top dword of counter and increment */
c = GETU32(counter + 0);
- c++;
+ c++; c &= 0xFFFFFFFF;
PUTU32(counter + 0, c);
}
diff --git a/crypto/aes/aes_locl.h b/crypto/aes/aes_locl.h
index f290946058..183805a15a 100644
--- a/crypto/aes/aes_locl.h
+++ b/crypto/aes/aes_locl.h
@@ -62,7 +62,7 @@
#include <stdlib.h>
#include <string.h>
-#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE)
+#if defined(_MSC_VER) && !defined(_M_IA64) && !defined(OPENSSL_SYS_WINCE)
# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
# define GETU32(p) SWAP(*((u32 *)(p)))
# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
@@ -71,7 +71,11 @@
# define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); }
#endif
+#ifdef AES_LONG
typedef unsigned long u32;
+#else
+typedef unsigned int u32;
+#endif
typedef unsigned short u16;
typedef unsigned char u8;
diff --git a/crypto/aes/asm/aes-ia64.S b/crypto/aes/asm/aes-ia64.S
index b4252a9c26..542cf335e9 100644
--- a/crypto/aes/asm/aes-ia64.S
+++ b/crypto/aes/asm/aes-ia64.S
@@ -1,3 +1,9 @@
+// ====================================================================
+// 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.
+// ====================================================================
+//
// What's wrong with compiler generated code? Compiler never uses
// variable 'shr' which is pairable with 'extr'/'dep' instructions.
// Then it uses 'zxt' which is an I-type, but can be replaced with
@@ -5,11 +11,13 @@
// much M-ports as there're I-ports on Itanium 2]. By sacrificing few
// registers for small constants (255, 24 and 16) to be used with
// 'shr' and 'and' instructions I can achieve better ILP, Intruction
-// Level Parallelism, and performance. This code outperforms gcc
-// generated code by almost factor of 2 (two). Improvement over HP C
-// is not that impressive, 20%...
+// Level Parallelism, and performance. This code outperforms GCC 3.3
+// generated code by over factor of 2 (two), GCC 3.4 - by 70% and
+// HP C - by 40%. Measured best-case scenario, i.e. aligned
+// big-endian input, ECB timing on Itanium 2 is (18 + 13*rounds)
+// ticks per block, or 9.25 CPU cycles per byte for 128 bit key.
-.ident "aes-ia64.S, version 1.0"
+.ident "aes-ia64.S, version 1.1"
.ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
.explicit
.text
@@ -42,126 +50,44 @@ te0=r40; te1=r41; te2=r42; te3=r43;
# define ADDP add
#endif
+// This implies that AES_KEY comprises 32-bit key schedule elements
+// even on LP64 platforms.
#ifndef KSZ
-# define KSZ 8
-# define LDKEY ld8
+# define KSZ 4
+# define LDKEY ld4
#endif
-// void AES_encrypt (const void *in,void *out,const AES_KEY *key);
-// measured timing om Itanium 2 is (48 + 14*rounds) cycles
-.global AES_encrypt#
-.proc AES_encrypt#
+.proc _ia64_AES_encrypt#
+// Input: rk0-rk1
+// te0
+// te3 as AES_KEY->rounds!!!
+// s0-s3
+// maskff,twenty4,sixteen
+// Output: r16,r20,r24,r28 as s0-s3
+// Clobber: r16-r31,rk0-rk1,r32-r43
.align 32
-#if !defined(_HPUX_SOURCE)
-.skip 16
-#endif
-AES_encrypt:
- .prologue
- .fframe 0
- .save ar.pfs,r2
- .save ar.lc,r3
-{ .mii; alloc r2=ar.pfs,3,10,0,8
- mov r3=ar.lc
- mov prsave=pr };;
-
- .body
-{ .mib; and r40=3,r32
- mov pr.rot=7<<16
- brp.exit.imp .Le_rounds_cexit,.Le_cexit_insn
- };;
-#if defined(_HPUX_SOURCE) // HPUX is big-endian, cut 15 cycles...
-{ .mib; cmp.ne p6,p0=r40,r0
- ADDP r41=4,r32 // 1st arg, borrow teN
-(p6) br.dpnt.many .Le_unaligned };;
-
-{ .mmi; ld4 r19=[r32],8
- mov r44=r33 // save 2nd arg
- mov twenty4=24 }
-{ .mmi; ld4 r23=[r41],8
- addl te0=@ltoff(Te0#),gp
- ADDP r35=KSZ*60,r34 };; // &AES_KEY->rounds, borrow s1
-{ .mmi; ld8 te0=[te0]
- ld4 r35=[r35] // AES_KEY->rounds
- ADDP rk0=0,r34 }//;; // 3rd arg
-{ .mmi; ld4 r27=[r32]
- ld4 r31=[r41]
- ADDP rk1=KSZ,r34 };;
-
-{ .mfi; LDKEY t0=[rk0],2*KSZ
- mov sixteen=16 }
-{ .mfi; LDKEY t1=[rk1],2*KSZ
- mov maskff=0xff };;
-{ .mfi; LDKEY t2=[rk0],2*KSZ
- add te1=1024,te0 }
+_ia64_AES_encrypt:
+{ .mmi; alloc r16=ar.pfs,12,0,0,8
+ LDKEY t0=[rk0],2*KSZ
+ mov pr.rot=1<<16 }
+{ .mmi; LDKEY t1=[rk1],2*KSZ
+ add te1=1024,te0
+ add te3=-3,te3 };;
+{ .mib; LDKEY t2=[rk0],2*KSZ
+ mov ar.ec=3 }
{ .mib; LDKEY t3=[rk1],2*KSZ
add te2=2048,te0
- br.many .Le_common };;
-#endif
-.Le_unaligned:
-{ .mfi; ADDP r40=0,r32 // 1st arg, borrow teN
- ADDP r41=1,r32 }
-{ .mfi; ADDP r42=2,r32
- ADDP r43=3,r32 };;
-{ .mmi; ld1 r16=[r40],4
- ld1 r17=[r41],4
- mov r44=r33 }//;; // save 2nd arg
-{ .mmi; ld1 r18=[r42],4
- ld1 r19=[r43],4
- ADDP rk0=0,r34 };; // 3rd arg
-{ .mmi; ld1 r20=[r40],4
- ld1 r21=[r41],4
- ADDP rk1=KSZ,r34 }//;;
-{ .mmi; ld1 r22=[r42],4
- ld1 r23=[r43],4
- ADDP r35=KSZ*60,r34 };; // &AES_KEY->rounds, borrow s1
-{ .mmi; ld1 r24=[r40],4
- ld1 r25=[r41],4
- mov twenty4=24 }//;;
-{ .mmi; ld1 r26=[r42],4
- ld1 r27=[r43],4
- mov sixteen=16 };;
-{ .mmi; ld1 r28=[r40]
- ld1 r29=[r41]
- mov maskff=0xff }//;;
-{ .mmi; ld1 r30=[r42]
- ld1 r31=[r43]
- addl te0=@ltoff(Te0#),gp };; // that was close...
-
-{ .mii; ld8 te0=[te0]
- dep r19=r16,r19,24,8 //;;
- dep r23=r20,r23,24,8 }//;;
-{ .mii; ld4 r35=[r35] // AES_KEY->rounds
- dep r27=r24,r27,24,8 //;;
- dep r31=r28,r31,24,8 };;
-{ .mii; LDKEY t0=[rk0],2*KSZ
- dep r19=r17,r19,16,8 //;;
- dep r23=r21,r23,16,8 }//;;
-{ .mii; LDKEY t1=[rk1],2*KSZ
- dep r27=r25,r27,16,8 //;;
- dep r31=r29,r31,16,8 };;
-{ .mii; LDKEY t2=[rk0],2*KSZ
- dep r19=r18,r19,8,8 //;;
- dep r23=r22,r23,8,8 }//;;
-{ .mii; LDKEY t3=[rk1],2*KSZ
- dep r27=r26,r27,8,8 //;;
- dep r31=r30,r31,8,8 };;
-
-{ .mib; add te1=1024,te0
- add te2=2048,te0 }
-.Le_common:
-{ .mib; add te3=3072,te0
- add r35=-3,r35 };;
-
-{ .mii; mov ar.lc=r35 // borrowed s1
- mov ar.ec=3 };;
+ brp.loop.imp .Le_top,.Le_end-16 };;
-{ .mfi; xor s0=r19,t0
- xor s1=r23,t1 }
-{ .mfi; xor s2=r27,t2
- xor s3=r31,t3 };;
+{ .mmi; xor s0=s0,t0
+ xor s1=s1,t1
+ mov ar.lc=te3 }
+{ .mmi; xor s2=s2,t2
+ xor s3=s3,t3
+ add te3=3072,te0 };;
.align 32
-.Le_rounds:
+.Le_top:
{ .mmi; (p0) LDKEY t0=[rk0],2*KSZ // 0/0:rk[0]
(p0) and te33=s3,maskff // 0/0:s3&0xff
(p0) extr.u te22=s2,8,8 } // 0/0:s2>>8&0xff
@@ -210,103 +136,187 @@ AES_encrypt:
(p0) and te13=te13,maskff} // 7/2:s3>>16&0xff
{ .mmi; (p0) ld4 te03=[te03] // 7/3:te0[s3>>24]
(p0) shladd te32=te32,2,te3 // 7/3:te3+s2
- (p16) cmp.eq p0,p18=r0,r0 };; // 7/clear (p18)
+ (p0) xor t0=t0,te33 };; // 7/0:
{ .mmi; (p0) ld4 te31=[te31] // 8/2:te3[s1]
(p0) shladd te13=te13,2,te1 // 8/2:te1+s3>>16
- (p17) xor t0=t0,te33 } // 8/0:
+ (p0) xor t0=t0,te22 } // 8/0:
{ .mmi; (p0) ld4 te32=[te32] // 8/3:te3[s2]
(p0) shladd te10=te10,2,te1 // 8/3:te1+s0>>16
- (p17) xor t1=t1,te30 };; // 8/1:
+ (p0) xor t1=t1,te30 };; // 8/1:
{ .mmi; (p0) ld4 te13=[te13] // 9/2:te1[s3>>16]
- (p17) xor t0=t0,te22 // 9/0:
- (p18) add te0=4096,te0 } // 9/
-.Le_cexit_insn:
-{ .mmb; (p0) ld4 te10=[te10] // 9/3:te1[s0>>16]
- (p17) xor t1=t1,te23 // 9/1:
- br.cexit.spnt.few .Le_rounds_cexit
- };;
-{ .mmi; (p18) xor s2=s2,te20 // 10/2:
- (p18) xor s0=s0,te00 // 10/0:
- (p19) add te1=3072,te1 } // 10/
-{ .mmi; (p18) xor s3=s3,te21 // 10/3:
- (p18) xor s1=s1,te01 // 10/1:
- (p19) add te2=2048,te2 };; // 10/
-{ .mfi; (p18) xor s0=s0,te11 // 11/0:done!
- (p18) xor s2=s2,te02 } // 11/2:
-{ .mfi; (p18) xor s1=s1,te12 // 11/1:done!
- (p18) xor s3=s3,te03 };; // 11/3:
-{ .mmi; (p18) xor s2=s2,te31 // 12/2:
- (p18) xor s3=s3,te32 // 12/3:
- (p19) add te3=1024,te3 };; // 12/
-{ .mib; (p18) xor s2=s2,te13 // 13/2:done!
- (p18) xor s3=s3,te10 // 13/3:done!
- br .Le_rounds };;
+ (p0) xor t0=t0,te00 // 9/0:
+ (p0) xor t1=t1,te23 } // 9/1:
+{ .mmi; (p0) ld4 te10=[te10] // 9/3:te1[s0>>16]
+ (p0) xor t2=t2,te20 // 9/2:
+ (p0) xor t3=t3,te21 };; // 9/3:
+{ .mmi; (p0) xor t0=t0,te11 // 10/0:done!
+ (p0) xor t1=t1,te01 // 10/1:
+ (p0) xor t2=t2,te02 } // 10/2:
+{ .mmi; (p0) xor t3=t3,te03 // 10/3:
+ (p16) cmp.eq p0,p17=r0,r0 };; // 10/clear (p17)
+{ .mmi; (p0) xor t1=t1,te12 // 11/1:done!
+ (p0) xor t2=t2,te31 // 11/2:
+ (p0) xor t3=t3,te32 } // 11/3:
+{ .mmi; (p17) add te0=4096,te0 // 11/
+ (p17) add te1=4096,te1 };; // 11/
+{ .mib; (p0) xor t2=t2,te13 // 12/2:done!
+ (p0) xor t3=t3,te10 } // 12/3:done!
+{ .mib; (p17) add te2=4096,te2 // 12/
+ (p17) add te3=4096,te3 // 12/
+ br.ctop.sptk .Le_top };;
+.Le_end:
+{ .mib; mov r16=s0
+ mov r20=s1 }
+{ .mib; mov r24=s2
+ mov r28=s3
+ br.ret.sptk b6 };;
+.endp _ia64_AES_encrypt#
+// void AES_encrypt (const void *in,void *out,const AES_KEY *key);
+.global AES_encrypt#
+.proc AES_encrypt#
.align 32
-.Le_rounds_cexit:
-{ .mfi; xor te00=te00,s0 // "s0"
- xor te11=te11,s0 }
-{ .mfi; xor te22=te22,s0
- xor te33=te33,s0 }
-{ .mib; xor te01=te01,s1 // "s1"
- xor te12=te12,s1 }
-{ .mib; xor te23=te23,s1
- xor te30=te30,s1 }
-{ .mfi; xor te02=te02,s2 // "s2"
- xor te13=te13,s2 }
-{ .mfi; xor te20=te20,s2
- xor te31=te31,s2 }
-{ .mib; xor te03=te03,s3 // "s3"
- xor te10=te10,s3 }
-{ .mib; xor te21=te21,s3
- xor te32=te32,s3 };;
+.skip 16
+AES_encrypt:
+ .prologue
+ .fframe 0
+ .save ar.pfs,r2
+ .save ar.lc,r3
+{ .mmi; alloc r2=ar.pfs,3,0,12,0
+ addl out8=@ltoff(AES_Te#),gp
+ mov r3=ar.lc }
+{ .mmi; and out0=3,in0
+ ADDP in0=0,in0
+ ADDP out11=KSZ*60,in2 };; // &AES_KEY->rounds
-{ .mii; ADDP r40=0,r44 // saved 2nd argument, snatch teN
- extr.u te22=te22,8,8
- shr.u te00=te00,twenty4 }//;;
-{ .mii; ADDP r41=1,r44
- extr.u te11=te11,16,8
- shr.u te01=te01,twenty4 }//;;
-{ .mii; ADDP r42=2,r44
- extr.u te23=te23,8,8
- shr.u te12=te12,sixteen }//;;
-{ .mii; ADDP r43=3,r44
- extr.u te20=te20,8,8
- shr.u te02=te02,twenty4 };;
-{ .mii; st1 [r43]=te33,4
- extr.u te13=te13,16,8
- shr.u te03=te03,twenty4 }//;;
-{ .mii; st1 [r42]=te22,4
- extr.u te21=te21,8,8
- shr.u te10=te10,sixteen }//;;
+ .body
+{ .mmi; ld8 out8=[out8] // Te0
+ ld4 out11=[out11] // AES_KEY->rounds
+ mov prsave=pr }
-{ .mmi; st1 [r41]=te11,4
- st1 [r40]=te00,4 };;
-{ .mmi; st1 [r43]=te30,4
- st1 [r42]=te23,4 }//;;
-{ .mmi; st1 [r41]=te12,4
- st1 [r40]=te01,4 };;
-{ .mmi; st1 [r43]=te31,4
- st1 [r42]=te20,4 }//;;
-{ .mmi; st1 [r41]=te13,4
- st1 [r40]=te02,4
+#if defined(_HPUX_SOURCE) // HPUX is big-endian, cut 15+15 cycles...
+{ .mib; cmp.ne p6,p0=out0,r0
+ add out0=4,in0
+(p6) br.dpnt.many .Le_i_unaligned };;
+
+{ .mmi; ld4 out1=[in0],8 // s0
+ and out9=3,in1
+ mov twenty4=24 }
+{ .mmi; ld4 out3=[out0],8 // s1
+ ADDP rk0=0,in2
+ mov sixteen=16 };;
+{ .mmi; ld4 out5=[in0] // s2
+ cmp.ne p6,p0=out9,r0
+ mov maskff=0xff }
+{ .mmb; ld4 out7=[out0] // s3
+ ADDP rk1=KSZ,in2
+ br.call.sptk.many b6=_ia64_AES_encrypt };;
+
+{ .mib; ADDP in0=4,in1
+ ADDP in1=0,in1
+(p6) br.spnt .Le_o_unaligned };;
+
+{ .mii; mov ar.pfs=r2
+ mov ar.lc=r3 }
+{ .mmi; st4 [in1]=r16,8 // s0
+ st4 [in0]=r20,8 // s1
mov pr=prsave,0x1ffff };;
-{ .mmi; st1 [r43]=te32
- st1 [r42]=te21
+{ .mmb; st4 [in1]=r24 // s2
+ st4 [in0]=r28 // s3
+ br.ret.sptk.many b0 };;
+#endif
+
+.align 32
+.Le_i_unaligned:
+{ .mmi; add out0=1,in0
+ add out2=2,in0
+ add out4=3,in0 };;
+{ .mmi; ld1 r16=[in0],4
+ ld1 r17=[out0],4 }//;;
+{ .mmi; ld1 r18=[out2],4
+ ld1 out1=[out4],4 };; // s0
+{ .mmi; ld1 r20=[in0],4
+ ld1 r21=[out0],4 }//;;
+{ .mmi; ld1 r22=[out2],4
+ ld1 out3=[out4],4 };; // s1
+{ .mmi; ld1 r24=[in0],4
+ ld1 r25=[out0],4 }//;;
+{ .mmi; ld1 r26=[out2],4
+ ld1 out5=[out4],4 };; // s2
+{ .mmi; ld1 r28=[in0]
+ ld1 r29=[out0] }//;;
+{ .mmi; ld1 r30=[out2]
+ ld1 out7=[out4] };; // s3
+
+{ .mii;
+ dep out1=r16,out1,24,8 //;;
+ dep out3=r20,out3,24,8 }//;;
+{ .mii; ADDP rk0=0,in2
+ dep out5=r24,out5,24,8 //;;
+ dep out7=r28,out7,24,8 };;
+{ .mii; ADDP rk1=KSZ,in2
+ dep out1=r17,out1,16,8 //;;
+ dep out3=r21,out3,16,8 }//;;
+{ .mii; mov twenty4=24
+ dep out5=r25,out5,16,8 //;;
+ dep out7=r29,out7,16,8 };;
+{ .mii; mov sixteen=16
+ dep out1=r18,out1,8,8 //;;
+ dep out3=r22,out3,8,8 }//;;
+{ .mii; mov maskff=0xff
+ dep out5=r26,out5,8,8 //;;
+ dep out7=r30,out7,8,8 };;
+
+{ .mib; br.call.sptk.many b6=_ia64_AES_encrypt };;
+
+.Le_o_unaligned:
+{ .mii; ADDP out0=0,in1
+ extr.u r17=r16,8,8 // s0
+ shr.u r19=r16,twenty4 }//;;
+{ .mii; ADDP out1=1,in1
+ extr.u r18=r16,16,8
+ shr.u r23=r20,twenty4 }//;; // s1
+{ .mii; ADDP out2=2,in1
+ extr.u r21=r20,8,8
+ shr.u r22=r20,sixteen }//;;
+{ .mii; ADDP out3=3,in1
+ extr.u r25=r24,8,8 // s2
+ shr.u r27=r24,twenty4 };;
+{ .mii; st1 [out3]=r16,4
+ extr.u r26=r24,16,8
+ shr.u r31=r28,twenty4 }//;; // s3
+{ .mii; st1 [out2]=r17,4
+ extr.u r29=r28,8,8
+ shr.u r30=r28,sixteen }//;;
+
+{ .mmi; st1 [out1]=r18,4
+ st1 [out0]=r19,4 };;
+{ .mmi; st1 [out3]=r20,4
+ st1 [out2]=r21,4 }//;;
+{ .mmi; st1 [out1]=r22,4
+ st1 [out0]=r23,4 };;
+{ .mmi; st1 [out3]=r24,4
+ st1 [out2]=r25,4
+ mov pr=prsave,0x1ffff }//;;
+{ .mmi; st1 [out1]=r26,4
+ st1 [out0]=r27,4
+ mov ar.pfs=r2 };;
+{ .mmi; st1 [out3]=r28
+ st1 [out2]=r29
mov ar.lc=r3 }//;;
-{ .mmb; st1 [r41]=te10
- st1 [r40]=te03
+{ .mmb; st1 [out1]=r30
+ st1 [out0]=r31
br.ret.sptk.many b0 };;
.endp AES_encrypt#
-// AES_decrypt is autogenerated by the following script:
+// *AES_decrypt are autogenerated by the following script:
#if 0
#!/usr/bin/env perl
-print "// AES_decrypt is autogenerated by the following script:\n#if 0\n";
+print "// *AES_decrypt are autogenerated by the following script:\n#if 0\n";
open(PROG,'<'.$0); while(<PROG>) { print; } close(PROG);
print "#endif\n";
while(<>) {
- $process=1 if (/\.global\s+AES_encrypt/);
+ $process=1 if (/\.proc\s+_ia64_AES_encrypt/);
next if (!$process);
#s/te00=s0/td00=s0/; s/te00/td00/g;
@@ -333,126 +343,44 @@ while(<>) {
s/AES_encrypt/AES_decrypt/g;
s/\.Le_/.Ld_/g;
- s/Te0#/Td0#/g;
+ s/AES_Te#/AES_Td#/g;
print;
exit if (/\.endp\s+AES_decrypt/);
}
#endif
-.global AES_decrypt#
-.proc AES_decrypt#
+.proc _ia64_AES_decrypt#
+// Input: rk0-rk1
+// te0
+// te3 as AES_KEY->rounds!!!
+// s0-s3
+// maskff,twenty4,sixteen
+// Output: r16,r20,r24,r28 as s0-s3
+// Clobber: r16-r31,rk0-rk1,r32-r43
.align 32
-#if !defined(_HPUX_SOURCE)
-.skip 16
-#endif
-AES_decrypt:
- .prologue
- .fframe 0
- .save ar.pfs,r2
- .save ar.lc,r3
-{ .mii; alloc r2=ar.pfs,3,10,0,8
- mov r3=ar.lc
- mov prsave=pr };;
-
- .body
-{ .mib; and r40=3,r32
- mov pr.rot=7<<16
- brp.exit.imp .Ld_rounds_cexit,.Ld_cexit_insn
- };;
-#if defined(_HPUX_SOURCE) // HPUX is big-endian, cut 15 cycles...
-{ .mib; cmp.ne p6,p0=r40,r0
- ADDP r41=4,r32 // 1st arg, borrow teN
-(p6) br.dpnt.many .Ld_unaligned };;
-
-{ .mmi; ld4 r19=[r32],8
- mov r44=r33 // save 2nd arg
- mov twenty4=24 }
-{ .mmi; ld4 r23=[r41],8
- addl te0=@ltoff(Td0#),gp
- ADDP r35=KSZ*60,r34 };; // &AES_KEY->rounds, borrow s1
-{ .mmi; ld8 te0=[te0]
- ld4 r35=[r35] // AES_KEY->rounds
- ADDP rk0=0,r34 }//;; // 3rd arg
-{ .mmi; ld4 r27=[r32]
- ld4 r31=[r41]
- ADDP rk1=KSZ,r34 };;
-
-{ .mfi; LDKEY t0=[rk0],2*KSZ
- mov sixteen=16 }
-{ .mfi; LDKEY t1=[rk1],2*KSZ
- mov maskff=0xff };;
-{ .mfi; LDKEY t2=[rk0],2*KSZ
- add te1=1024,te0 }
+_ia64_AES_decrypt:
+{ .mmi; alloc r16=ar.pfs,12,0,0,8
+ LDKEY t0=[rk0],2*KSZ
+ mov pr.rot=1<<16 }
+{ .mmi; LDKEY t1=[rk1],2*KSZ
+ add te1=1024,te0
+ add te3=-3,te3 };;
+{ .mib; LDKEY t2=[rk0],2*KSZ
+ mov ar.ec=3 }
{ .mib; LDKEY t3=[rk1],2*KSZ
add te2=2048,te0
- br.many .Ld_common };;
-#endif
-.Ld_unaligned:
-{ .mfi; ADDP r40=0,r32 // 1st arg, borrow teN
- ADDP r41=1,r32 }
-{ .mfi; ADDP r42=2,r32
- ADDP r43=3,r32 };;
-{ .mmi; ld1 r16=[r40],4
- ld1 r17=[r41],4
- mov r44=r33 }//;; // save 2nd arg
-{ .mmi; ld1 r18=[r42],4
- ld1 r19=[r43],4
- ADDP rk0=0,r34 };; // 3rd arg
-{ .mmi; ld1 r20=[r40],4
- ld1 r21=[r41],4
- ADDP rk1=KSZ,r34 }//;;
-{ .mmi; ld1 r22=[r42],4
- ld1 r23=[r43],4
- ADDP r35=KSZ*60,r34 };; // &AES_KEY->rounds, borrow s1
-{ .mmi; ld1 r24=[r40],4
- ld1 r25=[r41],4
- mov twenty4=24 }//;;
-{ .mmi; ld1 r26=[r42],4
- ld1 r27=[r43],4
- mov sixteen=16 };;
-{ .mmi; ld1 r28=[r40]
- ld1 r29=[r41]
- mov maskff=0xff }//;;
-{ .mmi; ld1 r30=[r42]
- ld1 r31=[r43]
- addl te0=@ltoff(Td0#),gp };; // that was close...
-
-{ .mii; ld8 te0=[te0]
- dep r19=r16,r19,24,8 //;;
- dep r23=r20,r23,24,8 }//;;
-{ .mii; ld4 r35=[r35] // AES_KEY->rounds
- dep r27=r24,r27,24,8 //;;
- dep r31=r28,r31,24,8 };;
-{ .mii; LDKEY t0=[rk0],2*KSZ
- dep r19=r17,r19,16,8 //;;
- dep r23=r21,r23,16,8 }//;;
-{ .mii; LDKEY t1=[rk1],2*KSZ
- dep r27=r25,r27,16,8 //;;
- dep r31=r29,r31,16,8 };;
-{ .mii; LDKEY t2=[rk0],2*KSZ
- dep r19=r18,r19,8,8 //;;
- dep r23=r22,r23,8,8 }//;;
-{ .mii; LDKEY t3=[rk1],2*KSZ
- dep r27=r26,r27,8,8 //;;
- dep r31=r30,r31,8,8 };;
-
-{ .mib; add te1=1024,te0
- add te2=2048,te0 }
-.Ld_common:
-{ .mib; add te3=3072,te0
- add r35=-3,r35 };;
+ brp.loop.imp .Ld_top,.Ld_end-16 };;
-{ .mii; mov ar.lc=r35 // borrowed s1
- mov ar.ec=3 };;
-
-{ .mfi; xor s0=r19,t0
- xor s1=r23,t1 }
-{ .mfi; xor s2=r27,t2
- xor s3=r31,t3 };;
+{ .mmi; xor s0=s0,t0
+ xor s1=s1,t1
+ mov ar.lc=te3 }
+{ .mmi; xor s2=s2,t2
+ xor s3=s3,t3
+ add te3=3072,te0 };;
.align 32
-.Ld_rounds:
+.Ld_top:
{ .mmi; (p0) LDKEY t0=[rk0],2*KSZ // 0/0:rk[0]
(p0) and te31=s1,maskff // 0/0:s3&0xff
(p0) extr.u te22=s2,8,8 } // 0/0:s2>>8&0xff
@@ -501,99 +429,184 @@ AES_decrypt:
(p0) and te11=te11,maskff} // 7/2:s3>>16&0xff
{ .mmi; (p0) ld4 te03=[te03] // 7/3:te0[s3>>24]
(p0) shladd te30=te30,2,te3 // 7/3:te3+s2
- (p16) cmp.eq p0,p18=r0,r0 };; // 7/clear (p18)
+ (p0) xor t0=t0,te31 };; // 7/0:
{ .mmi; (p0) ld4 te33=[te33] // 8/2:te3[s1]
(p0) shladd te11=te11,2,te1 // 8/2:te1+s3>>16
- (p17) xor t0=t0,te31 } // 8/0:
+ (p0) xor t0=t0,te22 } // 8/0:
{ .mmi; (p0) ld4 te30=[te30] // 8/3:te3[s2]
(p0) shladd te12=te12,2,te1 // 8/3:te1+s0>>16
- (p17) xor t1=t1,te32 };; // 8/1:
+ (p0) xor t1=t1,te32 };; // 8/1:
{ .mmi; (p0) ld4 te11=[te11] // 9/2:te1[s3>>16]
- (p17) xor t0=t0,te22 // 9/0:
- (p18) add te0=4096,te0 } // 9/
-.Ld_cexit_insn:
-{ .mmb; (p0) ld4 te12=[te12] // 9/3:te1[s0>>16]
- (p17) xor t1=t1,te23 // 9/1:
- br.cexit.spnt.few .Ld_rounds_cexit
- };;
-{ .mmi; (p18) xor s2=s2,te20 // 10/2:
- (p18) xor s0=s0,te00 // 10/0:
- (p19) add te1=3072,te1 } // 10/
-{ .mmi; (p18) xor s3=s3,te21 // 10/3:
- (p18) xor s1=s1,te01 // 10/1:
- (p19) add te2=2048,te2 };; // 10/
-{ .mfi; (p18) xor s0=s0,te13 // 11/0:done!
- (p18) xor s2=s2,te02 } // 11/2:
-{ .mfi; (p18) xor s1=s1,te10 // 11/1:done!
- (p18) xor s3=s3,te03 };; // 11/3:
-{ .mmi; (p18) xor s2=s2,te33 // 12/2:
- (p18) xor s3=s3,te30 // 12/3:
- (p19) add te3=1024,te3 };; // 12/
-{ .mib; (p18) xor s2=s2,te11 // 13/2:done!
- (p18) xor s3=s3,te12 // 13/3:done!
- br .Ld_rounds };;
+ (p0) xor t0=t0,te00 // 9/0:
+ (p0) xor t1=t1,te23 } // 9/1:
+{ .mmi; (p0) ld4 te12=[te12] // 9/3:te1[s0>>16]
+ (p0) xor t2=t2,te20 // 9/2:
+ (p0) xor t3=t3,te21 };; // 9/3:
+{ .mmi; (p0) xor t0=t0,te13 // 10/0:done!
+ (p0) xor t1=t1,te01 // 10/1:
+ (p0) xor t2=t2,te02 } // 10/2:
+{ .mmi; (p0) xor t3=t3,te03 // 10/3:
+ (p16) cmp.eq p0,p17=r0,r0 };; // 10/clear (p17)
+{ .mmi; (p0) xor t1=t1,te10 // 11/1:done!
+ (p0) xor t2=t2,te33 // 11/2:
+ (p0) xor t3=t3,te30 } // 11/3:
+{ .mmi; (p17) add te0=4096,te0 // 11/
+ (p17) add te1=4096,te1 };; // 11/
+{ .mib; (p0) xor t2=t2,te11 // 12/2:done!
+ (p0) xor t3=t3,te12 } // 12/3:done!
+{ .mib; (p17) add te2=4096,te2 // 12/
+ (p17) add te3=4096,te3 // 12/
+ br.ctop.sptk .Ld_top };;
+.Ld_end:
+{ .mib; mov r16=s0
+ mov r20=s1 }
+{ .mib; mov r24=s2
+ mov r28=s3
+ br.ret.sptk b6 };;
+.endp _ia64_AES_decrypt#
+// void AES_decrypt (const void *in,void *out,const AES_KEY *key);
+.global AES_decrypt#
+.proc AES_decrypt#
.align 32
-.Ld_rounds_cexit:
-{ .mfi; xor te00=te00,s0 // "s0"
- xor te13=te13,s0 }
-{ .mfi; xor te22=te22,s0
- xor te31=te31,s0 }
-{ .mib; xor te01=te01,s1 // "s1"
- xor te10=te10,s1 }
-{ .mib; xor te23=te23,s1
- xor te32=te32,s1 }
-{ .mfi; xor te02=te02,s2 // "s2"
- xor te11=te11,s2 }
-{ .mfi; xor te20=te20,s2
- xor te33=te33,s2 }
-{ .mib; xor te03=te03,s3 // "s3"
- xor te12=te12,s3 }
-{ .mib; xor te21=te21,s3
- xor te30=te30,s3 };;
+.skip 16
+AES_decrypt:
+ .prologue
+ .fframe 0
+ .save ar.pfs,r2
+ .save ar.lc,r3
+{ .mmi; alloc r2=ar.pfs,3,0,12,0
+ addl out8=@ltoff(AES_Td#),gp
+ mov r3=ar.lc }
+{ .mmi; and out0=3,in0
+ ADDP in0=0,in0
+ ADDP out11=KSZ*60,in2 };; // &AES_KEY->rounds
+
+ .body
+{ .mmi; ld8 out8=[out8] // Te0
+ ld4 out11=[out11] // AES_KEY->rounds
+ mov prsave=pr }
+
+#if defined(_HPUX_SOURCE) // HPUX is big-endian, cut 15+15 cycles...
+{ .mib; cmp.ne p6,p0=out0,r0
+ add out0=4,in0
+(p6) br.dpnt.many .Ld_i_unaligned };;
-{ .mii; ADDP r40=0,r44 // saved 2nd argument, snatch teN
- extr.u te22=te22,8,8
- shr.u te00=te00,twenty4 }//;;
-{ .mii; ADDP r41=1,r44
- extr.u te13=te13,16,8
- shr.u te01=te01,twenty4 }//;;
-{ .mii; ADDP r42=2,r44
- extr.u te23=te23,8,8
- shr.u te10=te10,sixteen }//;;
-{ .mii; ADDP r43=3,r44
- extr.u te20=te20,8,8
- shr.u te02=te02,twenty4 };;
-{ .mii; st1 [r43]=te31,4
- extr.u te11=te11,16,8
- shr.u te03=te03,twenty4 }//;;
-{ .mii; st1 [r42]=te22,4
- extr.u te21=te21,8,8
- shr.u te12=te12,sixteen }//;;
+{ .mmi; ld4 out1=[in0],8 // s0
+ and out9=3,in1
+ mov twenty4=24 }
+{ .mmi; ld4 out3=[out0],8 // s1
+ ADDP rk0=0,in2
+ mov sixteen=16 };;
+{ .mmi; ld4 out5=[in0] // s2
+ cmp.ne p6,p0=out9,r0
+ mov maskff=0xff }
+{ .mmb; ld4 out7=[out0] // s3
+ ADDP rk1=KSZ,in2
+ br.call.sptk.many b6=_ia64_AES_decrypt };;
-{ .mmi; st1 [r41]=te13,4
- st1 [r40]=te00,4 };;
-{ .mmi; st1 [r43]=te32,4
- st1 [r42]=te23,4 }//;;
-{ .mmi; st1 [r41]=te10,4
- st1 [r40]=te01,4 };;
-{ .mmi; st1 [r43]=te33,4
- st1 [r42]=te20,4 }//;;
-{ .mmi; st1 [r41]=te11,4
- st1 [r40]=te02,4
+{ .mib; ADDP in0=4,in1
+ ADDP in1=0,in1
+(p6) br.spnt .Ld_o_unaligned };;
+
+{ .mii; mov ar.pfs=r2
+ mov ar.lc=r3 }
+{ .mmi; st4 [in1]=r16,8 // s0
+ st4 [in0]=r20,8 // s1
mov pr=prsave,0x1ffff };;
-{ .mmi; st1 [r43]=te30
- st1 [r42]=te21
+{ .mmb; st4 [in1]=r24 // s2
+ st4 [in0]=r28 // s3
+ br.ret.sptk.many b0 };;
+#endif
+
+.align 32
+.Ld_i_unaligned:
+{ .mmi; add out0=1,in0
+ add out2=2,in0
+ add out4=3,in0 };;
+{ .mmi; ld1 r16=[in0],4
+ ld1 r17=[out0],4 }//;;
+{ .mmi; ld1 r18=[out2],4
+ ld1 out1=[out4],4 };; // s0
+{ .mmi; ld1 r20=[in0],4
+ ld1 r21=[out0],4 }//;;
+{ .mmi; ld1 r22=[out2],4
+ ld1 out3=[out4],4 };; // s1
+{ .mmi; ld1 r24=[in0],4
+ ld1 r25=[out0],4 }//;;
+{ .mmi; ld1 r26=[out2],4
+ ld1 out5=[out4],4 };; // s2
+{ .mmi; ld1 r28=[in0]
+ ld1 r29=[out0] }//;;
+{ .mmi; ld1 r30=[out2]
+ ld1 out7=[out4] };; // s3
+
+{ .mii;
+ dep out1=r16,out1,24,8 //;;
+ dep out3=r20,out3,24,8 }//;;
+{ .mii; ADDP rk0=0,in2
+ dep out5=r24,out5,24,8 //;;
+ dep out7=r28,out7,24,8 };;
+{ .mii; ADDP rk1=KSZ,in2
+ dep out1=r17,out1,16,8 //;;
+ dep out3=r21,out3,16,8 }//;;
+{ .mii; mov twenty4=24
+ dep out5=r25,out5,16,8 //;;
+ dep out7=r29,out7,16,8 };;
+{ .mii; mov sixteen=16
+ dep out1=r18,out1,8,8 //;;
+ dep out3=r22,out3,8,8 }//;;
+{ .mii; mov maskff=0xff
+ dep out5=r26,out5,8,8 //;;
+ dep out7=r30,out7,8,8 };;
+
+{ .mib; br.call.sptk.many b6=_ia64_AES_decrypt };;
+
+.Ld_o_unaligned:
+{ .mii; ADDP out0=0,in1
+ extr.u r17=r16,8,8 // s0
+ shr.u r19=r16,twenty4 }//;;
+{ .mii; ADDP out1=1,in1
+ extr.u r18=r16,16,8
+ shr.u r23=r20,twenty4 }//;; // s1
+{ .mii; ADDP out2=2,in1
+ extr.u r21=r20,8,8
+ shr.u r22=r20,sixteen }//;;
+{ .mii; ADDP out3=3,in1
+ extr.u r25=r24,8,8 // s2
+ shr.u r27=r24,twenty4 };;
+{ .mii; st1 [out3]=r16,4
+ extr.u r26=r24,16,8
+ shr.u r31=r28,twenty4 }//;; // s3
+{ .mii; st1 [out2]=r17,4
+ extr.u r29=r28,8,8
+ shr.u r30=r28,sixteen }//;;
+
+{ .mmi; st1 [out1]=r18,4
+ st1 [out0]=r19,4 };;
+{ .mmi; st1 [out3]=r20,4
+ st1 [out2]=r21,4 }//;;
+{ .mmi; st1 [out1]=r22,4
+ st1 [out0]=r23,4 };;
+{ .mmi; st1 [out3]=r24,4
+ st1 [out2]=r25,4
+ mov pr=prsave,0x1ffff }//;;
+{ .mmi; st1 [out1]=r26,4
+ st1 [out0]=r27,4
+ mov ar.pfs=r2 };;
+{ .mmi; st1 [out3]=r28
+ st1 [out2]=r29
mov ar.lc=r3 }//;;
-{ .mmb; st1 [r41]=te12
- st1 [r40]=te03
+{ .mmb; st1 [out1]=r30
+ st1 [out0]=r31
br.ret.sptk.many b0 };;
.endp AES_decrypt#
// leave it in .text segment...
.align 64
-.type Te0#,@object
-Te0: data4 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
+.global AES_Te#
+.type AES_Te#,@object
+AES_Te: data4 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
data4 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554
data4 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d
data4 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a
@@ -853,75 +866,271 @@ Te0: data4 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
data4 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e
data4 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c
// Te4:
- data4 0x63636363, 0x7c7c7c7c, 0x77777777, 0x7b7b7b7b
- data4 0xf2f2f2f2, 0x6b6b6b6b, 0x6f6f6f6f, 0xc5c5c5c5
- data4 0x30303030, 0x01010101, 0x67676767, 0x2b2b2b2b
- data4 0xfefefefe, 0xd7d7d7d7, 0xabababab, 0x76767676
- data4 0xcacacaca, 0x82828282, 0xc9c9c9c9, 0x7d7d7d7d
- data4 0xfafafafa, 0x59595959, 0x47474747, 0xf0f0f0f0
- data4 0xadadadad, 0xd4d4d4d4, 0xa2a2a2a2, 0xafafafaf
- data4 0x9c9c9c9c, 0xa4a4a4a4, 0x72727272, 0xc0c0c0c0
- data4 0xb7b7b7b7, 0xfdfdfdfd, 0x93939393, 0x26262626
- data4 0x36363636, 0x3f3f3f3f, 0xf7f7f7f7, 0xcccccccc
- data4 0x34343434, 0xa5a5a5a5, 0xe5e5e5e5, 0xf1f1f1f1
- data4 0x71717171, 0xd8d8d8d8, 0x31313131, 0x15151515
- data4 0x04040404, 0xc7c7c7c7, 0x23232323, 0xc3c3c3c3
- data4 0x18181818, 0x96969696, 0x05050505, 0x9a9a9a9a
- data4 0x07070707, 0x12121212, 0x80808080, 0xe2e2e2e2
- data4 0xebebebeb, 0x27272727, 0xb2b2b2b2, 0x75757575
- data4 0x09090909, 0x83838383, 0x2c2c2c2c, 0x1a1a1a1a
- data4 0x1b1b1b1b, 0x6e6e6e6e, 0x5a5a5a5a, 0xa0a0a0a0
- data4 0x52525252, 0x3b3b3b3b, 0xd6d6d6d6, 0xb3b3b3b3
- data4 0x29292929, 0xe3e3e3e3, 0x2f2f2f2f, 0x84848484
- data4 0x53535353, 0xd1d1d1d1, 0x00000000, 0xedededed
- data4 0x20202020, 0xfcfcfcfc, 0xb1b1b1b1, 0x5b5b5b5b
- data4 0x6a6a6a6a, 0xcbcbcbcb, 0xbebebebe, 0x39393939
- data4 0x4a4a4a4a, 0x4c4c4c4c, 0x58585858, 0xcfcfcfcf
- data4 0xd0d0d0d0, 0xefefefef, 0xaaaaaaaa, 0xfbfbfbfb
- data4 0x43434343, 0x4d4d4d4d, 0x33333333, 0x85858585
- data4 0x45454545, 0xf9f9f9f9, 0x02020202, 0x7f7f7f7f
- data4 0x50505050, 0x3c3c3c3c, 0x9f9f9f9f, 0xa8a8a8a8
- data4 0x51515151, 0xa3a3a3a3, 0x40404040, 0x8f8f8f8f
- data4 0x92929292, 0x9d9d9d9d, 0x38383838, 0xf5f5f5f5
- data4 0xbcbcbcbc, 0xb6b6b6b6, 0xdadadada, 0x21212121
- data4 0x10101010, 0xffffffff, 0xf3f3f3f3, 0xd2d2d2d2
- data4 0xcdcdcdcd, 0x0c0c0c0c, 0x13131313, 0xecececec
- data4 0x5f5f5f5f, 0x97979797, 0x44444444, 0x17171717
- data4 0xc4c4c4c4, 0xa7a7a7a7, 0x7e7e7e7e, 0x3d3d3d3d
- data4 0x64646464, 0x5d5d5d5d, 0x19191919, 0x73737373
- data4 0x60606060, 0x81818181, 0x4f4f4f4f, 0xdcdcdcdc
- data4 0x22222222, 0x2a2a2a2a, 0x90909090, 0x88888888
- data4 0x46464646, 0xeeeeeeee, 0xb8b8b8b8, 0x14141414
- data4 0xdededede, 0x5e5e5e5e, 0x0b0b0b0b, 0xdbdbdbdb
- data4 0xe0e0e0e0, 0x32323232, 0x3a3a3a3a, 0x0a0a0a0a
- data4 0x49494949, 0x06060606, 0x24242424, 0x5c5c5c5c
- data4 0xc2c2c2c2, 0xd3d3d3d3, 0xacacacac, 0x62626262
- data4 0x91919191, 0x95959595, 0xe4e4e4e4, 0x79797979
- data4 0xe7e7e7e7, 0xc8c8c8c8, 0x37373737, 0x6d6d6d6d
- data4 0x8d8d8d8d, 0xd5d5d5d5, 0x4e4e4e4e, 0xa9a9a9a9
- data4 0x6c6c6c6c, 0x56565656, 0xf4f4f4f4, 0xeaeaeaea
- data4 0x65656565, 0x7a7a7a7a, 0xaeaeaeae, 0x08080808
- data4 0xbabababa, 0x78787878, 0x25252525, 0x2e2e2e2e
- data4 0x1c1c1c1c, 0xa6a6a6a6, 0xb4b4b4b4, 0xc6c6c6c6
- data4 0xe8e8e8e8, 0xdddddddd, 0x74747474, 0x1f1f1f1f
- data4 0x4b4b4b4b, 0xbdbdbdbd, 0x8b8b8b8b, 0x8a8a8a8a
- data4 0x70707070, 0x3e3e3e3e, 0xb5b5b5b5, 0x66666666
- data4 0x48484848, 0x03030303, 0xf6f6f6f6, 0x0e0e0e0e
- data4 0x61616161, 0x35353535, 0x57575757, 0xb9b9b9b9
- data4 0x86868686, 0xc1c1c1c1, 0x1d1d1d1d, 0x9e9e9e9e
- data4 0xe1e1e1e1, 0xf8f8f8f8, 0x98989898, 0x11111111
- data4 0x69696969, 0xd9d9d9d9, 0x8e8e8e8e, 0x94949494
- data4 0x9b9b9b9b, 0x1e1e1e1e, 0x87878787, 0xe9e9e9e9
- data4 0xcececece, 0x55555555, 0x28282828, 0xdfdfdfdf
- data4 0x8c8c8c8c, 0xa1a1a1a1, 0x89898989, 0x0d0d0d0d
- data4 0xbfbfbfbf, 0xe6e6e6e6, 0x42424242, 0x68686868
- data4 0x41414141, 0x99999999, 0x2d2d2d2d, 0x0f0f0f0f
- data4 0xb0b0b0b0, 0x54545454, 0xbbbbbbbb, 0x16161616
-.size Te0#,5*256*4 // HP-UX assembler fails to ".-Te0#"
+ data4 0x63000000, 0x7c000000, 0x77000000, 0x7b000000
+ data4 0xf2000000, 0x6b000000, 0x6f000000, 0xc5000000
+ data4 0x30000000, 0x01000000, 0x67000000, 0x2b000000
+ data4 0xfe000000, 0xd7000000, 0xab000000, 0x76000000
+ data4 0xca000000, 0x82000000, 0xc9000000, 0x7d000000
+ data4 0xfa000000, 0x59000000, 0x47000000, 0xf0000000
+ data4 0xad000000, 0xd4000000, 0xa2000000, 0xaf000000
+ data4 0x9c000000, 0xa4000000, 0x72000000, 0xc0000000
+ data4 0xb7000000, 0xfd000000, 0x93000000, 0x26000000
+ data4 0x36000000, 0x3f000000, 0xf7000000, 0xcc000000
+ data4 0x34000000, 0xa5000000, 0xe5000000, 0xf1000000
+ data4 0x71000000, 0xd8000000, 0x31000000, 0x15000000
+ data4 0x04000000, 0xc7000000, 0x23000000, 0xc3000000
+ data4 0x18000000, 0x96000000, 0x05000000, 0x9a000000
+ data4 0x07000000, 0x12000000, 0x80000000, 0xe2000000
+ data4 0xeb000000, 0x27000000, 0xb2000000, 0x75000000
+ data4 0x09000000, 0x83000000, 0x2c000000, 0x1a000000
+ data4 0x1b000000, 0x6e000000, 0x5a000000, 0xa0000000
+ data4 0x52000000, 0x3b000000, 0xd6000000, 0xb3000000
+ data4 0x29000000, 0xe3000000, 0x2f000000, 0x84000000
+ data4 0x53000000, 0xd1000000, 0x00000000, 0xed000000
+ data4 0x20000000, 0xfc000000, 0xb1000000, 0x5b000000
+ data4 0x6a000000, 0xcb000000, 0xbe000000, 0x39000000
+ data4 0x4a000000, 0x4c000000, 0x58000000, 0xcf000000
+ data4 0xd0000000, 0xef000000, 0xaa000000, 0xfb000000
+ data4 0x43000000, 0x4d000000, 0x33000000, 0x85000000
+ data4 0x45000000, 0xf9000000, 0x02000000, 0x7f000000
+ data4 0x50000000, 0x3c000000, 0x9f000000, 0xa8000000
+ data4 0x51000000, 0xa3000000, 0x40000000, 0x8f000000
+ data4 0x92000000, 0x9d000000, 0x38000000, 0xf5000000
+ data4 0xbc000000, 0xb6000000, 0xda000000, 0x21000000
+ data4 0x10000000, 0xff000000, 0xf3000000, 0xd2000000
+ data4 0xcd000000, 0x0c000000, 0x13000000, 0xec000000
+ data4 0x5f000000, 0x97000000, 0x44000000, 0x17000000
+ data4 0xc4000000, 0xa7000000, 0x7e000000, 0x3d000000
+ data4 0x64000000, 0x5d000000, 0x19000000, 0x73000000
+ data4 0x60000000, 0x81000000, 0x4f000000, 0xdc000000
+ data4 0x22000000, 0x2a000000, 0x90000000, 0x88000000
+ data4 0x46000000, 0xee000000, 0xb8000000, 0x14000000
+ data4 0xde000000, 0x5e000000, 0x0b000000, 0xdb000000
+ data4 0xe0000000, 0x32000000, 0x3a000000, 0x0a000000
+ data4 0x49000000, 0x06000000, 0x24000000, 0x5c000000
+ data4 0xc2000000, 0xd3000000, 0xac000000, 0x62000000
+ data4 0x91000000, 0x95000000, 0xe4000000, 0x79000000
+ data4 0xe7000000, 0xc8000000, 0x37000000, 0x6d000000
+ data4 0x8d000000, 0xd5000000, 0x4e000000, 0xa9000000
+ data4 0x6c000000, 0x56000000, 0xf4000000, 0xea000000
+ data4 0x65000000, 0x7a000000, 0xae000000, 0x08000000
+ data4 0xba000000, 0x78000000, 0x25000000, 0x2e000000
+ data4 0x1c000000, 0xa6000000, 0xb4000000, 0xc6000000
+ data4 0xe8000000, 0xdd000000, 0x74000000, 0x1f000000
+ data4 0x4b000000, 0xbd000000, 0x8b000000, 0x8a000000
+ data4 0x70000000, 0x3e000000, 0xb5000000, 0x66000000
+ data4 0x48000000, 0x03000000, 0xf6000000, 0x0e000000
+ data4 0x61000000, 0x35000000, 0x57000000, 0xb9000000
+ data4 0x86000000, 0xc1000000, 0x1d000000, 0x9e000000
+ data4 0xe1000000, 0xf8000000, 0x98000000, 0x11000000
+ data4 0x69000000, 0xd9000000, 0x8e000000, 0x94000000
+ data4 0x9b000000, 0x1e000000, 0x87000000, 0xe9000000
+ data4 0xce000000, 0x55000000, 0x28000000, 0xdf000000
+ data4 0x8c000000, 0xa1000000, 0x89000000, 0x0d000000
+ data4 0xbf000000, 0xe6000000, 0x42000000, 0x68000000
+ data4 0x41000000, 0x99000000, 0x2d000000, 0x0f000000
+ data4 0xb0000000, 0x54000000, 0xbb000000, 0x16000000
+// Te5:
+ data4 0x00630000, 0x007c0000, 0x00770000, 0x007b0000
+ data4 0x00f20000, 0x006b0000, 0x006f0000, 0x00c50000
+ data4 0x00300000, 0x00010000, 0x00670000, 0x002b0000
+ data4 0x00fe0000, 0x00d70000, 0x00ab0000, 0x00760000
+ data4 0x00ca0000, 0x00820000, 0x00c90000, 0x007d0000
+ data4 0x00fa0000, 0x00590000, 0x00470000, 0x00f00000
+ data4 0x00ad0000, 0x00d40000, 0x00a20000, 0x00af0000
+ data4 0x009c0000, 0x00a40000, 0x00720000, 0x00c00000
+ data4 0x00b70000, 0x00fd0000, 0x00930000, 0x00260000
+ data4 0x00360000, 0x003f0000, 0x00f70000, 0x00cc0000
+ data4 0x00340000, 0x00a50000, 0x00e50000, 0x00f10000
+ data4 0x00710000, 0x00d80000, 0x00310000, 0x00150000
+ data4 0x00040000, 0x00c70000, 0x00230000, 0x00c30000
+ data4 0x00180000, 0x00960000, 0x00050000, 0x009a0000
+ data4 0x00070000, 0x00120000, 0x00800000, 0x00e20000
+ data4 0x00eb0000, 0x00270000, 0x00b20000, 0x00750000
+ data4 0x00090000, 0x00830000, 0x002c0000, 0x001a0000
+ data4 0x001b0000, 0x006e0000, 0x005a0000, 0x00a00000
+ data4 0x00520000, 0x003b0000, 0x00d60000, 0x00b30000
+ data4 0x00290000, 0x00e30000, 0x002f0000, 0x00840000
+ data4 0x00530000, 0x00d10000, 0x00000000, 0x00ed0000
+ data4 0x00200000, 0x00fc0000, 0x00b10000, 0x005b0000
+ data4 0x006a0000, 0x00cb0000, 0x00be0000, 0x00390000
+ data4 0x004a0000, 0x004c0000, 0x00580000, 0x00cf0000
+ data4 0x00d00000, 0x00ef0000, 0x00aa0000, 0x00fb0000
+ data4 0x00430000, 0x004d0000, 0x00330000, 0x00850000
+ data4 0x00450000, 0x00f90000, 0x00020000, 0x007f0000
+ data4 0x00500000, 0x003c0000, 0x009f0000, 0x00a80000
+ data4 0x00510000, 0x00a30000, 0x00400000, 0x008f0000
+ data4 0x00920000, 0x009d0000, 0x00380000, 0x00f50000
+ data4 0x00bc0000, 0x00b60000, 0x00da0000, 0x00210000
+ data4 0x00100000, 0x00ff0000, 0x00f30000, 0x00d20000
+ data4 0x00cd0000, 0x000c0000, 0x00130000, 0x00ec0000
+ data4 0x005f0000, 0x00970000, 0x00440000, 0x00170000
+ data4 0x00c40000, 0x00a70000, 0x007e0000, 0x003d0000
+ data4 0x00640000, 0x005d0000, 0x00190000, 0x00730000
+ data4 0x00600000, 0x00810000, 0x004f0000, 0x00dc0000
+ data4 0x00220000, 0x002a0000, 0x00900000, 0x00880000
+ data4 0x00460000, 0x00ee0000, 0x00b80000, 0x00140000
+ data4 0x00de0000, 0x005e0000, 0x000b0000, 0x00db0000
+ data4 0x00e00000, 0x00320000, 0x003a0000, 0x000a0000
+ data4 0x00490000, 0x00060000, 0x00240000, 0x005c0000
+ data4 0x00c20000, 0x00d30000, 0x00ac0000, 0x00620000
+ data4 0x00910000, 0x00950000, 0x00e40000, 0x00790000
+ data4 0x00e70000, 0x00c80000, 0x00370000, 0x006d0000
+ data4 0x008d0000, 0x00d50000, 0x004e0000, 0x00a90000
+ data4 0x006c0000, 0x00560000, 0x00f40000, 0x00ea0000
+ data4 0x00650000, 0x007a0000, 0x00ae0000, 0x00080000
+ data4 0x00ba0000, 0x00780000, 0x00250000, 0x002e0000
+ data4 0x001c0000, 0x00a60000, 0x00b40000, 0x00c60000
+ data4 0x00e80000, 0x00dd0000, 0x00740000, 0x001f0000
+ data4 0x004b0000, 0x00bd0000, 0x008b0000, 0x008a0000
+ data4 0x00700000, 0x003e0000, 0x00b50000, 0x00660000
+ data4 0x00480000, 0x00030000, 0x00f60000, 0x000e0000
+ data4 0x00610000, 0x00350000, 0x00570000, 0x00b90000
+ data4 0x00860000, 0x00c10000, 0x001d0000, 0x009e0000
+ data4 0x00e10000, 0x00f80000, 0x00980000, 0x00110000
+ data4 0x00690000, 0x00d90000, 0x008e0000, 0x00940000
+ data4 0x009b0000, 0x001e0000, 0x00870000, 0x00e90000
+ data4 0x00ce0000, 0x00550000, 0x00280000, 0x00df0000
+ data4 0x008c0000, 0x00a10000, 0x00890000, 0x000d0000
+ data4 0x00bf0000, 0x00e60000, 0x00420000, 0x00680000
+ data4 0x00410000, 0x00990000, 0x002d0000, 0x000f0000
+ data4 0x00b00000, 0x00540000, 0x00bb0000, 0x00160000
+// Te6:
+ data4 0x00006300, 0x00007c00, 0x00007700, 0x00007b00
+ data4 0x0000f200, 0x00006b00, 0x00006f00, 0x0000c500
+ data4 0x00003000, 0x00000100, 0x00006700, 0x00002b00
+ data4 0x0000fe00, 0x0000d700, 0x0000ab00, 0x00007600
+ data4 0x0000ca00, 0x00008200, 0x0000c900, 0x00007d00
+ data4 0x0000fa00, 0x00005900, 0x00004700, 0x0000f000
+ data4 0x0000ad00, 0x0000d400, 0x0000a200, 0x0000af00
+ data4 0x00009c00, 0x0000a400, 0x00007200, 0x0000c000
+ data4 0x0000b700, 0x0000fd00, 0x00009300, 0x00002600
+ data4 0x00003600, 0x00003f00, 0x0000f700, 0x0000cc00
+ data4 0x00003400, 0x0000a500, 0x0000e500, 0x0000f100
+ data4 0x00007100, 0x0000d800, 0x00003100, 0x00001500
+ data4 0x00000400, 0x0000c700, 0x00002300, 0x0000c300
+ data4 0x00001800, 0x00009600, 0x00000500, 0x00009a00
+ data4 0x00000700, 0x00001200, 0x00008000, 0x0000e200
+ data4 0x0000eb00, 0x00002700, 0x0000b200, 0x00007500
+ data4 0x00000900, 0x00008300, 0x00002c00, 0x00001a00
+ data4 0x00001b00, 0x00006e00, 0x00005a00, 0x0000a000
+ data4 0x00005200, 0x00003b00, 0x0000d600, 0x0000b300
+ data4 0x00002900, 0x0000e300, 0x00002f00, 0x00008400
+ data4 0x00005300, 0x0000d100, 0x00000000, 0x0000ed00
+ data4 0x00002000, 0x0000fc00, 0x0000b100, 0x00005b00
+ data4 0x00006a00, 0x0000cb00, 0x0000be00, 0x00003900
+ data4 0x00004a00, 0x00004c00, 0x00005800, 0x0000cf00
+ data4 0x0000d000, 0x0000ef00, 0x0000aa00, 0x0000fb00
+ data4 0x00004300, 0x00004d00, 0x00003300, 0x00008500
+ data4 0x00004500, 0x0000f900, 0x00000200, 0x00007f00
+ data4 0x00005000, 0x00003c00, 0x00009f00, 0x0000a800
+ data4 0x00005100, 0x0000a300, 0x00004000, 0x00008f00
+ data4 0x00009200, 0x00009d00, 0x00003800, 0x0000f500
+ data4 0x0000bc00, 0x0000b600, 0x0000da00, 0x00002100
+ data4 0x00001000, 0x0000ff00, 0x0000f300, 0x0000d200
+ data4 0x0000cd00, 0x00000c00, 0x00001300, 0x0000ec00
+ data4 0x00005f00, 0x00009700, 0x00004400, 0x00001700
+ data4 0x0000c400, 0x0000a700, 0x00007e00, 0x00003d00
+ data4 0x00006400, 0x00005d00, 0x00001900, 0x00007300
+ data4 0x00006000, 0x00008100, 0x00004f00, 0x0000dc00
+ data4 0x00002200, 0x00002a00, 0x00009000, 0x00008800
+ data4 0x00004600, 0x0000ee00, 0x0000b800, 0x00001400
+ data4 0x0000de00, 0x00005e00, 0x00000b00, 0x0000db00
+ data4 0x0000e000, 0x00003200, 0x00003a00, 0x00000a00
+ data4 0x00004900, 0x00000600, 0x00002400, 0x00005c00
+ data4 0x0000c200, 0x0000d300, 0x0000ac00, 0x00006200
+ data4 0x00009100, 0x00009500, 0x0000e400, 0x00007900
+ data4 0x0000e700, 0x0000c800, 0x00003700, 0x00006d00
+ data4 0x00008d00, 0x0000d500, 0x00004e00, 0x0000a900
+ data4 0x00006c00, 0x00005600, 0x0000f400, 0x0000ea00
+ data4 0x00006500, 0x00007a00, 0x0000ae00, 0x00000800
+ data4 0x0000ba00, 0x00007800, 0x00002500, 0x00002e00
+ data4 0x00001c00, 0x0000a600, 0x0000b400, 0x0000c600
+ data4 0x0000e800, 0x0000dd00, 0x00007400, 0x00001f00
+ data4 0x00004b00, 0x0000bd00, 0x00008b00, 0x00008a00
+ data4 0x00007000, 0x00003e00, 0x0000b500, 0x00006600
+ data4 0x00004800, 0x00000300, 0x0000f600, 0x00000e00
+ data4 0x00006100, 0x00003500, 0x00005700, 0x0000b900
+ data4 0x00008600, 0x0000c100, 0x00001d00, 0x00009e00
+ data4 0x0000e100, 0x0000f800, 0x00009800, 0x00001100
+ data4 0x00006900, 0x0000d900, 0x00008e00, 0x00009400
+ data4 0x00009b00, 0x00001e00, 0x00008700, 0x0000e900
+ data4 0x0000ce00, 0x00005500, 0x00002800, 0x0000df00
+ data4 0x00008c00, 0x0000a100, 0x00008900, 0x00000d00
+ data4 0x0000bf00, 0x0000e600, 0x00004200, 0x00006800
+ data4 0x00004100, 0x00009900, 0x00002d00, 0x00000f00
+ data4 0x0000b000, 0x00005400, 0x0000bb00, 0x00001600
+// Te7:
+ data4 0x00000063, 0x0000007c, 0x00000077, 0x0000007b
+ data4 0x000000f2, 0x0000006b, 0x0000006f, 0x000000c5
+ data4 0x00000030, 0x00000001, 0x00000067, 0x0000002b
+ data4 0x000000fe, 0x000000d7, 0x000000ab, 0x00000076
+ data4 0x000000ca, 0x00000082, 0x000000c9, 0x0000007d
+ data4 0x000000fa, 0x00000059, 0x00000047, 0x000000f0
+ data4 0x000000ad, 0x000000d4, 0x000000a2, 0x000000af
+ data4 0x0000009c, 0x000000a4, 0x00000072, 0x000000c0
+ data4 0x000000b7, 0x000000fd, 0x00000093, 0x00000026
+ data4 0x00000036, 0x0000003f, 0x000000f7, 0x000000cc
+ data4 0x00000034, 0x000000a5, 0x000000e5, 0x000000f1
+ data4 0x00000071, 0x000000d8, 0x00000031, 0x00000015
+ data4 0x00000004, 0x000000c7, 0x00000023, 0x000000c3
+ data4 0x00000018, 0x00000096, 0x00000005, 0x0000009a
+ data4 0x00000007, 0x00000012, 0x00000080, 0x000000e2
+ data4 0x000000eb, 0x00000027, 0x000000b2, 0x00000075
+ data4 0x00000009, 0x00000083, 0x0000002c, 0x0000001a
+ data4 0x0000001b, 0x0000006e, 0x0000005a, 0x000000a0
+ data4 0x00000052, 0x0000003b, 0x000000d6, 0x000000b3
+ data4 0x00000029, 0x000000e3, 0x0000002f, 0x00000084
+ data4 0x00000053, 0x000000d1, 0x00000000, 0x000000ed
+ data4 0x00000020, 0x000000fc, 0x000000b1, 0x0000005b
+ data4 0x0000006a, 0x000000cb, 0x000000be, 0x00000039
+ data4 0x0000004a, 0x0000004c, 0x00000058, 0x000000cf
+ data4 0x000000d0, 0x000000ef, 0x000000aa, 0x000000fb
+ data4 0x00000043, 0x0000004d, 0x00000033, 0x00000085
+ data4 0x00000045, 0x000000f9, 0x00000002, 0x0000007f
+ data4 0x00000050, 0x0000003c, 0x0000009f, 0x000000a8
+ data4 0x00000051, 0x000000a3, 0x00000040, 0x0000008f
+ data4 0x00000092, 0x0000009d, 0x00000038, 0x000000f5
+ data4 0x000000bc, 0x000000b6, 0x000000da, 0x00000021
+ data4 0x00000010, 0x000000ff, 0x000000f3, 0x000000d2
+ data4 0x000000cd, 0x0000000c, 0x00000013, 0x000000ec
+ data4 0x0000005f, 0x00000097, 0x00000044, 0x00000017
+ data4 0x000000c4, 0x000000a7, 0x0000007e, 0x0000003d
+ data4 0x00000064, 0x0000005d, 0x00000019, 0x00000073
+ data4 0x00000060, 0x00000081, 0x0000004f, 0x000000dc
+ data4 0x00000022, 0x0000002a, 0x00000090, 0x00000088
+ data4 0x00000046, 0x000000ee, 0x000000b8, 0x00000014
+ data4 0x000000de, 0x0000005e, 0x0000000b, 0x000000db
+ data4 0x000000e0, 0x00000032, 0x0000003a, 0x0000000a
+ data4 0x00000049, 0x00000006, 0x00000024, 0x0000005c
+ data4 0x000000c2, 0x000000d3, 0x000000ac, 0x00000062
+ data4 0x00000091, 0x00000095, 0x000000e4, 0x00000079
+ data4 0x000000e7, 0x000000c8, 0x00000037, 0x0000006d
+ data4 0x0000008d, 0x000000d5, 0x0000004e, 0x000000a9
+ data4 0x0000006c, 0x00000056, 0x000000f4, 0x000000ea
+ data4 0x00000065, 0x0000007a, 0x000000ae, 0x00000008
+ data4 0x000000ba, 0x00000078, 0x00000025, 0x0000002e
+ data4 0x0000001c, 0x000000a6, 0x000000b4, 0x000000c6
+ data4 0x000000e8, 0x000000dd, 0x00000074, 0x0000001f
+ data4 0x0000004b, 0x000000bd, 0x0000008b, 0x0000008a
+ data4 0x00000070, 0x0000003e, 0x000000b5, 0x00000066
+ data4 0x00000048, 0x00000003, 0x000000f6, 0x0000000e
+ data4 0x00000061, 0x00000035, 0x00000057, 0x000000b9
+ data4 0x00000086, 0x000000c1, 0x0000001d, 0x0000009e
+ data4 0x000000e1, 0x000000f8, 0x00000098, 0x00000011
+ data4 0x00000069, 0x000000d9, 0x0000008e, 0x00000094
+ data4 0x0000009b, 0x0000001e, 0x00000087, 0x000000e9
+ data4 0x000000ce, 0x00000055, 0x00000028, 0x000000df
+ data4 0x0000008c, 0x000000a1, 0x00000089, 0x0000000d
+ data4 0x000000bf, 0x000000e6, 0x00000042, 0x00000068
+ data4 0x00000041, 0x00000099, 0x0000002d, 0x0000000f
+ data4 0x000000b0, 0x00000054, 0x000000bb, 0x00000016
+.size AES_Te#,8*256*4 // HP-UX assembler fails to ".-AES_Te#"
.align 64
-.type Td0#,@object
-Td0: data4 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
+.global AES_Td#
+.type AES_Td#,@object
+AES_Td: data4 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
data4 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393
data4 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25
data4 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f
@@ -1181,68 +1390,263 @@ Td0: data4 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
data4 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064
data4 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0
// Td4:
- data4 0x52525252, 0x09090909, 0x6a6a6a6a, 0xd5d5d5d5
- data4 0x30303030, 0x36363636, 0xa5a5a5a5, 0x38383838
- data4 0xbfbfbfbf, 0x40404040, 0xa3a3a3a3, 0x9e9e9e9e
- data4 0x81818181, 0xf3f3f3f3, 0xd7d7d7d7, 0xfbfbfbfb
- data4 0x7c7c7c7c, 0xe3e3e3e3, 0x39393939, 0x82828282
- data4 0x9b9b9b9b, 0x2f2f2f2f, 0xffffffff, 0x87878787
- data4 0x34343434, 0x8e8e8e8e, 0x43434343, 0x44444444
- data4 0xc4c4c4c4, 0xdededede, 0xe9e9e9e9, 0xcbcbcbcb
- data4 0x54545454, 0x7b7b7b7b, 0x94949494, 0x32323232
- data4 0xa6a6a6a6, 0xc2c2c2c2, 0x23232323, 0x3d3d3d3d
- data4 0xeeeeeeee, 0x4c4c4c4c, 0x95959595, 0x0b0b0b0b
- data4 0x42424242, 0xfafafafa, 0xc3c3c3c3, 0x4e4e4e4e
- data4 0x08080808, 0x2e2e2e2e, 0xa1a1a1a1, 0x66666666
- data4 0x28282828, 0xd9d9d9d9, 0x24242424, 0xb2b2b2b2
- data4 0x76767676, 0x5b5b5b5b, 0xa2a2a2a2, 0x49494949
- data4 0x6d6d6d6d, 0x8b8b8b8b, 0xd1d1d1d1, 0x25252525
- data4 0x72727272, 0xf8f8f8f8, 0xf6f6f6f6, 0x64646464
- data4 0x86868686, 0x68686868, 0x98989898, 0x16161616
- data4 0xd4d4d4d4, 0xa4a4a4a4, 0x5c5c5c5c, 0xcccccccc
- data4 0x5d5d5d5d, 0x65656565, 0xb6b6b6b6, 0x92929292
- data4 0x6c6c6c6c, 0x70707070, 0x48484848, 0x50505050
- data4 0xfdfdfdfd, 0xedededed, 0xb9b9b9b9, 0xdadadada
- data4 0x5e5e5e5e, 0x15151515, 0x46464646, 0x57575757
- data4 0xa7a7a7a7, 0x8d8d8d8d, 0x9d9d9d9d, 0x84848484
- data4 0x90909090, 0xd8d8d8d8, 0xabababab, 0x00000000
- data4 0x8c8c8c8c, 0xbcbcbcbc, 0xd3d3d3d3, 0x0a0a0a0a
- data4 0xf7f7f7f7, 0xe4e4e4e4, 0x58585858, 0x05050505
- data4 0xb8b8b8b8, 0xb3b3b3b3, 0x45454545, 0x06060606
- data4 0xd0d0d0d0, 0x2c2c2c2c, 0x1e1e1e1e, 0x8f8f8f8f
- data4 0xcacacaca, 0x3f3f3f3f, 0x0f0f0f0f, 0x02020202
- data4 0xc1c1c1c1, 0xafafafaf, 0xbdbdbdbd, 0x03030303
- data4 0x01010101, 0x13131313, 0x8a8a8a8a, 0x6b6b6b6b
- data4 0x3a3a3a3a, 0x91919191, 0x11111111, 0x41414141
- data4 0x4f4f4f4f, 0x67676767, 0xdcdcdcdc, 0xeaeaeaea
- data4 0x97979797, 0xf2f2f2f2, 0xcfcfcfcf, 0xcececece
- data4 0xf0f0f0f0, 0xb4b4b4b4, 0xe6e6e6e6, 0x73737373
- data4 0x96969696, 0xacacacac, 0x74747474, 0x22222222
- data4 0xe7e7e7e7, 0xadadadad, 0x35353535, 0x85858585
- data4 0xe2e2e2e2, 0xf9f9f9f9, 0x37373737, 0xe8e8e8e8
- data4 0x1c1c1c1c, 0x75757575, 0xdfdfdfdf, 0x6e6e6e6e
- data4 0x47474747, 0xf1f1f1f1, 0x1a1a1a1a, 0x71717171
- data4 0x1d1d1d1d, 0x29292929, 0xc5c5c5c5, 0x89898989
- data4 0x6f6f6f6f, 0xb7b7b7b7, 0x62626262, 0x0e0e0e0e
- data4 0xaaaaaaaa, 0x18181818, 0xbebebebe, 0x1b1b1b1b
- data4 0xfcfcfcfc, 0x56565656, 0x3e3e3e3e, 0x4b4b4b4b
- data4 0xc6c6c6c6, 0xd2d2d2d2, 0x79797979, 0x20202020
- data4 0x9a9a9a9a, 0xdbdbdbdb, 0xc0c0c0c0, 0xfefefefe
- data4 0x78787878, 0xcdcdcdcd, 0x5a5a5a5a, 0xf4f4f4f4
- data4 0x1f1f1f1f, 0xdddddddd, 0xa8a8a8a8, 0x33333333
- data4 0x88888888, 0x07070707, 0xc7c7c7c7, 0x31313131
- data4 0xb1b1b1b1, 0x12121212, 0x10101010, 0x59595959
- data4 0x27272727, 0x80808080, 0xecececec, 0x5f5f5f5f
- data4 0x60606060, 0x51515151, 0x7f7f7f7f, 0xa9a9a9a9
- data4 0x19191919, 0xb5b5b5b5, 0x4a4a4a4a, 0x0d0d0d0d
- data4 0x2d2d2d2d, 0xe5e5e5e5, 0x7a7a7a7a, 0x9f9f9f9f
- data4 0x93939393, 0xc9c9c9c9, 0x9c9c9c9c, 0xefefefef
- data4 0xa0a0a0a0, 0xe0e0e0e0, 0x3b3b3b3b, 0x4d4d4d4d
- data4 0xaeaeaeae, 0x2a2a2a2a, 0xf5f5f5f5, 0xb0b0b0b0
- data4 0xc8c8c8c8, 0xebebebeb, 0xbbbbbbbb, 0x3c3c3c3c
- data4 0x83838383, 0x53535353, 0x99999999, 0x61616161
- data4 0x17171717, 0x2b2b2b2b, 0x04040404, 0x7e7e7e7e
- data4 0xbabababa, 0x77777777, 0xd6d6d6d6, 0x26262626
- data4 0xe1e1e1e1, 0x69696969, 0x14141414, 0x63636363
- data4 0x55555555, 0x21212121, 0x0c0c0c0c, 0x7d7d7d7d
-.size Td0#,5*256*4 // HP-UX assembler fails to ".-Td0#"
+ data4 0x52000000, 0x09000000, 0x6a000000, 0xd5000000
+ data4 0x30000000, 0x36000000, 0xa5000000, 0x38000000
+ data4 0xbf000000, 0x40000000, 0xa3000000, 0x9e000000
+ data4 0x81000000, 0xf3000000, 0xd7000000, 0xfb000000
+ data4 0x7c000000, 0xe3000000, 0x39000000, 0x82000000
+ data4 0x9b000000, 0x2f000000, 0xff000000, 0x87000000
+ data4 0x34000000, 0x8e000000, 0x43000000, 0x44000000
+ data4 0xc4000000, 0xde000000, 0xe9000000, 0xcb000000
+ data4 0x54000000, 0x7b000000, 0x94000000, 0x32000000
+ data4 0xa6000000, 0xc2000000, 0x23000000, 0x3d000000
+ data4 0xee000000, 0x4c000000, 0x95000000, 0x0b000000
+ data4 0x42000000, 0xfa000000, 0xc3000000, 0x4e000000
+ data4 0x08000000, 0x2e000000, 0xa1000000, 0x66000000
+ data4 0x28000000, 0xd9000000, 0x24000000, 0xb2000000
+ data4 0x76000000, 0x5b000000, 0xa2000000, 0x49000000
+ data4 0x6d000000, 0x8b000000, 0xd1000000, 0x25000000
+ data4 0x72000000, 0xf8000000, 0xf6000000, 0x64000000
+ data4 0x86000000, 0x68000000, 0x98000000, 0x16000000
+ data4 0xd4000000, 0xa4000000, 0x5c000000, 0xcc000000
+ data4 0x5d000000, 0x65000000, 0xb6000000, 0x92000000
+ data4 0x6c000000, 0x70000000, 0x48000000, 0x50000000
+ data4 0xfd000000, 0xed000000, 0xb9000000, 0xda000000
+ data4 0x5e000000, 0x15000000, 0x46000000, 0x57000000
+ data4 0xa7000000, 0x8d000000, 0x9d000000, 0x84000000
+ data4 0x90000000, 0xd8000000, 0xab000000, 0x00000000
+ data4 0x8c000000, 0xbc000000, 0xd3000000, 0x0a000000
+ data4 0xf7000000, 0xe4000000, 0x58000000, 0x05000000
+ data4 0xb8000000, 0xb3000000, 0x45000000, 0x06000000
+ data4 0xd0000000, 0x2c000000, 0x1e000000, 0x8f000000
+ data4 0xca000000, 0x3f000000, 0x0f000000, 0x02000000
+ data4 0xc1000000, 0xaf000000, 0xbd000000, 0x03000000
+ data4 0x01000000, 0x13000000, 0x8a000000, 0x6b000000
+ data4 0x3a000000, 0x91000000, 0x11000000, 0x41000000
+ data4 0x4f000000, 0x67000000, 0xdc000000, 0xea000000
+ data4 0x97000000, 0xf2000000, 0xcf000000, 0xce000000
+ data4 0xf0000000, 0xb4000000, 0xe6000000, 0x73000000
+ data4 0x96000000, 0xac000000, 0x74000000, 0x22000000
+ data4 0xe7000000, 0xad000000, 0x35000000, 0x85000000
+ data4 0xe2000000, 0xf9000000, 0x37000000, 0xe8000000
+ data4 0x1c000000, 0x75000000, 0xdf000000, 0x6e000000
+ data4 0x47000000, 0xf1000000, 0x1a000000, 0x71000000
+ data4 0x1d000000, 0x29000000, 0xc5000000, 0x89000000
+ data4 0x6f000000, 0xb7000000, 0x62000000, 0x0e000000
+ data4 0xaa000000, 0x18000000, 0xbe000000, 0x1b000000
+ data4 0xfc000000, 0x56000000, 0x3e000000, 0x4b000000
+ data4 0xc6000000, 0xd2000000, 0x79000000, 0x20000000
+ data4 0x9a000000, 0xdb000000, 0xc0000000, 0xfe000000
+ data4 0x78000000, 0xcd000000, 0x5a000000, 0xf4000000
+ data4 0x1f000000, 0xdd000000, 0xa8000000, 0x33000000
+ data4 0x88000000, 0x07000000, 0xc7000000, 0x31000000
+ data4 0xb1000000, 0x12000000, 0x10000000, 0x59000000
+ data4 0x27000000, 0x80000000, 0xec000000, 0x5f000000
+ data4 0x60000000, 0x51000000, 0x7f000000, 0xa9000000
+ data4 0x19000000, 0xb5000000, 0x4a000000, 0x0d000000
+ data4 0x2d000000, 0xe5000000, 0x7a000000, 0x9f000000
+ data4 0x93000000, 0xc9000000, 0x9c000000, 0xef000000
+ data4 0xa0000000, 0xe0000000, 0x3b000000, 0x4d000000
+ data4 0xae000000, 0x2a000000, 0xf5000000, 0xb0000000
+ data4 0xc8000000, 0xeb000000, 0xbb000000, 0x3c000000
+ data4 0x83000000, 0x53000000, 0x99000000, 0x61000000
+ data4 0x17000000, 0x2b000000, 0x04000000, 0x7e000000
+ data4 0xba000000, 0x77000000, 0xd6000000, 0x26000000
+ data4 0xe1000000, 0x69000000, 0x14000000, 0x63000000
+ data4 0x55000000, 0x21000000, 0x0c000000, 0x7d000000
+// Td5:
+ data4 0x00520000, 0x00090000, 0x006a0000, 0x00d50000
+ data4 0x00300000, 0x00360000, 0x00a50000, 0x00380000
+ data4 0x00bf0000, 0x00400000, 0x00a30000, 0x009e0000
+ data4 0x00810000, 0x00f30000, 0x00d70000, 0x00fb0000
+ data4 0x007c0000, 0x00e30000, 0x00390000, 0x00820000
+ data4 0x009b0000, 0x002f0000, 0x00ff0000, 0x00870000
+ data4 0x00340000, 0x008e0000, 0x00430000, 0x00440000
+ data4 0x00c40000, 0x00de0000, 0x00e90000, 0x00cb0000
+ data4 0x00540000, 0x007b0000, 0x00940000, 0x00320000
+ data4 0x00a60000, 0x00c20000, 0x00230000, 0x003d0000
+ data4 0x00ee0000, 0x004c0000, 0x00950000, 0x000b0000
+ data4 0x00420000, 0x00fa0000, 0x00c30000, 0x004e0000
+ data4 0x00080000, 0x002e0000, 0x00a10000, 0x00660000
+ data4 0x00280000, 0x00d90000, 0x00240000, 0x00b20000
+ data4 0x00760000, 0x005b0000, 0x00a20000, 0x00490000
+ data4 0x006d0000, 0x008b0000, 0x00d10000, 0x00250000
+ data4 0x00720000, 0x00f80000, 0x00f60000, 0x00640000
+ data4 0x00860000, 0x00680000, 0x00980000, 0x00160000
+ data4 0x00d40000, 0x00a40000, 0x005c0000, 0x00cc0000
+ data4 0x005d0000, 0x00650000, 0x00b60000, 0x00920000
+ data4 0x006c0000, 0x00700000, 0x00480000, 0x00500000
+ data4 0x00fd0000, 0x00ed0000, 0x00b90000, 0x00da0000
+ data4 0x005e0000, 0x00150000, 0x00460000, 0x00570000
+ data4 0x00a70000, 0x008d0000, 0x009d0000, 0x00840000
+ data4 0x00900000, 0x00d80000, 0x00ab0000, 0x00000000
+ data4 0x008c0000, 0x00bc0000, 0x00d30000, 0x000a0000
+ data4 0x00f70000, 0x00e40000, 0x00580000, 0x00050000
+ data4 0x00b80000, 0x00b30000, 0x00450000, 0x00060000
+ data4 0x00d00000, 0x002c0000, 0x001e0000, 0x008f0000
+ data4 0x00ca0000, 0x003f0000, 0x000f0000, 0x00020000
+ data4 0x00c10000, 0x00af0000, 0x00bd0000, 0x00030000
+ data4 0x00010000, 0x00130000, 0x008a0000, 0x006b0000
+ data4 0x003a0000, 0x00910000, 0x00110000, 0x00410000
+ data4 0x004f0000, 0x00670000, 0x00dc0000, 0x00ea0000
+ data4 0x00970000, 0x00f20000, 0x00cf0000, 0x00ce0000
+ data4 0x00f00000, 0x00b40000, 0x00e60000, 0x00730000
+ data4 0x00960000, 0x00ac0000, 0x00740000, 0x00220000
+ data4 0x00e70000, 0x00ad0000, 0x00350000, 0x00850000
+ data4 0x00e20000, 0x00f90000, 0x00370000, 0x00e80000
+ data4 0x001c0000, 0x00750000, 0x00df0000, 0x006e0000
+ data4 0x00470000, 0x00f10000, 0x001a0000, 0x00710000
+ data4 0x001d0000, 0x00290000, 0x00c50000, 0x00890000
+ data4 0x006f0000, 0x00b70000, 0x00620000, 0x000e0000
+ data4 0x00aa0000, 0x00180000, 0x00be0000, 0x001b0000
+ data4 0x00fc0000, 0x00560000, 0x003e0000, 0x004b0000
+ data4 0x00c60000, 0x00d20000, 0x00790000, 0x00200000
+ data4 0x009a0000, 0x00db0000, 0x00c00000, 0x00fe0000
+ data4 0x00780000, 0x00cd0000, 0x005a0000, 0x00f40000
+ data4 0x001f0000, 0x00dd0000, 0x00a80000, 0x00330000
+ data4 0x00880000, 0x00070000, 0x00c70000, 0x00310000
+ data4 0x00b10000, 0x00120000, 0x00100000, 0x00590000
+ data4 0x00270000, 0x00800000, 0x00ec0000, 0x005f0000
+ data4 0x00600000, 0x00510000, 0x007f0000, 0x00a90000
+ data4 0x00190000, 0x00b50000, 0x004a0000, 0x000d0000
+ data4 0x002d0000, 0x00e50000, 0x007a0000, 0x009f0000
+ data4 0x00930000, 0x00c90000, 0x009c0000, 0x00ef0000
+ data4 0x00a00000, 0x00e00000, 0x003b0000, 0x004d0000
+ data4 0x00ae0000, 0x002a0000, 0x00f50000, 0x00b00000
+ data4 0x00c80000, 0x00eb0000, 0x00bb0000, 0x003c0000
+ data4 0x00830000, 0x00530000, 0x00990000, 0x00610000
+ data4 0x00170000, 0x002b0000, 0x00040000, 0x007e0000
+ data4 0x00ba0000, 0x00770000, 0x00d60000, 0x00260000
+ data4 0x00e10000, 0x00690000, 0x00140000, 0x00630000
+ data4 0x00550000, 0x00210000, 0x000c0000, 0x007d0000
+// Td6:
+ data4 0x00005200, 0x00000900, 0x00006a00, 0x0000d500
+ data4 0x00003000, 0x00003600, 0x0000a500, 0x00003800
+ data4 0x0000bf00, 0x00004000, 0x0000a300, 0x00009e00
+ data4 0x00008100, 0x0000f300, 0x0000d700, 0x0000fb00
+ data4 0x00007c00, 0x0000e300, 0x00003900, 0x00008200
+ data4 0x00009b00, 0x00002f00, 0x0000ff00, 0x00008700
+ data4 0x00003400, 0x00008e00, 0x00004300, 0x00004400
+ data4 0x0000c400, 0x0000de00, 0x0000e900, 0x0000cb00
+ data4 0x00005400, 0x00007b00, 0x00009400, 0x00003200
+ data4 0x0000a600, 0x0000c200, 0x00002300, 0x00003d00
+ data4 0x0000ee00, 0x00004c00, 0x00009500, 0x00000b00
+ data4 0x00004200, 0x0000fa00, 0x0000c300, 0x00004e00
+ data4 0x00000800, 0x00002e00, 0x0000a100, 0x00006600
+ data4 0x00002800, 0x0000d900, 0x00002400, 0x0000b200
+ data4 0x00007600, 0x00005b00, 0x0000a200, 0x00004900
+ data4 0x00006d00, 0x00008b00, 0x0000d100, 0x00002500
+ data4 0x00007200, 0x0000f800, 0x0000f600, 0x00006400
+ data4 0x00008600, 0x00006800, 0x00009800, 0x00001600
+ data4 0x0000d400, 0x0000a400, 0x00005c00, 0x0000cc00
+ data4 0x00005d00, 0x00006500, 0x0000b600, 0x00009200
+ data4 0x00006c00, 0x00007000, 0x00004800, 0x00005000
+ data4 0x0000fd00, 0x0000ed00, 0x0000b900, 0x0000da00
+ data4 0x00005e00, 0x00001500, 0x00004600, 0x00005700
+ data4 0x0000a700, 0x00008d00, 0x00009d00, 0x00008400
+ data4 0x00009000, 0x0000d800, 0x0000ab00, 0x00000000
+ data4 0x00008c00, 0x0000bc00, 0x0000d300, 0x00000a00
+ data4 0x0000f700, 0x0000e400, 0x00005800, 0x00000500
+ data4 0x0000b800, 0x0000b300, 0x00004500, 0x00000600
+ data4 0x0000d000, 0x00002c00, 0x00001e00, 0x00008f00
+ data4 0x0000ca00, 0x00003f00, 0x00000f00, 0x00000200
+ data4 0x0000c100, 0x0000af00, 0x0000bd00, 0x00000300
+ data4 0x00000100, 0x00001300, 0x00008a00, 0x00006b00
+ data4 0x00003a00, 0x00009100, 0x00001100, 0x00004100
+ data4 0x00004f00, 0x00006700, 0x0000dc00, 0x0000ea00
+ data4 0x00009700, 0x0000f200, 0x0000cf00, 0x0000ce00
+ data4 0x0000f000, 0x0000b400, 0x0000e600, 0x00007300
+ data4 0x00009600, 0x0000ac00, 0x00007400, 0x00002200
+ data4 0x0000e700, 0x0000ad00, 0x00003500, 0x00008500
+ data4 0x0000e200, 0x0000f900, 0x00003700, 0x0000e800
+ data4 0x00001c00, 0x00007500, 0x0000df00, 0x00006e00
+ data4 0x00004700, 0x0000f100, 0x00001a00, 0x00007100
+ data4 0x00001d00, 0x00002900, 0x0000c500, 0x00008900
+ data4 0x00006f00, 0x0000b700, 0x00006200, 0x00000e00
+ data4 0x0000aa00, 0x00001800, 0x0000be00, 0x00001b00
+ data4 0x0000fc00, 0x00005600, 0x00003e00, 0x00004b00
+ data4 0x0000c600, 0x0000d200, 0x00007900, 0x00002000
+ data4 0x00009a00, 0x0000db00, 0x0000c000, 0x0000fe00
+ data4 0x00007800, 0x0000cd00, 0x00005a00, 0x0000f400
+ data4 0x00001f00, 0x0000dd00, 0x0000a800, 0x00003300
+ data4 0x00008800, 0x00000700, 0x0000c700, 0x00003100
+ data4 0x0000b100, 0x00001200, 0x00001000, 0x00005900
+ data4 0x00002700, 0x00008000, 0x0000ec00, 0x00005f00
+ data4 0x00006000, 0x00005100, 0x00007f00, 0x0000a900
+ data4 0x00001900, 0x0000b500, 0x00004a00, 0x00000d00
+ data4 0x00002d00, 0x0000e500, 0x00007a00, 0x00009f00
+ data4 0x00009300, 0x0000c900, 0x00009c00, 0x0000ef00
+ data4 0x0000a000, 0x0000e000, 0x00003b00, 0x00004d00
+ data4 0x0000ae00, 0x00002a00, 0x0000f500, 0x0000b000
+ data4 0x0000c800, 0x0000eb00, 0x0000bb00, 0x00003c00
+ data4 0x00008300, 0x00005300, 0x00009900, 0x00006100
+ data4 0x00001700, 0x00002b00, 0x00000400, 0x00007e00
+ data4 0x0000ba00, 0x00007700, 0x0000d600, 0x00002600
+ data4 0x0000e100, 0x00006900, 0x00001400, 0x00006300
+ data4 0x00005500, 0x00002100, 0x00000c00, 0x00007d00
+// Td7:
+ data4 0x00000052, 0x00000009, 0x0000006a, 0x000000d5
+ data4 0x00000030, 0x00000036, 0x000000a5, 0x00000038
+ data4 0x000000bf, 0x00000040, 0x000000a3, 0x0000009e
+ data4 0x00000081, 0x000000f3, 0x000000d7, 0x000000fb
+ data4 0x0000007c, 0x000000e3, 0x00000039, 0x00000082
+ data4 0x0000009b, 0x0000002f, 0x000000ff, 0x00000087
+ data4 0x00000034, 0x0000008e, 0x00000043, 0x00000044
+ data4 0x000000c4, 0x000000de, 0x000000e9, 0x000000cb
+ data4 0x00000054, 0x0000007b, 0x00000094, 0x00000032
+ data4 0x000000a6, 0x000000c2, 0x00000023, 0x0000003d
+ data4 0x000000ee, 0x0000004c, 0x00000095, 0x0000000b
+ data4 0x00000042, 0x000000fa, 0x000000c3, 0x0000004e
+ data4 0x00000008, 0x0000002e, 0x000000a1, 0x00000066
+ data4 0x00000028, 0x000000d9, 0x00000024, 0x000000b2
+ data4 0x00000076, 0x0000005b, 0x000000a2, 0x00000049
+ data4 0x0000006d, 0x0000008b, 0x000000d1, 0x00000025
+ data4 0x00000072, 0x000000f8, 0x000000f6, 0x00000064
+ data4 0x00000086, 0x00000068, 0x00000098, 0x00000016
+ data4 0x000000d4, 0x000000a4, 0x0000005c, 0x000000cc
+ data4 0x0000005d, 0x00000065, 0x000000b6, 0x00000092
+ data4 0x0000006c, 0x00000070, 0x00000048, 0x00000050
+ data4 0x000000fd, 0x000000ed, 0x000000b9, 0x000000da
+ data4 0x0000005e, 0x00000015, 0x00000046, 0x00000057
+ data4 0x000000a7, 0x0000008d, 0x0000009d, 0x00000084
+ data4 0x00000090, 0x000000d8, 0x000000ab, 0x00000000
+ data4 0x0000008c, 0x000000bc, 0x000000d3, 0x0000000a
+ data4 0x000000f7, 0x000000e4, 0x00000058, 0x00000005
+ data4 0x000000b8, 0x000000b3, 0x00000045, 0x00000006
+ data4 0x000000d0, 0x0000002c, 0x0000001e, 0x0000008f
+ data4 0x000000ca, 0x0000003f, 0x0000000f, 0x00000002
+ data4 0x000000c1, 0x000000af, 0x000000bd, 0x00000003
+ data4 0x00000001, 0x00000013, 0x0000008a, 0x0000006b
+ data4 0x0000003a, 0x00000091, 0x00000011, 0x00000041
+ data4 0x0000004f, 0x00000067, 0x000000dc, 0x000000ea
+ data4 0x00000097, 0x000000f2, 0x000000cf, 0x000000ce
+ data4 0x000000f0, 0x000000b4, 0x000000e6, 0x00000073
+ data4 0x00000096, 0x000000ac, 0x00000074, 0x00000022
+ data4 0x000000e7, 0x000000ad, 0x00000035, 0x00000085
+ data4 0x000000e2, 0x000000f9, 0x00000037, 0x000000e8
+ data4 0x0000001c, 0x00000075, 0x000000df, 0x0000006e
+ data4 0x00000047, 0x000000f1, 0x0000001a, 0x00000071
+ data4 0x0000001d, 0x00000029, 0x000000c5, 0x00000089
+ data4 0x0000006f, 0x000000b7, 0x00000062, 0x0000000e
+ data4 0x000000aa, 0x00000018, 0x000000be, 0x0000001b
+ data4 0x000000fc, 0x00000056, 0x0000003e, 0x0000004b
+ data4 0x000000c6, 0x000000d2, 0x00000079, 0x00000020
+ data4 0x0000009a, 0x000000db, 0x000000c0, 0x000000fe
+ data4 0x00000078, 0x000000cd, 0x0000005a, 0x000000f4
+ data4 0x0000001f, 0x000000dd, 0x000000a8, 0x00000033
+ data4 0x00000088, 0x00000007, 0x000000c7, 0x00000031
+ data4 0x000000b1, 0x00000012, 0x00000010, 0x00000059
+ data4 0x00000027, 0x00000080, 0x000000ec, 0x0000005f
+ data4 0x00000060, 0x00000051, 0x0000007f, 0x000000a9
+ data4 0x00000019, 0x000000b5, 0x0000004a, 0x0000000d
+ data4 0x0000002d, 0x000000e5, 0x0000007a, 0x0000009f
+ data4 0x00000093, 0x000000c9, 0x0000009c, 0x000000ef
+ data4 0x000000a0, 0x000000e0, 0x0000003b, 0x0000004d
+ data4 0x000000ae, 0x0000002a, 0x000000f5, 0x000000b0
+ data4 0x000000c8, 0x000000eb, 0x000000bb, 0x0000003c
+ data4 0x00000083, 0x00000053, 0x00000099, 0x00000061
+ data4 0x00000017, 0x0000002b, 0x00000004, 0x0000007e
+ data4 0x000000ba, 0x00000077, 0x000000d6, 0x00000026
+ data4 0x000000e1, 0x00000069, 0x00000014, 0x00000063
+ data4 0x00000055, 0x00000021, 0x0000000c, 0x0000007d
+.size AES_Td#,8*256*4 // HP-UX assembler fails to ".-AES_Td#"
diff --git a/crypto/asn1/Makefile.ssl b/crypto/asn1/Makefile.ssl
index 90385686cc..18cf975dca 100644
--- a/crypto/asn1/Makefile.ssl
+++ b/crypto/asn1/Makefile.ssl
@@ -83,7 +83,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/asn1/a_bitstr.c b/crypto/asn1/a_bitstr.c
index c1d3c28210..6e92ff5a84 100644
--- a/crypto/asn1/a_bitstr.c
+++ b/crypto/asn1/a_bitstr.c
@@ -195,8 +195,12 @@ int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
c=(unsigned char *)OPENSSL_realloc_clean(a->data,
a->length,
w+1);
- if (c == NULL) return(0);
- if (w+1-a->length > 0) memset(c+a->length, 0, w+1-a->length);
+ if (c == NULL)
+ {
+ ASN1err(ASN1_F_ASN1_BIT_STRING_SET_BIT,ERR_R_MALLOC_FAILURE);
+ return 0;
+ }
+ if (w+1-a->length > 0) memset(c+a->length, 0, w+1-a->length);
a->data=c;
a->length=w+1;
}
diff --git a/crypto/asn1/a_digest.c b/crypto/asn1/a_digest.c
index 4931e222a0..7182e9fa5d 100644
--- a/crypto/asn1/a_digest.c
+++ b/crypto/asn1/a_digest.c
@@ -65,6 +65,7 @@
# include <sys/types.h>
#endif
+#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/buffer.h>
#include <openssl/x509.h>
@@ -78,7 +79,11 @@ int ASN1_digest(int (*i2d)(), const EVP_MD *type, char *data,
unsigned char *str,*p;
i=i2d(data,NULL);
- if ((str=(unsigned char *)OPENSSL_malloc(i)) == NULL) return(0);
+ if ((str=(unsigned char *)OPENSSL_malloc(i)) == NULL)
+ {
+ ASN1err(ASN1_F_ASN1_DIGEST,ERR_R_MALLOC_FAILURE);
+ return(0);
+ }
p=str;
i2d(data,&p);
diff --git a/crypto/asn1/a_enum.c b/crypto/asn1/a_enum.c
index 49f9e994be..af9fb9b39e 100644
--- a/crypto/asn1/a_enum.c
+++ b/crypto/asn1/a_enum.c
@@ -158,7 +158,7 @@ ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai)
unsigned char *new_data=OPENSSL_realloc(ret->data, len+4);
if (!new_data)
{
- ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_MALLOC_FAILURE);
+ ASN1err(ASN1_F_BN_TO_ASN1_ENUMERATED,ERR_R_MALLOC_FAILURE);
goto err;
}
ret->data=new_data;
diff --git a/crypto/asn1/a_gentm.c b/crypto/asn1/a_gentm.c
index ea8d7b96c8..def79062a5 100644
--- a/crypto/asn1/a_gentm.c
+++ b/crypto/asn1/a_gentm.c
@@ -192,8 +192,9 @@ int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str)
{
if (s != NULL)
{
- ASN1_STRING_set((ASN1_STRING *)s,
- (unsigned char *)str,t.length);
+ if (!ASN1_STRING_set((ASN1_STRING *)s,
+ (unsigned char *)str,t.length))
+ return 0;
s->type=V_ASN1_GENERALIZEDTIME;
}
return(1);
@@ -223,7 +224,12 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,
if ((p == NULL) || ((size_t)s->length < len))
{
p=OPENSSL_malloc(len);
- if (p == NULL) return(NULL);
+ if (p == NULL)
+ {
+ ASN1err(ASN1_F_ASN1_GENERALIZEDTIME_SET,
+ ERR_R_MALLOC_FAILURE);
+ return(NULL);
+ }
if (s->data != NULL)
OPENSSL_free(s->data);
s->data=(unsigned char *)p;
diff --git a/crypto/asn1/a_int.c b/crypto/asn1/a_int.c
index c81fa00c4c..78a6cb0d29 100644
--- a/crypto/asn1/a_int.c
+++ b/crypto/asn1/a_int.c
@@ -65,7 +65,26 @@ ASN1_INTEGER *ASN1_INTEGER_dup(ASN1_INTEGER *x)
{ return M_ASN1_INTEGER_dup(x);}
int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y)
-{ return M_ASN1_INTEGER_cmp(x,y);}
+ {
+ int neg, ret;
+ /* Compare signs */
+ neg = x->type & V_ASN1_NEG;
+ if (neg != (y->type & V_ASN1_NEG))
+ {
+ if (neg)
+ return -1;
+ else
+ return 1;
+ }
+
+ ret = ASN1_STRING_cmp(x, y);
+
+ if (neg)
+ return -ret;
+ else
+ return ret;
+ }
+
/*
* This converts an ASN1 INTEGER into its content encoding.
diff --git a/crypto/asn1/a_set.c b/crypto/asn1/a_set.c
index f37408a311..3c8d3d5629 100644
--- a/crypto/asn1/a_set.c
+++ b/crypto/asn1/a_set.c
@@ -118,8 +118,13 @@ int i2d_ASN1_SET(STACK *a, unsigned char **pp, int (*func)(), int ex_tag,
}
pStart = p; /* Catch the beg of Setblobs*/
- if (!(rgSetBlob = (MYBLOB *)OPENSSL_malloc( sk_num(a) * sizeof(MYBLOB)))) return 0; /* In this array
-we will store the SET blobs */
+ /* In this array we will store the SET blobs */
+ rgSetBlob = (MYBLOB *)OPENSSL_malloc(sk_num(a) * sizeof(MYBLOB));
+ if (rgSetBlob == NULL)
+ {
+ ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
+ return(0);
+ }
for (i=0; i<sk_num(a); i++)
{
@@ -135,7 +140,11 @@ SetBlob
/* Now we have to sort the blobs. I am using a simple algo.
*Sort ptrs *Copy to temp-mem *Copy from temp-mem to user-mem*/
qsort( rgSetBlob, sk_num(a), sizeof(MYBLOB), SetBlobCmp);
- if (!(pTempMem = OPENSSL_malloc(totSize))) return 0;
+ if (!(pTempMem = OPENSSL_malloc(totSize)))
+ {
+ ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
+ return(0);
+ }
/* Copy to temp mem */
p = pTempMem;
@@ -160,7 +169,13 @@ STACK *d2i_ASN1_SET(STACK **a, const unsigned char **pp, long length,
STACK *ret=NULL;
if ((a == NULL) || ((*a) == NULL))
- { if ((ret=sk_new_null()) == NULL) goto err; }
+ {
+ if ((ret=sk_new_null()) == NULL)
+ {
+ ASN1err(ASN1_F_D2I_ASN1_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ }
else
ret=(*a);
diff --git a/crypto/asn1/a_type.c b/crypto/asn1/a_type.c
index fe3fcd40b0..2292d49b93 100644
--- a/crypto/asn1/a_type.c
+++ b/crypto/asn1/a_type.c
@@ -71,7 +71,10 @@ int ASN1_TYPE_get(ASN1_TYPE *a)
void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
{
if (a->value.ptr != NULL)
- ASN1_primitive_free((ASN1_VALUE **)&a, NULL);
+ {
+ ASN1_TYPE **tmp_a = &a;
+ ASN1_primitive_free((ASN1_VALUE **)tmp_a, NULL);
+ }
a->type=type;
a->value.ptr=value;
}
diff --git a/crypto/asn1/a_utctm.c b/crypto/asn1/a_utctm.c
index fea6590322..d31c028193 100644
--- a/crypto/asn1/a_utctm.c
+++ b/crypto/asn1/a_utctm.c
@@ -173,8 +173,9 @@ int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str)
{
if (s != NULL)
{
- ASN1_STRING_set((ASN1_STRING *)s,
- (unsigned char *)str,t.length);
+ if (!ASN1_STRING_set((ASN1_STRING *)s,
+ (unsigned char *)str,t.length))
+ return 0;
s->type = V_ASN1_UTCTIME;
}
return(1);
@@ -203,7 +204,11 @@ ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
if ((p == NULL) || ((size_t)s->length < len))
{
p=OPENSSL_malloc(len);
- if (p == NULL) return(NULL);
+ if (p == NULL)
+ {
+ ASN1err(ASN1_F_ASN1_UTCTIME_SET,ERR_R_MALLOC_FAILURE);
+ return(NULL);
+ }
if (s->data != NULL)
OPENSSL_free(s->data);
s->data=(unsigned char *)p;
diff --git a/crypto/asn1/a_verify.c b/crypto/asn1/a_verify.c
index da2a0a6d69..b91678a9f6 100644
--- a/crypto/asn1/a_verify.c
+++ b/crypto/asn1/a_verify.c
@@ -150,7 +150,12 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, ASN1_BIT_STRING *signat
goto err;
}
- EVP_VerifyInit_ex(&ctx,type, NULL);
+ if (!EVP_VerifyInit_ex(&ctx,type, NULL))
+ {
+ ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB);
+ ret=0;
+ goto err;
+ }
EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl);
OPENSSL_cleanse(buf_in,(unsigned int)inl);
diff --git a/crypto/asn1/asn1.h b/crypto/asn1/asn1.h
index f7bb935e07..aad3dcb23d 100644
--- a/crypto/asn1/asn1.h
+++ b/crypto/asn1/asn1.h
@@ -152,10 +152,10 @@ extern "C" {
/* For use with ASN1_mbstring_copy() */
#define MBSTRING_FLAG 0x1000
+#define MBSTRING_UTF8 (MBSTRING_FLAG)
#define MBSTRING_ASC (MBSTRING_FLAG|1)
#define MBSTRING_BMP (MBSTRING_FLAG|2)
-#define MBSTRING_UNIV (MBSTRING_FLAG|3)
-#define MBSTRING_UTF8 (MBSTRING_FLAG|4)
+#define MBSTRING_UNIV (MBSTRING_FLAG|4)
struct X509_algor_st;
@@ -993,6 +993,7 @@ void ERR_load_ASN1_strings(void);
#define ASN1_F_A2I_ASN1_INTEGER 102
#define ASN1_F_A2I_ASN1_STRING 103
#define ASN1_F_APPEND_TAG 176
+#define ASN1_F_ASN1_BIT_STRING_SET_BIT 183
#define ASN1_F_ASN1_CB 177
#define ASN1_F_ASN1_CHECK_TLEN 104
#define ASN1_F_ASN1_COLLATE_PRIMITIVE 105
@@ -1000,10 +1001,12 @@ void ERR_load_ASN1_strings(void);
#define ASN1_F_ASN1_D2I_BIO 107
#define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108
#define ASN1_F_ASN1_D2I_FP 109
+#define ASN1_F_ASN1_DIGEST 184
#define ASN1_F_ASN1_DO_ADB 110
#define ASN1_F_ASN1_DUP 111
#define ASN1_F_ASN1_ENUMERATED_SET 112
#define ASN1_F_ASN1_ENUMERATED_TO_BN 113
+#define ASN1_F_ASN1_GENERALIZEDTIME_SET 185
#define ASN1_F_ASN1_GENERATE_V3 178
#define ASN1_F_ASN1_GET_OBJECT 114
#define ASN1_F_ASN1_HEADER_NEW 115
@@ -1021,6 +1024,7 @@ void ERR_load_ASN1_strings(void);
#define ASN1_F_ASN1_SEQ_UNPACK 127
#define ASN1_F_ASN1_SIGN 128
#define ASN1_F_ASN1_STR2TYPE 179
+#define ASN1_F_ASN1_STRING_SET 186
#define ASN1_F_ASN1_STRING_TABLE_ADD 129
#define ASN1_F_ASN1_STRING_TYPE_NEW 130
#define ASN1_F_ASN1_TEMPLATE_D2I 131
@@ -1030,6 +1034,7 @@ void ERR_load_ASN1_strings(void);
#define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134
#define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135
#define ASN1_F_ASN1_UNPACK_STRING 136
+#define ASN1_F_ASN1_UTCTIME_SET 187
#define ASN1_F_ASN1_VERIFY 137
#define ASN1_F_BITSTR_CB 180
#define ASN1_F_BN_TO_ASN1_ENUMERATED 138
@@ -1054,6 +1059,7 @@ void ERR_load_ASN1_strings(void);
#define ASN1_F_D2I_X509_CINF 157
#define ASN1_F_D2I_X509_NAME 158
#define ASN1_F_D2I_X509_PKEY 159
+#define ASN1_F_I2D_ASN1_SET 188
#define ASN1_F_I2D_ASN1_TIME 160
#define ASN1_F_I2D_DSA_PUBKEY 161
#define ASN1_F_I2D_EC_PUBKEY 181
diff --git a/crypto/asn1/asn1_err.c b/crypto/asn1/asn1_err.c
index d83ed65cdb..daffbf2140 100644
--- a/crypto/asn1/asn1_err.c
+++ b/crypto/asn1/asn1_err.c
@@ -1,6 +1,6 @@
/* crypto/asn1/asn1_err.c */
/* ====================================================================
- * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -71,6 +71,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
{ERR_PACK(0,ASN1_F_A2I_ASN1_INTEGER,0), "a2i_ASN1_INTEGER"},
{ERR_PACK(0,ASN1_F_A2I_ASN1_STRING,0), "a2i_ASN1_STRING"},
{ERR_PACK(0,ASN1_F_APPEND_TAG,0), "APPEND_TAG"},
+{ERR_PACK(0,ASN1_F_ASN1_BIT_STRING_SET_BIT,0), "ASN1_BIT_STRING_set_bit"},
{ERR_PACK(0,ASN1_F_ASN1_CB,0), "ASN1_CB"},
{ERR_PACK(0,ASN1_F_ASN1_CHECK_TLEN,0), "ASN1_CHECK_TLEN"},
{ERR_PACK(0,ASN1_F_ASN1_COLLATE_PRIMITIVE,0), "ASN1_COLLATE_PRIMITIVE"},
@@ -78,10 +79,12 @@ static ERR_STRING_DATA ASN1_str_functs[]=
{ERR_PACK(0,ASN1_F_ASN1_D2I_BIO,0), "ASN1_d2i_bio"},
{ERR_PACK(0,ASN1_F_ASN1_D2I_EX_PRIMITIVE,0), "ASN1_D2I_EX_PRIMITIVE"},
{ERR_PACK(0,ASN1_F_ASN1_D2I_FP,0), "ASN1_d2i_fp"},
+{ERR_PACK(0,ASN1_F_ASN1_DIGEST,0), "ASN1_digest"},
{ERR_PACK(0,ASN1_F_ASN1_DO_ADB,0), "ASN1_DO_ADB"},
{ERR_PACK(0,ASN1_F_ASN1_DUP,0), "ASN1_dup"},
{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_SET,0), "ASN1_ENUMERATED_set"},
{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_TO_BN,0), "ASN1_ENUMERATED_to_BN"},
+{ERR_PACK(0,ASN1_F_ASN1_GENERALIZEDTIME_SET,0), "ASN1_GENERALIZEDTIME_set"},
{ERR_PACK(0,ASN1_F_ASN1_GENERATE_V3,0), "ASN1_generate_v3"},
{ERR_PACK(0,ASN1_F_ASN1_GET_OBJECT,0), "ASN1_get_object"},
{ERR_PACK(0,ASN1_F_ASN1_HEADER_NEW,0), "ASN1_HEADER_new"},
@@ -99,6 +102,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
{ERR_PACK(0,ASN1_F_ASN1_SEQ_UNPACK,0), "ASN1_seq_unpack"},
{ERR_PACK(0,ASN1_F_ASN1_SIGN,0), "ASN1_sign"},
{ERR_PACK(0,ASN1_F_ASN1_STR2TYPE,0), "ASN1_STR2TYPE"},
+{ERR_PACK(0,ASN1_F_ASN1_STRING_SET,0), "ASN1_STRING_set"},
{ERR_PACK(0,ASN1_F_ASN1_STRING_TABLE_ADD,0), "ASN1_STRING_TABLE_add"},
{ERR_PACK(0,ASN1_F_ASN1_STRING_TYPE_NEW,0), "ASN1_STRING_type_new"},
{ERR_PACK(0,ASN1_F_ASN1_TEMPLATE_D2I,0), "ASN1_TEMPLATE_D2I"},
@@ -108,6 +112,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
{ERR_PACK(0,ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING,0), "ASN1_TYPE_get_int_octetstring"},
{ERR_PACK(0,ASN1_F_ASN1_TYPE_GET_OCTETSTRING,0), "ASN1_TYPE_get_octetstring"},
{ERR_PACK(0,ASN1_F_ASN1_UNPACK_STRING,0), "ASN1_unpack_string"},
+{ERR_PACK(0,ASN1_F_ASN1_UTCTIME_SET,0), "ASN1_UTCTIME_set"},
{ERR_PACK(0,ASN1_F_ASN1_VERIFY,0), "ASN1_verify"},
{ERR_PACK(0,ASN1_F_BITSTR_CB,0), "BITSTR_CB"},
{ERR_PACK(0,ASN1_F_BN_TO_ASN1_ENUMERATED,0), "BN_to_ASN1_ENUMERATED"},
@@ -132,6 +137,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
{ERR_PACK(0,ASN1_F_D2I_X509_CINF,0), "D2I_X509_CINF"},
{ERR_PACK(0,ASN1_F_D2I_X509_NAME,0), "D2I_X509_NAME"},
{ERR_PACK(0,ASN1_F_D2I_X509_PKEY,0), "d2i_X509_PKEY"},
+{ERR_PACK(0,ASN1_F_I2D_ASN1_SET,0), "i2d_ASN1_SET"},
{ERR_PACK(0,ASN1_F_I2D_ASN1_TIME,0), "I2D_ASN1_TIME"},
{ERR_PACK(0,ASN1_F_I2D_DSA_PUBKEY,0), "i2d_DSA_PUBKEY"},
{ERR_PACK(0,ASN1_F_I2D_EC_PUBKEY,0), "i2d_EC_PUBKEY"},
diff --git a/crypto/asn1/asn1_lib.c b/crypto/asn1/asn1_lib.c
index 504e612a85..bb94257cee 100644
--- a/crypto/asn1/asn1_lib.c
+++ b/crypto/asn1/asn1_lib.c
@@ -378,6 +378,7 @@ int ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len)
if (str->data == NULL)
{
+ ASN1err(ASN1_F_ASN1_STRING_SET,ERR_R_MALLOC_FAILURE);
str->data=c;
return(0);
}
diff --git a/crypto/asn1/evp_asn1.c b/crypto/asn1/evp_asn1.c
index 162b37bc38..f3d9804860 100644
--- a/crypto/asn1/evp_asn1.c
+++ b/crypto/asn1/evp_asn1.c
@@ -115,7 +115,11 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data,
if ((osp=ASN1_STRING_new()) == NULL) return(0);
/* Grow the 'string' */
- ASN1_STRING_set(osp,NULL,size);
+ if (!ASN1_STRING_set(osp,NULL,size))
+ {
+ ASN1_STRING_free(osp);
+ return(0);
+ }
M_ASN1_STRING_length_set(osp, size);
p=M_ASN1_STRING_data(osp);
diff --git a/crypto/asn1/p5_pbe.c b/crypto/asn1/p5_pbe.c
index 891150638e..ec788267e0 100644
--- a/crypto/asn1/p5_pbe.c
+++ b/crypto/asn1/p5_pbe.c
@@ -76,47 +76,55 @@ IMPLEMENT_ASN1_FUNCTIONS(PBEPARAM)
X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt,
int saltlen)
{
- PBEPARAM *pbe;
+ PBEPARAM *pbe=NULL;
ASN1_OBJECT *al;
X509_ALGOR *algor;
- ASN1_TYPE *astype;
+ ASN1_TYPE *astype=NULL;
if (!(pbe = PBEPARAM_new ())) {
ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
- return NULL;
+ goto err;
}
if(iter <= 0) iter = PKCS5_DEFAULT_ITER;
- ASN1_INTEGER_set (pbe->iter, iter);
+ if (!ASN1_INTEGER_set(pbe->iter, iter)) {
+ ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
if (!saltlen) saltlen = PKCS5_SALT_LEN;
if (!(pbe->salt->data = OPENSSL_malloc (saltlen))) {
ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
- return NULL;
+ goto err;
}
pbe->salt->length = saltlen;
if (salt) memcpy (pbe->salt->data, salt, saltlen);
else if (RAND_pseudo_bytes (pbe->salt->data, saltlen) < 0)
- return NULL;
+ goto err;
if (!(astype = ASN1_TYPE_new())) {
ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
- return NULL;
+ goto err;
}
astype->type = V_ASN1_SEQUENCE;
if(!ASN1_pack_string(pbe, i2d_PBEPARAM, &astype->value.sequence)) {
ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
- return NULL;
+ goto err;
}
PBEPARAM_free (pbe);
+ pbe = NULL;
al = OBJ_nid2obj(alg); /* never need to free al */
if (!(algor = X509_ALGOR_new())) {
ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
- return NULL;
+ goto err;
}
ASN1_OBJECT_free(algor->algorithm);
algor->algorithm = al;
algor->parameter = astype;
return (algor);
+err:
+ if (pbe != NULL) PBEPARAM_free(pbe);
+ if (astype != NULL) ASN1_TYPE_free(astype);
+ return NULL;
}
diff --git a/crypto/asn1/t_bitst.c b/crypto/asn1/t_bitst.c
index 8ee789f082..397332d9b8 100644
--- a/crypto/asn1/t_bitst.c
+++ b/crypto/asn1/t_bitst.c
@@ -84,7 +84,10 @@ int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value,
int bitnum;
bitnum = ASN1_BIT_STRING_num_asc(name, tbl);
if(bitnum < 0) return 0;
- if(bs) ASN1_BIT_STRING_set_bit(bs, bitnum, value);
+ if(bs) {
+ if(!ASN1_BIT_STRING_set_bit(bs, bitnum, value))
+ return 0;
+ }
return 1;
}
diff --git a/crypto/asn1/x_crl.c b/crypto/asn1/x_crl.c
index 11fce96825..b99f8fc522 100644
--- a/crypto/asn1/x_crl.c
+++ b/crypto/asn1/x_crl.c
@@ -63,8 +63,6 @@
static int X509_REVOKED_cmp(const X509_REVOKED * const *a,
const X509_REVOKED * const *b);
-static int X509_REVOKED_seq_cmp(const X509_REVOKED * const *a,
- const X509_REVOKED * const *b);
ASN1_SEQUENCE(X509_REVOKED) = {
ASN1_SIMPLE(X509_REVOKED,serialNumber, ASN1_INTEGER),
@@ -72,43 +70,28 @@ ASN1_SEQUENCE(X509_REVOKED) = {
ASN1_SEQUENCE_OF_OPT(X509_REVOKED,extensions, X509_EXTENSION)
} ASN1_SEQUENCE_END(X509_REVOKED)
-/* The X509_CRL_INFO structure needs a bit of customisation. This is actually
- * mirroring the old behaviour: its purpose is to allow the use of
- * sk_X509_REVOKED_find to lookup revoked certificates. Unfortunately
- * this will zap the original order and the signature so we keep a copy
- * of the original positions and reorder appropriately before encoding.
- *
- * Might want to see if there's a better way of doing this later...
+/* The X509_CRL_INFO structure needs a bit of customisation.
+ * Since we cache the original encoding the signature wont be affected by
+ * reordering of the revoked field.
*/
static int crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
{
X509_CRL_INFO *a = (X509_CRL_INFO *)*pval;
- int i;
- int (*old_cmp)(const X509_REVOKED * const *,
- const X509_REVOKED * const *);
if(!a || !a->revoked) return 1;
switch(operation) {
-
- /* Save original order */
+ /* Just set cmp function here. We don't sort because that
+ * would affect the output of X509_CRL_print().
+ */
case ASN1_OP_D2I_POST:
- for (i=0; i<sk_X509_REVOKED_num(a->revoked); i++)
- sk_X509_REVOKED_value(a->revoked,i)->sequence=i;
sk_X509_REVOKED_set_cmp_func(a->revoked,X509_REVOKED_cmp);
break;
-
- /* Restore original order */
- case ASN1_OP_I2D_PRE:
- old_cmp=sk_X509_REVOKED_set_cmp_func(a->revoked,X509_REVOKED_seq_cmp);
- sk_X509_REVOKED_sort(a->revoked);
- sk_X509_REVOKED_set_cmp_func(a->revoked,old_cmp);
- break;
}
return 1;
}
-ASN1_SEQUENCE_cb(X509_CRL_INFO, crl_inf_cb) = {
+ASN1_SEQUENCE_enc(X509_CRL_INFO, enc, crl_inf_cb) = {
ASN1_OPT(X509_CRL_INFO, version, ASN1_INTEGER),
ASN1_SIMPLE(X509_CRL_INFO, sig_alg, X509_ALGOR),
ASN1_SIMPLE(X509_CRL_INFO, issuer, X509_NAME),
@@ -116,7 +99,7 @@ ASN1_SEQUENCE_cb(X509_CRL_INFO, crl_inf_cb) = {
ASN1_OPT(X509_CRL_INFO, nextUpdate, ASN1_TIME),
ASN1_SEQUENCE_OF_OPT(X509_CRL_INFO, revoked, X509_REVOKED),
ASN1_EXP_SEQUENCE_OF_OPT(X509_CRL_INFO, extensions, X509_EXTENSION, 0)
-} ASN1_SEQUENCE_END_cb(X509_CRL_INFO, X509_CRL_INFO)
+} ASN1_SEQUENCE_END_enc(X509_CRL_INFO, X509_CRL_INFO)
ASN1_SEQUENCE_ref(X509_CRL, 0, CRYPTO_LOCK_X509_CRL) = {
ASN1_SIMPLE(X509_CRL, crl, X509_CRL_INFO),
@@ -137,12 +120,6 @@ static int X509_REVOKED_cmp(const X509_REVOKED * const *a,
(ASN1_STRING *)(*b)->serialNumber));
}
-static int X509_REVOKED_seq_cmp(const X509_REVOKED * const *a,
- const X509_REVOKED * const *b)
- {
- return((*a)->sequence-(*b)->sequence);
- }
-
int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
{
X509_CRL_INFO *inf;
@@ -153,6 +130,7 @@ int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
ASN1err(ASN1_F_X509_CRL_ADD0_REVOKED, ERR_R_MALLOC_FAILURE);
return 0;
}
+ inf->enc.modified = 1;
return 1;
}
diff --git a/crypto/asn1/x_name.c b/crypto/asn1/x_name.c
index cc8c979ad5..b4f12a6571 100644
--- a/crypto/asn1/x_name.c
+++ b/crypto/asn1/x_name.c
@@ -160,21 +160,22 @@ static int x509_name_ex_d2i(ASN1_VALUE **val, const unsigned char **in, long len
int tag, int aclass, char opt, ASN1_TLC *ctx)
{
const unsigned char *p = *in, *q;
- STACK *intname = NULL;
+ STACK *intname = NULL, **intname_pp = &intname;
int i, j, ret;
- X509_NAME *nm = NULL;
+ X509_NAME *nm = NULL, **nm_pp = &nm;
STACK_OF(X509_NAME_ENTRY) *entries;
X509_NAME_ENTRY *entry;
q = p;
/* Get internal representation of Name */
- ret = ASN1_item_ex_d2i((ASN1_VALUE **)&intname, &p, len, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
- tag, aclass, opt, ctx);
+ ret = ASN1_item_ex_d2i((ASN1_VALUE **)intname_pp,
+ &p, len, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
+ tag, aclass, opt, ctx);
if(ret <= 0) return ret;
if(*val) x509_name_ex_free(val, NULL);
- if(!x509_name_ex_new((ASN1_VALUE **)&nm, NULL)) goto err;
+ if(!x509_name_ex_new((ASN1_VALUE **)nm_pp, NULL)) goto err;
/* We've decoded it: now cache encoding */
if(!BUF_MEM_grow(nm->bytes, p - q)) goto err;
memcpy(nm->bytes->data, q, p - q);
@@ -218,7 +219,7 @@ static int x509_name_ex_i2d(ASN1_VALUE **val, unsigned char **out, const ASN1_IT
static int x509_name_encode(X509_NAME *a)
{
- STACK *intname = NULL;
+ STACK *intname = NULL, **intname_pp = &intname;
int len;
unsigned char *p;
STACK_OF(X509_NAME_ENTRY) *entries = NULL;
@@ -236,10 +237,12 @@ static int x509_name_encode(X509_NAME *a)
}
if(!sk_X509_NAME_ENTRY_push(entries, entry)) goto memerr;
}
- len = ASN1_item_ex_i2d((ASN1_VALUE **)&intname, NULL, ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
+ len = ASN1_item_ex_i2d((ASN1_VALUE **)intname_pp, NULL,
+ ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
if (!BUF_MEM_grow(a->bytes,len)) goto memerr;
p=(unsigned char *)a->bytes->data;
- ASN1_item_ex_i2d((ASN1_VALUE **)&intname, &p, ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
+ ASN1_item_ex_i2d((ASN1_VALUE **)intname_pp,
+ &p, ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
sk_pop_free(intname, sk_internal_free);
a->modified = 0;
return len;
diff --git a/crypto/asn1/x_pubkey.c b/crypto/asn1/x_pubkey.c
index 10b87def32..2a7f2cab15 100644
--- a/crypto/asn1/x_pubkey.c
+++ b/crypto/asn1/x_pubkey.c
@@ -83,8 +83,7 @@ IMPLEMENT_ASN1_FUNCTIONS(X509_PUBKEY)
int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
{
- int ok=0;
- X509_PUBKEY *pk;
+ X509_PUBKEY *pk=NULL;
X509_ALGOR *a;
ASN1_OBJECT *o;
unsigned char *s,*p = NULL;
@@ -107,7 +106,11 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
(a->parameter->type != V_ASN1_NULL))
{
ASN1_TYPE_free(a->parameter);
- a->parameter=ASN1_TYPE_new();
+ if (!(a->parameter=ASN1_TYPE_new()))
+ {
+ X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
a->parameter->type=V_ASN1_NULL;
}
}
@@ -120,14 +123,34 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
dsa=pkey->pkey.dsa;
dsa->write_params=0;
ASN1_TYPE_free(a->parameter);
- i=i2d_DSAparams(dsa,NULL);
- if ((p=(unsigned char *)OPENSSL_malloc(i)) == NULL) goto err;
+ if ((i=i2d_DSAparams(dsa,NULL)) <= 0)
+ goto err;
+ if (!(p=(unsigned char *)OPENSSL_malloc(i)))
+ {
+ X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
pp=p;
i2d_DSAparams(dsa,&pp);
- a->parameter=ASN1_TYPE_new();
+ if (!(a->parameter=ASN1_TYPE_new()))
+ {
+ OPENSSL_free(p);
+ X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
a->parameter->type=V_ASN1_SEQUENCE;
- a->parameter->value.sequence=ASN1_STRING_new();
- ASN1_STRING_set(a->parameter->value.sequence,p,i);
+ if (!(a->parameter->value.sequence=ASN1_STRING_new()))
+ {
+ OPENSSL_free(p);
+ X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ if (!ASN1_STRING_set(a->parameter->value.sequence,p,i))
+ {
+ OPENSSL_free(p);
+ X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
OPENSSL_free(p);
}
#endif
@@ -199,8 +222,12 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
}
p=s;
i2d_PublicKey(pkey,&p);
- if (!M_ASN1_BIT_STRING_set(pk->public_key,s,i)) goto err;
- /* Set number of unused bits to zero */
+ if (!M_ASN1_BIT_STRING_set(pk->public_key,s,i))
+ {
+ X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ /* Set number of unused bits to zero */
pk->public_key->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07);
pk->public_key->flags|=ASN1_STRING_FLAG_BITS_LEFT;
@@ -215,12 +242,11 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
X509_PUBKEY_free(*x);
*x=pk;
- pk=NULL;
- ok=1;
+ return 1;
err:
if (pk != NULL) X509_PUBKEY_free(pk);
- return(ok);
+ return 0;
}
EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
diff --git a/crypto/bf/Makefile.ssl b/crypto/bf/Makefile.ssl
index be3ad77a05..89894dd035 100644
--- a/crypto/bf/Makefile.ssl
+++ b/crypto/bf/Makefile.ssl
@@ -23,6 +23,7 @@ BF_ENC= bf_enc.o
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=bftest.c
@@ -49,20 +50,15 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/bx86-elf.s: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) bf-586.pl elf $(CFLAGS) $(PROCESSOR) > bx86-elf.s)
-
+# ELF
+bx86-elf.s: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) bf-586.pl elf $(CFLAGS) $(PROCESSOR) > ../$@)
+# COFF
+bx86-cof.s: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) bf-586.pl coff $(CFLAGS) $(PROCESSOR) > ../$@)
# a.out
-asm/bx86-out.o: asm/bx86unix.cpp
- $(CPP) -DOUT asm/bx86unix.cpp | as -o asm/bx86-out.o
-
-# bsdi
-asm/bx86bsdi.o: asm/bx86unix.cpp
- $(CPP) -DBSDI asm/bx86unix.cpp | sed 's/ :/:/' | as -o asm/bx86bsdi.o
-
-asm/bx86unix.cpp: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) bf-586.pl cpp $(PROCESSOR) >bx86unix.cpp)
+bx86-out.s: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) bf-586.pl a.out $(CFLAGS) $(PROCESSOR) > ../$@)
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -76,7 +72,7 @@ links:
install: installs
installs:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -98,7 +94,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/bx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/crypto/bio/Makefile.ssl b/crypto/bio/Makefile.ssl
index c42d488036..85be2ed010 100644
--- a/crypto/bio/Makefile.ssl
+++ b/crypto/bio/Makefile.ssl
@@ -63,7 +63,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER); \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/bio/b_dump.c b/crypto/bio/b_dump.c
index 76fee2db4f..a07b79437f 100644
--- a/crypto/bio/b_dump.c
+++ b/crypto/bio/b_dump.c
@@ -68,23 +68,25 @@
#define DUMP_WIDTH 16
#define DUMP_WIDTH_LESS_INDENT(i) (DUMP_WIDTH-((i-(i>6?6:i)+3)/4))
-int BIO_dump(BIO *bio, const char *s, int len)
+int BIO_dump_cb(int (*cb)(const void *data, size_t len, void *u),
+ void *u, const char *s, int len)
{
- return BIO_dump_indent(bio, s, len, 0);
+ return BIO_dump_indent_cb(cb, u, s, len, 0);
}
-int BIO_dump_indent(BIO *bio, const char *s, int len, int indent)
+int BIO_dump_indent_cb(int (*cb)(const void *data, size_t len, void *u),
+ void *u, const char *s, int len, int indent)
{
int ret=0;
char buf[288+1],tmp[20],str[128+1];
int i,j,rows,trc;
unsigned char ch;
int dump_width;
-
+
trc=0;
-
+
#ifdef TRUNCATE
- for(; (len > 0) && ((s[len-1] == ' ') || (s[len-1] == '\0')); len--)
+ for(; (len > 0) && ((s[len-1] == ' ') || (s[len-1] == '\0')); len--)
trc++;
#endif
@@ -96,7 +98,7 @@ int BIO_dump_indent(BIO *bio, const char *s, int len, int indent)
memset(str,' ',indent);
}
str[indent]='\0';
-
+
dump_width=DUMP_WIDTH_LESS_INDENT(indent);
rows=(len/dump_width);
if ((rows*dump_width)<len)
@@ -117,7 +119,7 @@ int BIO_dump_indent(BIO *bio, const char *s, int len, int indent)
{
ch=((unsigned char)*(s+i*dump_width+j)) & 0xff;
BIO_snprintf(tmp,sizeof tmp,"%02x%c",ch,
- j==7?'-':' ');
+ j==7?'-':' ');
BUF_strlcat(buf,tmp,sizeof buf);
}
}
@@ -129,28 +131,57 @@ int BIO_dump_indent(BIO *bio, const char *s, int len, int indent)
ch=((unsigned char)*(s+i*dump_width+j)) & 0xff;
#ifndef CHARSET_EBCDIC
BIO_snprintf(tmp,sizeof tmp,"%c",
- ((ch>=' ')&&(ch<='~'))?ch:'.');
+ ((ch>=' ')&&(ch<='~'))?ch:'.');
#else
BIO_snprintf(tmp,sizeof tmp,"%c",
- ((ch>=os_toascii[' '])&&(ch<=os_toascii['~']))
- ? os_toebcdic[ch]
- : '.');
+ ((ch>=os_toascii[' '])&&(ch<=os_toascii['~']))
+ ? os_toebcdic[ch]
+ : '.');
#endif
BUF_strlcat(buf,tmp,sizeof buf);
}
BUF_strlcat(buf,"\n",sizeof buf);
- /* if this is the last call then update the ddt_dump thing so that
- * we will move the selection point in the debug window
+ /* if this is the last call then update the ddt_dump thing so
+ * that we will move the selection point in the debug window
*/
- ret+=BIO_write(bio,(char *)buf,strlen(buf));
+ ret+=cb((void *)buf,strlen(buf),u);
}
#ifdef TRUNCATE
if (trc > 0)
{
BIO_snprintf(buf,sizeof buf,"%s%04x - <SPACES/NULS>\n",str,
- len+trc);
- ret+=BIO_write(bio,(char *)buf,strlen(buf));
+ len+trc);
+ ret+=cb((void *)buf,strlen(buf),u);
}
#endif
return(ret);
}
+
+#ifndef OPENSSL_NO_FP_API
+static int write_fp(const void *data, size_t len, void *fp)
+ {
+ return fwrite(data, len, 1, (FILE *)fp);
+ }
+int BIO_dump_fp(FILE *fp, const char *s, int len)
+ {
+ return BIO_dump_cb(write_fp, fp, s, len);
+ }
+int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent)
+ {
+ return BIO_dump_indent_cb(write_fp, fp, s, len, indent);
+ }
+#endif
+
+static int write_bio(const void *data, size_t len, void *bp)
+ {
+ return BIO_write((BIO *)bp, (const char *)data, len);
+ }
+int BIO_dump(BIO *bp, const char *s, int len)
+ {
+ return BIO_dump_cb(write_bio, bp, s, len);
+ }
+int BIO_dump_indent(BIO *bp, const char *s, int len, int indent)
+ {
+ return BIO_dump_indent_cb(write_bio, bp, s, len, indent);
+ }
+
diff --git a/crypto/bio/bio.h b/crypto/bio/bio.h
index 5c58164d4a..70e0f4fdcb 100644
--- a/crypto/bio/bio.h
+++ b/crypto/bio/bio.h
@@ -573,9 +573,16 @@ int BIO_sock_should_retry(int i);
int BIO_sock_non_fatal_error(int error);
int BIO_fd_should_retry(int i);
int BIO_fd_non_fatal_error(int error);
+int BIO_dump_cb(int (*cb)(const void *data, size_t len, void *u),
+ void *u, const char *s, int len);
+int BIO_dump_indent_cb(int (*cb)(const void *data, size_t len, void *u),
+ void *u, const char *s, int len, int indent);
int BIO_dump(BIO *b,const char *bytes,int len);
int BIO_dump_indent(BIO *b,const char *bytes,int len,int indent);
-
+#ifndef OPENSSL_NO_FP_API
+int BIO_dump_fp(FILE *fp, const char *s, int len);
+int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent);
+#endif
struct hostent *BIO_gethostbyname(const char *name);
#ifdef OPENSSL_SYS_VMS
diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c
index 667c2eb2f0..764b7f8372 100644
--- a/crypto/bio/bss_file.c
+++ b/crypto/bio/bss_file.c
@@ -274,7 +274,7 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr)
ret=0;
break;
}
-#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_OS2)
+#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_WIN32_CYGWIN)
if (!(num & BIO_FP_TEXT))
strcat(p,"b");
else
diff --git a/crypto/bn/Makefile.ssl b/crypto/bn/Makefile.ssl
index 490d6d7dae..817bfa54cd 100644
--- a/crypto/bn/Makefile.ssl
+++ b/crypto/bn/Makefile.ssl
@@ -23,6 +23,7 @@ BN_ASM= bn_asm.o
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=bntest.c exptest.c
@@ -67,74 +68,44 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/bn86-elf.s: asm/bn-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) bn-586.pl elf $(CFLAGS) > bn86-elf.s)
-
-asm/co86-elf.s: asm/co-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) co-586.pl elf $(CFLAGS) > co86-elf.s)
-
+# ELF
+bn86-elf.s: asm/bn-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) bn-586.pl elf $(CFLAGS) > ../$@)
+co86-elf.s: asm/co-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) co-586.pl elf $(CFLAGS) > ../$@)
+# COFF
+bn86-cof.s: asm/bn-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) bn-586.pl coff $(CFLAGS) > ../$@)
+co86-cof.s: asm/co-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) co-586.pl coff $(CFLAGS) > ../$@)
# a.out
-asm/bn86-out.o: asm/bn86unix.cpp
- $(CPP) -DOUT asm/bn86unix.cpp | as -o asm/bn86-out.o
-
-asm/co86-out.o: asm/co86unix.cpp
- $(CPP) -DOUT asm/co86unix.cpp | as -o asm/co86-out.o
-
-# bsdi
-asm/bn86bsdi.o: asm/bn86unix.cpp
- $(CPP) -DBSDI asm/bn86unix.cpp | sed 's/ :/:/' | as -o asm/bn86bsdi.o
-
-asm/co86bsdi.o: asm/co86unix.cpp
- $(CPP) -DBSDI asm/co86unix.cpp | sed 's/ :/:/' | as -o asm/co86bsdi.o
-
-asm/bn86unix.cpp: asm/bn-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) bn-586.pl cpp >bn86unix.cpp )
-
-asm/co86unix.cpp: asm/co-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) co-586.pl cpp >co86unix.cpp )
-
-asm/sparcv8.o: asm/sparcv8.S
-
-asm/sparcv8plus.o: asm/sparcv8plus.S
-
-# Old GNU assembler doesn't understand V9 instructions, so we
-# hire /usr/ccs/bin/as to do the job. Note that option is called
-# *-gcc27, but even gcc 2>=8 users may experience similar problem
-# if they didn't bother to upgrade GNU assembler. Such users should
-# not choose this option, but be adviced to *remove* GNU assembler
-# or upgrade it.
-asm/sparcv8plus-gcc27.o: asm/sparcv8plus.S
- $(CC) $(ASFLAGS) -E asm/sparcv8plus.S | \
- /usr/ccs/bin/as -xarch=v8plus - -o asm/sparcv8plus-gcc27.o
-
+bn86-out.s: asm/bn-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) bn-586.pl a.out $(CFLAGS) > ../$@)
+co86-out.s: asm/co-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) co-586.pl a.out $(CFLAGS) > ../$@)
-asm/ia64.o: asm/ia64.S
+sparcv8.o: asm/sparcv8.S
+sparcv8plus.o: asm/sparcv8plus.S
+mips3.o: asm/mips3.s
-# Some compiler drivers (most notably HP-UX and Intel C++) don't
-# understand .S extension:-( I wish I could pipe output from cc -E,
-# but it's too compiler driver/ABI dependent to cover with a single
-# rule... <appro@fy.chalmers.se>
-asm/ia64-cpp.o: asm/ia64.S
- $(CC) $(ASFLAGS) -E asm/ia64.S > /tmp/ia64.$$$$.s && \
- $(CC) $(ASFLAGS) -c -o asm/ia64-cpp.o /tmp/ia64.$$$$.s; \
- rm -f /tmp/ia64.$$$$.s
+x86_64-gcc.o: asm/x86_64-gcc.c
-asm/x86_64-gcc.o: asm/x86_64-gcc.c
+bn-ia64.s: asm/ia64.S
+ $(CC) $(CFLAGS) -E asm/ia64.S > $@
# GNU assembler fails to compile PA-RISC2 modules, insist on calling
# vendor assembler...
-asm/pa-risc2W.o: asm/pa-risc2W.s
- /usr/ccs/bin/as -o asm/pa-risc2W.o asm/pa-risc2W.s
-asm/pa-risc2.o: asm/pa-risc2.s
- /usr/ccs/bin/as -o asm/pa-risc2.o asm/pa-risc2.s
+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
# ppc - AIX, Linux, MacOS X...
-asm/linux_ppc32.s: asm/ppc.pl; $(PERL) $< $@
-asm/linux_ppc64.s: asm/ppc.pl; $(PERL) $< $@
-asm/aix_ppc32.s: asm/ppc.pl; $(PERL) $< $@
-asm/aix_ppc64.s: asm/ppc.pl; $(PERL) $< $@
-asm/osx_ppc32.s: asm/ppc.pl; $(PERL) $< $@
+linux_ppc32.s: asm/ppc.pl; $(PERL) $< $@
+linux_ppc64.s: asm/ppc.pl; $(PERL) $< $@
+aix_ppc32.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@
+aix_ppc64.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@
+osx_ppc32.s: asm/ppc.pl; $(PERL) $< $@
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -146,7 +117,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -176,7 +147,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/co86unix.cpp asm/bn86unix.cpp asm/*-elf.* *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff bn_asm.s
+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/crypto/bn/asm/alpha.s b/crypto/bn/asm/alpha.s
deleted file mode 100644
index 555ff0b92d..0000000000
--- a/crypto/bn/asm/alpha.s
+++ /dev/null
@@ -1,3199 +0,0 @@
- # DEC Alpha assember
- # The bn_div_words is actually gcc output but the other parts are hand done.
- # Thanks to tzeruch@ceddec.com for sending me the gcc output for
- # bn_div_words.
- # I've gone back and re-done most of routines.
- # The key thing to remeber for the 164 CPU is that while a
- # multiply operation takes 8 cycles, another one can only be issued
- # after 4 cycles have elapsed. I've done modification to help
- # improve this. Also, normally, a ld instruction will not be available
- # for about 3 cycles.
- .file 1 "bn_asm.c"
- .set noat
-gcc2_compiled.:
-__gnu_compiled_c:
- .text
- .align 3
- .globl bn_mul_add_words
- .ent bn_mul_add_words
-bn_mul_add_words:
-bn_mul_add_words..ng:
- .frame $30,0,$26,0
- .prologue 0
- .align 5
- subq $18,4,$18
- bis $31,$31,$0
- blt $18,$43 # if we are -1, -2, -3 or -4 goto tail code
- ldq $20,0($17) # 1 1
- ldq $1,0($16) # 1 1
- .align 3
-$42:
- mulq $20,$19,$5 # 1 2 1 ######
- ldq $21,8($17) # 2 1
- ldq $2,8($16) # 2 1
- umulh $20,$19,$20 # 1 2 ######
- ldq $27,16($17) # 3 1
- ldq $3,16($16) # 3 1
- mulq $21,$19,$6 # 2 2 1 ######
- ldq $28,24($17) # 4 1
- addq $1,$5,$1 # 1 2 2
- ldq $4,24($16) # 4 1
- umulh $21,$19,$21 # 2 2 ######
- cmpult $1,$5,$22 # 1 2 3 1
- addq $20,$22,$20 # 1 3 1
- addq $1,$0,$1 # 1 2 3 1
- mulq $27,$19,$7 # 3 2 1 ######
- cmpult $1,$0,$0 # 1 2 3 2
- addq $2,$6,$2 # 2 2 2
- addq $20,$0,$0 # 1 3 2
- cmpult $2,$6,$23 # 2 2 3 1
- addq $21,$23,$21 # 2 3 1
- umulh $27,$19,$27 # 3 2 ######
- addq $2,$0,$2 # 2 2 3 1
- cmpult $2,$0,$0 # 2 2 3 2
- subq $18,4,$18
- mulq $28,$19,$8 # 4 2 1 ######
- addq $21,$0,$0 # 2 3 2
- addq $3,$7,$3 # 3 2 2
- addq $16,32,$16
- cmpult $3,$7,$24 # 3 2 3 1
- stq $1,-32($16) # 1 2 4
- umulh $28,$19,$28 # 4 2 ######
- addq $27,$24,$27 # 3 3 1
- addq $3,$0,$3 # 3 2 3 1
- stq $2,-24($16) # 2 2 4
- cmpult $3,$0,$0 # 3 2 3 2
- stq $3,-16($16) # 3 2 4
- addq $4,$8,$4 # 4 2 2
- addq $27,$0,$0 # 3 3 2
- cmpult $4,$8,$25 # 4 2 3 1
- addq $17,32,$17
- addq $28,$25,$28 # 4 3 1
- addq $4,$0,$4 # 4 2 3 1
- cmpult $4,$0,$0 # 4 2 3 2
- stq $4,-8($16) # 4 2 4
- addq $28,$0,$0 # 4 3 2
- blt $18,$43
-
- ldq $20,0($17) # 1 1
- ldq $1,0($16) # 1 1
-
- br $42
-
- .align 4
-$45:
- ldq $20,0($17) # 4 1
- ldq $1,0($16) # 4 1
- mulq $20,$19,$5 # 4 2 1
- subq $18,1,$18
- addq $16,8,$16
- addq $17,8,$17
- umulh $20,$19,$20 # 4 2
- addq $1,$5,$1 # 4 2 2
- cmpult $1,$5,$22 # 4 2 3 1
- addq $20,$22,$20 # 4 3 1
- addq $1,$0,$1 # 4 2 3 1
- cmpult $1,$0,$0 # 4 2 3 2
- addq $20,$0,$0 # 4 3 2
- stq $1,-8($16) # 4 2 4
- bgt $18,$45
- ret $31,($26),1 # else exit
-
- .align 4
-$43:
- addq $18,4,$18
- bgt $18,$45 # goto tail code
- ret $31,($26),1 # else exit
-
- .end bn_mul_add_words
- .align 3
- .globl bn_mul_words
- .ent bn_mul_words
-bn_mul_words:
-bn_mul_words..ng:
- .frame $30,0,$26,0
- .prologue 0
- .align 5
- subq $18,4,$18
- bis $31,$31,$0
- blt $18,$143 # if we are -1, -2, -3 or -4 goto tail code
- ldq $20,0($17) # 1 1
- .align 3
-$142:
-
- mulq $20,$19,$5 # 1 2 1 #####
- ldq $21,8($17) # 2 1
- ldq $27,16($17) # 3 1
- umulh $20,$19,$20 # 1 2 #####
- ldq $28,24($17) # 4 1
- mulq $21,$19,$6 # 2 2 1 #####
- addq $5,$0,$5 # 1 2 3 1
- subq $18,4,$18
- cmpult $5,$0,$0 # 1 2 3 2
- umulh $21,$19,$21 # 2 2 #####
- addq $20,$0,$0 # 1 3 2
- addq $17,32,$17
- addq $6,$0,$6 # 2 2 3 1
- mulq $27,$19,$7 # 3 2 1 #####
- cmpult $6,$0,$0 # 2 2 3 2
- addq $21,$0,$0 # 2 3 2
- addq $16,32,$16
- umulh $27,$19,$27 # 3 2 #####
- stq $5,-32($16) # 1 2 4
- mulq $28,$19,$8 # 4 2 1 #####
- addq $7,$0,$7 # 3 2 3 1
- stq $6,-24($16) # 2 2 4
- cmpult $7,$0,$0 # 3 2 3 2
- umulh $28,$19,$28 # 4 2 #####
- addq $27,$0,$0 # 3 3 2
- stq $7,-16($16) # 3 2 4
- addq $8,$0,$8 # 4 2 3 1
- cmpult $8,$0,$0 # 4 2 3 2
-
- addq $28,$0,$0 # 4 3 2
-
- stq $8,-8($16) # 4 2 4
-
- blt $18,$143
-
- ldq $20,0($17) # 1 1
-
- br $142
-
- .align 4
-$145:
- ldq $20,0($17) # 4 1
- mulq $20,$19,$5 # 4 2 1
- subq $18,1,$18
- umulh $20,$19,$20 # 4 2
- addq $5,$0,$5 # 4 2 3 1
- addq $16,8,$16
- cmpult $5,$0,$0 # 4 2 3 2
- addq $17,8,$17
- addq $20,$0,$0 # 4 3 2
- stq $5,-8($16) # 4 2 4
-
- bgt $18,$145
- ret $31,($26),1 # else exit
-
- .align 4
-$143:
- addq $18,4,$18
- bgt $18,$145 # goto tail code
- ret $31,($26),1 # else exit
-
- .end bn_mul_words
- .align 3
- .globl bn_sqr_words
- .ent bn_sqr_words
-bn_sqr_words:
-bn_sqr_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $18,4,$18
- blt $18,$543 # if we are -1, -2, -3 or -4 goto tail code
- ldq $20,0($17) # 1 1
- .align 3
-$542:
- mulq $20,$20,$5 ######
- ldq $21,8($17) # 1 1
- subq $18,4
- umulh $20,$20,$1 ######
- ldq $27,16($17) # 1 1
- mulq $21,$21,$6 ######
- ldq $28,24($17) # 1 1
- stq $5,0($16) # r[0]
- umulh $21,$21,$2 ######
- stq $1,8($16) # r[1]
- mulq $27,$27,$7 ######
- stq $6,16($16) # r[0]
- umulh $27,$27,$3 ######
- stq $2,24($16) # r[1]
- mulq $28,$28,$8 ######
- stq $7,32($16) # r[0]
- umulh $28,$28,$4 ######
- stq $3,40($16) # r[1]
-
- addq $16,64,$16
- addq $17,32,$17
- stq $8,-16($16) # r[0]
- stq $4,-8($16) # r[1]
-
- blt $18,$543
- ldq $20,0($17) # 1 1
- br $542
-
-$442:
- ldq $20,0($17) # a[0]
- mulq $20,$20,$5 # a[0]*w low part r2
- addq $16,16,$16
- addq $17,8,$17
- subq $18,1,$18
- umulh $20,$20,$1 # a[0]*w high part r3
- stq $5,-16($16) # r[0]
- stq $1,-8($16) # r[1]
-
- bgt $18,$442
- ret $31,($26),1 # else exit
-
- .align 4
-$543:
- addq $18,4,$18
- bgt $18,$442 # goto tail code
- ret $31,($26),1 # else exit
- .end bn_sqr_words
-
- .align 3
- .globl bn_add_words
- .ent bn_add_words
-bn_add_words:
-bn_add_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $19,4,$19
- bis $31,$31,$0 # carry = 0
- blt $19,$900
- ldq $5,0($17) # a[0]
- ldq $1,0($18) # b[1]
- .align 3
-$901:
- addq $1,$5,$1 # r=a+b;
- ldq $6,8($17) # a[1]
- cmpult $1,$5,$22 # did we overflow?
- ldq $2,8($18) # b[1]
- addq $1,$0,$1 # c+= overflow
- ldq $7,16($17) # a[2]
- cmpult $1,$0,$0 # overflow?
- ldq $3,16($18) # b[2]
- addq $0,$22,$0
- ldq $8,24($17) # a[3]
- addq $2,$6,$2 # r=a+b;
- ldq $4,24($18) # b[3]
- cmpult $2,$6,$23 # did we overflow?
- addq $3,$7,$3 # r=a+b;
- addq $2,$0,$2 # c+= overflow
- cmpult $3,$7,$24 # did we overflow?
- cmpult $2,$0,$0 # overflow?
- addq $4,$8,$4 # r=a+b;
- addq $0,$23,$0
- cmpult $4,$8,$25 # did we overflow?
- addq $3,$0,$3 # c+= overflow
- stq $1,0($16) # r[0]=c
- cmpult $3,$0,$0 # overflow?
- stq $2,8($16) # r[1]=c
- addq $0,$24,$0
- stq $3,16($16) # r[2]=c
- addq $4,$0,$4 # c+= overflow
- subq $19,4,$19 # loop--
- cmpult $4,$0,$0 # overflow?
- addq $17,32,$17 # a++
- addq $0,$25,$0
- stq $4,24($16) # r[3]=c
- addq $18,32,$18 # b++
- addq $16,32,$16 # r++
-
- blt $19,$900
- ldq $5,0($17) # a[0]
- ldq $1,0($18) # b[1]
- br $901
- .align 4
-$945:
- ldq $5,0($17) # a[0]
- ldq $1,0($18) # b[1]
- addq $1,$5,$1 # r=a+b;
- subq $19,1,$19 # loop--
- addq $1,$0,$1 # c+= overflow
- addq $17,8,$17 # a++
- cmpult $1,$5,$22 # did we overflow?
- cmpult $1,$0,$0 # overflow?
- addq $18,8,$18 # b++
- stq $1,0($16) # r[0]=c
- addq $0,$22,$0
- addq $16,8,$16 # r++
-
- bgt $19,$945
- ret $31,($26),1 # else exit
-
-$900:
- addq $19,4,$19
- bgt $19,$945 # goto tail code
- ret $31,($26),1 # else exit
- .end bn_add_words
-
- #
- # What follows was taken directly from the C compiler with a few
- # hacks to redo the lables.
- #
-.text
- .align 3
- .globl bn_div_words
- .ent bn_div_words
-bn_div_words:
- ldgp $29,0($27)
-bn_div_words..ng:
- lda $30,-48($30)
- .frame $30,48,$26,0
- stq $26,0($30)
- stq $9,8($30)
- stq $10,16($30)
- stq $11,24($30)
- stq $12,32($30)
- stq $13,40($30)
- .mask 0x4003e00,-48
- .prologue 1
- bis $16,$16,$9
- bis $17,$17,$10
- bis $18,$18,$11
- bis $31,$31,$13
- bis $31,2,$12
- bne $11,$119
- lda $0,-1
- br $31,$136
- .align 4
-$119:
- bis $11,$11,$16
- jsr $26,BN_num_bits_word
- ldgp $29,0($26)
- subq $0,64,$1
- beq $1,$120
- bis $31,1,$1
- sll $1,$0,$1
- cmpule $9,$1,$1
- bne $1,$120
- # lda $16,_IO_stderr_
- # lda $17,$C32
- # bis $0,$0,$18
- # jsr $26,fprintf
- # ldgp $29,0($26)
- jsr $26,abort
- ldgp $29,0($26)
- .align 4
-$120:
- bis $31,64,$3
- cmpult $9,$11,$2
- subq $3,$0,$1
- addl $1,$31,$0
- subq $9,$11,$1
- cmoveq $2,$1,$9
- beq $0,$122
- zapnot $0,15,$2
- subq $3,$0,$1
- sll $11,$2,$11
- sll $9,$2,$3
- srl $10,$1,$1
- sll $10,$2,$10
- bis $3,$1,$9
-$122:
- srl $11,32,$5
- zapnot $11,15,$6
- lda $7,-1
- .align 5
-$123:
- srl $9,32,$1
- subq $1,$5,$1
- bne $1,$126
- zapnot $7,15,$27
- br $31,$127
- .align 4
-$126:
- bis $9,$9,$24
- bis $5,$5,$25
- divqu $24,$25,$27
-$127:
- srl $10,32,$4
- .align 5
-$128:
- mulq $27,$5,$1
- subq $9,$1,$3
- zapnot $3,240,$1
- bne $1,$129
- mulq $6,$27,$2
- sll $3,32,$1
- addq $1,$4,$1
- cmpule $2,$1,$2
- bne $2,$129
- subq $27,1,$27
- br $31,$128
- .align 4
-$129:
- mulq $27,$6,$1
- mulq $27,$5,$4
- srl $1,32,$3
- sll $1,32,$1
- addq $4,$3,$4
- cmpult $10,$1,$2
- subq $10,$1,$10
- addq $2,$4,$2
- cmpult $9,$2,$1
- bis $2,$2,$4
- beq $1,$134
- addq $9,$11,$9
- subq $27,1,$27
-$134:
- subl $12,1,$12
- subq $9,$4,$9
- beq $12,$124
- sll $27,32,$13
- sll $9,32,$2
- srl $10,32,$1
- sll $10,32,$10
- bis $2,$1,$9
- br $31,$123
- .align 4
-$124:
- bis $13,$27,$0
-$136:
- ldq $26,0($30)
- ldq $9,8($30)
- ldq $10,16($30)
- ldq $11,24($30)
- ldq $12,32($30)
- ldq $13,40($30)
- addq $30,48,$30
- ret $31,($26),1
- .end bn_div_words
-
- .set noat
- .text
- .align 3
- .globl bn_sub_words
- .ent bn_sub_words
-bn_sub_words:
-bn_sub_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $19, 4, $19
- bis $31, $31, $0
- blt $19, $100
- ldq $1, 0($17)
- ldq $2, 0($18)
-$101:
- ldq $3, 8($17)
- cmpult $1, $2, $4
- ldq $5, 8($18)
- subq $1, $2, $1
- ldq $6, 16($17)
- cmpult $1, $0, $2
- ldq $7, 16($18)
- subq $1, $0, $23
- ldq $8, 24($17)
- addq $2, $4, $0
- cmpult $3, $5, $24
- subq $3, $5, $3
- ldq $22, 24($18)
- cmpult $3, $0, $5
- subq $3, $0, $25
- addq $5, $24, $0
- cmpult $6, $7, $27
- subq $6, $7, $6
- stq $23, 0($16)
- cmpult $6, $0, $7
- subq $6, $0, $28
- addq $7, $27, $0
- cmpult $8, $22, $21
- subq $8, $22, $8
- stq $25, 8($16)
- cmpult $8, $0, $22
- subq $8, $0, $20
- addq $22, $21, $0
- stq $28, 16($16)
- subq $19, 4, $19
- stq $20, 24($16)
- addq $17, 32, $17
- addq $18, 32, $18
- addq $16, 32, $16
- blt $19, $100
- ldq $1, 0($17)
- ldq $2, 0($18)
- br $101
-$102:
- ldq $1, 0($17)
- ldq $2, 0($18)
- cmpult $1, $2, $27
- subq $1, $2, $1
- cmpult $1, $0, $2
- subq $1, $0, $1
- stq $1, 0($16)
- addq $2, $27, $0
- addq $17, 8, $17
- addq $18, 8, $18
- addq $16, 8, $16
- subq $19, 1, $19
- bgt $19, $102
- ret $31,($26),1
-$100:
- addq $19, 4, $19
- bgt $19, $102
-$103:
- ret $31,($26),1
- .end bn_sub_words
- .text
- .align 3
- .globl bn_mul_comba4
- .ent bn_mul_comba4
-bn_mul_comba4:
-bn_mul_comba4..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- ldq $0, 0($17)
- ldq $1, 0($18)
- ldq $2, 8($17)
- ldq $3, 8($18)
- ldq $4, 16($17)
- ldq $5, 16($18)
- ldq $6, 24($17)
- ldq $7, 24($18)
- bis $31, $31, $23
- mulq $0, $1, $8
- umulh $0, $1, $22
- stq $8, 0($16)
- bis $31, $31, $8
- mulq $0, $3, $24
- umulh $0, $3, $25
- addq $22, $24, $22
- cmpult $22, $24, $27
- addq $27, $25, $25
- addq $23, $25, $23
- cmpult $23, $25, $28
- addq $8, $28, $8
- mulq $2, $1, $21
- umulh $2, $1, $20
- addq $22, $21, $22
- cmpult $22, $21, $19
- addq $19, $20, $20
- addq $23, $20, $23
- cmpult $23, $20, $17
- addq $8, $17, $8
- stq $22, 8($16)
- bis $31, $31, $22
- mulq $2, $3, $18
- umulh $2, $3, $24
- addq $23, $18, $23
- cmpult $23, $18, $27
- addq $27, $24, $24
- addq $8, $24, $8
- cmpult $8, $24, $25
- addq $22, $25, $22
- mulq $0, $5, $28
- umulh $0, $5, $21
- addq $23, $28, $23
- cmpult $23, $28, $19
- addq $19, $21, $21
- addq $8, $21, $8
- cmpult $8, $21, $20
- addq $22, $20, $22
- mulq $4, $1, $17
- umulh $4, $1, $18
- addq $23, $17, $23
- cmpult $23, $17, $27
- addq $27, $18, $18
- addq $8, $18, $8
- cmpult $8, $18, $24
- addq $22, $24, $22
- stq $23, 16($16)
- bis $31, $31, $23
- mulq $0, $7, $25
- umulh $0, $7, $28
- addq $8, $25, $8
- cmpult $8, $25, $19
- addq $19, $28, $28
- addq $22, $28, $22
- cmpult $22, $28, $21
- addq $23, $21, $23
- mulq $2, $5, $20
- umulh $2, $5, $17
- addq $8, $20, $8
- cmpult $8, $20, $27
- addq $27, $17, $17
- addq $22, $17, $22
- cmpult $22, $17, $18
- addq $23, $18, $23
- mulq $4, $3, $24
- umulh $4, $3, $25
- addq $8, $24, $8
- cmpult $8, $24, $19
- addq $19, $25, $25
- addq $22, $25, $22
- cmpult $22, $25, $28
- addq $23, $28, $23
- mulq $6, $1, $21
- umulh $6, $1, $0
- addq $8, $21, $8
- cmpult $8, $21, $20
- addq $20, $0, $0
- addq $22, $0, $22
- cmpult $22, $0, $27
- addq $23, $27, $23
- stq $8, 24($16)
- bis $31, $31, $8
- mulq $2, $7, $17
- umulh $2, $7, $18
- addq $22, $17, $22
- cmpult $22, $17, $24
- addq $24, $18, $18
- addq $23, $18, $23
- cmpult $23, $18, $19
- addq $8, $19, $8
- mulq $4, $5, $25
- umulh $4, $5, $28
- addq $22, $25, $22
- cmpult $22, $25, $21
- addq $21, $28, $28
- addq $23, $28, $23
- cmpult $23, $28, $20
- addq $8, $20, $8
- mulq $6, $3, $0
- umulh $6, $3, $27
- addq $22, $0, $22
- cmpult $22, $0, $1
- addq $1, $27, $27
- addq $23, $27, $23
- cmpult $23, $27, $17
- addq $8, $17, $8
- stq $22, 32($16)
- bis $31, $31, $22
- mulq $4, $7, $24
- umulh $4, $7, $18
- addq $23, $24, $23
- cmpult $23, $24, $19
- addq $19, $18, $18
- addq $8, $18, $8
- cmpult $8, $18, $2
- addq $22, $2, $22
- mulq $6, $5, $25
- umulh $6, $5, $21
- addq $23, $25, $23
- cmpult $23, $25, $28
- addq $28, $21, $21
- addq $8, $21, $8
- cmpult $8, $21, $20
- addq $22, $20, $22
- stq $23, 40($16)
- bis $31, $31, $23
- mulq $6, $7, $0
- umulh $6, $7, $1
- addq $8, $0, $8
- cmpult $8, $0, $27
- addq $27, $1, $1
- addq $22, $1, $22
- cmpult $22, $1, $17
- addq $23, $17, $23
- stq $8, 48($16)
- stq $22, 56($16)
- ret $31,($26),1
- .end bn_mul_comba4
- .text
- .align 3
- .globl bn_mul_comba8
- .ent bn_mul_comba8
-bn_mul_comba8:
-bn_mul_comba8..ng:
- .frame $30,0,$26,0
- .prologue 0
- ldq $1, 0($17)
- ldq $2, 0($18)
- zapnot $1, 15, $7
- srl $2, 32, $8
- mulq $8, $7, $22
- srl $1, 32, $6
- zapnot $2, 15, $5
- mulq $5, $6, $4
- mulq $7, $5, $24
- addq $22, $4, $22
- cmpult $22, $4, $1
- mulq $6, $8, $3
- beq $1, $173
- bis $31, 1, $1
- sll $1, 32, $1
- addq $3, $1, $3
-$173:
- sll $22, 32, $4
- addq $24, $4, $24
- stq $24, 0($16)
- ldq $2, 0($17)
- ldq $1, 8($18)
- zapnot $2, 15, $7
- srl $1, 32, $8
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $0
- srl $2, 32, $6
- mulq $5, $6, $23
- mulq $6, $8, $6
- srl $22, 32, $1
- cmpult $24, $4, $2
- addq $3, $1, $3
- addq $2, $3, $22
- addq $25, $23, $25
- cmpult $25, $23, $1
- bis $31, 1, $2
- beq $1, $177
- sll $2, 32, $1
- addq $6, $1, $6
-$177:
- sll $25, 32, $23
- ldq $1, 0($18)
- addq $0, $23, $0
- bis $0, $0, $7
- ldq $3, 8($17)
- addq $22, $7, $22
- srl $1, 32, $8
- cmpult $22, $7, $4
- zapnot $3, 15, $7
- mulq $8, $7, $28
- zapnot $1, 15, $5
- mulq $7, $5, $21
- srl $25, 32, $1
- cmpult $0, $23, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $4, $6, $24
- srl $3, 32, $6
- mulq $5, $6, $2
- mulq $6, $8, $6
- addq $28, $2, $28
- cmpult $28, $2, $1
- bis $31, 1, $2
- beq $1, $181
- sll $2, 32, $1
- addq $6, $1, $6
-$181:
- sll $28, 32, $2
- addq $21, $2, $21
- bis $21, $21, $7
- addq $22, $7, $22
- stq $22, 8($16)
- ldq $3, 16($17)
- ldq $1, 0($18)
- cmpult $22, $7, $4
- zapnot $3, 15, $7
- srl $1, 32, $8
- mulq $8, $7, $22
- zapnot $1, 15, $5
- mulq $7, $5, $20
- srl $28, 32, $1
- cmpult $21, $2, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $4, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $23
- srl $3, 32, $6
- mulq $5, $6, $2
- mulq $6, $8, $6
- addq $22, $2, $22
- cmpult $22, $2, $1
- bis $31, 1, $2
- beq $1, $185
- sll $2, 32, $1
- addq $6, $1, $6
-$185:
- sll $22, 32, $2
- ldq $1, 8($18)
- addq $20, $2, $20
- bis $20, $20, $7
- ldq $4, 8($17)
- addq $24, $7, $24
- srl $1, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $0
- srl $22, 32, $1
- cmpult $20, $2, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $22
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $21
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $189
- sll $21, 32, $1
- addq $6, $1, $6
-$189:
- sll $25, 32, $5
- ldq $2, 16($18)
- addq $0, $5, $0
- bis $0, $0, $7
- ldq $4, 0($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $0, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $22, $22
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $193
- sll $21, 32, $1
- addq $6, $1, $6
-$193:
- sll $28, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $24, $7, $24
- stq $24, 16($16)
- ldq $4, 0($17)
- ldq $5, 24($18)
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $0
- srl $28, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $24
- mulq $7, $5, $2
- addq $1, $22, $22
- addq $0, $24, $0
- cmpult $0, $24, $1
- mulq $6, $8, $6
- beq $1, $197
- sll $21, 32, $1
- addq $6, $1, $6
-$197:
- sll $0, 32, $24
- ldq $1, 16($18)
- addq $2, $24, $2
- bis $2, $2, $7
- ldq $4, 8($17)
- addq $23, $7, $23
- srl $1, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $21
- srl $0, 32, $1
- cmpult $2, $24, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $24
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $20
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $201
- sll $20, 32, $1
- addq $6, $1, $6
-$201:
- sll $25, 32, $5
- ldq $2, 8($18)
- addq $21, $5, $21
- bis $21, $21, $7
- ldq $4, 16($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $21, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $205
- sll $20, 32, $1
- addq $6, $1, $6
-$205:
- sll $28, 32, $25
- ldq $2, 0($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 24($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $24, $24
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $209
- sll $20, 32, $1
- addq $6, $1, $6
-$209:
- sll $0, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $23, $7, $23
- stq $23, 24($16)
- ldq $4, 32($17)
- ldq $5, 0($18)
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $28
- srl $0, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $23
- mulq $7, $5, $2
- addq $1, $24, $24
- addq $28, $23, $28
- cmpult $28, $23, $1
- mulq $6, $8, $6
- beq $1, $213
- sll $20, 32, $1
- addq $6, $1, $6
-$213:
- sll $28, 32, $23
- ldq $1, 8($18)
- addq $2, $23, $2
- bis $2, $2, $7
- ldq $4, 24($17)
- addq $22, $7, $22
- srl $1, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $0
- srl $28, 32, $1
- cmpult $2, $23, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $23
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $21
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $217
- sll $21, 32, $1
- addq $6, $1, $6
-$217:
- sll $25, 32, $5
- ldq $2, 16($18)
- addq $0, $5, $0
- bis $0, $0, $7
- ldq $4, 16($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $0, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $221
- sll $21, 32, $1
- addq $6, $1, $6
-$221:
- sll $28, 32, $25
- ldq $2, 24($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 8($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $225
- sll $21, 32, $1
- addq $6, $1, $6
-$225:
- sll $0, 32, $25
- ldq $2, 32($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 0($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $23, $23
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $229
- sll $21, 32, $1
- addq $6, $1, $6
-$229:
- sll $28, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $22, $7, $22
- stq $22, 32($16)
- ldq $4, 0($17)
- ldq $5, 40($18)
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $0
- srl $28, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $22
- mulq $7, $5, $2
- addq $1, $23, $23
- addq $0, $22, $0
- cmpult $0, $22, $1
- mulq $6, $8, $6
- beq $1, $233
- sll $21, 32, $1
- addq $6, $1, $6
-$233:
- sll $0, 32, $22
- ldq $1, 32($18)
- addq $2, $22, $2
- bis $2, $2, $7
- ldq $4, 8($17)
- addq $24, $7, $24
- srl $1, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $21
- srl $0, 32, $1
- cmpult $2, $22, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $22
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $20
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $237
- sll $20, 32, $1
- addq $6, $1, $6
-$237:
- sll $25, 32, $5
- ldq $2, 24($18)
- addq $21, $5, $21
- bis $21, $21, $7
- ldq $4, 16($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $21, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $241
- sll $20, 32, $1
- addq $6, $1, $6
-$241:
- sll $28, 32, $25
- ldq $2, 16($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 24($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $245
- sll $20, 32, $1
- addq $6, $1, $6
-$245:
- sll $0, 32, $25
- ldq $2, 8($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 32($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $249
- sll $20, 32, $1
- addq $6, $1, $6
-$249:
- sll $28, 32, $25
- ldq $2, 0($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 40($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $22, $22
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $253
- sll $20, 32, $1
- addq $6, $1, $6
-$253:
- sll $0, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $24, $7, $24
- stq $24, 40($16)
- ldq $4, 48($17)
- ldq $5, 0($18)
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $28
- srl $0, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $24
- mulq $7, $5, $2
- addq $1, $22, $22
- addq $28, $24, $28
- cmpult $28, $24, $1
- mulq $6, $8, $6
- beq $1, $257
- sll $20, 32, $1
- addq $6, $1, $6
-$257:
- sll $28, 32, $24
- ldq $1, 8($18)
- addq $2, $24, $2
- bis $2, $2, $7
- ldq $4, 40($17)
- addq $23, $7, $23
- srl $1, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $0
- srl $28, 32, $1
- cmpult $2, $24, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $24
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $21
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $261
- sll $21, 32, $1
- addq $6, $1, $6
-$261:
- sll $25, 32, $5
- ldq $2, 16($18)
- addq $0, $5, $0
- bis $0, $0, $7
- ldq $4, 32($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $0, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $265
- sll $21, 32, $1
- addq $6, $1, $6
-$265:
- sll $28, 32, $25
- ldq $2, 24($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 24($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $269
- sll $21, 32, $1
- addq $6, $1, $6
-$269:
- sll $0, 32, $25
- ldq $2, 32($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 16($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $273
- sll $21, 32, $1
- addq $6, $1, $6
-$273:
- sll $28, 32, $25
- ldq $2, 40($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 8($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $277
- sll $21, 32, $1
- addq $6, $1, $6
-$277:
- sll $0, 32, $25
- ldq $2, 48($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 0($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $24, $24
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $281
- sll $21, 32, $1
- addq $6, $1, $6
-$281:
- sll $28, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $23, $7, $23
- stq $23, 48($16)
- ldq $4, 0($17)
- ldq $5, 56($18)
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $0
- srl $28, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $23
- mulq $7, $5, $2
- addq $1, $24, $24
- addq $0, $23, $0
- cmpult $0, $23, $1
- mulq $6, $8, $6
- beq $1, $285
- sll $21, 32, $1
- addq $6, $1, $6
-$285:
- sll $0, 32, $23
- ldq $1, 48($18)
- addq $2, $23, $2
- bis $2, $2, $7
- ldq $4, 8($17)
- addq $22, $7, $22
- srl $1, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $21
- srl $0, 32, $1
- cmpult $2, $23, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $23
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $20
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $289
- sll $20, 32, $1
- addq $6, $1, $6
-$289:
- sll $25, 32, $5
- ldq $2, 40($18)
- addq $21, $5, $21
- bis $21, $21, $7
- ldq $4, 16($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $21, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $293
- sll $20, 32, $1
- addq $6, $1, $6
-$293:
- sll $28, 32, $25
- ldq $2, 32($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 24($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $297
- sll $20, 32, $1
- addq $6, $1, $6
-$297:
- sll $0, 32, $25
- ldq $2, 24($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 32($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $301
- sll $20, 32, $1
- addq $6, $1, $6
-$301:
- sll $28, 32, $25
- ldq $2, 16($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 40($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $305
- sll $20, 32, $1
- addq $6, $1, $6
-$305:
- sll $0, 32, $25
- ldq $2, 8($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 48($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $309
- sll $20, 32, $1
- addq $6, $1, $6
-$309:
- sll $28, 32, $25
- ldq $2, 0($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 56($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $23, $23
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $313
- sll $20, 32, $1
- addq $6, $1, $6
-$313:
- sll $0, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $22, $7, $22
- stq $22, 56($16)
- ldq $4, 56($17)
- ldq $5, 8($18)
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $28
- srl $0, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $22
- mulq $7, $5, $2
- addq $1, $23, $23
- addq $28, $22, $28
- cmpult $28, $22, $1
- mulq $6, $8, $6
- beq $1, $317
- sll $20, 32, $1
- addq $6, $1, $6
-$317:
- sll $28, 32, $22
- ldq $1, 16($18)
- addq $2, $22, $2
- bis $2, $2, $7
- ldq $4, 48($17)
- addq $24, $7, $24
- srl $1, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $0
- srl $28, 32, $1
- cmpult $2, $22, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $22
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $21
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $321
- sll $21, 32, $1
- addq $6, $1, $6
-$321:
- sll $25, 32, $5
- ldq $2, 24($18)
- addq $0, $5, $0
- bis $0, $0, $7
- ldq $4, 40($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $0, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $325
- sll $21, 32, $1
- addq $6, $1, $6
-$325:
- sll $28, 32, $25
- ldq $2, 32($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 32($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $329
- sll $21, 32, $1
- addq $6, $1, $6
-$329:
- sll $0, 32, $25
- ldq $2, 40($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 24($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $333
- sll $21, 32, $1
- addq $6, $1, $6
-$333:
- sll $28, 32, $25
- ldq $2, 48($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 16($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $337
- sll $21, 32, $1
- addq $6, $1, $6
-$337:
- sll $0, 32, $25
- ldq $2, 56($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 8($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $22, $22
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $341
- sll $21, 32, $1
- addq $6, $1, $6
-$341:
- sll $28, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $24, $7, $24
- stq $24, 64($16)
- ldq $4, 16($17)
- ldq $5, 56($18)
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $0
- srl $28, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $24
- mulq $7, $5, $2
- addq $1, $22, $22
- addq $0, $24, $0
- cmpult $0, $24, $1
- mulq $6, $8, $6
- beq $1, $345
- sll $21, 32, $1
- addq $6, $1, $6
-$345:
- sll $0, 32, $24
- ldq $1, 48($18)
- addq $2, $24, $2
- bis $2, $2, $7
- ldq $4, 24($17)
- addq $23, $7, $23
- srl $1, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $21
- srl $0, 32, $1
- cmpult $2, $24, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $24
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $20
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $349
- sll $20, 32, $1
- addq $6, $1, $6
-$349:
- sll $25, 32, $5
- ldq $2, 40($18)
- addq $21, $5, $21
- bis $21, $21, $7
- ldq $4, 32($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $21, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $353
- sll $20, 32, $1
- addq $6, $1, $6
-$353:
- sll $28, 32, $25
- ldq $2, 32($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 40($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $357
- sll $20, 32, $1
- addq $6, $1, $6
-$357:
- sll $0, 32, $25
- ldq $2, 24($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 48($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $361
- sll $20, 32, $1
- addq $6, $1, $6
-$361:
- sll $28, 32, $25
- ldq $2, 16($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 56($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $24, $24
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $365
- sll $20, 32, $1
- addq $6, $1, $6
-$365:
- sll $0, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $23, $7, $23
- stq $23, 72($16)
- ldq $4, 56($17)
- ldq $5, 24($18)
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $28
- srl $0, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $23
- mulq $7, $5, $2
- addq $1, $24, $24
- addq $28, $23, $28
- cmpult $28, $23, $1
- mulq $6, $8, $6
- beq $1, $369
- sll $20, 32, $1
- addq $6, $1, $6
-$369:
- sll $28, 32, $23
- ldq $1, 32($18)
- addq $2, $23, $2
- bis $2, $2, $7
- ldq $4, 48($17)
- addq $22, $7, $22
- srl $1, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $0
- srl $28, 32, $1
- cmpult $2, $23, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $23
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $21
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $373
- sll $21, 32, $1
- addq $6, $1, $6
-$373:
- sll $25, 32, $5
- ldq $2, 40($18)
- addq $0, $5, $0
- bis $0, $0, $7
- ldq $4, 40($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $0, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $377
- sll $21, 32, $1
- addq $6, $1, $6
-$377:
- sll $28, 32, $25
- ldq $2, 48($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 32($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $23, $23
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $381
- sll $21, 32, $1
- addq $6, $1, $6
-$381:
- sll $0, 32, $25
- ldq $2, 56($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 24($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $23, $23
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $385
- sll $21, 32, $1
- addq $6, $1, $6
-$385:
- sll $28, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $22, $7, $22
- stq $22, 80($16)
- ldq $4, 32($17)
- ldq $5, 56($18)
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $0
- srl $28, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $22
- mulq $7, $5, $2
- addq $1, $23, $23
- addq $0, $22, $0
- cmpult $0, $22, $1
- mulq $6, $8, $6
- beq $1, $389
- sll $21, 32, $1
- addq $6, $1, $6
-$389:
- sll $0, 32, $22
- ldq $1, 48($18)
- addq $2, $22, $2
- bis $2, $2, $7
- ldq $4, 40($17)
- addq $24, $7, $24
- srl $1, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $25
- zapnot $1, 15, $5
- mulq $7, $5, $21
- srl $0, 32, $1
- cmpult $2, $22, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $22
- srl $4, 32, $6
- mulq $5, $6, $5
- bis $31, 1, $20
- addq $25, $5, $25
- cmpult $25, $5, $1
- mulq $6, $8, $6
- beq $1, $393
- sll $20, 32, $1
- addq $6, $1, $6
-$393:
- sll $25, 32, $5
- ldq $2, 40($18)
- addq $21, $5, $21
- bis $21, $21, $7
- ldq $4, 48($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $25, 32, $1
- addq $6, $1, $6
- cmpult $21, $5, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $397
- sll $20, 32, $1
- addq $6, $1, $6
-$397:
- sll $28, 32, $25
- ldq $2, 32($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 56($17)
- addq $24, $7, $24
- srl $2, 32, $8
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $21
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $22, $22
- addq $21, $25, $21
- cmpult $21, $25, $1
- mulq $6, $8, $6
- beq $1, $401
- sll $20, 32, $1
- addq $6, $1, $6
-$401:
- sll $21, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $24, $7, $24
- stq $24, 88($16)
- ldq $4, 56($17)
- ldq $5, 40($18)
- cmpult $24, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $0
- srl $21, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $23, $6, $23
- cmpult $23, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $24
- mulq $7, $5, $5
- addq $1, $22, $22
- addq $0, $24, $0
- cmpult $0, $24, $1
- mulq $6, $8, $6
- beq $1, $405
- sll $20, 32, $1
- addq $6, $1, $6
-$405:
- sll $0, 32, $24
- ldq $2, 48($18)
- addq $5, $24, $5
- bis $5, $5, $7
- ldq $4, 48($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $28
- srl $0, 32, $1
- addq $6, $1, $6
- cmpult $5, $24, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $24
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $5
- addq $28, $25, $28
- cmpult $28, $25, $1
- mulq $6, $8, $6
- beq $1, $409
- sll $20, 32, $1
- addq $6, $1, $6
-$409:
- sll $28, 32, $25
- ldq $2, 56($18)
- addq $5, $25, $5
- bis $5, $5, $7
- ldq $4, 40($17)
- addq $23, $7, $23
- srl $2, 32, $8
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $25, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $1, $24, $24
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $413
- sll $20, 32, $1
- addq $6, $1, $6
-$413:
- sll $0, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $23, $7, $23
- stq $23, 96($16)
- ldq $4, 48($17)
- ldq $5, 56($18)
- cmpult $23, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $28
- srl $0, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $22, $6, $22
- cmpult $22, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $23
- mulq $7, $5, $5
- addq $1, $24, $24
- addq $28, $23, $28
- cmpult $28, $23, $1
- mulq $6, $8, $6
- beq $1, $417
- sll $20, 32, $1
- addq $6, $1, $6
-$417:
- sll $28, 32, $23
- ldq $2, 48($18)
- addq $5, $23, $5
- bis $5, $5, $7
- ldq $4, 56($17)
- addq $22, $7, $22
- srl $2, 32, $8
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- mulq $8, $7, $0
- srl $28, 32, $1
- addq $6, $1, $6
- cmpult $5, $23, $1
- zapnot $2, 15, $5
- addq $1, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $23
- srl $4, 32, $6
- mulq $5, $6, $25
- mulq $7, $5, $2
- addq $0, $25, $0
- cmpult $0, $25, $1
- mulq $6, $8, $6
- beq $1, $421
- sll $20, 32, $1
- addq $6, $1, $6
-$421:
- sll $0, 32, $25
- addq $2, $25, $2
- bis $2, $2, $7
- addq $22, $7, $22
- stq $22, 104($16)
- ldq $4, 56($17)
- ldq $5, 56($18)
- cmpult $22, $7, $3
- zapnot $4, 15, $7
- srl $5, 32, $8
- mulq $8, $7, $28
- srl $0, 32, $1
- cmpult $2, $25, $2
- addq $6, $1, $6
- addq $2, $6, $6
- addq $3, $6, $6
- addq $24, $6, $24
- cmpult $24, $6, $1
- srl $4, 32, $6
- zapnot $5, 15, $5
- mulq $5, $6, $22
- mulq $7, $5, $2
- addq $1, $23, $23
- addq $28, $22, $28
- cmpult $28, $22, $1
- mulq $6, $8, $3
- beq $1, $425
- sll $20, 32, $1
- addq $3, $1, $3
-$425:
- sll $28, 32, $22
- srl $28, 32, $1
- addq $2, $22, $2
- addq $3, $1, $3
- bis $2, $2, $7
- addq $24, $7, $24
- cmpult $7, $22, $1
- cmpult $24, $7, $2
- addq $1, $3, $6
- addq $2, $6, $6
- stq $24, 112($16)
- addq $23, $6, $23
- stq $23, 120($16)
- ret $31, ($26), 1
- .end bn_mul_comba8
- .text
- .align 3
- .globl bn_sqr_comba4
- .ent bn_sqr_comba4
-bn_sqr_comba4:
-bn_sqr_comba4..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- ldq $0, 0($17)
- ldq $1, 8($17)
- ldq $2, 16($17)
- ldq $3, 24($17)
- bis $31, $31, $6
- mulq $0, $0, $4
- umulh $0, $0, $5
- stq $4, 0($16)
- bis $31, $31, $4
- mulq $0, $1, $7
- umulh $0, $1, $8
- cmplt $7, $31, $22
- cmplt $8, $31, $23
- addq $7, $7, $7
- addq $8, $8, $8
- addq $8, $22, $8
- addq $4, $23, $4
- addq $5, $7, $5
- addq $6, $8, $6
- cmpult $5, $7, $24
- cmpult $6, $8, $25
- addq $6, $24, $6
- addq $4, $25, $4
- stq $5, 8($16)
- bis $31, $31, $5
- mulq $1, $1, $27
- umulh $1, $1, $28
- addq $6, $27, $6
- addq $4, $28, $4
- cmpult $6, $27, $21
- cmpult $4, $28, $20
- addq $4, $21, $4
- addq $5, $20, $5
- mulq $2, $0, $19
- umulh $2, $0, $18
- cmplt $19, $31, $17
- cmplt $18, $31, $22
- addq $19, $19, $19
- addq $18, $18, $18
- addq $18, $17, $18
- addq $5, $22, $5
- addq $6, $19, $6
- addq $4, $18, $4
- cmpult $6, $19, $23
- cmpult $4, $18, $7
- addq $4, $23, $4
- addq $5, $7, $5
- stq $6, 16($16)
- bis $31, $31, $6
- mulq $3, $0, $8
- umulh $3, $0, $24
- cmplt $8, $31, $25
- cmplt $24, $31, $27
- addq $8, $8, $8
- addq $24, $24, $24
- addq $24, $25, $24
- addq $6, $27, $6
- addq $4, $8, $4
- addq $5, $24, $5
- cmpult $4, $8, $28
- cmpult $5, $24, $21
- addq $5, $28, $5
- addq $6, $21, $6
- mulq $2, $1, $20
- umulh $2, $1, $17
- cmplt $20, $31, $22
- cmplt $17, $31, $19
- addq $20, $20, $20
- addq $17, $17, $17
- addq $17, $22, $17
- addq $6, $19, $6
- addq $4, $20, $4
- addq $5, $17, $5
- cmpult $4, $20, $18
- cmpult $5, $17, $23
- addq $5, $18, $5
- addq $6, $23, $6
- stq $4, 24($16)
- bis $31, $31, $4
- mulq $2, $2, $7
- umulh $2, $2, $25
- addq $5, $7, $5
- addq $6, $25, $6
- cmpult $5, $7, $27
- cmpult $6, $25, $8
- addq $6, $27, $6
- addq $4, $8, $4
- mulq $3, $1, $24
- umulh $3, $1, $28
- cmplt $24, $31, $21
- cmplt $28, $31, $22
- addq $24, $24, $24
- addq $28, $28, $28
- addq $28, $21, $28
- addq $4, $22, $4
- addq $5, $24, $5
- addq $6, $28, $6
- cmpult $5, $24, $19
- cmpult $6, $28, $20
- addq $6, $19, $6
- addq $4, $20, $4
- stq $5, 32($16)
- bis $31, $31, $5
- mulq $3, $2, $17
- umulh $3, $2, $18
- cmplt $17, $31, $23
- cmplt $18, $31, $7
- addq $17, $17, $17
- addq $18, $18, $18
- addq $18, $23, $18
- addq $5, $7, $5
- addq $6, $17, $6
- addq $4, $18, $4
- cmpult $6, $17, $25
- cmpult $4, $18, $27
- addq $4, $25, $4
- addq $5, $27, $5
- stq $6, 40($16)
- bis $31, $31, $6
- mulq $3, $3, $8
- umulh $3, $3, $21
- addq $4, $8, $4
- addq $5, $21, $5
- cmpult $4, $8, $22
- cmpult $5, $21, $24
- addq $5, $22, $5
- addq $6, $24, $6
- stq $4, 48($16)
- stq $5, 56($16)
- ret $31,($26),1
- .end bn_sqr_comba4
- .text
- .align 3
- .globl bn_sqr_comba8
- .ent bn_sqr_comba8
-bn_sqr_comba8:
-bn_sqr_comba8..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- ldq $0, 0($17)
- ldq $1, 8($17)
- ldq $2, 16($17)
- ldq $3, 24($17)
- ldq $4, 32($17)
- ldq $5, 40($17)
- ldq $6, 48($17)
- ldq $7, 56($17)
- bis $31, $31, $23
- mulq $0, $0, $8
- umulh $0, $0, $22
- stq $8, 0($16)
- bis $31, $31, $8
- mulq $1, $0, $24
- umulh $1, $0, $25
- cmplt $24, $31, $27
- cmplt $25, $31, $28
- addq $24, $24, $24
- addq $25, $25, $25
- addq $25, $27, $25
- addq $8, $28, $8
- addq $22, $24, $22
- addq $23, $25, $23
- cmpult $22, $24, $21
- cmpult $23, $25, $20
- addq $23, $21, $23
- addq $8, $20, $8
- stq $22, 8($16)
- bis $31, $31, $22
- mulq $1, $1, $19
- umulh $1, $1, $18
- addq $23, $19, $23
- addq $8, $18, $8
- cmpult $23, $19, $17
- cmpult $8, $18, $27
- addq $8, $17, $8
- addq $22, $27, $22
- mulq $2, $0, $28
- umulh $2, $0, $24
- cmplt $28, $31, $25
- cmplt $24, $31, $21
- addq $28, $28, $28
- addq $24, $24, $24
- addq $24, $25, $24
- addq $22, $21, $22
- addq $23, $28, $23
- addq $8, $24, $8
- cmpult $23, $28, $20
- cmpult $8, $24, $19
- addq $8, $20, $8
- addq $22, $19, $22
- stq $23, 16($16)
- bis $31, $31, $23
- mulq $2, $1, $18
- umulh $2, $1, $17
- cmplt $18, $31, $27
- cmplt $17, $31, $25
- addq $18, $18, $18
- addq $17, $17, $17
- addq $17, $27, $17
- addq $23, $25, $23
- addq $8, $18, $8
- addq $22, $17, $22
- cmpult $8, $18, $21
- cmpult $22, $17, $28
- addq $22, $21, $22
- addq $23, $28, $23
- mulq $3, $0, $24
- umulh $3, $0, $20
- cmplt $24, $31, $19
- cmplt $20, $31, $27
- addq $24, $24, $24
- addq $20, $20, $20
- addq $20, $19, $20
- addq $23, $27, $23
- addq $8, $24, $8
- addq $22, $20, $22
- cmpult $8, $24, $25
- cmpult $22, $20, $18
- addq $22, $25, $22
- addq $23, $18, $23
- stq $8, 24($16)
- bis $31, $31, $8
- mulq $2, $2, $17
- umulh $2, $2, $21
- addq $22, $17, $22
- addq $23, $21, $23
- cmpult $22, $17, $28
- cmpult $23, $21, $19
- addq $23, $28, $23
- addq $8, $19, $8
- mulq $3, $1, $27
- umulh $3, $1, $24
- cmplt $27, $31, $20
- cmplt $24, $31, $25
- addq $27, $27, $27
- addq $24, $24, $24
- addq $24, $20, $24
- addq $8, $25, $8
- addq $22, $27, $22
- addq $23, $24, $23
- cmpult $22, $27, $18
- cmpult $23, $24, $17
- addq $23, $18, $23
- addq $8, $17, $8
- mulq $4, $0, $21
- umulh $4, $0, $28
- cmplt $21, $31, $19
- cmplt $28, $31, $20
- addq $21, $21, $21
- addq $28, $28, $28
- addq $28, $19, $28
- addq $8, $20, $8
- addq $22, $21, $22
- addq $23, $28, $23
- cmpult $22, $21, $25
- cmpult $23, $28, $27
- addq $23, $25, $23
- addq $8, $27, $8
- stq $22, 32($16)
- bis $31, $31, $22
- mulq $3, $2, $24
- umulh $3, $2, $18
- cmplt $24, $31, $17
- cmplt $18, $31, $19
- addq $24, $24, $24
- addq $18, $18, $18
- addq $18, $17, $18
- addq $22, $19, $22
- addq $23, $24, $23
- addq $8, $18, $8
- cmpult $23, $24, $20
- cmpult $8, $18, $21
- addq $8, $20, $8
- addq $22, $21, $22
- mulq $4, $1, $28
- umulh $4, $1, $25
- cmplt $28, $31, $27
- cmplt $25, $31, $17
- addq $28, $28, $28
- addq $25, $25, $25
- addq $25, $27, $25
- addq $22, $17, $22
- addq $23, $28, $23
- addq $8, $25, $8
- cmpult $23, $28, $19
- cmpult $8, $25, $24
- addq $8, $19, $8
- addq $22, $24, $22
- mulq $5, $0, $18
- umulh $5, $0, $20
- cmplt $18, $31, $21
- cmplt $20, $31, $27
- addq $18, $18, $18
- addq $20, $20, $20
- addq $20, $21, $20
- addq $22, $27, $22
- addq $23, $18, $23
- addq $8, $20, $8
- cmpult $23, $18, $17
- cmpult $8, $20, $28
- addq $8, $17, $8
- addq $22, $28, $22
- stq $23, 40($16)
- bis $31, $31, $23
- mulq $3, $3, $25
- umulh $3, $3, $19
- addq $8, $25, $8
- addq $22, $19, $22
- cmpult $8, $25, $24
- cmpult $22, $19, $21
- addq $22, $24, $22
- addq $23, $21, $23
- mulq $4, $2, $27
- umulh $4, $2, $18
- cmplt $27, $31, $20
- cmplt $18, $31, $17
- addq $27, $27, $27
- addq $18, $18, $18
- addq $18, $20, $18
- addq $23, $17, $23
- addq $8, $27, $8
- addq $22, $18, $22
- cmpult $8, $27, $28
- cmpult $22, $18, $25
- addq $22, $28, $22
- addq $23, $25, $23
- mulq $5, $1, $19
- umulh $5, $1, $24
- cmplt $19, $31, $21
- cmplt $24, $31, $20
- addq $19, $19, $19
- addq $24, $24, $24
- addq $24, $21, $24
- addq $23, $20, $23
- addq $8, $19, $8
- addq $22, $24, $22
- cmpult $8, $19, $17
- cmpult $22, $24, $27
- addq $22, $17, $22
- addq $23, $27, $23
- mulq $6, $0, $18
- umulh $6, $0, $28
- cmplt $18, $31, $25
- cmplt $28, $31, $21
- addq $18, $18, $18
- addq $28, $28, $28
- addq $28, $25, $28
- addq $23, $21, $23
- addq $8, $18, $8
- addq $22, $28, $22
- cmpult $8, $18, $20
- cmpult $22, $28, $19
- addq $22, $20, $22
- addq $23, $19, $23
- stq $8, 48($16)
- bis $31, $31, $8
- mulq $4, $3, $24
- umulh $4, $3, $17
- cmplt $24, $31, $27
- cmplt $17, $31, $25
- addq $24, $24, $24
- addq $17, $17, $17
- addq $17, $27, $17
- addq $8, $25, $8
- addq $22, $24, $22
- addq $23, $17, $23
- cmpult $22, $24, $21
- cmpult $23, $17, $18
- addq $23, $21, $23
- addq $8, $18, $8
- mulq $5, $2, $28
- umulh $5, $2, $20
- cmplt $28, $31, $19
- cmplt $20, $31, $27
- addq $28, $28, $28
- addq $20, $20, $20
- addq $20, $19, $20
- addq $8, $27, $8
- addq $22, $28, $22
- addq $23, $20, $23
- cmpult $22, $28, $25
- cmpult $23, $20, $24
- addq $23, $25, $23
- addq $8, $24, $8
- mulq $6, $1, $17
- umulh $6, $1, $21
- cmplt $17, $31, $18
- cmplt $21, $31, $19
- addq $17, $17, $17
- addq $21, $21, $21
- addq $21, $18, $21
- addq $8, $19, $8
- addq $22, $17, $22
- addq $23, $21, $23
- cmpult $22, $17, $27
- cmpult $23, $21, $28
- addq $23, $27, $23
- addq $8, $28, $8
- mulq $7, $0, $20
- umulh $7, $0, $25
- cmplt $20, $31, $24
- cmplt $25, $31, $18
- addq $20, $20, $20
- addq $25, $25, $25
- addq $25, $24, $25
- addq $8, $18, $8
- addq $22, $20, $22
- addq $23, $25, $23
- cmpult $22, $20, $19
- cmpult $23, $25, $17
- addq $23, $19, $23
- addq $8, $17, $8
- stq $22, 56($16)
- bis $31, $31, $22
- mulq $4, $4, $21
- umulh $4, $4, $27
- addq $23, $21, $23
- addq $8, $27, $8
- cmpult $23, $21, $28
- cmpult $8, $27, $24
- addq $8, $28, $8
- addq $22, $24, $22
- mulq $5, $3, $18
- umulh $5, $3, $20
- cmplt $18, $31, $25
- cmplt $20, $31, $19
- addq $18, $18, $18
- addq $20, $20, $20
- addq $20, $25, $20
- addq $22, $19, $22
- addq $23, $18, $23
- addq $8, $20, $8
- cmpult $23, $18, $17
- cmpult $8, $20, $21
- addq $8, $17, $8
- addq $22, $21, $22
- mulq $6, $2, $27
- umulh $6, $2, $28
- cmplt $27, $31, $24
- cmplt $28, $31, $25
- addq $27, $27, $27
- addq $28, $28, $28
- addq $28, $24, $28
- addq $22, $25, $22
- addq $23, $27, $23
- addq $8, $28, $8
- cmpult $23, $27, $19
- cmpult $8, $28, $18
- addq $8, $19, $8
- addq $22, $18, $22
- mulq $7, $1, $20
- umulh $7, $1, $17
- cmplt $20, $31, $21
- cmplt $17, $31, $24
- addq $20, $20, $20
- addq $17, $17, $17
- addq $17, $21, $17
- addq $22, $24, $22
- addq $23, $20, $23
- addq $8, $17, $8
- cmpult $23, $20, $25
- cmpult $8, $17, $27
- addq $8, $25, $8
- addq $22, $27, $22
- stq $23, 64($16)
- bis $31, $31, $23
- mulq $5, $4, $28
- umulh $5, $4, $19
- cmplt $28, $31, $18
- cmplt $19, $31, $21
- addq $28, $28, $28
- addq $19, $19, $19
- addq $19, $18, $19
- addq $23, $21, $23
- addq $8, $28, $8
- addq $22, $19, $22
- cmpult $8, $28, $24
- cmpult $22, $19, $20
- addq $22, $24, $22
- addq $23, $20, $23
- mulq $6, $3, $17
- umulh $6, $3, $25
- cmplt $17, $31, $27
- cmplt $25, $31, $18
- addq $17, $17, $17
- addq $25, $25, $25
- addq $25, $27, $25
- addq $23, $18, $23
- addq $8, $17, $8
- addq $22, $25, $22
- cmpult $8, $17, $21
- cmpult $22, $25, $28
- addq $22, $21, $22
- addq $23, $28, $23
- mulq $7, $2, $19
- umulh $7, $2, $24
- cmplt $19, $31, $20
- cmplt $24, $31, $27
- addq $19, $19, $19
- addq $24, $24, $24
- addq $24, $20, $24
- addq $23, $27, $23
- addq $8, $19, $8
- addq $22, $24, $22
- cmpult $8, $19, $18
- cmpult $22, $24, $17
- addq $22, $18, $22
- addq $23, $17, $23
- stq $8, 72($16)
- bis $31, $31, $8
- mulq $5, $5, $25
- umulh $5, $5, $21
- addq $22, $25, $22
- addq $23, $21, $23
- cmpult $22, $25, $28
- cmpult $23, $21, $20
- addq $23, $28, $23
- addq $8, $20, $8
- mulq $6, $4, $27
- umulh $6, $4, $19
- cmplt $27, $31, $24
- cmplt $19, $31, $18
- addq $27, $27, $27
- addq $19, $19, $19
- addq $19, $24, $19
- addq $8, $18, $8
- addq $22, $27, $22
- addq $23, $19, $23
- cmpult $22, $27, $17
- cmpult $23, $19, $25
- addq $23, $17, $23
- addq $8, $25, $8
- mulq $7, $3, $21
- umulh $7, $3, $28
- cmplt $21, $31, $20
- cmplt $28, $31, $24
- addq $21, $21, $21
- addq $28, $28, $28
- addq $28, $20, $28
- addq $8, $24, $8
- addq $22, $21, $22
- addq $23, $28, $23
- cmpult $22, $21, $18
- cmpult $23, $28, $27
- addq $23, $18, $23
- addq $8, $27, $8
- stq $22, 80($16)
- bis $31, $31, $22
- mulq $6, $5, $19
- umulh $6, $5, $17
- cmplt $19, $31, $25
- cmplt $17, $31, $20
- addq $19, $19, $19
- addq $17, $17, $17
- addq $17, $25, $17
- addq $22, $20, $22
- addq $23, $19, $23
- addq $8, $17, $8
- cmpult $23, $19, $24
- cmpult $8, $17, $21
- addq $8, $24, $8
- addq $22, $21, $22
- mulq $7, $4, $28
- umulh $7, $4, $18
- cmplt $28, $31, $27
- cmplt $18, $31, $25
- addq $28, $28, $28
- addq $18, $18, $18
- addq $18, $27, $18
- addq $22, $25, $22
- addq $23, $28, $23
- addq $8, $18, $8
- cmpult $23, $28, $20
- cmpult $8, $18, $19
- addq $8, $20, $8
- addq $22, $19, $22
- stq $23, 88($16)
- bis $31, $31, $23
- mulq $6, $6, $17
- umulh $6, $6, $24
- addq $8, $17, $8
- addq $22, $24, $22
- cmpult $8, $17, $21
- cmpult $22, $24, $27
- addq $22, $21, $22
- addq $23, $27, $23
- mulq $7, $5, $25
- umulh $7, $5, $28
- cmplt $25, $31, $18
- cmplt $28, $31, $20
- addq $25, $25, $25
- addq $28, $28, $28
- addq $28, $18, $28
- addq $23, $20, $23
- addq $8, $25, $8
- addq $22, $28, $22
- cmpult $8, $25, $19
- cmpult $22, $28, $17
- addq $22, $19, $22
- addq $23, $17, $23
- stq $8, 96($16)
- bis $31, $31, $8
- mulq $7, $6, $24
- umulh $7, $6, $21
- cmplt $24, $31, $27
- cmplt $21, $31, $18
- addq $24, $24, $24
- addq $21, $21, $21
- addq $21, $27, $21
- addq $8, $18, $8
- addq $22, $24, $22
- addq $23, $21, $23
- cmpult $22, $24, $20
- cmpult $23, $21, $25
- addq $23, $20, $23
- addq $8, $25, $8
- stq $22, 104($16)
- bis $31, $31, $22
- mulq $7, $7, $28
- umulh $7, $7, $19
- addq $23, $28, $23
- addq $8, $19, $8
- cmpult $23, $28, $17
- cmpult $8, $19, $27
- addq $8, $17, $8
- addq $22, $27, $22
- stq $23, 112($16)
- stq $8, 120($16)
- ret $31,($26),1
- .end bn_sqr_comba8
diff --git a/crypto/bn/asm/alpha.s.works b/crypto/bn/asm/alpha.s.works
deleted file mode 100644
index ee6c587809..0000000000
--- a/crypto/bn/asm/alpha.s.works
+++ /dev/null
@@ -1,533 +0,0 @@
-
- # DEC Alpha assember
- # The bn_div64 is actually gcc output but the other parts are hand done.
- # Thanks to tzeruch@ceddec.com for sending me the gcc output for
- # bn_div64.
- # I've gone back and re-done most of routines.
- # The key thing to remeber for the 164 CPU is that while a
- # multiply operation takes 8 cycles, another one can only be issued
- # after 4 cycles have elapsed. I've done modification to help
- # improve this. Also, normally, a ld instruction will not be available
- # for about 3 cycles.
- .file 1 "bn_asm.c"
- .set noat
-gcc2_compiled.:
-__gnu_compiled_c:
- .text
- .align 3
- .globl bn_mul_add_words
- .ent bn_mul_add_words
-bn_mul_add_words:
-bn_mul_add_words..ng:
- .frame $30,0,$26,0
- .prologue 0
- .align 5
- subq $18,4,$18
- bis $31,$31,$0
- blt $18,$43 # if we are -1, -2, -3 or -4 goto tail code
- ldq $20,0($17) # 1 1
- ldq $1,0($16) # 1 1
- .align 3
-$42:
- mulq $20,$19,$5 # 1 2 1 ######
- ldq $21,8($17) # 2 1
- ldq $2,8($16) # 2 1
- umulh $20,$19,$20 # 1 2 ######
- ldq $27,16($17) # 3 1
- ldq $3,16($16) # 3 1
- mulq $21,$19,$6 # 2 2 1 ######
- ldq $28,24($17) # 4 1
- addq $1,$5,$1 # 1 2 2
- ldq $4,24($16) # 4 1
- umulh $21,$19,$21 # 2 2 ######
- cmpult $1,$5,$22 # 1 2 3 1
- addq $20,$22,$20 # 1 3 1
- addq $1,$0,$1 # 1 2 3 1
- mulq $27,$19,$7 # 3 2 1 ######
- cmpult $1,$0,$0 # 1 2 3 2
- addq $2,$6,$2 # 2 2 2
- addq $20,$0,$0 # 1 3 2
- cmpult $2,$6,$23 # 2 2 3 1
- addq $21,$23,$21 # 2 3 1
- umulh $27,$19,$27 # 3 2 ######
- addq $2,$0,$2 # 2 2 3 1
- cmpult $2,$0,$0 # 2 2 3 2
- subq $18,4,$18
- mulq $28,$19,$8 # 4 2 1 ######
- addq $21,$0,$0 # 2 3 2
- addq $3,$7,$3 # 3 2 2
- addq $16,32,$16
- cmpult $3,$7,$24 # 3 2 3 1
- stq $1,-32($16) # 1 2 4
- umulh $28,$19,$28 # 4 2 ######
- addq $27,$24,$27 # 3 3 1
- addq $3,$0,$3 # 3 2 3 1
- stq $2,-24($16) # 2 2 4
- cmpult $3,$0,$0 # 3 2 3 2
- stq $3,-16($16) # 3 2 4
- addq $4,$8,$4 # 4 2 2
- addq $27,$0,$0 # 3 3 2
- cmpult $4,$8,$25 # 4 2 3 1
- addq $17,32,$17
- addq $28,$25,$28 # 4 3 1
- addq $4,$0,$4 # 4 2 3 1
- cmpult $4,$0,$0 # 4 2 3 2
- stq $4,-8($16) # 4 2 4
- addq $28,$0,$0 # 4 3 2
- blt $18,$43
-
- ldq $20,0($17) # 1 1
- ldq $1,0($16) # 1 1
-
- br $42
-
- .align 4
-$45:
- ldq $20,0($17) # 4 1
- ldq $1,0($16) # 4 1
- mulq $20,$19,$5 # 4 2 1
- subq $18,1,$18
- addq $16,8,$16
- addq $17,8,$17
- umulh $20,$19,$20 # 4 2
- addq $1,$5,$1 # 4 2 2
- cmpult $1,$5,$22 # 4 2 3 1
- addq $20,$22,$20 # 4 3 1
- addq $1,$0,$1 # 4 2 3 1
- cmpult $1,$0,$0 # 4 2 3 2
- addq $20,$0,$0 # 4 3 2
- stq $1,-8($16) # 4 2 4
- bgt $18,$45
- ret $31,($26),1 # else exit
-
- .align 4
-$43:
- addq $18,4,$18
- bgt $18,$45 # goto tail code
- ret $31,($26),1 # else exit
-
- .end bn_mul_add_words
- .align 3
- .globl bn_mul_words
- .ent bn_mul_words
-bn_mul_words:
-bn_mul_words..ng:
- .frame $30,0,$26,0
- .prologue 0
- .align 5
- subq $18,4,$18
- bis $31,$31,$0
- blt $18,$143 # if we are -1, -2, -3 or -4 goto tail code
- ldq $20,0($17) # 1 1
- .align 3
-$142:
-
- mulq $20,$19,$5 # 1 2 1 #####
- ldq $21,8($17) # 2 1
- ldq $27,16($17) # 3 1
- umulh $20,$19,$20 # 1 2 #####
- ldq $28,24($17) # 4 1
- mulq $21,$19,$6 # 2 2 1 #####
- addq $5,$0,$5 # 1 2 3 1
- subq $18,4,$18
- cmpult $5,$0,$0 # 1 2 3 2
- umulh $21,$19,$21 # 2 2 #####
- addq $20,$0,$0 # 1 3 2
- addq $17,32,$17
- addq $6,$0,$6 # 2 2 3 1
- mulq $27,$19,$7 # 3 2 1 #####
- cmpult $6,$0,$0 # 2 2 3 2
- addq $21,$0,$0 # 2 3 2
- addq $16,32,$16
- umulh $27,$19,$27 # 3 2 #####
- stq $5,-32($16) # 1 2 4
- mulq $28,$19,$8 # 4 2 1 #####
- addq $7,$0,$7 # 3 2 3 1
- stq $6,-24($16) # 2 2 4
- cmpult $7,$0,$0 # 3 2 3 2
- umulh $28,$19,$28 # 4 2 #####
- addq $27,$0,$0 # 3 3 2
- stq $7,-16($16) # 3 2 4
- addq $8,$0,$8 # 4 2 3 1
- cmpult $8,$0,$0 # 4 2 3 2
-
- addq $28,$0,$0 # 4 3 2
-
- stq $8,-8($16) # 4 2 4
-
- blt $18,$143
-
- ldq $20,0($17) # 1 1
-
- br $142
-
- .align 4
-$145:
- ldq $20,0($17) # 4 1
- mulq $20,$19,$5 # 4 2 1
- subq $18,1,$18
- umulh $20,$19,$20 # 4 2
- addq $5,$0,$5 # 4 2 3 1
- addq $16,8,$16
- cmpult $5,$0,$0 # 4 2 3 2
- addq $17,8,$17
- addq $20,$0,$0 # 4 3 2
- stq $5,-8($16) # 4 2 4
-
- bgt $18,$145
- ret $31,($26),1 # else exit
-
- .align 4
-$143:
- addq $18,4,$18
- bgt $18,$145 # goto tail code
- ret $31,($26),1 # else exit
-
- .end bn_mul_words
- .align 3
- .globl bn_sqr_words
- .ent bn_sqr_words
-bn_sqr_words:
-bn_sqr_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $18,4,$18
- blt $18,$543 # if we are -1, -2, -3 or -4 goto tail code
- ldq $20,0($17) # 1 1
- .align 3
-$542:
- mulq $20,$20,$5 ######
- ldq $21,8($17) # 1 1
- subq $18,4
- umulh $20,$20,$1 ######
- ldq $27,16($17) # 1 1
- mulq $21,$21,$6 ######
- ldq $28,24($17) # 1 1
- stq $5,0($16) # r[0]
- umulh $21,$21,$2 ######
- stq $1,8($16) # r[1]
- mulq $27,$27,$7 ######
- stq $6,16($16) # r[0]
- umulh $27,$27,$3 ######
- stq $2,24($16) # r[1]
- mulq $28,$28,$8 ######
- stq $7,32($16) # r[0]
- umulh $28,$28,$4 ######
- stq $3,40($16) # r[1]
-
- addq $16,64,$16
- addq $17,32,$17
- stq $8,-16($16) # r[0]
- stq $4,-8($16) # r[1]
-
- blt $18,$543
- ldq $20,0($17) # 1 1
- br $542
-
-$442:
- ldq $20,0($17) # a[0]
- mulq $20,$20,$5 # a[0]*w low part r2
- addq $16,16,$16
- addq $17,8,$17
- subq $18,1,$18
- umulh $20,$20,$1 # a[0]*w high part r3
- stq $5,-16($16) # r[0]
- stq $1,-8($16) # r[1]
-
- bgt $18,$442
- ret $31,($26),1 # else exit
-
- .align 4
-$543:
- addq $18,4,$18
- bgt $18,$442 # goto tail code
- ret $31,($26),1 # else exit
- .end bn_sqr_words
-
- .align 3
- .globl bn_add_words
- .ent bn_add_words
-bn_add_words:
-bn_add_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $19,4,$19
- bis $31,$31,$0 # carry = 0
- blt $19,$900
- ldq $5,0($17) # a[0]
- ldq $1,0($18) # b[1]
- .align 3
-$901:
- addq $1,$5,$1 # r=a+b;
- ldq $6,8($17) # a[1]
- cmpult $1,$5,$22 # did we overflow?
- ldq $2,8($18) # b[1]
- addq $1,$0,$1 # c+= overflow
- ldq $7,16($17) # a[2]
- cmpult $1,$0,$0 # overflow?
- ldq $3,16($18) # b[2]
- addq $0,$22,$0
- ldq $8,24($17) # a[3]
- addq $2,$6,$2 # r=a+b;
- ldq $4,24($18) # b[3]
- cmpult $2,$6,$23 # did we overflow?
- addq $3,$7,$3 # r=a+b;
- addq $2,$0,$2 # c+= overflow
- cmpult $3,$7,$24 # did we overflow?
- cmpult $2,$0,$0 # overflow?
- addq $4,$8,$4 # r=a+b;
- addq $0,$23,$0
- cmpult $4,$8,$25 # did we overflow?
- addq $3,$0,$3 # c+= overflow
- stq $1,0($16) # r[0]=c
- cmpult $3,$0,$0 # overflow?
- stq $2,8($16) # r[1]=c
- addq $0,$24,$0
- stq $3,16($16) # r[2]=c
- addq $4,$0,$4 # c+= overflow
- subq $19,4,$19 # loop--
- cmpult $4,$0,$0 # overflow?
- addq $17,32,$17 # a++
- addq $0,$25,$0
- stq $4,24($16) # r[3]=c
- addq $18,32,$18 # b++
- addq $16,32,$16 # r++
-
- blt $19,$900
- ldq $5,0($17) # a[0]
- ldq $1,0($18) # b[1]
- br $901
- .align 4
-$945:
- ldq $5,0($17) # a[0]
- ldq $1,0($18) # b[1]
- addq $1,$5,$1 # r=a+b;
- subq $19,1,$19 # loop--
- addq $1,$0,$1 # c+= overflow
- addq $17,8,$17 # a++
- cmpult $1,$5,$22 # did we overflow?
- cmpult $1,$0,$0 # overflow?
- addq $18,8,$18 # b++
- stq $1,0($16) # r[0]=c
- addq $0,$22,$0
- addq $16,8,$16 # r++
-
- bgt $19,$945
- ret $31,($26),1 # else exit
-
-$900:
- addq $19,4,$19
- bgt $19,$945 # goto tail code
- ret $31,($26),1 # else exit
- .end bn_add_words
-
- #
- # What follows was taken directly from the C compiler with a few
- # hacks to redo the lables.
- #
-.text
- .align 3
- .globl bn_div64
- .ent bn_div64
-bn_div64:
- ldgp $29,0($27)
-bn_div64..ng:
- lda $30,-48($30)
- .frame $30,48,$26,0
- stq $26,0($30)
- stq $9,8($30)
- stq $10,16($30)
- stq $11,24($30)
- stq $12,32($30)
- stq $13,40($30)
- .mask 0x4003e00,-48
- .prologue 1
- bis $16,$16,$9
- bis $17,$17,$10
- bis $18,$18,$11
- bis $31,$31,$13
- bis $31,2,$12
- bne $11,$119
- lda $0,-1
- br $31,$136
- .align 4
-$119:
- bis $11,$11,$16
- jsr $26,BN_num_bits_word
- ldgp $29,0($26)
- subq $0,64,$1
- beq $1,$120
- bis $31,1,$1
- sll $1,$0,$1
- cmpule $9,$1,$1
- bne $1,$120
- # lda $16,_IO_stderr_
- # lda $17,$C32
- # bis $0,$0,$18
- # jsr $26,fprintf
- # ldgp $29,0($26)
- jsr $26,abort
- ldgp $29,0($26)
- .align 4
-$120:
- bis $31,64,$3
- cmpult $9,$11,$2
- subq $3,$0,$1
- addl $1,$31,$0
- subq $9,$11,$1
- cmoveq $2,$1,$9
- beq $0,$122
- zapnot $0,15,$2
- subq $3,$0,$1
- sll $11,$2,$11
- sll $9,$2,$3
- srl $10,$1,$1
- sll $10,$2,$10
- bis $3,$1,$9
-$122:
- srl $11,32,$5
- zapnot $11,15,$6
- lda $7,-1
- .align 5
-$123:
- srl $9,32,$1
- subq $1,$5,$1
- bne $1,$126
- zapnot $7,15,$27
- br $31,$127
- .align 4
-$126:
- bis $9,$9,$24
- bis $5,$5,$25
- divqu $24,$25,$27
-$127:
- srl $10,32,$4
- .align 5
-$128:
- mulq $27,$5,$1
- subq $9,$1,$3
- zapnot $3,240,$1
- bne $1,$129
- mulq $6,$27,$2
- sll $3,32,$1
- addq $1,$4,$1
- cmpule $2,$1,$2
- bne $2,$129
- subq $27,1,$27
- br $31,$128
- .align 4
-$129:
- mulq $27,$6,$1
- mulq $27,$5,$4
- srl $1,32,$3
- sll $1,32,$1
- addq $4,$3,$4
- cmpult $10,$1,$2
- subq $10,$1,$10
- addq $2,$4,$2
- cmpult $9,$2,$1
- bis $2,$2,$4
- beq $1,$134
- addq $9,$11,$9
- subq $27,1,$27
-$134:
- subl $12,1,$12
- subq $9,$4,$9
- beq $12,$124
- sll $27,32,$13
- sll $9,32,$2
- srl $10,32,$1
- sll $10,32,$10
- bis $2,$1,$9
- br $31,$123
- .align 4
-$124:
- bis $13,$27,$0
-$136:
- ldq $26,0($30)
- ldq $9,8($30)
- ldq $10,16($30)
- ldq $11,24($30)
- ldq $12,32($30)
- ldq $13,40($30)
- addq $30,48,$30
- ret $31,($26),1
- .end bn_div64
-
- .set noat
- .text
- .align 3
- .globl bn_sub_words
- .ent bn_sub_words
-bn_sub_words:
-bn_sub_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $19, 4, $19
- bis $31, $31, $0
- blt $19, $100
- ldq $1, 0($17)
- ldq $2, 0($18)
-$101:
- ldq $3, 8($17)
- cmpult $1, $2, $4
- ldq $5, 8($18)
- subq $1, $2, $1
- ldq $6, 16($17)
- cmpult $1, $0, $2
- ldq $7, 16($18)
- subq $1, $0, $23
- ldq $8, 24($17)
- addq $2, $4, $0
- cmpult $3, $5, $24
- subq $3, $5, $3
- ldq $22, 24($18)
- cmpult $3, $0, $5
- subq $3, $0, $25
- addq $5, $24, $0
- cmpult $6, $7, $27
- subq $6, $7, $6
- stq $23, 0($16)
- cmpult $6, $0, $7
- subq $6, $0, $28
- addq $7, $27, $0
- cmpult $8, $22, $21
- subq $8, $22, $8
- stq $25, 8($16)
- cmpult $8, $0, $22
- subq $8, $0, $20
- addq $22, $21, $0
- stq $28, 16($16)
- subq $19, 4, $19
- stq $20, 24($16)
- addq $17, 32, $17
- addq $18, 32, $18
- addq $16, 32, $16
- blt $19, $100
- ldq $1, 0($17)
- ldq $2, 0($18)
- br $101
-$102:
- ldq $1, 0($17)
- ldq $2, 0($18)
- cmpult $1, $2, $27
- subq $1, $2, $1
- cmpult $1, $0, $2
- subq $1, $0, $1
- stq $1, 0($16)
- addq $2, $27, $0
- addq $17, 8, $17
- addq $18, 8, $18
- addq $16, 8, $16
- subq $19, 1, $19
- bgt $19, $102
- ret $31,($26),1
-$100:
- addq $19, 4, $19
- bgt $19, $102
-$103:
- ret $31,($26),1
- .end bn_sub_words
diff --git a/crypto/bn/asm/alpha.works/add.pl b/crypto/bn/asm/alpha.works/add.pl
deleted file mode 100644
index 4dc76e6b69..0000000000
--- a/crypto/bn/asm/alpha.works/add.pl
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_add_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
- $count=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &br(&label("finish"));
- &blt($count,&label("finish"));
-
- ($a0,$b0)=&NR(2);
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
-
-##########################################################
- &set_label("loop");
-
- ($a1)=&NR(1); &ld($a1,&QWPw(1,$ap));
- ($b1)=&NR(1); &ld($b1,&QWPw(1,$bp));
- ($a2)=&NR(1); &ld($a2,&QWPw(2,$ap));
- ($b2)=&NR(1); &ld($b2,&QWPw(2,$bp));
- ($a3)=&NR(1); &ld($a3,&QWPw(3,$ap));
- ($b3)=&NR(1); &ld($b3,&QWPw(3,$bp));
-
- ($o0,$t0)=&NR(2);
- &add($a0,$b0,$o0);
- &cmpult($o0,$b0,$t0);
- &add($o0,$cc,$o0);
- &cmpult($o0,$cc,$cc);
- &add($cc,$t0,$cc); &FR($t0);
-
- ($t1,$o1)=&NR(2);
-
- &add($a1,$b1,$o1); &FR($a1);
- &cmpult($o1,$b1,$t1); &FR($b1);
- &add($o1,$cc,$o1);
- &cmpult($o1,$cc,$cc);
- &add($cc,$t1,$cc); &FR($t1);
-
- ($t2,$o2)=&NR(2);
-
- &add($a2,$b2,$o2); &FR($a2);
- &cmpult($o2,$b2,$t2); &FR($b2);
- &add($o2,$cc,$o2);
- &cmpult($o2,$cc,$cc);
- &add($cc,$t2,$cc); &FR($t2);
-
- ($t3,$o3)=&NR(2);
-
- &add($a3,$b3,$o3); &FR($a3);
- &cmpult($o3,$b3,$t3); &FR($b3);
- &add($o3,$cc,$o3);
- &cmpult($o3,$cc,$cc);
- &add($cc,$t3,$cc); &FR($t3);
-
- &st($o0,&QWPw(0,$rp)); &FR($o0);
- &st($o1,&QWPw(0,$rp)); &FR($o1);
- &st($o2,&QWPw(0,$rp)); &FR($o2);
- &st($o3,&QWPw(0,$rp)); &FR($o3);
-
- &sub($count,4,$count); # count-=4
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-##################################################
- # Do the last 0..3 words
-
- ($t0,$o0)=&NR(2);
- &set_label("last_loop");
-
- &ld($a0,&QWPw(0,$ap)); # get a
- &ld($b0,&QWPw(0,$bp)); # get b
-
- &add($a0,$b0,$o0);
- &cmpult($o0,$b0,$t0); # will we borrow?
- &add($o0,$cc,$o0); # will we borrow?
- &cmpult($o0,$cc,$cc); # will we borrow?
- &add($cc,$t0,$cc); # add the borrows
- &st($o0,&QWPw(0,$rp)); # save
-
- &add($ap,$QWS,$ap);
- &add($bp,$QWS,$bp);
- &add($rp,$QWS,$rp);
- &sub($count,1,$count);
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &FR($o0,$t0,$a0,$b0);
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/div.pl b/crypto/bn/asm/alpha.works/div.pl
deleted file mode 100644
index 7ec144377f..0000000000
--- a/crypto/bn/asm/alpha.works/div.pl
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/local/bin/perl
-
-sub bn_div64
- {
- local($data)=<<'EOF';
- #
- # What follows was taken directly from the C compiler with a few
- # hacks to redo the lables.
- #
-.text
- .set noreorder
- .set volatile
- .align 3
- .globl bn_div64
- .ent bn_div64
-bn_div64:
- ldgp $29,0($27)
-bn_div64..ng:
- lda $30,-48($30)
- .frame $30,48,$26,0
- stq $26,0($30)
- stq $9,8($30)
- stq $10,16($30)
- stq $11,24($30)
- stq $12,32($30)
- stq $13,40($30)
- .mask 0x4003e00,-48
- .prologue 1
- bis $16,$16,$9
- bis $17,$17,$10
- bis $18,$18,$11
- bis $31,$31,$13
- bis $31,2,$12
- bne $11,$9119
- lda $0,-1
- br $31,$9136
- .align 4
-$9119:
- bis $11,$11,$16
- jsr $26,BN_num_bits_word
- ldgp $29,0($26)
- subq $0,64,$1
- beq $1,$9120
- bis $31,1,$1
- sll $1,$0,$1
- cmpule $9,$1,$1
- bne $1,$9120
- # lda $16,_IO_stderr_
- # lda $17,$C32
- # bis $0,$0,$18
- # jsr $26,fprintf
- # ldgp $29,0($26)
- jsr $26,abort
- ldgp $29,0($26)
- .align 4
-$9120:
- bis $31,64,$3
- cmpult $9,$11,$2
- subq $3,$0,$1
- addl $1,$31,$0
- subq $9,$11,$1
- cmoveq $2,$1,$9
- beq $0,$9122
- zapnot $0,15,$2
- subq $3,$0,$1
- sll $11,$2,$11
- sll $9,$2,$3
- srl $10,$1,$1
- sll $10,$2,$10
- bis $3,$1,$9
-$9122:
- srl $11,32,$5
- zapnot $11,15,$6
- lda $7,-1
- .align 5
-$9123:
- srl $9,32,$1
- subq $1,$5,$1
- bne $1,$9126
- zapnot $7,15,$27
- br $31,$9127
- .align 4
-$9126:
- bis $9,$9,$24
- bis $5,$5,$25
- divqu $24,$25,$27
-$9127:
- srl $10,32,$4
- .align 5
-$9128:
- mulq $27,$5,$1
- subq $9,$1,$3
- zapnot $3,240,$1
- bne $1,$9129
- mulq $6,$27,$2
- sll $3,32,$1
- addq $1,$4,$1
- cmpule $2,$1,$2
- bne $2,$9129
- subq $27,1,$27
- br $31,$9128
- .align 4
-$9129:
- mulq $27,$6,$1
- mulq $27,$5,$4
- srl $1,32,$3
- sll $1,32,$1
- addq $4,$3,$4
- cmpult $10,$1,$2
- subq $10,$1,$10
- addq $2,$4,$2
- cmpult $9,$2,$1
- bis $2,$2,$4
- beq $1,$9134
- addq $9,$11,$9
- subq $27,1,$27
-$9134:
- subl $12,1,$12
- subq $9,$4,$9
- beq $12,$9124
- sll $27,32,$13
- sll $9,32,$2
- srl $10,32,$1
- sll $10,32,$10
- bis $2,$1,$9
- br $31,$9123
- .align 4
-$9124:
- bis $13,$27,$0
-$9136:
- ldq $26,0($30)
- ldq $9,8($30)
- ldq $10,16($30)
- ldq $11,24($30)
- ldq $12,32($30)
- ldq $13,40($30)
- addq $30,48,$30
- ret $31,($26),1
- .end bn_div64
-EOF
- &asm_add($data);
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/mul.pl b/crypto/bn/asm/alpha.works/mul.pl
deleted file mode 100644
index b182bae452..0000000000
--- a/crypto/bn/asm/alpha.works/mul.pl
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_mul_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r,$couny);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $count=&wparam(2);
- $word=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &br(&label("finish"));
- &blt($count,&label("finish"));
-
- ($a0,$r0)=&NR(2);
- &ld($a0,&QWPw(0,$ap));
- &ld($r0,&QWPw(0,$rp));
-
-$a=<<'EOF';
-##########################################################
- &set_label("loop");
-
- ($a1)=&NR(1); &ld($a1,&QWPw(1,$ap));
- ($b1)=&NR(1); &ld($b1,&QWPw(1,$bp));
- ($a2)=&NR(1); &ld($a2,&QWPw(2,$ap));
- ($b2)=&NR(1); &ld($b2,&QWPw(2,$bp));
- ($a3)=&NR(1); &ld($a3,&QWPw(3,$ap));
- ($b3)=&NR(1); &ld($b3,&QWPw(3,$bp));
-
- ($o0,$t0)=&NR(2);
- &add($a0,$b0,$o0);
- &cmpult($o0,$b0,$t0);
- &add($o0,$cc,$o0);
- &cmpult($o0,$cc,$cc);
- &add($cc,$t0,$cc); &FR($t0);
-
- ($t1,$o1)=&NR(2);
-
- &add($a1,$b1,$o1); &FR($a1);
- &cmpult($o1,$b1,$t1); &FR($b1);
- &add($o1,$cc,$o1);
- &cmpult($o1,$cc,$cc);
- &add($cc,$t1,$cc); &FR($t1);
-
- ($t2,$o2)=&NR(2);
-
- &add($a2,$b2,$o2); &FR($a2);
- &cmpult($o2,$b2,$t2); &FR($b2);
- &add($o2,$cc,$o2);
- &cmpult($o2,$cc,$cc);
- &add($cc,$t2,$cc); &FR($t2);
-
- ($t3,$o3)=&NR(2);
-
- &add($a3,$b3,$o3); &FR($a3);
- &cmpult($o3,$b3,$t3); &FR($b3);
- &add($o3,$cc,$o3);
- &cmpult($o3,$cc,$cc);
- &add($cc,$t3,$cc); &FR($t3);
-
- &st($o0,&QWPw(0,$rp)); &FR($o0);
- &st($o1,&QWPw(0,$rp)); &FR($o1);
- &st($o2,&QWPw(0,$rp)); &FR($o2);
- &st($o3,&QWPw(0,$rp)); &FR($o3);
-
- &sub($count,4,$count); # count-=4
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-EOF
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap)); # get a
- &mul($a0,$word,($l0)=&NR(1));
- &add($ap,$QWS,$ap);
- &muh($a0,$word,($h0)=&NR(1)); &FR($a0);
- &add($l0,$cc,$l0);
- &add($rp,$QWS,$rp);
- &sub($count,1,$count);
- &cmpult($l0,$cc,$cc);
- &st($l0,&QWPw(-1,$rp)); &FR($l0);
- &add($h0,$cc,$cc); &FR($h0);
-
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/mul_add.pl b/crypto/bn/asm/alpha.works/mul_add.pl
deleted file mode 100644
index e37f6315fb..0000000000
--- a/crypto/bn/asm/alpha.works/mul_add.pl
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_mul_add_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r,$couny);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $count=&wparam(2);
- $word=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &br(&label("finish"));
- &blt($count,&label("finish"));
-
- ($a0,$r0)=&NR(2);
- &ld($a0,&QWPw(0,$ap));
- &ld($r0,&QWPw(0,$rp));
-
-$a=<<'EOF';
-##########################################################
- &set_label("loop");
-
- ($a1)=&NR(1); &ld($a1,&QWPw(1,$ap));
- ($b1)=&NR(1); &ld($b1,&QWPw(1,$bp));
- ($a2)=&NR(1); &ld($a2,&QWPw(2,$ap));
- ($b2)=&NR(1); &ld($b2,&QWPw(2,$bp));
- ($a3)=&NR(1); &ld($a3,&QWPw(3,$ap));
- ($b3)=&NR(1); &ld($b3,&QWPw(3,$bp));
-
- ($o0,$t0)=&NR(2);
- &add($a0,$b0,$o0);
- &cmpult($o0,$b0,$t0);
- &add($o0,$cc,$o0);
- &cmpult($o0,$cc,$cc);
- &add($cc,$t0,$cc); &FR($t0);
-
- ($t1,$o1)=&NR(2);
-
- &add($a1,$b1,$o1); &FR($a1);
- &cmpult($o1,$b1,$t1); &FR($b1);
- &add($o1,$cc,$o1);
- &cmpult($o1,$cc,$cc);
- &add($cc,$t1,$cc); &FR($t1);
-
- ($t2,$o2)=&NR(2);
-
- &add($a2,$b2,$o2); &FR($a2);
- &cmpult($o2,$b2,$t2); &FR($b2);
- &add($o2,$cc,$o2);
- &cmpult($o2,$cc,$cc);
- &add($cc,$t2,$cc); &FR($t2);
-
- ($t3,$o3)=&NR(2);
-
- &add($a3,$b3,$o3); &FR($a3);
- &cmpult($o3,$b3,$t3); &FR($b3);
- &add($o3,$cc,$o3);
- &cmpult($o3,$cc,$cc);
- &add($cc,$t3,$cc); &FR($t3);
-
- &st($o0,&QWPw(0,$rp)); &FR($o0);
- &st($o1,&QWPw(0,$rp)); &FR($o1);
- &st($o2,&QWPw(0,$rp)); &FR($o2);
- &st($o3,&QWPw(0,$rp)); &FR($o3);
-
- &sub($count,4,$count); # count-=4
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-EOF
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap)); # get a
- &ld(($r0)=&NR(1),&QWPw(0,$rp)); # get b
- &mul($a0,$word,($l0)=&NR(1));
- &sub($count,1,$count);
- &add($ap,$QWS,$ap);
- &muh($a0,$word,($h0)=&NR(1)); &FR($a0);
- &add($r0,$l0,$r0);
- &add($rp,$QWS,$rp);
- &cmpult($r0,$l0,($t0)=&NR(1)); &FR($l0);
- &add($r0,$cc,$r0);
- &add($h0,$t0,$h0); &FR($t0);
- &cmpult($r0,$cc,$cc);
- &st($r0,&QWPw(-1,$rp)); &FR($r0);
- &add($h0,$cc,$cc); &FR($h0);
-
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/mul_c4.pl b/crypto/bn/asm/alpha.works/mul_c4.pl
deleted file mode 100644
index 5efd201281..0000000000
--- a/crypto/bn/asm/alpha.works/mul_c4.pl
+++ /dev/null
@@ -1,213 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub mul_add_c
- {
- local($a,$b,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
- &mul($a,$b,($l1)=&NR(1));
- &muh($a,$b,($h1)=&NR(1));
- &add($c0,$l1,$c0);
- &cmpult($c0,$l1,($t1)=&NR(1)); &FR($l1);
- &add($t1,$h1,$h1); &FR($t1);
- &add($c1,$h1,$c1);
- &cmpult($c1,$h1,($t2)=&NR(1)); &FR($h1);
- &add($c2,$t2,$c2); &FR($t2);
- }
-
-sub bn_mul_comba4
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(3);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($b[0])=&NR(1),&QWPw(0,$bp));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($b[1])=&NR(1),&QWPw(1,$bp));
- &mul($a[0],$b[0],($r00)=&NR(1));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($b[2])=&NR(1),&QWPw(2,$bp));
- &muh($a[0],$b[0],($r01)=&NR(1));
- &FR($ap); &ld(($a[3])=&NR(1),&QWPw(3,$ap));
- &FR($bp); &ld(($b[3])=&NR(1),&QWPw(3,$bp));
- &mul($a[0],$b[1],($r02)=&NR(1));
-
- ($R,$H1,$H2)=&NR(3);
-
- &st($r00,&QWPw(0,$rp)); &FR($r00);
-
- &mov("zero",$R);
- &mul($a[1],$b[0],($r03)=&NR(1));
-
- &mov("zero",$H1);
- &mov("zero",$H0);
- &add($R,$r01,$R);
- &muh($a[0],$b[1],($r04)=&NR(1));
- &cmpult($R,$r01,($t01)=&NR(1)); &FR($r01);
- &add($R,$r02,$R);
- &add($H1,$t01,$H1) &FR($t01);
- &muh($a[1],$b[0],($r05)=&NR(1));
- &cmpult($R,$r02,($t02)=&NR(1)); &FR($r02);
- &add($R,$r03,$R);
- &add($H2,$t02,$H2) &FR($t02);
- &mul($a[0],$b[2],($r06)=&NR(1));
- &cmpult($R,$r03,($t03)=&NR(1)); &FR($r03);
- &add($H1,$t03,$H1) &FR($t03);
- &st($R,&QWPw(1,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r04,$R);
- &mov("zero",$H2);
- &mul($a[1],$b[1],($r07)=&NR(1));
- &cmpult($R,$r04,($t04)=&NR(1)); &FR($r04);
- &add($R,$r05,$R);
- &add($H1,$t04,$H1) &FR($t04);
- &mul($a[2],$b[0],($r08)=&NR(1));
- &cmpult($R,$r05,($t05)=&NR(1)); &FR($r05);
- &add($R,$r01,$R);
- &add($H2,$t05,$H2) &FR($t05);
- &muh($a[0],$b[2],($r09)=&NR(1));
- &cmpult($R,$r06,($t06)=&NR(1)); &FR($r06);
- &add($R,$r07,$R);
- &add($H1,$t06,$H1) &FR($t06);
- &muh($a[1],$b[1],($r10)=&NR(1));
- &cmpult($R,$r07,($t07)=&NR(1)); &FR($r07);
- &add($R,$r08,$R);
- &add($H2,$t07,$H2) &FR($t07);
- &muh($a[2],$b[0],($r11)=&NR(1));
- &cmpult($R,$r08,($t08)=&NR(1)); &FR($r08);
- &add($H1,$t08,$H1) &FR($t08);
- &st($R,&QWPw(2,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r09,$R);
- &mov("zero",$H2);
- &mul($a[0],$b[3],($r12)=&NR(1));
- &cmpult($R,$r09,($t09)=&NR(1)); &FR($r09);
- &add($R,$r10,$R);
- &add($H1,$t09,$H1) &FR($t09);
- &mul($a[1],$b[2],($r13)=&NR(1));
- &cmpult($R,$r10,($t10)=&NR(1)); &FR($r10);
- &add($R,$r11,$R);
- &add($H1,$t10,$H1) &FR($t10);
- &mul($a[2],$b[1],($r14)=&NR(1));
- &cmpult($R,$r11,($t11)=&NR(1)); &FR($r11);
- &add($R,$r12,$R);
- &add($H1,$t11,$H1) &FR($t11);
- &mul($a[3],$b[0],($r15)=&NR(1));
- &cmpult($R,$r12,($t12)=&NR(1)); &FR($r12);
- &add($R,$r13,$R);
- &add($H1,$t12,$H1) &FR($t12);
- &muh($a[0],$b[3],($r16)=&NR(1));
- &cmpult($R,$r13,($t13)=&NR(1)); &FR($r13);
- &add($R,$r14,$R);
- &add($H1,$t13,$H1) &FR($t13);
- &muh($a[1],$b[2],($r17)=&NR(1));
- &cmpult($R,$r14,($t14)=&NR(1)); &FR($r14);
- &add($R,$r15,$R);
- &add($H1,$t14,$H1) &FR($t14);
- &muh($a[2],$b[1],($r18)=&NR(1));
- &cmpult($R,$r15,($t15)=&NR(1)); &FR($r15);
- &add($H1,$t15,$H1) &FR($t15);
- &st($R,&QWPw(3,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r16,$R);
- &mov("zero",$H2);
- &muh($a[3],$b[0],($r19)=&NR(1));
- &cmpult($R,$r16,($t16)=&NR(1)); &FR($r16);
- &add($R,$r17,$R);
- &add($H1,$t16,$H1) &FR($t16);
- &mul($a[1],$b[3],($r20)=&NR(1));
- &cmpult($R,$r17,($t17)=&NR(1)); &FR($r17);
- &add($R,$r18,$R);
- &add($H1,$t17,$H1) &FR($t17);
- &mul($a[2],$b[2],($r21)=&NR(1));
- &cmpult($R,$r18,($t18)=&NR(1)); &FR($r18);
- &add($R,$r19,$R);
- &add($H1,$t18,$H1) &FR($t18);
- &mul($a[3],$b[1],($r22)=&NR(1));
- &cmpult($R,$r19,($t19)=&NR(1)); &FR($r19);
- &add($R,$r20,$R);
- &add($H1,$t19,$H1) &FR($t19);
- &muh($a[1],$b[3],($r23)=&NR(1));
- &cmpult($R,$r20,($t20)=&NR(1)); &FR($r20);
- &add($R,$r21,$R);
- &add($H1,$t20,$H1) &FR($t20);
- &muh($a[2],$b[2],($r24)=&NR(1));
- &cmpult($R,$r21,($t21)=&NR(1)); &FR($r21);
- &add($R,$r22,$R);
- &add($H1,$t21,$H1) &FR($t21);
- &muh($a[3],$b[1],($r25)=&NR(1));
- &cmpult($R,$r22,($t22)=&NR(1)); &FR($r22);
- &add($H1,$t22,$H1) &FR($t22);
- &st($R,&QWPw(4,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r23,$R);
- &mov("zero",$H2);
- &mul($a[2],$b[3],($r26)=&NR(1));
- &cmpult($R,$r23,($t23)=&NR(1)); &FR($r23);
- &add($R,$r24,$R);
- &add($H1,$t23,$H1) &FR($t23);
- &mul($a[3],$b[2],($r27)=&NR(1));
- &cmpult($R,$r24,($t24)=&NR(1)); &FR($r24);
- &add($R,$r25,$R);
- &add($H1,$t24,$H1) &FR($t24);
- &muh($a[2],$b[3],($r28)=&NR(1));
- &cmpult($R,$r25,($t25)=&NR(1)); &FR($r25);
- &add($R,$r26,$R);
- &add($H1,$t25,$H1) &FR($t25);
- &muh($a[3],$b[2],($r29)=&NR(1));
- &cmpult($R,$r26,($t26)=&NR(1)); &FR($r26);
- &add($R,$r27,$R);
- &add($H1,$t26,$H1) &FR($t26);
- &mul($a[3],$b[3],($r30)=&NR(1));
- &cmpult($R,$r27,($t27)=&NR(1)); &FR($r27);
- &add($H1,$t27,$H1) &FR($t27);
- &st($R,&QWPw(5,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r28,$R);
- &mov("zero",$H2);
- &muh($a[3],$b[3],($r31)=&NR(1));
- &cmpult($R,$r28,($t28)=&NR(1)); &FR($r28);
- &add($R,$r29,$R);
- &add($H1,$t28,$H1) &FR($t28);
- ############
- &cmpult($R,$r29,($t29)=&NR(1)); &FR($r29);
- &add($R,$r30,$R);
- &add($H1,$t29,$H1) &FR($t29);
- ############
- &cmpult($R,$r30,($t30)=&NR(1)); &FR($r30);
- &add($H1,$t30,$H1) &FR($t30);
- &st($R,&QWPw(6,$rp));
- &add($H1,$H2,$R);
-
- &add($R,$r31,$R); &FR($r31);
- &st($R,&QWPw(7,$rp));
-
- &FR($R,$H1,$H2);
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/mul_c4.works.pl b/crypto/bn/asm/alpha.works/mul_c4.works.pl
deleted file mode 100644
index 79d86dd25c..0000000000
--- a/crypto/bn/asm/alpha.works/mul_c4.works.pl
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub mul_add_c
- {
- local($a,$b,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
-print STDERR "count=$cnt\n"; $cnt++;
- &mul($a,$b,($l1)=&NR(1));
- &muh($a,$b,($h1)=&NR(1));
- &add($c0,$l1,$c0);
- &cmpult($c0,$l1,($t1)=&NR(1)); &FR($l1);
- &add($t1,$h1,$h1); &FR($t1);
- &add($c1,$h1,$c1);
- &cmpult($c1,$h1,($t2)=&NR(1)); &FR($h1);
- &add($c2,$t2,$c2); &FR($t2);
- }
-
-sub bn_mul_comba4
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(3);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($b[0])=&NR(1),&QWPw(0,$bp));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($b[1])=&NR(1),&QWPw(1,$bp));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($b[2])=&NR(1),&QWPw(2,$bp));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap)); &FR($ap);
- &ld(($b[3])=&NR(1),&QWPw(3,$bp)); &FR($bp);
-
- ($c0,$c1,$c2)=&NR(3);
- &mov("zero",$c2);
- &mul($a[0],$b[0],$c0);
- &muh($a[0],$b[0],$c1);
- &st($c0,&QWPw(0,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[1],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[0],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[3],$c0,$c1,$c2); &FR($a[0]);
- &mul_add_c($a[1],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[0],$c0,$c1,$c2); &FR($b[0]);
- &st($c0,&QWPw(3,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[1],$b[3],$c0,$c1,$c2); &FR($a[1]);
- &mul_add_c($a[2],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[1],$c0,$c1,$c2); &FR($b[1]);
- &st($c0,&QWPw(4,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[2],$b[3],$c0,$c1,$c2); &FR($a[2]);
- &mul_add_c($a[3],$b[2],$c0,$c1,$c2); &FR($b[2]);
- &st($c0,&QWPw(5,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[3],$b[3],$c0,$c1,$c2); &FR($a[3],$b[3]);
- &st($c0,&QWPw(6,$rp));
- &st($c1,&QWPw(7,$rp));
-
- &FR($c0,$c1,$c2);
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/mul_c8.pl b/crypto/bn/asm/alpha.works/mul_c8.pl
deleted file mode 100644
index 525ca7494b..0000000000
--- a/crypto/bn/asm/alpha.works/mul_c8.pl
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_mul_comba8
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(3);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
-
- &stack_push(2);
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($b[0])=&NR(1),&QWPw(0,$bp));
- &st($reg_s0,&swtmp(0)); &FR($reg_s0);
- &st($reg_s1,&swtmp(1)); &FR($reg_s1);
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($b[1])=&NR(1),&QWPw(1,$bp));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($b[2])=&NR(1),&QWPw(2,$bp));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap));
- &ld(($b[3])=&NR(1),&QWPw(3,$bp));
- &ld(($a[4])=&NR(1),&QWPw(1,$ap));
- &ld(($b[4])=&NR(1),&QWPw(1,$bp));
- &ld(($a[5])=&NR(1),&QWPw(1,$ap));
- &ld(($b[5])=&NR(1),&QWPw(1,$bp));
- &ld(($a[6])=&NR(1),&QWPw(1,$ap));
- &ld(($b[6])=&NR(1),&QWPw(1,$bp));
- &ld(($a[7])=&NR(1),&QWPw(1,$ap)); &FR($ap);
- &ld(($b[7])=&NR(1),&QWPw(1,$bp)); &FR($bp);
-
- ($c0,$c1,$c2)=&NR(3);
- &mov("zero",$c2);
- &mul($a[0],$b[0],$c0);
- &muh($a[0],$b[0],$c1);
- &st($c0,&QWPw(0,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(3,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(4,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(5,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(6,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[7],$c0,$c1,$c2); &FR($a[0]);
- &mul_add_c($a[1],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[0],$c0,$c1,$c2); &FR($b[0]);
- &st($c0,&QWPw(7,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[1],$b[7],$c0,$c1,$c2); &FR($a[1]);
- &mul_add_c($a[2],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[1],$c0,$c1,$c2); &FR($b[1]);
- &st($c0,&QWPw(8,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[2],$b[7],$c0,$c1,$c2); &FR($a[2]);
- &mul_add_c($a[3],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[2],$c0,$c1,$c2); &FR($b[2]);
- &st($c0,&QWPw(9,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[3],$b[7],$c0,$c1,$c2); &FR($a[3]);
- &mul_add_c($a[4],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[3],$c0,$c1,$c2); &FR($b[3]);
- &st($c0,&QWPw(10,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[4],$b[7],$c0,$c1,$c2); &FR($a[4]);
- &mul_add_c($a[5],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[4],$c0,$c1,$c2); &FR($b[4]);
- &st($c0,&QWPw(11,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[5],$b[7],$c0,$c1,$c2); &FR($a[5]);
- &mul_add_c($a[6],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[5],$c0,$c1,$c2); &FR($b[5]);
- &st($c0,&QWPw(12,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[6],$b[7],$c0,$c1,$c2); &FR($a[6]);
- &mul_add_c($a[7],$b[6],$c0,$c1,$c2); &FR($b[6]);
- &st($c0,&QWPw(13,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[7],$b[7],$c0,$c1,$c2); &FR($a[7],$b[7]);
- &st($c0,&QWPw(14,$rp));
- &st($c1,&QWPw(15,$rp));
-
- &FR($c0,$c1,$c2);
-
- &ld($reg_s0,&swtmp(0));
- &ld($reg_s1,&swtmp(1));
- &stack_pop(2);
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/sqr.pl b/crypto/bn/asm/alpha.works/sqr.pl
deleted file mode 100644
index a55b696906..0000000000
--- a/crypto/bn/asm/alpha.works/sqr.pl
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_sqr_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r,$couny);
-
- &init_pool(3);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $count=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &br(&label("finish"));
- &blt($count,&label("finish"));
-
- ($a0,$r0)=&NR(2);
- &ld($a0,&QWPw(0,$ap));
- &ld($r0,&QWPw(0,$rp));
-
-$a=<<'EOF';
-##########################################################
- &set_label("loop");
-
- ($a1)=&NR(1); &ld($a1,&QWPw(1,$ap));
- ($b1)=&NR(1); &ld($b1,&QWPw(1,$bp));
- ($a2)=&NR(1); &ld($a2,&QWPw(2,$ap));
- ($b2)=&NR(1); &ld($b2,&QWPw(2,$bp));
- ($a3)=&NR(1); &ld($a3,&QWPw(3,$ap));
- ($b3)=&NR(1); &ld($b3,&QWPw(3,$bp));
-
- ($o0,$t0)=&NR(2);
- &add($a0,$b0,$o0);
- &cmpult($o0,$b0,$t0);
- &add($o0,$cc,$o0);
- &cmpult($o0,$cc,$cc);
- &add($cc,$t0,$cc); &FR($t0);
-
- ($t1,$o1)=&NR(2);
-
- &add($a1,$b1,$o1); &FR($a1);
- &cmpult($o1,$b1,$t1); &FR($b1);
- &add($o1,$cc,$o1);
- &cmpult($o1,$cc,$cc);
- &add($cc,$t1,$cc); &FR($t1);
-
- ($t2,$o2)=&NR(2);
-
- &add($a2,$b2,$o2); &FR($a2);
- &cmpult($o2,$b2,$t2); &FR($b2);
- &add($o2,$cc,$o2);
- &cmpult($o2,$cc,$cc);
- &add($cc,$t2,$cc); &FR($t2);
-
- ($t3,$o3)=&NR(2);
-
- &add($a3,$b3,$o3); &FR($a3);
- &cmpult($o3,$b3,$t3); &FR($b3);
- &add($o3,$cc,$o3);
- &cmpult($o3,$cc,$cc);
- &add($cc,$t3,$cc); &FR($t3);
-
- &st($o0,&QWPw(0,$rp)); &FR($o0);
- &st($o1,&QWPw(0,$rp)); &FR($o1);
- &st($o2,&QWPw(0,$rp)); &FR($o2);
- &st($o3,&QWPw(0,$rp)); &FR($o3);
-
- &sub($count,4,$count); # count-=4
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-EOF
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap)); # get a
- &mul($a0,$a0,($l0)=&NR(1));
- &add($ap,$QWS,$ap);
- &add($rp,2*$QWS,$rp);
- &sub($count,1,$count);
- &muh($a0,$a0,($h0)=&NR(1)); &FR($a0);
- &st($l0,&QWPw(-2,$rp)); &FR($l0);
- &st($h0,&QWPw(-1,$rp)); &FR($h0);
-
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/sqr_c4.pl b/crypto/bn/asm/alpha.works/sqr_c4.pl
deleted file mode 100644
index bf33f5b503..0000000000
--- a/crypto/bn/asm/alpha.works/sqr_c4.pl
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub sqr_add_c
- {
- local($a,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
- &mul($a,$a,($l1)=&NR(1));
- &muh($a,$a,($h1)=&NR(1));
- &add($c0,$l1,$c0);
- &add($c1,$h1,$c1);
- &cmpult($c0,$l1,($t1)=&NR(1)); &FR($l1);
- &cmpult($c1,$h1,($t2)=&NR(1)); &FR($h1);
- &add($c1,$t1,$c1); &FR($t1);
- &add($c2,$t2,$c2); &FR($t2);
- }
-
-sub sqr_add_c2
- {
- local($a,$b,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
- &mul($a,$b,($l1)=&NR(1));
- &muh($a,$b,($h1)=&NR(1));
- &cmplt($l1,"zero",($lc1)=&NR(1));
- &cmplt($h1,"zero",($hc1)=&NR(1));
- &add($l1,$l1,$l1);
- &add($h1,$h1,$h1);
- &add($h1,$lc1,$h1); &FR($lc1);
- &add($c2,$hc1,$c2); &FR($hc1);
-
- &add($c0,$l1,$c0);
- &add($c1,$h1,$c1);
- &cmpult($c0,$l1,($lc1)=&NR(1)); &FR($l1);
- &cmpult($c1,$h1,($hc1)=&NR(1)); &FR($h1);
-
- &add($c1,$lc1,$c1); &FR($lc1);
- &add($c2,$hc1,$c2); &FR($hc1);
- }
-
-
-sub bn_sqr_comba4
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(2);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap)); &FR($ap);
-
- ($c0,$c1,$c2)=&NR(3);
-
- &mov("zero",$c2);
- &mul($a[0],$a[0],$c0);
- &muh($a[0],$a[0],$c1);
- &st($c0,&QWPw(0,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[0],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[2],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[3],$a[0],$c0,$c1,$c2);
- &sqr_add_c2($a[2],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(3,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[3],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(4,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[3],$a[2],$c0,$c1,$c2);
- &st($c0,&QWPw(5,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[3],$c0,$c1,$c2);
- &st($c0,&QWPw(6,$rp));
- &st($c1,&QWPw(7,$rp));
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/sqr_c8.pl b/crypto/bn/asm/alpha.works/sqr_c8.pl
deleted file mode 100644
index b4afe085f1..0000000000
--- a/crypto/bn/asm/alpha.works/sqr_c8.pl
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_sqr_comba8
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(2);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap));
- &ld(($a[4])=&NR(1),&QWPw(4,$ap));
- &ld(($a[5])=&NR(1),&QWPw(5,$ap));
- &ld(($a[6])=&NR(1),&QWPw(6,$ap));
- &ld(($a[7])=&NR(1),&QWPw(7,$ap)); &FR($ap);
-
- ($c0,$c1,$c2)=&NR(3);
-
- &mov("zero",$c2);
- &mul($a[0],$a[0],$c0);
- &muh($a[0],$a[0],$c1);
- &st($c0,&QWPw(0,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[1],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[2],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[2],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[3],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(3,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[3],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[4],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(4,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[3],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[4],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(5,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[4],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(6,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[4],$a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(7,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[4],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(8,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[5],$a[4],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[2],$c0,$c1,$c2);
- &st($c0,&QWPw(9,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[5],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[4],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[3],$c0,$c1,$c2);
- &st($c0,&QWPw(10,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[6],$a[5],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[4],$c0,$c1,$c2);
- &st($c0,&QWPw(11,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[6],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[5],$c0,$c1,$c2);
- &st($c0,&QWPw(12,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[7],$a[6],$c0,$c1,$c2);
- &st($c0,&QWPw(13,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[7],$c0,$c1,$c2);
- &st($c0,&QWPw(14,$rp));
- &st($c1,&QWPw(15,$rp));
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha.works/sub.pl b/crypto/bn/asm/alpha.works/sub.pl
deleted file mode 100644
index d998da5c21..0000000000
--- a/crypto/bn/asm/alpha.works/sub.pl
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_sub_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
- $count=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &blt($count,&label("finish"));
-
- ($a0,$b0)=&NR(2);
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
-
-##########################################################
- &set_label("loop");
-
- ($a1,$tmp,$b1,$a2,$b2,$a3,$b3,$o0)=&NR(8);
- &ld($a1,&QWPw(1,$ap));
- &cmpult($a0,$b0,$tmp); # will we borrow?
- &ld($b1,&QWPw(1,$bp));
- &sub($a0,$b0,$a0); # do the subtract
- &ld($a2,&QWPw(2,$ap));
- &cmpult($a0,$cc,$b0); # will we borrow?
- &ld($b2,&QWPw(2,$bp));
- &sub($a0,$cc,$o0); # will we borrow?
- &ld($a3,&QWPw(3,$ap));
- &add($b0,$tmp,$cc); ($t1,$o1)=&NR(2); &FR($tmp);
-
- &cmpult($a1,$b1,$t1); # will we borrow?
- &sub($a1,$b1,$a1); # do the subtract
- &ld($b3,&QWPw(3,$bp));
- &cmpult($a1,$cc,$b1); # will we borrow?
- &sub($a1,$cc,$o1); # will we borrow?
- &add($b1,$t1,$cc); ($tmp,$o2)=&NR(2); &FR($t1,$a1,$b1);
-
- &cmpult($a2,$b2,$tmp); # will we borrow?
- &sub($a2,$b2,$a2); # do the subtract
- &st($o0,&QWPw(0,$rp)); &FR($o0); # save
- &cmpult($a2,$cc,$b2); # will we borrow?
- &sub($a2,$cc,$o2); # will we borrow?
- &add($b2,$tmp,$cc); ($t3,$o3)=&NR(2); &FR($tmp,$a2,$b2);
-
- &cmpult($a3,$b3,$t3); # will we borrow?
- &sub($a3,$b3,$a3); # do the subtract
- &st($o1,&QWPw(1,$rp)); &FR($o1);
- &cmpult($a3,$cc,$b3); # will we borrow?
- &sub($a3,$cc,$o3); # will we borrow?
- &add($b3,$t3,$cc); &FR($t3,$a3,$b3);
-
- &st($o2,&QWPw(2,$rp)); &FR($o2);
- &sub($count,4,$count); # count-=4
- &st($o3,&QWPw(3,$rp)); &FR($o3);
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld($a0,&QWPw(0,$ap)); # get a
- &ld($b0,&QWPw(0,$bp)); # get b
- &cmpult($a0,$b0,$tmp); # will we borrow?
- &sub($a0,$b0,$a0); # do the subtract
- &cmpult($a0,$cc,$b0); # will we borrow?
- &sub($a0,$cc,$a0); # will we borrow?
- &st($a0,&QWPw(0,$rp)); # save
- &add($b0,$tmp,$cc); # add the borrows
-
- &add($ap,$QWS,$ap);
- &add($bp,$QWS,$bp);
- &add($rp,$QWS,$rp);
- &sub($count,1,$count);
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &FR($a0,$b0);
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/add.pl b/crypto/bn/asm/alpha/add.pl
deleted file mode 100644
index 13bf516428..0000000000
--- a/crypto/bn/asm/alpha/add.pl
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_add_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
- $count=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &blt($count,&label("finish"));
-
- ($a0,$b0)=&NR(2);
-
-##########################################################
- &set_label("loop");
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap));
- &ld(($b0)=&NR(1),&QWPw(0,$bp));
- &ld(($a1)=&NR(1),&QWPw(1,$ap));
- &ld(($b1)=&NR(1),&QWPw(1,$bp));
-
- ($o0,$t0)=&NR(2);
- &add($a0,$b0,$o0);
- &ld(($a2)=&NR(1),&QWPw(2,$ap));
- &cmpult($o0,$b0,$t0);
- &add($o0,$cc,$o0);
- &cmpult($o0,$cc,$cc);
- &ld(($b2)=&NR(1),&QWPw(2,$bp));
- &add($cc,$t0,$cc); &FR($t0);
-
- ($t1,$o1)=&NR(2);
-
- &add($a1,$b1,$o1); &FR($a1);
- &cmpult($o1,$b1,$t1); &FR($b1);
- &add($o1,$cc,$o1);
- &cmpult($o1,$cc,$cc);
- &ld(($a3)=&NR(1),&QWPw(3,$ap));
- &add($cc,$t1,$cc); &FR($t1);
-
- ($t2,$o2)=&NR(2);
-
- &add($a2,$b2,$o2); &FR($a2);
- &cmpult($o2,$b2,$t2); &FR($b2);
- &add($o2,$cc,$o2);
- &cmpult($o2,$cc,$cc);
- &ld(($b3)=&NR(1),&QWPw(3,$bp));
- &st($o0,&QWPw(0,$rp)); &FR($o0);
- &add($cc,$t2,$cc); &FR($t2);
-
- ($t3,$o3)=&NR(2);
-
- &st($o1,&QWPw(0,$rp)); &FR($o1);
- &add($a3,$b3,$o3); &FR($a3);
- &cmpult($o3,$b3,$t3); &FR($b3);
- &add($o3,$cc,$o3);
- &st($o2,&QWPw(0,$rp)); &FR($o2);
- &cmpult($o3,$cc,$cc);
- &st($o3,&QWPw(0,$rp)); &FR($o3);
- &add($cc,$t3,$cc); &FR($t3);
-
-
- &sub($count,4,$count); # count-=4
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- ###
- &bge($count,&label("loop"));
- ###
- &br(&label("finish"));
-##################################################
- # Do the last 0..3 words
-
- ($t0,$o0)=&NR(2);
- &set_label("last_loop");
-
- &ld($a0,&QWPw(0,$ap)); # get a
- &ld($b0,&QWPw(0,$bp)); # get b
- &add($ap,$QWS,$ap);
- &add($bp,$QWS,$bp);
- &add($a0,$b0,$o0);
- &sub($count,1,$count);
- &cmpult($o0,$b0,$t0); # will we borrow?
- &add($o0,$cc,$o0); # will we borrow?
- &cmpult($o0,$cc,$cc); # will we borrow?
- &add($rp,$QWS,$rp);
- &st($o0,&QWPw(-1,$rp)); # save
- &add($cc,$t0,$cc); # add the borrows
-
- ###
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &FR($o0,$t0,$a0,$b0);
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/div.pl b/crypto/bn/asm/alpha/div.pl
deleted file mode 100644
index e9e680897a..0000000000
--- a/crypto/bn/asm/alpha/div.pl
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/local/bin/perl
-
-sub bn_div_words
- {
- local($data)=<<'EOF';
- #
- # What follows was taken directly from the C compiler with a few
- # hacks to redo the lables.
- #
-.text
- .set noreorder
- .set volatile
- .align 3
- .globl bn_div_words
- .ent bn_div_words
-bn_div_words
- ldgp $29,0($27)
-bn_div_words.ng:
- lda $30,-48($30)
- .frame $30,48,$26,0
- stq $26,0($30)
- stq $9,8($30)
- stq $10,16($30)
- stq $11,24($30)
- stq $12,32($30)
- stq $13,40($30)
- .mask 0x4003e00,-48
- .prologue 1
- bis $16,$16,$9
- bis $17,$17,$10
- bis $18,$18,$11
- bis $31,$31,$13
- bis $31,2,$12
- bne $11,$9119
- lda $0,-1
- br $31,$9136
- .align 4
-$9119:
- bis $11,$11,$16
- jsr $26,BN_num_bits_word
- ldgp $29,0($26)
- subq $0,64,$1
- beq $1,$9120
- bis $31,1,$1
- sll $1,$0,$1
- cmpule $9,$1,$1
- bne $1,$9120
- # lda $16,_IO_stderr_
- # lda $17,$C32
- # bis $0,$0,$18
- # jsr $26,fprintf
- # ldgp $29,0($26)
- jsr $26,abort
- ldgp $29,0($26)
- .align 4
-$9120:
- bis $31,64,$3
- cmpult $9,$11,$2
- subq $3,$0,$1
- addl $1,$31,$0
- subq $9,$11,$1
- cmoveq $2,$1,$9
- beq $0,$9122
- zapnot $0,15,$2
- subq $3,$0,$1
- sll $11,$2,$11
- sll $9,$2,$3
- srl $10,$1,$1
- sll $10,$2,$10
- bis $3,$1,$9
-$9122:
- srl $11,32,$5
- zapnot $11,15,$6
- lda $7,-1
- .align 5
-$9123:
- srl $9,32,$1
- subq $1,$5,$1
- bne $1,$9126
- zapnot $7,15,$27
- br $31,$9127
- .align 4
-$9126:
- bis $9,$9,$24
- bis $5,$5,$25
- divqu $24,$25,$27
-$9127:
- srl $10,32,$4
- .align 5
-$9128:
- mulq $27,$5,$1
- subq $9,$1,$3
- zapnot $3,240,$1
- bne $1,$9129
- mulq $6,$27,$2
- sll $3,32,$1
- addq $1,$4,$1
- cmpule $2,$1,$2
- bne $2,$9129
- subq $27,1,$27
- br $31,$9128
- .align 4
-$9129:
- mulq $27,$6,$1
- mulq $27,$5,$4
- srl $1,32,$3
- sll $1,32,$1
- addq $4,$3,$4
- cmpult $10,$1,$2
- subq $10,$1,$10
- addq $2,$4,$2
- cmpult $9,$2,$1
- bis $2,$2,$4
- beq $1,$9134
- addq $9,$11,$9
- subq $27,1,$27
-$9134:
- subl $12,1,$12
- subq $9,$4,$9
- beq $12,$9124
- sll $27,32,$13
- sll $9,32,$2
- srl $10,32,$1
- sll $10,32,$10
- bis $2,$1,$9
- br $31,$9123
- .align 4
-$9124:
- bis $13,$27,$0
-$9136:
- ldq $26,0($30)
- ldq $9,8($30)
- ldq $10,16($30)
- ldq $11,24($30)
- ldq $12,32($30)
- ldq $13,40($30)
- addq $30,48,$30
- ret $31,($26),1
- .end bn_div_words
-EOF
- &asm_add($data);
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/mul.pl b/crypto/bn/asm/alpha/mul.pl
deleted file mode 100644
index 76c926566c..0000000000
--- a/crypto/bn/asm/alpha/mul.pl
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_mul_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r,$couny);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $count=&wparam(2);
- $word=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- ###
- &blt($count,&label("finish"));
-
- ($a0)=&NR(1); &ld($a0,&QWPw(0,$ap));
-
- &set_label("loop");
-
- ($a1)=&NR(1); &ld($a1,&QWPw(1,$ap));
- ($a2)=&NR(1); &ld($a2,&QWPw(2,$ap));
-
- &muh($a0,$word,($h0)=&NR(1)); &FR($a0);
- ($a3)=&NR(1); &ld($a3,&QWPw(3,$ap));
- ### wait 8
- &mul($a0,$word,($l0)=&NR(1)); &FR($a0);
- ### wait 8
- &muh($a1,$word,($h1)=&NR(1)); &FR($a1);
- &add($l0,$cc,$l0); ### wait 8
- &mul($a1,$word,($l1)=&NR(1)); &FR($a1);
- &cmpult($l0,$cc,$cc); ### wait 8
- &muh($a2,$word,($h2)=&NR(1)); &FR($a2);
- &add($h0,$cc,$cc); &FR($h0); ### wait 8
- &mul($a2,$word,($l2)=&NR(1)); &FR($a2);
- &add($l1,$cc,$l1); ### wait 8
- &st($l0,&QWPw(0,$rp)); &FR($l0);
- &cmpult($l1,$cc,$cc); ### wait 8
- &muh($a3,$word,($h3)=&NR(1)); &FR($a3);
- &add($h1,$cc,$cc); &FR($h1);
- &mul($a3,$word,($l3)=&NR(1)); &FR($a3);
- &add($l2,$cc,$l2);
- &st($l1,&QWPw(1,$rp)); &FR($l1);
- &cmpult($l2,$cc,$cc);
- &add($h2,$cc,$cc); &FR($h2);
- &sub($count,4,$count); # count-=4
- &st($l2,&QWPw(2,$rp)); &FR($l2);
- &add($l3,$cc,$l3);
- &cmpult($l3,$cc,$cc);
- &add($bp,4*$QWS,$bp); # count+=4
- &add($h3,$cc,$cc); &FR($h3);
- &add($ap,4*$QWS,$ap); # count+=4
- &st($l3,&QWPw(3,$rp)); &FR($l3);
- &add($rp,4*$QWS,$rp); # count+=4
- ###
- &blt($count,&label("finish"));
- ($a0)=&NR(1); &ld($a0,&QWPw(0,$ap));
- &br(&label("finish"));
-##################################################
-
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap)); # get a
- ###
- ###
- ###
- &muh($a0,$word,($h0)=&NR(1));
- ### Wait 8 for next mul issue
- &mul($a0,$word,($l0)=&NR(1)); &FR($a0)
- &add($ap,$QWS,$ap);
- ### Loose 12 until result is available
- &add($rp,$QWS,$rp);
- &sub($count,1,$count);
- &add($l0,$cc,$l0);
- ###
- &st($l0,&QWPw(-1,$rp)); &FR($l0);
- &cmpult($l0,$cc,$cc);
- &add($h0,$cc,$cc); &FR($h0);
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/mul_add.pl b/crypto/bn/asm/alpha/mul_add.pl
deleted file mode 100644
index 0d6df69bc4..0000000000
--- a/crypto/bn/asm/alpha/mul_add.pl
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_mul_add_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r,$couny);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $count=&wparam(2);
- $word=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- ###
- &blt($count,&label("finish"));
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap));
-
-$a=<<'EOF';
-##########################################################
- &set_label("loop");
-
- &ld(($r0)=&NR(1),&QWPw(0,$rp));
- &ld(($a1)=&NR(1),&QWPw(1,$ap));
- &muh($a0,$word,($h0)=&NR(1));
- &ld(($r1)=&NR(1),&QWPw(1,$rp));
- &ld(($a2)=&NR(1),&QWPw(2,$ap));
- ###
- &mul($a0,$word,($l0)=&NR(1)); &FR($a0);
- &ld(($r2)=&NR(1),&QWPw(2,$rp));
- &muh($a1,$word,($h1)=&NR(1));
- &ld(($a3)=&NR(1),&QWPw(3,$ap));
- &mul($a1,$word,($l1)=&NR(1)); &FR($a1);
- &ld(($r3)=&NR(1),&QWPw(3,$rp));
- &add($r0,$l0,$r0);
- &add($r1,$l1,$r1);
- &cmpult($r0,$l0,($t0)=&NR(1)); &FR($l0);
- &cmpult($r1,$l1,($t1)=&NR(1)); &FR($l1);
- &muh($a2,$word,($h2)=&NR(1));
- &add($r0,$cc,$r0);
- &add($h0,$t0,$h0); &FR($t0);
- &cmpult($r0,$cc,$cc);
- &add($h1,$t1,$h1); &FR($t1);
- &add($h0,$cc,$cc); &FR($h0);
- &mul($a2,$word,($l2)=&NR(1)); &FR($a2);
- &add($r1,$cc,$r1);
- &cmpult($r1,$cc,$cc);
- &add($r2,$l2,$r2);
- &add($h1,$cc,$cc); &FR($h1);
- &cmpult($r2,$l2,($t2)=&NR(1)); &FR($l2);
- &muh($a3,$word,($h3)=&NR(1));
- &add($r2,$cc,$r2);
- &st($r0,&QWPw(0,$rp)); &FR($r0);
- &add($h2,$t2,$h2); &FR($t2);
- &st($r1,&QWPw(1,$rp)); &FR($r1);
- &cmpult($r2,$cc,$cc);
- &mul($a3,$word,($l3)=&NR(1)); &FR($a3);
- &add($h2,$cc,$cc); &FR($h2);
- &st($r2,&QWPw(2,$rp)); &FR($r2);
- &sub($count,4,$count); # count-=4
- &add($rp,4*$QWS,$rp); # count+=4
- &add($r3,$l3,$r3);
- &add($ap,4*$QWS,$ap); # count+=4
- &cmpult($r3,$l3,($t3)=&NR(1)); &FR($l3);
- &add($r3,$cc,$r3);
- &add($h3,$t3,$h3); &FR($t3);
- &cmpult($r3,$cc,$cc);
- &st($r3,&QWPw(-1,$rp)); &FR($r3);
- &add($h3,$cc,$cc); &FR($h3);
-
- ###
- &blt($count,&label("finish"));
- &ld(($a0)=&NR(1),&QWPw(0,$ap));
- &br(&label("loop"));
-EOF
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap)); # get a
- &ld(($r0)=&NR(1),&QWPw(0,$rp)); # get b
- ###
- ###
- &muh($a0,$word,($h0)=&NR(1)); &FR($a0);
- ### wait 8
- &mul($a0,$word,($l0)=&NR(1)); &FR($a0);
- &add($rp,$QWS,$rp);
- &add($ap,$QWS,$ap);
- &sub($count,1,$count);
- ### wait 3 until l0 is available
- &add($r0,$l0,$r0);
- ###
- &cmpult($r0,$l0,($t0)=&NR(1)); &FR($l0);
- &add($r0,$cc,$r0);
- &add($h0,$t0,$h0); &FR($t0);
- &cmpult($r0,$cc,$cc);
- &add($h0,$cc,$cc); &FR($h0);
-
- &st($r0,&QWPw(-1,$rp)); &FR($r0);
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/mul_c4.pl b/crypto/bn/asm/alpha/mul_c4.pl
deleted file mode 100644
index 9cc876ded4..0000000000
--- a/crypto/bn/asm/alpha/mul_c4.pl
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-# upto
-
-sub mul_add_c
- {
- local($a,$b,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
- &mul($a,$b,($l1)=&NR(1));
- &muh($a,$b,($h1)=&NR(1));
- &add($c0,$l1,$c0);
- &cmpult($c0,$l1,($t1)=&NR(1)); &FR($l1);
- &add($t1,$h1,$h1); &FR($t1);
- &add($c1,$h1,$c1);
- &cmpult($c1,$h1,($t2)=&NR(1)); &FR($h1);
- &add($c2,$t2,$c2); &FR($t2);
- }
-
-sub bn_mul_comba4
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(3);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($b[0])=&NR(1),&QWPw(0,$bp));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($b[1])=&NR(1),&QWPw(1,$bp));
- &mul($a[0],$b[0],($r00)=&NR(1));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($b[2])=&NR(1),&QWPw(2,$bp));
- &muh($a[0],$b[0],($r01)=&NR(1));
- &FR($ap); &ld(($a[3])=&NR(1),&QWPw(3,$ap));
- &FR($bp); &ld(($b[3])=&NR(1),&QWPw(3,$bp));
- &mul($a[0],$b[1],($r02)=&NR(1));
-
- ($R,$H1,$H2)=&NR(3);
-
- &st($r00,&QWPw(0,$rp)); &FR($r00);
-
- &mov("zero",$R);
- &mul($a[1],$b[0],($r03)=&NR(1));
-
- &mov("zero",$H1);
- &mov("zero",$H0);
- &add($R,$r01,$R);
- &muh($a[0],$b[1],($r04)=&NR(1));
- &cmpult($R,$r01,($t01)=&NR(1)); &FR($r01);
- &add($R,$r02,$R);
- &add($H1,$t01,$H1) &FR($t01);
- &muh($a[1],$b[0],($r05)=&NR(1));
- &cmpult($R,$r02,($t02)=&NR(1)); &FR($r02);
- &add($R,$r03,$R);
- &add($H2,$t02,$H2) &FR($t02);
- &mul($a[0],$b[2],($r06)=&NR(1));
- &cmpult($R,$r03,($t03)=&NR(1)); &FR($r03);
- &add($H1,$t03,$H1) &FR($t03);
- &st($R,&QWPw(1,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r04,$R);
- &mov("zero",$H2);
- &mul($a[1],$b[1],($r07)=&NR(1));
- &cmpult($R,$r04,($t04)=&NR(1)); &FR($r04);
- &add($R,$r05,$R);
- &add($H1,$t04,$H1) &FR($t04);
- &mul($a[2],$b[0],($r08)=&NR(1));
- &cmpult($R,$r05,($t05)=&NR(1)); &FR($r05);
- &add($R,$r01,$R);
- &add($H2,$t05,$H2) &FR($t05);
- &muh($a[0],$b[2],($r09)=&NR(1));
- &cmpult($R,$r06,($t06)=&NR(1)); &FR($r06);
- &add($R,$r07,$R);
- &add($H1,$t06,$H1) &FR($t06);
- &muh($a[1],$b[1],($r10)=&NR(1));
- &cmpult($R,$r07,($t07)=&NR(1)); &FR($r07);
- &add($R,$r08,$R);
- &add($H2,$t07,$H2) &FR($t07);
- &muh($a[2],$b[0],($r11)=&NR(1));
- &cmpult($R,$r08,($t08)=&NR(1)); &FR($r08);
- &add($H1,$t08,$H1) &FR($t08);
- &st($R,&QWPw(2,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r09,$R);
- &mov("zero",$H2);
- &mul($a[0],$b[3],($r12)=&NR(1));
- &cmpult($R,$r09,($t09)=&NR(1)); &FR($r09);
- &add($R,$r10,$R);
- &add($H1,$t09,$H1) &FR($t09);
- &mul($a[1],$b[2],($r13)=&NR(1));
- &cmpult($R,$r10,($t10)=&NR(1)); &FR($r10);
- &add($R,$r11,$R);
- &add($H1,$t10,$H1) &FR($t10);
- &mul($a[2],$b[1],($r14)=&NR(1));
- &cmpult($R,$r11,($t11)=&NR(1)); &FR($r11);
- &add($R,$r12,$R);
- &add($H1,$t11,$H1) &FR($t11);
- &mul($a[3],$b[0],($r15)=&NR(1));
- &cmpult($R,$r12,($t12)=&NR(1)); &FR($r12);
- &add($R,$r13,$R);
- &add($H1,$t12,$H1) &FR($t12);
- &muh($a[0],$b[3],($r16)=&NR(1));
- &cmpult($R,$r13,($t13)=&NR(1)); &FR($r13);
- &add($R,$r14,$R);
- &add($H1,$t13,$H1) &FR($t13);
- &muh($a[1],$b[2],($r17)=&NR(1));
- &cmpult($R,$r14,($t14)=&NR(1)); &FR($r14);
- &add($R,$r15,$R);
- &add($H1,$t14,$H1) &FR($t14);
- &muh($a[2],$b[1],($r18)=&NR(1));
- &cmpult($R,$r15,($t15)=&NR(1)); &FR($r15);
- &add($H1,$t15,$H1) &FR($t15);
- &st($R,&QWPw(3,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r16,$R);
- &mov("zero",$H2);
- &muh($a[3],$b[0],($r19)=&NR(1));
- &cmpult($R,$r16,($t16)=&NR(1)); &FR($r16);
- &add($R,$r17,$R);
- &add($H1,$t16,$H1) &FR($t16);
- &mul($a[1],$b[3],($r20)=&NR(1));
- &cmpult($R,$r17,($t17)=&NR(1)); &FR($r17);
- &add($R,$r18,$R);
- &add($H1,$t17,$H1) &FR($t17);
- &mul($a[2],$b[2],($r21)=&NR(1));
- &cmpult($R,$r18,($t18)=&NR(1)); &FR($r18);
- &add($R,$r19,$R);
- &add($H1,$t18,$H1) &FR($t18);
- &mul($a[3],$b[1],($r22)=&NR(1));
- &cmpult($R,$r19,($t19)=&NR(1)); &FR($r19);
- &add($R,$r20,$R);
- &add($H1,$t19,$H1) &FR($t19);
- &muh($a[1],$b[3],($r23)=&NR(1));
- &cmpult($R,$r20,($t20)=&NR(1)); &FR($r20);
- &add($R,$r21,$R);
- &add($H1,$t20,$H1) &FR($t20);
- &muh($a[2],$b[2],($r24)=&NR(1));
- &cmpult($R,$r21,($t21)=&NR(1)); &FR($r21);
- &add($R,$r22,$R);
- &add($H1,$t21,$H1) &FR($t21);
- &muh($a[3],$b[1],($r25)=&NR(1));
- &cmpult($R,$r22,($t22)=&NR(1)); &FR($r22);
- &add($H1,$t22,$H1) &FR($t22);
- &st($R,&QWPw(4,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r23,$R);
- &mov("zero",$H2);
- &mul($a[2],$b[3],($r26)=&NR(1));
- &cmpult($R,$r23,($t23)=&NR(1)); &FR($r23);
- &add($R,$r24,$R);
- &add($H1,$t23,$H1) &FR($t23);
- &mul($a[3],$b[2],($r27)=&NR(1));
- &cmpult($R,$r24,($t24)=&NR(1)); &FR($r24);
- &add($R,$r25,$R);
- &add($H1,$t24,$H1) &FR($t24);
- &muh($a[2],$b[3],($r28)=&NR(1));
- &cmpult($R,$r25,($t25)=&NR(1)); &FR($r25);
- &add($R,$r26,$R);
- &add($H1,$t25,$H1) &FR($t25);
- &muh($a[3],$b[2],($r29)=&NR(1));
- &cmpult($R,$r26,($t26)=&NR(1)); &FR($r26);
- &add($R,$r27,$R);
- &add($H1,$t26,$H1) &FR($t26);
- &mul($a[3],$b[3],($r30)=&NR(1));
- &cmpult($R,$r27,($t27)=&NR(1)); &FR($r27);
- &add($H1,$t27,$H1) &FR($t27);
- &st($R,&QWPw(5,$rp));
- &add($H1,$H2,$R);
-
- &mov("zero",$H1);
- &add($R,$r28,$R);
- &mov("zero",$H2);
- &muh($a[3],$b[3],($r31)=&NR(1));
- &cmpult($R,$r28,($t28)=&NR(1)); &FR($r28);
- &add($R,$r29,$R);
- &add($H1,$t28,$H1) &FR($t28);
- ############
- &cmpult($R,$r29,($t29)=&NR(1)); &FR($r29);
- &add($R,$r30,$R);
- &add($H1,$t29,$H1) &FR($t29);
- ############
- &cmpult($R,$r30,($t30)=&NR(1)); &FR($r30);
- &add($H1,$t30,$H1) &FR($t30);
- &st($R,&QWPw(6,$rp));
- &add($H1,$H2,$R);
-
- &add($R,$r31,$R); &FR($r31);
- &st($R,&QWPw(7,$rp));
-
- &FR($R,$H1,$H2);
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/mul_c4.works.pl b/crypto/bn/asm/alpha/mul_c4.works.pl
deleted file mode 100644
index 79d86dd25c..0000000000
--- a/crypto/bn/asm/alpha/mul_c4.works.pl
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub mul_add_c
- {
- local($a,$b,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
-print STDERR "count=$cnt\n"; $cnt++;
- &mul($a,$b,($l1)=&NR(1));
- &muh($a,$b,($h1)=&NR(1));
- &add($c0,$l1,$c0);
- &cmpult($c0,$l1,($t1)=&NR(1)); &FR($l1);
- &add($t1,$h1,$h1); &FR($t1);
- &add($c1,$h1,$c1);
- &cmpult($c1,$h1,($t2)=&NR(1)); &FR($h1);
- &add($c2,$t2,$c2); &FR($t2);
- }
-
-sub bn_mul_comba4
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(3);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($b[0])=&NR(1),&QWPw(0,$bp));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($b[1])=&NR(1),&QWPw(1,$bp));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($b[2])=&NR(1),&QWPw(2,$bp));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap)); &FR($ap);
- &ld(($b[3])=&NR(1),&QWPw(3,$bp)); &FR($bp);
-
- ($c0,$c1,$c2)=&NR(3);
- &mov("zero",$c2);
- &mul($a[0],$b[0],$c0);
- &muh($a[0],$b[0],$c1);
- &st($c0,&QWPw(0,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[1],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[0],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[3],$c0,$c1,$c2); &FR($a[0]);
- &mul_add_c($a[1],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[0],$c0,$c1,$c2); &FR($b[0]);
- &st($c0,&QWPw(3,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[1],$b[3],$c0,$c1,$c2); &FR($a[1]);
- &mul_add_c($a[2],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[1],$c0,$c1,$c2); &FR($b[1]);
- &st($c0,&QWPw(4,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[2],$b[3],$c0,$c1,$c2); &FR($a[2]);
- &mul_add_c($a[3],$b[2],$c0,$c1,$c2); &FR($b[2]);
- &st($c0,&QWPw(5,$rp)); &FR($c0); ($c0)=&NR($c0);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[3],$b[3],$c0,$c1,$c2); &FR($a[3],$b[3]);
- &st($c0,&QWPw(6,$rp));
- &st($c1,&QWPw(7,$rp));
-
- &FR($c0,$c1,$c2);
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/mul_c8.pl b/crypto/bn/asm/alpha/mul_c8.pl
deleted file mode 100644
index 525ca7494b..0000000000
--- a/crypto/bn/asm/alpha/mul_c8.pl
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_mul_comba8
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(3);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
-
- &stack_push(2);
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($b[0])=&NR(1),&QWPw(0,$bp));
- &st($reg_s0,&swtmp(0)); &FR($reg_s0);
- &st($reg_s1,&swtmp(1)); &FR($reg_s1);
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($b[1])=&NR(1),&QWPw(1,$bp));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($b[2])=&NR(1),&QWPw(2,$bp));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap));
- &ld(($b[3])=&NR(1),&QWPw(3,$bp));
- &ld(($a[4])=&NR(1),&QWPw(1,$ap));
- &ld(($b[4])=&NR(1),&QWPw(1,$bp));
- &ld(($a[5])=&NR(1),&QWPw(1,$ap));
- &ld(($b[5])=&NR(1),&QWPw(1,$bp));
- &ld(($a[6])=&NR(1),&QWPw(1,$ap));
- &ld(($b[6])=&NR(1),&QWPw(1,$bp));
- &ld(($a[7])=&NR(1),&QWPw(1,$ap)); &FR($ap);
- &ld(($b[7])=&NR(1),&QWPw(1,$bp)); &FR($bp);
-
- ($c0,$c1,$c2)=&NR(3);
- &mov("zero",$c2);
- &mul($a[0],$b[0],$c0);
- &muh($a[0],$b[0],$c1);
- &st($c0,&QWPw(0,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(3,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(4,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(5,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[1],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[0],$c0,$c1,$c2);
- &st($c0,&QWPw(6,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[0],$b[7],$c0,$c1,$c2); &FR($a[0]);
- &mul_add_c($a[1],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[2],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[1],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[0],$c0,$c1,$c2); &FR($b[0]);
- &st($c0,&QWPw(7,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[1],$b[7],$c0,$c1,$c2); &FR($a[1]);
- &mul_add_c($a[2],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[3],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[2],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[1],$c0,$c1,$c2); &FR($b[1]);
- &st($c0,&QWPw(8,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[2],$b[7],$c0,$c1,$c2); &FR($a[2]);
- &mul_add_c($a[3],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[4],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[3],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[2],$c0,$c1,$c2); &FR($b[2]);
- &st($c0,&QWPw(9,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[3],$b[7],$c0,$c1,$c2); &FR($a[3]);
- &mul_add_c($a[4],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[5],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[4],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[3],$c0,$c1,$c2); &FR($b[3]);
- &st($c0,&QWPw(10,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[4],$b[7],$c0,$c1,$c2); &FR($a[4]);
- &mul_add_c($a[5],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[6],$b[5],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[4],$c0,$c1,$c2); &FR($b[4]);
- &st($c0,&QWPw(11,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[5],$b[7],$c0,$c1,$c2); &FR($a[5]);
- &mul_add_c($a[6],$b[6],$c0,$c1,$c2);
- &mul_add_c($a[7],$b[5],$c0,$c1,$c2); &FR($b[5]);
- &st($c0,&QWPw(12,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[6],$b[7],$c0,$c1,$c2); &FR($a[6]);
- &mul_add_c($a[7],$b[6],$c0,$c1,$c2); &FR($b[6]);
- &st($c0,&QWPw(13,$rp)); &FR($c0); ($c0)=&NR(1);
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &mul_add_c($a[7],$b[7],$c0,$c1,$c2); &FR($a[7],$b[7]);
- &st($c0,&QWPw(14,$rp));
- &st($c1,&QWPw(15,$rp));
-
- &FR($c0,$c1,$c2);
-
- &ld($reg_s0,&swtmp(0));
- &ld($reg_s1,&swtmp(1));
- &stack_pop(2);
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/sqr.pl b/crypto/bn/asm/alpha/sqr.pl
deleted file mode 100644
index a55b696906..0000000000
--- a/crypto/bn/asm/alpha/sqr.pl
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_sqr_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r,$couny);
-
- &init_pool(3);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $count=&wparam(2);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &br(&label("finish"));
- &blt($count,&label("finish"));
-
- ($a0,$r0)=&NR(2);
- &ld($a0,&QWPw(0,$ap));
- &ld($r0,&QWPw(0,$rp));
-
-$a=<<'EOF';
-##########################################################
- &set_label("loop");
-
- ($a1)=&NR(1); &ld($a1,&QWPw(1,$ap));
- ($b1)=&NR(1); &ld($b1,&QWPw(1,$bp));
- ($a2)=&NR(1); &ld($a2,&QWPw(2,$ap));
- ($b2)=&NR(1); &ld($b2,&QWPw(2,$bp));
- ($a3)=&NR(1); &ld($a3,&QWPw(3,$ap));
- ($b3)=&NR(1); &ld($b3,&QWPw(3,$bp));
-
- ($o0,$t0)=&NR(2);
- &add($a0,$b0,$o0);
- &cmpult($o0,$b0,$t0);
- &add($o0,$cc,$o0);
- &cmpult($o0,$cc,$cc);
- &add($cc,$t0,$cc); &FR($t0);
-
- ($t1,$o1)=&NR(2);
-
- &add($a1,$b1,$o1); &FR($a1);
- &cmpult($o1,$b1,$t1); &FR($b1);
- &add($o1,$cc,$o1);
- &cmpult($o1,$cc,$cc);
- &add($cc,$t1,$cc); &FR($t1);
-
- ($t2,$o2)=&NR(2);
-
- &add($a2,$b2,$o2); &FR($a2);
- &cmpult($o2,$b2,$t2); &FR($b2);
- &add($o2,$cc,$o2);
- &cmpult($o2,$cc,$cc);
- &add($cc,$t2,$cc); &FR($t2);
-
- ($t3,$o3)=&NR(2);
-
- &add($a3,$b3,$o3); &FR($a3);
- &cmpult($o3,$b3,$t3); &FR($b3);
- &add($o3,$cc,$o3);
- &cmpult($o3,$cc,$cc);
- &add($cc,$t3,$cc); &FR($t3);
-
- &st($o0,&QWPw(0,$rp)); &FR($o0);
- &st($o1,&QWPw(0,$rp)); &FR($o1);
- &st($o2,&QWPw(0,$rp)); &FR($o2);
- &st($o3,&QWPw(0,$rp)); &FR($o3);
-
- &sub($count,4,$count); # count-=4
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-EOF
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld(($a0)=&NR(1),&QWPw(0,$ap)); # get a
- &mul($a0,$a0,($l0)=&NR(1));
- &add($ap,$QWS,$ap);
- &add($rp,2*$QWS,$rp);
- &sub($count,1,$count);
- &muh($a0,$a0,($h0)=&NR(1)); &FR($a0);
- &st($l0,&QWPw(-2,$rp)); &FR($l0);
- &st($h0,&QWPw(-1,$rp)); &FR($h0);
-
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/sqr_c4.pl b/crypto/bn/asm/alpha/sqr_c4.pl
deleted file mode 100644
index bf33f5b503..0000000000
--- a/crypto/bn/asm/alpha/sqr_c4.pl
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub sqr_add_c
- {
- local($a,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
- &mul($a,$a,($l1)=&NR(1));
- &muh($a,$a,($h1)=&NR(1));
- &add($c0,$l1,$c0);
- &add($c1,$h1,$c1);
- &cmpult($c0,$l1,($t1)=&NR(1)); &FR($l1);
- &cmpult($c1,$h1,($t2)=&NR(1)); &FR($h1);
- &add($c1,$t1,$c1); &FR($t1);
- &add($c2,$t2,$c2); &FR($t2);
- }
-
-sub sqr_add_c2
- {
- local($a,$b,$c0,$c1,$c2)=@_;
- local($l1,$h1,$t1,$t2);
-
- &mul($a,$b,($l1)=&NR(1));
- &muh($a,$b,($h1)=&NR(1));
- &cmplt($l1,"zero",($lc1)=&NR(1));
- &cmplt($h1,"zero",($hc1)=&NR(1));
- &add($l1,$l1,$l1);
- &add($h1,$h1,$h1);
- &add($h1,$lc1,$h1); &FR($lc1);
- &add($c2,$hc1,$c2); &FR($hc1);
-
- &add($c0,$l1,$c0);
- &add($c1,$h1,$c1);
- &cmpult($c0,$l1,($lc1)=&NR(1)); &FR($l1);
- &cmpult($c1,$h1,($hc1)=&NR(1)); &FR($h1);
-
- &add($c1,$lc1,$c1); &FR($lc1);
- &add($c2,$hc1,$c2); &FR($hc1);
- }
-
-
-sub bn_sqr_comba4
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(2);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap)); &FR($ap);
-
- ($c0,$c1,$c2)=&NR(3);
-
- &mov("zero",$c2);
- &mul($a[0],$a[0],$c0);
- &muh($a[0],$a[0],$c1);
- &st($c0,&QWPw(0,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[0],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[2],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[3],$a[0],$c0,$c1,$c2);
- &sqr_add_c2($a[2],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(3,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[3],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(4,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[3],$a[2],$c0,$c1,$c2);
- &st($c0,&QWPw(5,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[3],$c0,$c1,$c2);
- &st($c0,&QWPw(6,$rp));
- &st($c1,&QWPw(7,$rp));
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/sqr_c8.pl b/crypto/bn/asm/alpha/sqr_c8.pl
deleted file mode 100644
index b4afe085f1..0000000000
--- a/crypto/bn/asm/alpha/sqr_c8.pl
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_sqr_comba8
- {
- local($name)=@_;
- local(@a,@b,$r,$c0,$c1,$c2);
-
- $cnt=1;
- &init_pool(2);
-
- $rp=&wparam(0);
- $ap=&wparam(1);
-
- &function_begin($name,"");
-
- &comment("");
-
- &ld(($a[0])=&NR(1),&QWPw(0,$ap));
- &ld(($a[1])=&NR(1),&QWPw(1,$ap));
- &ld(($a[2])=&NR(1),&QWPw(2,$ap));
- &ld(($a[3])=&NR(1),&QWPw(3,$ap));
- &ld(($a[4])=&NR(1),&QWPw(4,$ap));
- &ld(($a[5])=&NR(1),&QWPw(5,$ap));
- &ld(($a[6])=&NR(1),&QWPw(6,$ap));
- &ld(($a[7])=&NR(1),&QWPw(7,$ap)); &FR($ap);
-
- ($c0,$c1,$c2)=&NR(3);
-
- &mov("zero",$c2);
- &mul($a[0],$a[0],$c0);
- &muh($a[0],$a[0],$c1);
- &st($c0,&QWPw(0,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[1],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(1,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[2],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(2,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[2],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[3],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(3,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[3],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[4],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(4,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[3],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[4],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(5,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[4],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(6,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[4],$a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[1],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[0],$c0,$c1,$c2);
- &st($c0,&QWPw(7,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[4],$c0,$c1,$c2);
- &sqr_add_c2($a[5],$a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[2],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[1],$c0,$c1,$c2);
- &st($c0,&QWPw(8,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[5],$a[4],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[3],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[2],$c0,$c1,$c2);
- &st($c0,&QWPw(9,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[5],$c0,$c1,$c2);
- &sqr_add_c2($a[6],$a[4],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[3],$c0,$c1,$c2);
- &st($c0,&QWPw(10,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[6],$a[5],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[4],$c0,$c1,$c2);
- &st($c0,&QWPw(11,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[6],$c0,$c1,$c2);
- &sqr_add_c2($a[7],$a[5],$c0,$c1,$c2);
- &st($c0,&QWPw(12,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c2($a[7],$a[6],$c0,$c1,$c2);
- &st($c0,&QWPw(13,$rp));
- ($c0,$c1,$c2)=($c1,$c2,$c0);
- &mov("zero",$c2);
-
- &sqr_add_c($a[7],$c0,$c1,$c2);
- &st($c0,&QWPw(14,$rp));
- &st($c1,&QWPw(15,$rp));
-
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/alpha/sub.pl b/crypto/bn/asm/alpha/sub.pl
deleted file mode 100644
index d998da5c21..0000000000
--- a/crypto/bn/asm/alpha/sub.pl
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/local/bin/perl
-# alpha assember
-
-sub bn_sub_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r);
-
- &init_pool(4);
- ($cc)=GR("r0");
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
- $count=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &blt($count,&label("finish"));
-
- ($a0,$b0)=&NR(2);
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
-
-##########################################################
- &set_label("loop");
-
- ($a1,$tmp,$b1,$a2,$b2,$a3,$b3,$o0)=&NR(8);
- &ld($a1,&QWPw(1,$ap));
- &cmpult($a0,$b0,$tmp); # will we borrow?
- &ld($b1,&QWPw(1,$bp));
- &sub($a0,$b0,$a0); # do the subtract
- &ld($a2,&QWPw(2,$ap));
- &cmpult($a0,$cc,$b0); # will we borrow?
- &ld($b2,&QWPw(2,$bp));
- &sub($a0,$cc,$o0); # will we borrow?
- &ld($a3,&QWPw(3,$ap));
- &add($b0,$tmp,$cc); ($t1,$o1)=&NR(2); &FR($tmp);
-
- &cmpult($a1,$b1,$t1); # will we borrow?
- &sub($a1,$b1,$a1); # do the subtract
- &ld($b3,&QWPw(3,$bp));
- &cmpult($a1,$cc,$b1); # will we borrow?
- &sub($a1,$cc,$o1); # will we borrow?
- &add($b1,$t1,$cc); ($tmp,$o2)=&NR(2); &FR($t1,$a1,$b1);
-
- &cmpult($a2,$b2,$tmp); # will we borrow?
- &sub($a2,$b2,$a2); # do the subtract
- &st($o0,&QWPw(0,$rp)); &FR($o0); # save
- &cmpult($a2,$cc,$b2); # will we borrow?
- &sub($a2,$cc,$o2); # will we borrow?
- &add($b2,$tmp,$cc); ($t3,$o3)=&NR(2); &FR($tmp,$a2,$b2);
-
- &cmpult($a3,$b3,$t3); # will we borrow?
- &sub($a3,$b3,$a3); # do the subtract
- &st($o1,&QWPw(1,$rp)); &FR($o1);
- &cmpult($a3,$cc,$b3); # will we borrow?
- &sub($a3,$cc,$o3); # will we borrow?
- &add($b3,$t3,$cc); &FR($t3,$a3,$b3);
-
- &st($o2,&QWPw(2,$rp)); &FR($o2);
- &sub($count,4,$count); # count-=4
- &st($o3,&QWPw(3,$rp)); &FR($o3);
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld($a0,&QWPw(0,$ap)); # get a
- &ld($b0,&QWPw(0,$bp)); # get b
- &cmpult($a0,$b0,$tmp); # will we borrow?
- &sub($a0,$b0,$a0); # do the subtract
- &cmpult($a0,$cc,$b0); # will we borrow?
- &sub($a0,$cc,$a0); # will we borrow?
- &st($a0,&QWPw(0,$rp)); # save
- &add($b0,$tmp,$cc); # add the borrows
-
- &add($ap,$QWS,$ap);
- &add($bp,$QWS,$bp);
- &add($rp,$QWS,$rp);
- &sub($count,1,$count);
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &FR($a0,$b0);
- &set_label("end");
- &function_end($name);
-
- &fin_pool;
- }
-
-1;
diff --git a/crypto/bn/asm/bn-586.pl b/crypto/bn/asm/bn-586.pl
index 9a7c64c464..26c2685a72 100644
--- a/crypto/bn/asm/bn-586.pl
+++ b/crypto/bn/asm/bn-586.pl
@@ -5,7 +5,10 @@ require "x86asm.pl";
&asm_init($ARGV[0],$0);
-$sse2=0; # SSE2 is temporarily disabled...
+$sse2=0;
+for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
+
+&external_label("OPENSSL_ia32cap_P") if ($sse2);
&bn_mul_add_words("bn_mul_add_words");
&bn_mul_words("bn_mul_words");
@@ -21,7 +24,7 @@ sub bn_mul_add_words
{
local($name)=@_;
- &function_begin($name,"");
+ &function_begin($name,$sse2?"EXTRN\t_OPENSSL_ia32cap_P:DWORD":"");
&comment("");
$Low="eax";
@@ -45,7 +48,7 @@ sub bn_mul_add_words
&jz(&label("maw_finish"));
if ($sse2) {
- &picmeup("eax","OPENSSL_ia32cap");
+ &picmeup("eax","OPENSSL_ia32cap_P");
&bt(&DWP(0,"eax"),26);
&jnc(&label("maw_loop"));
diff --git a/crypto/bn/asm/bn-alpha.pl b/crypto/bn/asm/bn-alpha.pl
deleted file mode 100644
index 302edf2376..0000000000
--- a/crypto/bn/asm/bn-alpha.pl
+++ /dev/null
@@ -1,571 +0,0 @@
-#!/usr/local/bin/perl
-# I have this in perl so I can use more usefull register names and then convert
-# them into alpha registers.
-#
-
-$d=&data();
-$d =~ s/CC/0/g;
-$d =~ s/R1/1/g;
-$d =~ s/R2/2/g;
-$d =~ s/R3/3/g;
-$d =~ s/R4/4/g;
-$d =~ s/L1/5/g;
-$d =~ s/L2/6/g;
-$d =~ s/L3/7/g;
-$d =~ s/L4/8/g;
-$d =~ s/O1/22/g;
-$d =~ s/O2/23/g;
-$d =~ s/O3/24/g;
-$d =~ s/O4/25/g;
-$d =~ s/A1/20/g;
-$d =~ s/A2/21/g;
-$d =~ s/A3/27/g;
-$d =~ s/A4/28/g;
-if (0){
-}
-
-print $d;
-
-sub data
- {
- local($data)=<<'EOF';
-
- # DEC Alpha assember
- # The bn_div_words is actually gcc output but the other parts are hand done.
- # Thanks to tzeruch@ceddec.com for sending me the gcc output for
- # bn_div_words.
- # I've gone back and re-done most of routines.
- # The key thing to remeber for the 164 CPU is that while a
- # multiply operation takes 8 cycles, another one can only be issued
- # after 4 cycles have elapsed. I've done modification to help
- # improve this. Also, normally, a ld instruction will not be available
- # for about 3 cycles.
- .file 1 "bn_asm.c"
- .set noat
-gcc2_compiled.:
-__gnu_compiled_c:
- .text
- .align 3
- .globl bn_mul_add_words
- .ent bn_mul_add_words
-bn_mul_add_words:
-bn_mul_add_words..ng:
- .frame $30,0,$26,0
- .prologue 0
- .align 5
- subq $18,4,$18
- bis $31,$31,$CC
- blt $18,$43 # if we are -1, -2, -3 or -4 goto tail code
- ldq $A1,0($17) # 1 1
- ldq $R1,0($16) # 1 1
- .align 3
-$42:
- mulq $A1,$19,$L1 # 1 2 1 ######
- ldq $A2,8($17) # 2 1
- ldq $R2,8($16) # 2 1
- umulh $A1,$19,$A1 # 1 2 ######
- ldq $A3,16($17) # 3 1
- ldq $R3,16($16) # 3 1
- mulq $A2,$19,$L2 # 2 2 1 ######
- ldq $A4,24($17) # 4 1
- addq $R1,$L1,$R1 # 1 2 2
- ldq $R4,24($16) # 4 1
- umulh $A2,$19,$A2 # 2 2 ######
- cmpult $R1,$L1,$O1 # 1 2 3 1
- addq $A1,$O1,$A1 # 1 3 1
- addq $R1,$CC,$R1 # 1 2 3 1
- mulq $A3,$19,$L3 # 3 2 1 ######
- cmpult $R1,$CC,$CC # 1 2 3 2
- addq $R2,$L2,$R2 # 2 2 2
- addq $A1,$CC,$CC # 1 3 2
- cmpult $R2,$L2,$O2 # 2 2 3 1
- addq $A2,$O2,$A2 # 2 3 1
- umulh $A3,$19,$A3 # 3 2 ######
- addq $R2,$CC,$R2 # 2 2 3 1
- cmpult $R2,$CC,$CC # 2 2 3 2
- subq $18,4,$18
- mulq $A4,$19,$L4 # 4 2 1 ######
- addq $A2,$CC,$CC # 2 3 2
- addq $R3,$L3,$R3 # 3 2 2
- addq $16,32,$16
- cmpult $R3,$L3,$O3 # 3 2 3 1
- stq $R1,-32($16) # 1 2 4
- umulh $A4,$19,$A4 # 4 2 ######
- addq $A3,$O3,$A3 # 3 3 1
- addq $R3,$CC,$R3 # 3 2 3 1
- stq $R2,-24($16) # 2 2 4
- cmpult $R3,$CC,$CC # 3 2 3 2
- stq $R3,-16($16) # 3 2 4
- addq $R4,$L4,$R4 # 4 2 2
- addq $A3,$CC,$CC # 3 3 2
- cmpult $R4,$L4,$O4 # 4 2 3 1
- addq $17,32,$17
- addq $A4,$O4,$A4 # 4 3 1
- addq $R4,$CC,$R4 # 4 2 3 1
- cmpult $R4,$CC,$CC # 4 2 3 2
- stq $R4,-8($16) # 4 2 4
- addq $A4,$CC,$CC # 4 3 2
- blt $18,$43
-
- ldq $A1,0($17) # 1 1
- ldq $R1,0($16) # 1 1
-
- br $42
-
- .align 4
-$45:
- ldq $A1,0($17) # 4 1
- ldq $R1,0($16) # 4 1
- mulq $A1,$19,$L1 # 4 2 1
- subq $18,1,$18
- addq $16,8,$16
- addq $17,8,$17
- umulh $A1,$19,$A1 # 4 2
- addq $R1,$L1,$R1 # 4 2 2
- cmpult $R1,$L1,$O1 # 4 2 3 1
- addq $A1,$O1,$A1 # 4 3 1
- addq $R1,$CC,$R1 # 4 2 3 1
- cmpult $R1,$CC,$CC # 4 2 3 2
- addq $A1,$CC,$CC # 4 3 2
- stq $R1,-8($16) # 4 2 4
- bgt $18,$45
- ret $31,($26),1 # else exit
-
- .align 4
-$43:
- addq $18,4,$18
- bgt $18,$45 # goto tail code
- ret $31,($26),1 # else exit
-
- .end bn_mul_add_words
- .align 3
- .globl bn_mul_words
- .ent bn_mul_words
-bn_mul_words:
-bn_mul_words..ng:
- .frame $30,0,$26,0
- .prologue 0
- .align 5
- subq $18,4,$18
- bis $31,$31,$CC
- blt $18,$143 # if we are -1, -2, -3 or -4 goto tail code
- ldq $A1,0($17) # 1 1
- .align 3
-$142:
-
- mulq $A1,$19,$L1 # 1 2 1 #####
- ldq $A2,8($17) # 2 1
- ldq $A3,16($17) # 3 1
- umulh $A1,$19,$A1 # 1 2 #####
- ldq $A4,24($17) # 4 1
- mulq $A2,$19,$L2 # 2 2 1 #####
- addq $L1,$CC,$L1 # 1 2 3 1
- subq $18,4,$18
- cmpult $L1,$CC,$CC # 1 2 3 2
- umulh $A2,$19,$A2 # 2 2 #####
- addq $A1,$CC,$CC # 1 3 2
- addq $17,32,$17
- addq $L2,$CC,$L2 # 2 2 3 1
- mulq $A3,$19,$L3 # 3 2 1 #####
- cmpult $L2,$CC,$CC # 2 2 3 2
- addq $A2,$CC,$CC # 2 3 2
- addq $16,32,$16
- umulh $A3,$19,$A3 # 3 2 #####
- stq $L1,-32($16) # 1 2 4
- mulq $A4,$19,$L4 # 4 2 1 #####
- addq $L3,$CC,$L3 # 3 2 3 1
- stq $L2,-24($16) # 2 2 4
- cmpult $L3,$CC,$CC # 3 2 3 2
- umulh $A4,$19,$A4 # 4 2 #####
- addq $A3,$CC,$CC # 3 3 2
- stq $L3,-16($16) # 3 2 4
- addq $L4,$CC,$L4 # 4 2 3 1
- cmpult $L4,$CC,$CC # 4 2 3 2
-
- addq $A4,$CC,$CC # 4 3 2
-
- stq $L4,-8($16) # 4 2 4
-
- blt $18,$143
-
- ldq $A1,0($17) # 1 1
-
- br $142
-
- .align 4
-$145:
- ldq $A1,0($17) # 4 1
- mulq $A1,$19,$L1 # 4 2 1
- subq $18,1,$18
- umulh $A1,$19,$A1 # 4 2
- addq $L1,$CC,$L1 # 4 2 3 1
- addq $16,8,$16
- cmpult $L1,$CC,$CC # 4 2 3 2
- addq $17,8,$17
- addq $A1,$CC,$CC # 4 3 2
- stq $L1,-8($16) # 4 2 4
-
- bgt $18,$145
- ret $31,($26),1 # else exit
-
- .align 4
-$143:
- addq $18,4,$18
- bgt $18,$145 # goto tail code
- ret $31,($26),1 # else exit
-
- .end bn_mul_words
- .align 3
- .globl bn_sqr_words
- .ent bn_sqr_words
-bn_sqr_words:
-bn_sqr_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $18,4,$18
- blt $18,$543 # if we are -1, -2, -3 or -4 goto tail code
- ldq $A1,0($17) # 1 1
- .align 3
-$542:
- mulq $A1,$A1,$L1 ######
- ldq $A2,8($17) # 1 1
- subq $18,4
- umulh $A1,$A1,$R1 ######
- ldq $A3,16($17) # 1 1
- mulq $A2,$A2,$L2 ######
- ldq $A4,24($17) # 1 1
- stq $L1,0($16) # r[0]
- umulh $A2,$A2,$R2 ######
- stq $R1,8($16) # r[1]
- mulq $A3,$A3,$L3 ######
- stq $L2,16($16) # r[0]
- umulh $A3,$A3,$R3 ######
- stq $R2,24($16) # r[1]
- mulq $A4,$A4,$L4 ######
- stq $L3,32($16) # r[0]
- umulh $A4,$A4,$R4 ######
- stq $R3,40($16) # r[1]
-
- addq $16,64,$16
- addq $17,32,$17
- stq $L4,-16($16) # r[0]
- stq $R4,-8($16) # r[1]
-
- blt $18,$543
- ldq $A1,0($17) # 1 1
- br $542
-
-$442:
- ldq $A1,0($17) # a[0]
- mulq $A1,$A1,$L1 # a[0]*w low part r2
- addq $16,16,$16
- addq $17,8,$17
- subq $18,1,$18
- umulh $A1,$A1,$R1 # a[0]*w high part r3
- stq $L1,-16($16) # r[0]
- stq $R1,-8($16) # r[1]
-
- bgt $18,$442
- ret $31,($26),1 # else exit
-
- .align 4
-$543:
- addq $18,4,$18
- bgt $18,$442 # goto tail code
- ret $31,($26),1 # else exit
- .end bn_sqr_words
-
- .align 3
- .globl bn_add_words
- .ent bn_add_words
-bn_add_words:
-bn_add_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $19,4,$19
- bis $31,$31,$CC # carry = 0
- blt $19,$900
- ldq $L1,0($17) # a[0]
- ldq $R1,0($18) # b[1]
- .align 3
-$901:
- addq $R1,$L1,$R1 # r=a+b;
- ldq $L2,8($17) # a[1]
- cmpult $R1,$L1,$O1 # did we overflow?
- ldq $R2,8($18) # b[1]
- addq $R1,$CC,$R1 # c+= overflow
- ldq $L3,16($17) # a[2]
- cmpult $R1,$CC,$CC # overflow?
- ldq $R3,16($18) # b[2]
- addq $CC,$O1,$CC
- ldq $L4,24($17) # a[3]
- addq $R2,$L2,$R2 # r=a+b;
- ldq $R4,24($18) # b[3]
- cmpult $R2,$L2,$O2 # did we overflow?
- addq $R3,$L3,$R3 # r=a+b;
- addq $R2,$CC,$R2 # c+= overflow
- cmpult $R3,$L3,$O3 # did we overflow?
- cmpult $R2,$CC,$CC # overflow?
- addq $R4,$L4,$R4 # r=a+b;
- addq $CC,$O2,$CC
- cmpult $R4,$L4,$O4 # did we overflow?
- addq $R3,$CC,$R3 # c+= overflow
- stq $R1,0($16) # r[0]=c
- cmpult $R3,$CC,$CC # overflow?
- stq $R2,8($16) # r[1]=c
- addq $CC,$O3,$CC
- stq $R3,16($16) # r[2]=c
- addq $R4,$CC,$R4 # c+= overflow
- subq $19,4,$19 # loop--
- cmpult $R4,$CC,$CC # overflow?
- addq $17,32,$17 # a++
- addq $CC,$O4,$CC
- stq $R4,24($16) # r[3]=c
- addq $18,32,$18 # b++
- addq $16,32,$16 # r++
-
- blt $19,$900
- ldq $L1,0($17) # a[0]
- ldq $R1,0($18) # b[1]
- br $901
- .align 4
-$945:
- ldq $L1,0($17) # a[0]
- ldq $R1,0($18) # b[1]
- addq $R1,$L1,$R1 # r=a+b;
- subq $19,1,$19 # loop--
- addq $R1,$CC,$R1 # c+= overflow
- addq $17,8,$17 # a++
- cmpult $R1,$L1,$O1 # did we overflow?
- cmpult $R1,$CC,$CC # overflow?
- addq $18,8,$18 # b++
- stq $R1,0($16) # r[0]=c
- addq $CC,$O1,$CC
- addq $16,8,$16 # r++
-
- bgt $19,$945
- ret $31,($26),1 # else exit
-
-$900:
- addq $19,4,$19
- bgt $19,$945 # goto tail code
- ret $31,($26),1 # else exit
- .end bn_add_words
-
- .align 3
- .globl bn_sub_words
- .ent bn_sub_words
-bn_sub_words:
-bn_sub_words..ng:
- .frame $30,0,$26,0
- .prologue 0
-
- subq $19,4,$19
- bis $31,$31,$CC # carry = 0
- br $800
- blt $19,$800
- ldq $L1,0($17) # a[0]
- ldq $R1,0($18) # b[1]
- .align 3
-$801:
- addq $R1,$L1,$R1 # r=a+b;
- ldq $L2,8($17) # a[1]
- cmpult $R1,$L1,$O1 # did we overflow?
- ldq $R2,8($18) # b[1]
- addq $R1,$CC,$R1 # c+= overflow
- ldq $L3,16($17) # a[2]
- cmpult $R1,$CC,$CC # overflow?
- ldq $R3,16($18) # b[2]
- addq $CC,$O1,$CC
- ldq $L4,24($17) # a[3]
- addq $R2,$L2,$R2 # r=a+b;
- ldq $R4,24($18) # b[3]
- cmpult $R2,$L2,$O2 # did we overflow?
- addq $R3,$L3,$R3 # r=a+b;
- addq $R2,$CC,$R2 # c+= overflow
- cmpult $R3,$L3,$O3 # did we overflow?
- cmpult $R2,$CC,$CC # overflow?
- addq $R4,$L4,$R4 # r=a+b;
- addq $CC,$O2,$CC
- cmpult $R4,$L4,$O4 # did we overflow?
- addq $R3,$CC,$R3 # c+= overflow
- stq $R1,0($16) # r[0]=c
- cmpult $R3,$CC,$CC # overflow?
- stq $R2,8($16) # r[1]=c
- addq $CC,$O3,$CC
- stq $R3,16($16) # r[2]=c
- addq $R4,$CC,$R4 # c+= overflow
- subq $19,4,$19 # loop--
- cmpult $R4,$CC,$CC # overflow?
- addq $17,32,$17 # a++
- addq $CC,$O4,$CC
- stq $R4,24($16) # r[3]=c
- addq $18,32,$18 # b++
- addq $16,32,$16 # r++
-
- blt $19,$800
- ldq $L1,0($17) # a[0]
- ldq $R1,0($18) # b[1]
- br $801
- .align 4
-$845:
- ldq $L1,0($17) # a[0]
- ldq $R1,0($18) # b[1]
- cmpult $L1,$R1,$O1 # will we borrow?
- subq $L1,$R1,$R1 # r=a-b;
- subq $19,1,$19 # loop--
- cmpult $R1,$CC,$O2 # will we borrow?
- subq $R1,$CC,$R1 # c+= overflow
- addq $17,8,$17 # a++
- addq $18,8,$18 # b++
- stq $R1,0($16) # r[0]=c
- addq $O2,$O1,$CC
- addq $16,8,$16 # r++
-
- bgt $19,$845
- ret $31,($26),1 # else exit
-
-$800:
- addq $19,4,$19
- bgt $19,$845 # goto tail code
- ret $31,($26),1 # else exit
- .end bn_sub_words
-
- #
- # What follows was taken directly from the C compiler with a few
- # hacks to redo the lables.
- #
-.text
- .align 3
- .globl bn_div_words
- .ent bn_div_words
-bn_div_words:
- ldgp $29,0($27)
-bn_div_words..ng:
- lda $30,-48($30)
- .frame $30,48,$26,0
- stq $26,0($30)
- stq $9,8($30)
- stq $10,16($30)
- stq $11,24($30)
- stq $12,32($30)
- stq $13,40($30)
- .mask 0x4003e00,-48
- .prologue 1
- bis $16,$16,$9
- bis $17,$17,$10
- bis $18,$18,$11
- bis $31,$31,$13
- bis $31,2,$12
- bne $11,$119
- lda $0,-1
- br $31,$136
- .align 4
-$119:
- bis $11,$11,$16
- jsr $26,BN_num_bits_word
- ldgp $29,0($26)
- subq $0,64,$1
- beq $1,$120
- bis $31,1,$1
- sll $1,$0,$1
- cmpule $9,$1,$1
- bne $1,$120
- # lda $16,_IO_stderr_
- # lda $17,$C32
- # bis $0,$0,$18
- # jsr $26,fprintf
- # ldgp $29,0($26)
- jsr $26,abort
- ldgp $29,0($26)
- .align 4
-$120:
- bis $31,64,$3
- cmpult $9,$11,$2
- subq $3,$0,$1
- addl $1,$31,$0
- subq $9,$11,$1
- cmoveq $2,$1,$9
- beq $0,$122
- zapnot $0,15,$2
- subq $3,$0,$1
- sll $11,$2,$11
- sll $9,$2,$3
- srl $10,$1,$1
- sll $10,$2,$10
- bis $3,$1,$9
-$122:
- srl $11,32,$5
- zapnot $11,15,$6
- lda $7,-1
- .align 5
-$123:
- srl $9,32,$1
- subq $1,$5,$1
- bne $1,$126
- zapnot $7,15,$27
- br $31,$127
- .align 4
-$126:
- bis $9,$9,$24
- bis $5,$5,$25
- divqu $24,$25,$27
-$127:
- srl $10,32,$4
- .align 5
-$128:
- mulq $27,$5,$1
- subq $9,$1,$3
- zapnot $3,240,$1
- bne $1,$129
- mulq $6,$27,$2
- sll $3,32,$1
- addq $1,$4,$1
- cmpule $2,$1,$2
- bne $2,$129
- subq $27,1,$27
- br $31,$128
- .align 4
-$129:
- mulq $27,$6,$1
- mulq $27,$5,$4
- srl $1,32,$3
- sll $1,32,$1
- addq $4,$3,$4
- cmpult $10,$1,$2
- subq $10,$1,$10
- addq $2,$4,$2
- cmpult $9,$2,$1
- bis $2,$2,$4
- beq $1,$134
- addq $9,$11,$9
- subq $27,1,$27
-$134:
- subl $12,1,$12
- subq $9,$4,$9
- beq $12,$124
- sll $27,32,$13
- sll $9,32,$2
- srl $10,32,$1
- sll $10,32,$10
- bis $2,$1,$9
- br $31,$123
- .align 4
-$124:
- bis $13,$27,$0
-$136:
- ldq $26,0($30)
- ldq $9,8($30)
- ldq $10,16($30)
- ldq $11,24($30)
- ldq $12,32($30)
- ldq $13,40($30)
- addq $30,48,$30
- ret $31,($26),1
- .end bn_div_words
-EOF
- return($data);
- }
-
diff --git a/crypto/bn/asm/ca.pl b/crypto/bn/asm/ca.pl
deleted file mode 100644
index c1ce67a6b4..0000000000
--- a/crypto/bn/asm/ca.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/local/bin/perl
-# I have this in perl so I can use more usefull register names and then convert
-# them into alpha registers.
-#
-
-push(@INC,"perlasm","../../perlasm");
-require "alpha.pl";
-require "alpha/mul_add.pl";
-require "alpha/mul.pl";
-require "alpha/sqr.pl";
-require "alpha/add.pl";
-require "alpha/sub.pl";
-require "alpha/mul_c8.pl";
-require "alpha/mul_c4.pl";
-require "alpha/sqr_c4.pl";
-require "alpha/sqr_c8.pl";
-require "alpha/div.pl";
-
-&asm_init($ARGV[0],$0);
-
-&bn_mul_words("bn_mul_words");
-&bn_sqr_words("bn_sqr_words");
-&bn_mul_add_words("bn_mul_add_words");
-&bn_add_words("bn_add_words");
-&bn_sub_words("bn_sub_words");
-&bn_div_words("bn_div_words");
-&bn_mul_comba8("bn_mul_comba8");
-&bn_mul_comba4("bn_mul_comba4");
-&bn_sqr_comba4("bn_sqr_comba4");
-&bn_sqr_comba8("bn_sqr_comba8");
-
-&asm_finish();
-
diff --git a/crypto/bn/asm/co-alpha.pl b/crypto/bn/asm/co-alpha.pl
deleted file mode 100644
index 67dad3e3d5..0000000000
--- a/crypto/bn/asm/co-alpha.pl
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/local/bin/perl
-# I have this in perl so I can use more usefull register names and then convert
-# them into alpha registers.
-#
-
-push(@INC,"perlasm","../../perlasm");
-require "alpha.pl";
-
-&asm_init($ARGV[0],$0);
-
-print &bn_sub_words("bn_sub_words");
-
-&asm_finish();
-
-sub bn_sub_words
- {
- local($name)=@_;
- local($cc,$a,$b,$r);
-
- $cc="r0";
- $a0="r1"; $b0="r5"; $r0="r9"; $tmp="r13";
- $a1="r2"; $b1="r6"; $r1="r10"; $t1="r14";
- $a2="r3"; $b2="r7"; $r2="r11";
- $a3="r4"; $b3="r8"; $r3="r12"; $t3="r15";
-
- $rp=&wparam(0);
- $ap=&wparam(1);
- $bp=&wparam(2);
- $count=&wparam(3);
-
- &function_begin($name,"");
-
- &comment("");
- &sub($count,4,$count);
- &mov("zero",$cc);
- &blt($count,&label("finish"));
-
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
-
-##########################################################
- &set_label("loop");
-
- &ld($a1,&QWPw(1,$ap));
- &cmpult($a0,$b0,$tmp); # will we borrow?
- &ld($b1,&QWPw(1,$bp));
- &sub($a0,$b0,$a0); # do the subtract
- &ld($a2,&QWPw(2,$ap));
- &cmpult($a0,$cc,$b0); # will we borrow?
- &ld($b2,&QWPw(2,$bp));
- &sub($a0,$cc,$a0); # will we borrow?
- &ld($a3,&QWPw(3,$ap));
- &add($b0,$tmp,$cc); # add the borrows
-
- &cmpult($a1,$b1,$t1); # will we borrow?
- &sub($a1,$b1,$a1); # do the subtract
- &ld($b3,&QWPw(3,$bp));
- &cmpult($a1,$cc,$b1); # will we borrow?
- &sub($a1,$cc,$a1); # will we borrow?
- &add($b1,$t1,$cc); # add the borrows
-
- &cmpult($a2,$b2,$tmp); # will we borrow?
- &sub($a2,$b2,$a2); # do the subtract
- &st($a0,&QWPw(0,$rp)); # save
- &cmpult($a2,$cc,$b2); # will we borrow?
- &sub($a2,$cc,$a2); # will we borrow?
- &add($b2,$tmp,$cc); # add the borrows
-
- &cmpult($a3,$b3,$t3); # will we borrow?
- &sub($a3,$b3,$a3); # do the subtract
- &st($a1,&QWPw(1,$rp)); # save
- &cmpult($a3,$cc,$b3); # will we borrow?
- &sub($a3,$cc,$a3); # will we borrow?
- &add($b3,$t3,$cc); # add the borrows
-
- &st($a2,&QWPw(2,$rp)); # save
- &sub($count,4,$count); # count-=4
- &st($a3,&QWPw(3,$rp)); # save
- &add($ap,4*$QWS,$ap); # count+=4
- &add($bp,4*$QWS,$bp); # count+=4
- &add($rp,4*$QWS,$rp); # count+=4
-
- &blt($count,&label("finish"));
- &ld($a0,&QWPw(0,$ap));
- &ld($b0,&QWPw(0,$bp));
- &br(&label("loop"));
-##################################################
- # Do the last 0..3 words
-
- &set_label("last_loop");
-
- &ld($a0,&QWPw(0,$ap)); # get a
- &ld($b0,&QWPw(0,$bp)); # get b
- &cmpult($a0,$b0,$tmp); # will we borrow?
- &sub($a0,$b0,$a0); # do the subtract
- &cmpult($a0,$cc,$b0); # will we borrow?
- &sub($a0,$cc,$a0); # will we borrow?
- &st($a0,&QWPw(0,$rp)); # save
- &add($b0,$tmp,$cc); # add the borrows
-
- &add($ap,$QWS,$ap);
- &add($bp,$QWS,$bp);
- &add($rp,$QWS,$rp);
- &sub($count,1,$count);
- &bgt($count,&label("last_loop"));
- &function_end_A($name);
-
-######################################################
- &set_label("finish");
- &add($count,4,$count);
- &bgt($count,&label("last_loop"));
-
- &set_label("end");
- &function_end($name);
- }
-
diff --git a/crypto/bn/asm/mips1.s b/crypto/bn/asm/mips1.s
deleted file mode 100644
index 44fa1254c7..0000000000
--- a/crypto/bn/asm/mips1.s
+++ /dev/null
@@ -1,539 +0,0 @@
-/* This assember is for R2000/R3000 machines, or higher ones that do
- * no want to do any 64 bit arithmatic.
- * Make sure that the SSLeay bignum library is compiled with
- * THIRTY_TWO_BIT set.
- * This must either be compiled with the system CC, or, if you use GNU gas,
- * cc -E mips1.s|gas -o mips1.o
- */
- .set reorder
- .set noat
-
-#define R1 $1
-#define CC $2
-#define R2 $3
-#define R3 $8
-#define R4 $9
-#define L1 $10
-#define L2 $11
-#define L3 $12
-#define L4 $13
-#define H1 $14
-#define H2 $15
-#define H3 $24
-#define H4 $25
-
-#define P1 $4
-#define P2 $5
-#define P3 $6
-#define P4 $7
-
- .align 2
- .ent bn_mul_add_words
- .globl bn_mul_add_words
-.text
-bn_mul_add_words:
- .frame $sp,0,$31
- .mask 0x00000000,0
- .fmask 0x00000000,0
-
- #blt P3,4,$lab34
-
- subu R1,P3,4
- move CC,$0
- bltz R1,$lab34
-$lab2:
- lw R1,0(P1)
- lw L1,0(P2)
- lw R2,4(P1)
- lw L2,4(P2)
- lw R3,8(P1)
- lw L3,8(P2)
- lw R4,12(P1)
- lw L4,12(P2)
- multu L1,P4
- addu R1,R1,CC
- mflo L1
- sltu CC,R1,CC
- addu R1,R1,L1
- mfhi H1
- sltu L1,R1,L1
- sw R1,0(P1)
- addu CC,CC,L1
- multu L2,P4
- addu CC,H1,CC
- mflo L2
- addu R2,R2,CC
- sltu CC,R2,CC
- mfhi H2
- addu R2,R2,L2
- addu P2,P2,16
- sltu L2,R2,L2
- sw R2,4(P1)
- addu CC,CC,L2
- multu L3,P4
- addu CC,H2,CC
- mflo L3
- addu R3,R3,CC
- sltu CC,R3,CC
- mfhi H3
- addu R3,R3,L3
- addu P1,P1,16
- sltu L3,R3,L3
- sw R3,-8(P1)
- addu CC,CC,L3
- multu L4,P4
- addu CC,H3,CC
- mflo L4
- addu R4,R4,CC
- sltu CC,R4,CC
- mfhi H4
- addu R4,R4,L4
- subu P3,P3,4
- sltu L4,R4,L4
- addu CC,CC,L4
- addu CC,H4,CC
-
- subu R1,P3,4
- sw R4,-4(P1) # delay slot
- bgez R1,$lab2
-
- bleu P3,0,$lab3
- .align 2
-$lab33:
- lw L1,0(P2)
- lw R1,0(P1)
- multu L1,P4
- addu R1,R1,CC
- sltu CC,R1,CC
- addu P1,P1,4
- mflo L1
- mfhi H1
- addu R1,R1,L1
- addu P2,P2,4
- sltu L1,R1,L1
- subu P3,P3,1
- addu CC,CC,L1
- sw R1,-4(P1)
- addu CC,H1,CC
- bgtz P3,$lab33
- j $31
- .align 2
-$lab3:
- j $31
- .align 2
-$lab34:
- bgt P3,0,$lab33
- j $31
- .end bn_mul_add_words
-
- .align 2
- # Program Unit: bn_mul_words
- .ent bn_mul_words
- .globl bn_mul_words
-.text
-bn_mul_words:
- .frame $sp,0,$31
- .mask 0x00000000,0
- .fmask 0x00000000,0
-
- subu P3,P3,4
- move CC,$0
- bltz P3,$lab45
-$lab44:
- lw L1,0(P2)
- lw L2,4(P2)
- lw L3,8(P2)
- lw L4,12(P2)
- multu L1,P4
- subu P3,P3,4
- mflo L1
- mfhi H1
- addu L1,L1,CC
- multu L2,P4
- sltu CC,L1,CC
- sw L1,0(P1)
- addu CC,H1,CC
- mflo L2
- mfhi H2
- addu L2,L2,CC
- multu L3,P4
- sltu CC,L2,CC
- sw L2,4(P1)
- addu CC,H2,CC
- mflo L3
- mfhi H3
- addu L3,L3,CC
- multu L4,P4
- sltu CC,L3,CC
- sw L3,8(P1)
- addu CC,H3,CC
- mflo L4
- mfhi H4
- addu L4,L4,CC
- addu P1,P1,16
- sltu CC,L4,CC
- addu P2,P2,16
- addu CC,H4,CC
- sw L4,-4(P1)
-
- bgez P3,$lab44
- b $lab45
-$lab46:
- lw L1,0(P2)
- addu P1,P1,4
- multu L1,P4
- addu P2,P2,4
- mflo L1
- mfhi H1
- addu L1,L1,CC
- subu P3,P3,1
- sltu CC,L1,CC
- sw L1,-4(P1)
- addu CC,H1,CC
- bgtz P3,$lab46
- j $31
-$lab45:
- addu P3,P3,4
- bgtz P3,$lab46
- j $31
- .align 2
- .end bn_mul_words
-
- # Program Unit: bn_sqr_words
- .ent bn_sqr_words
- .globl bn_sqr_words
-.text
-bn_sqr_words:
- .frame $sp,0,$31
- .mask 0x00000000,0
- .fmask 0x00000000,0
-
- subu P3,P3,4
- bltz P3,$lab55
-$lab54:
- lw L1,0(P2)
- lw L2,4(P2)
- lw L3,8(P2)
- lw L4,12(P2)
-
- multu L1,L1
- subu P3,P3,4
- mflo L1
- mfhi H1
- sw L1,0(P1)
- sw H1,4(P1)
-
- multu L2,L2
- addu P1,P1,32
- mflo L2
- mfhi H2
- sw L2,-24(P1)
- sw H2,-20(P1)
-
- multu L3,L3
- addu P2,P2,16
- mflo L3
- mfhi H3
- sw L3,-16(P1)
- sw H3,-12(P1)
-
- multu L4,L4
-
- mflo L4
- mfhi H4
- sw L4,-8(P1)
- sw H4,-4(P1)
-
- bgtz P3,$lab54
- b $lab55
-$lab56:
- lw L1,0(P2)
- addu P1,P1,8
- multu L1,L1
- addu P2,P2,4
- subu P3,P3,1
- mflo L1
- mfhi H1
- sw L1,-8(P1)
- sw H1,-4(P1)
-
- bgtz P3,$lab56
- j $31
-$lab55:
- addu P3,P3,4
- bgtz P3,$lab56
- j $31
- .align 2
- .end bn_sqr_words
-
- # Program Unit: bn_add_words
- .ent bn_add_words
- .globl bn_add_words
-.text
-bn_add_words: # 0x590
- .frame $sp,0,$31
- .mask 0x00000000,0
- .fmask 0x00000000,0
-
- subu P4,P4,4
- move CC,$0
- bltz P4,$lab65
-$lab64:
- lw L1,0(P2)
- lw R1,0(P3)
- lw L2,4(P2)
- lw R2,4(P3)
-
- addu L1,L1,CC
- lw L3,8(P2)
- sltu CC,L1,CC
- addu L1,L1,R1
- sltu R1,L1,R1
- lw R3,8(P3)
- addu CC,CC,R1
- lw L4,12(P2)
-
- addu L2,L2,CC
- lw R4,12(P3)
- sltu CC,L2,CC
- addu L2,L2,R2
- sltu R2,L2,R2
- sw L1,0(P1)
- addu CC,CC,R2
- addu P1,P1,16
- addu L3,L3,CC
- sw L2,-12(P1)
-
- sltu CC,L3,CC
- addu L3,L3,R3
- sltu R3,L3,R3
- addu P2,P2,16
- addu CC,CC,R3
-
- addu L4,L4,CC
- addu P3,P3,16
- sltu CC,L4,CC
- addu L4,L4,R4
- subu P4,P4,4
- sltu R4,L4,R4
- sw L3,-8(P1)
- addu CC,CC,R4
- sw L4,-4(P1)
-
- bgtz P4,$lab64
- b $lab65
-$lab66:
- lw L1,0(P2)
- lw R1,0(P3)
- addu L1,L1,CC
- addu P1,P1,4
- sltu CC,L1,CC
- addu P2,P2,4
- addu P3,P3,4
- addu L1,L1,R1
- subu P4,P4,1
- sltu R1,L1,R1
- sw L1,-4(P1)
- addu CC,CC,R1
-
- bgtz P4,$lab66
- j $31
-$lab65:
- addu P4,P4,4
- bgtz P4,$lab66
- j $31
- .end bn_add_words
-
- # Program Unit: bn_div64
- .set at
- .set reorder
- .text
- .align 2
- .globl bn_div64
- # 321 {
- .ent bn_div64 2
-bn_div64:
- subu $sp, 64
- sw $31, 56($sp)
- sw $16, 48($sp)
- .mask 0x80010000, -56
- .frame $sp, 64, $31
- move $9, $4
- move $12, $5
- move $16, $6
- # 322 BN_ULONG dh,dl,q,ret=0,th,tl,t;
- move $31, $0
- # 323 int i,count=2;
- li $13, 2
- # 324
- # 325 if (d == 0) return(BN_MASK2);
- bne $16, 0, $80
- li $2, -1
- b $93
-$80:
- # 326
- # 327 i=BN_num_bits_word(d);
- move $4, $16
- sw $31, 16($sp)
- sw $9, 24($sp)
- sw $12, 32($sp)
- sw $13, 40($sp)
- .livereg 0x800ff0e,0xfff
- jal BN_num_bits_word
- li $4, 32
- lw $31, 16($sp)
- lw $9, 24($sp)
- lw $12, 32($sp)
- lw $13, 40($sp)
- move $3, $2
- # 328 if ((i != BN_BITS2) && (h > (BN_ULONG)1<<i))
- beq $2, $4, $81
- li $14, 1
- sll $15, $14, $2
- bleu $9, $15, $81
- # 329 {
- # 330 #if !defined(NO_STDIO) && !defined(WIN16)
- # 331 fprintf(stderr,"Division would overflow (%d)\n",i);
- # 332 #endif
- # 333 abort();
- sw $3, 8($sp)
- sw $9, 24($sp)
- sw $12, 32($sp)
- sw $13, 40($sp)
- sw $31, 26($sp)
- .livereg 0xff0e,0xfff
- jal abort
- lw $3, 8($sp)
- li $4, 32
- lw $9, 24($sp)
- lw $12, 32($sp)
- lw $13, 40($sp)
- lw $31, 26($sp)
- # 334 }
-$81:
- # 335 i=BN_BITS2-i;
- subu $3, $4, $3
- # 336 if (h >= d) h-=d;
- bltu $9, $16, $82
- subu $9, $9, $16
-$82:
- # 337
- # 338 if (i)
- beq $3, 0, $83
- # 339 {
- # 340 d<<=i;
- sll $16, $16, $3
- # 341 h=(h<<i)|(l>>(BN_BITS2-i));
- sll $24, $9, $3
- subu $25, $4, $3
- srl $14, $12, $25
- or $9, $24, $14
- # 342 l<<=i;
- sll $12, $12, $3
- # 343 }
-$83:
- # 344 dh=(d&BN_MASK2h)>>BN_BITS4;
- # 345 dl=(d&BN_MASK2l);
- and $8, $16, -65536
- srl $8, $8, 16
- and $10, $16, 65535
- li $6, -65536
-$84:
- # 346 for (;;)
- # 347 {
- # 348 if ((h>>BN_BITS4) == dh)
- srl $15, $9, 16
- bne $8, $15, $85
- # 349 q=BN_MASK2l;
- li $5, 65535
- b $86
-$85:
- # 350 else
- # 351 q=h/dh;
- divu $5, $9, $8
-$86:
- # 352
- # 353 for (;;)
- # 354 {
- # 355 t=(h-q*dh);
- mul $4, $5, $8
- subu $2, $9, $4
- move $3, $2
- # 356 if ((t&BN_MASK2h) ||
- # 357 ((dl*q) <= (
- # 358 (t<<BN_BITS4)+
- # 359 ((l&BN_MASK2h)>>BN_BITS4))))
- and $25, $2, $6
- bne $25, $0, $87
- mul $24, $10, $5
- sll $14, $3, 16
- and $15, $12, $6
- srl $25, $15, 16
- addu $15, $14, $25
- bgtu $24, $15, $88
-$87:
- # 360 break;
- mul $3, $10, $5
- b $89
-$88:
- # 361 q--;
- addu $5, $5, -1
- # 362 }
- b $86
-$89:
- # 363 th=q*dh;
- # 364 tl=q*dl;
- # 365 t=(tl>>BN_BITS4);
- # 366 tl=(tl<<BN_BITS4)&BN_MASK2h;
- sll $14, $3, 16
- and $2, $14, $6
- move $11, $2
- # 367 th+=t;
- srl $25, $3, 16
- addu $7, $4, $25
- # 368
- # 369 if (l < tl) th++;
- bgeu $12, $2, $90
- addu $7, $7, 1
-$90:
- # 370 l-=tl;
- subu $12, $12, $11
- # 371 if (h < th)
- bgeu $9, $7, $91
- # 372 {
- # 373 h+=d;
- addu $9, $9, $16
- # 374 q--;
- addu $5, $5, -1
- # 375 }
-$91:
- # 376 h-=th;
- subu $9, $9, $7
- # 377
- # 378 if (--count == 0) break;
- addu $13, $13, -1
- beq $13, 0, $92
- # 379
- # 380 ret=q<<BN_BITS4;
- sll $31, $5, 16
- # 381 h=((h<<BN_BITS4)|(l>>BN_BITS4))&BN_MASK2;
- sll $24, $9, 16
- srl $15, $12, 16
- or $9, $24, $15
- # 382 l=(l&BN_MASK2l)<<BN_BITS4;
- and $12, $12, 65535
- sll $12, $12, 16
- # 383 }
- b $84
-$92:
- # 384 ret|=q;
- or $31, $31, $5
- # 385 return(ret);
- move $2, $31
-$93:
- lw $16, 48($sp)
- lw $31, 56($sp)
- addu $sp, 64
- j $31
- .end bn_div64
-
diff --git a/crypto/bn/asm/pa-risc.s b/crypto/bn/asm/pa-risc.s
deleted file mode 100644
index 775130a191..0000000000
--- a/crypto/bn/asm/pa-risc.s
+++ /dev/null
@@ -1,710 +0,0 @@
- .SPACE $PRIVATE$
- .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
- .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
- .SPACE $TEXT$
- .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
- .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
- .IMPORT $global$,DATA
- .IMPORT $$dyncall,MILLICODE
-; gcc_compiled.:
- .SPACE $TEXT$
- .SUBSPA $CODE$
-
- .align 4
- .EXPORT bn_mul_add_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
-bn_mul_add_words
- .PROC
- .CALLINFO FRAME=0,CALLS,SAVE_RP
- .ENTRY
- stw %r2,-20(0,%r30)
- ldi 0,%r28
- extru %r23,31,16,%r2
- stw %r2,-16(0,%r30)
- extru %r23,15,16,%r23
- ldil L'65536,%r31
- fldws -16(0,%r30),%fr11R
- stw %r23,-16(0,%r30)
- ldo 12(%r25),%r29
- ldo 12(%r26),%r23
- fldws -16(0,%r30),%fr11L
-L$0002
- ldw 0(0,%r25),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0005
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi 1,%r19,%r19
- ldw 0(0,%r26),%r28
- addl %r20,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0003
- stw %r20,0(0,%r26)
- ldw -8(0,%r29),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0010
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi 1,%r19,%r19
- ldw -8(0,%r23),%r28
- addl %r20,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0003
- stw %r20,-8(0,%r23)
- ldw -4(0,%r29),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0015
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi 1,%r19,%r19
- ldw -4(0,%r23),%r28
- addl %r20,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0003
- stw %r20,-4(0,%r23)
- ldw 0(0,%r29),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0020
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi 1,%r19,%r19
- ldw 0(0,%r23),%r28
- addl %r20,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0003
- stw %r20,0(0,%r23)
- ldo 16(%r29),%r29
- ldo 16(%r25),%r25
- ldo 16(%r23),%r23
- bl L$0002,0
- ldo 16(%r26),%r26
-L$0003
- ldw -20(0,%r30),%r2
- bv,n 0(%r2)
- .EXIT
- .PROCEND
- .align 4
- .EXPORT bn_mul_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
-bn_mul_words
- .PROC
- .CALLINFO FRAME=0,CALLS,SAVE_RP
- .ENTRY
- stw %r2,-20(0,%r30)
- ldi 0,%r28
- extru %r23,31,16,%r2
- stw %r2,-16(0,%r30)
- extru %r23,15,16,%r23
- ldil L'65536,%r31
- fldws -16(0,%r30),%fr11R
- stw %r23,-16(0,%r30)
- ldo 12(%r26),%r29
- ldo 12(%r25),%r23
- fldws -16(0,%r30),%fr11L
-L$0026
- ldw 0(0,%r25),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0029
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0027
- stw %r20,0(0,%r26)
- ldw -8(0,%r23),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0033
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0027
- stw %r20,-8(0,%r29)
- ldw -4(0,%r23),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0037
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0027
- stw %r20,-4(0,%r29)
- ldw 0(0,%r23),%r19
- extru %r19,31,16,%r20
- stw %r20,-16(0,%r30)
- extru %r19,15,16,%r19
- fldws -16(0,%r30),%fr22L
- stw %r19,-16(0,%r30)
- xmpyu %fr22L,%fr11R,%fr8
- fldws -16(0,%r30),%fr22L
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr11R,%fr22L,%fr10
- ldw -16(0,%r30),%r2
- stw %r20,-16(0,%r30)
- xmpyu %fr22L,%fr11L,%fr9
- fldws -16(0,%r30),%fr22L
- fstws %fr10R,-16(0,%r30)
- copy %r2,%r22
- ldw -16(0,%r30),%r2
- fstws %fr9R,-16(0,%r30)
- xmpyu %fr11L,%fr22L,%fr8
- copy %r2,%r19
- ldw -16(0,%r30),%r2
- fstws %fr8R,-16(0,%r30)
- copy %r2,%r20
- ldw -16(0,%r30),%r2
- addl %r2,%r19,%r21
- comclr,<<= %r19,%r21,0
- addl %r20,%r31,%r20
-L$0041
- extru %r21,15,16,%r19
- addl %r20,%r19,%r20
- zdep %r21,15,16,%r19
- addl %r22,%r19,%r22
- comclr,<<= %r19,%r22,0
- addi,tr 1,%r20,%r19
- copy %r20,%r19
- addl %r22,%r28,%r20
- comclr,<<= %r28,%r20,0
- addi,tr 1,%r19,%r28
- copy %r19,%r28
- addib,= -1,%r24,L$0027
- stw %r20,0(0,%r29)
- ldo 16(%r23),%r23
- ldo 16(%r25),%r25
- ldo 16(%r29),%r29
- bl L$0026,0
- ldo 16(%r26),%r26
-L$0027
- ldw -20(0,%r30),%r2
- bv,n 0(%r2)
- .EXIT
- .PROCEND
- .align 4
- .EXPORT bn_sqr_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR
-bn_sqr_words
- .PROC
- .CALLINFO FRAME=0,NO_CALLS
- .ENTRY
- ldo 28(%r26),%r23
- ldo 12(%r25),%r28
-L$0046
- ldw 0(0,%r25),%r21
- extru %r21,31,16,%r22
- stw %r22,-16(0,%r30)
- extru %r21,15,16,%r21
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- stw %r22,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- stw %r21,-16(0,%r30)
- copy %r29,%r19
- xmpyu %fr10L,%fr10R,%fr8
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- fstws %fr8R,-16(0,%r30)
- extru %r19,16,17,%r20
- zdep %r19,14,15,%r19
- ldw -16(0,%r30),%r29
- xmpyu %fr10L,%fr10R,%fr9
- addl %r29,%r19,%r22
- stw %r22,0(0,%r26)
- fstws %fr9R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- addl %r29,%r20,%r21
- comclr,<<= %r19,%r22,0
- addi 1,%r21,%r21
- addib,= -1,%r24,L$0057
- stw %r21,-24(0,%r23)
- ldw -8(0,%r28),%r21
- extru %r21,31,16,%r22
- stw %r22,-16(0,%r30)
- extru %r21,15,16,%r21
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- stw %r22,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- stw %r21,-16(0,%r30)
- copy %r29,%r19
- xmpyu %fr10L,%fr10R,%fr8
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- fstws %fr8R,-16(0,%r30)
- extru %r19,16,17,%r20
- zdep %r19,14,15,%r19
- ldw -16(0,%r30),%r29
- xmpyu %fr10L,%fr10R,%fr9
- addl %r29,%r19,%r22
- stw %r22,-20(0,%r23)
- fstws %fr9R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- addl %r29,%r20,%r21
- comclr,<<= %r19,%r22,0
- addi 1,%r21,%r21
- addib,= -1,%r24,L$0057
- stw %r21,-16(0,%r23)
- ldw -4(0,%r28),%r21
- extru %r21,31,16,%r22
- stw %r22,-16(0,%r30)
- extru %r21,15,16,%r21
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- stw %r22,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- stw %r21,-16(0,%r30)
- copy %r29,%r19
- xmpyu %fr10L,%fr10R,%fr8
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- fstws %fr8R,-16(0,%r30)
- extru %r19,16,17,%r20
- zdep %r19,14,15,%r19
- ldw -16(0,%r30),%r29
- xmpyu %fr10L,%fr10R,%fr9
- addl %r29,%r19,%r22
- stw %r22,-12(0,%r23)
- fstws %fr9R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- addl %r29,%r20,%r21
- comclr,<<= %r19,%r22,0
- addi 1,%r21,%r21
- addib,= -1,%r24,L$0057
- stw %r21,-8(0,%r23)
- ldw 0(0,%r28),%r21
- extru %r21,31,16,%r22
- stw %r22,-16(0,%r30)
- extru %r21,15,16,%r21
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- stw %r22,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- stw %r21,-16(0,%r30)
- copy %r29,%r19
- xmpyu %fr10L,%fr10R,%fr8
- fldws -16(0,%r30),%fr10L
- stw %r21,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- fstws %fr8R,-16(0,%r30)
- extru %r19,16,17,%r20
- zdep %r19,14,15,%r19
- ldw -16(0,%r30),%r29
- xmpyu %fr10L,%fr10R,%fr9
- addl %r29,%r19,%r22
- stw %r22,-4(0,%r23)
- fstws %fr9R,-16(0,%r30)
- ldw -16(0,%r30),%r29
- addl %r29,%r20,%r21
- comclr,<<= %r19,%r22,0
- addi 1,%r21,%r21
- addib,= -1,%r24,L$0057
- stw %r21,0(0,%r23)
- ldo 16(%r28),%r28
- ldo 16(%r25),%r25
- ldo 32(%r23),%r23
- bl L$0046,0
- ldo 32(%r26),%r26
-L$0057
- bv,n 0(%r2)
- .EXIT
- .PROCEND
- .IMPORT BN_num_bits_word,CODE
- .IMPORT fprintf,CODE
- .IMPORT __iob,DATA
- .SPACE $TEXT$
- .SUBSPA $LIT$
-
- .align 4
-L$C0000
- .STRING "Division would overflow\x0a\x00"
- .IMPORT abort,CODE
- .SPACE $TEXT$
- .SUBSPA $CODE$
-
- .align 4
- .EXPORT bn_div64,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,RTNVAL=GR
-bn_div64
- .PROC
- .CALLINFO FRAME=128,CALLS,SAVE_RP,ENTRY_GR=8
- .ENTRY
- stw %r2,-20(0,%r30)
- stwm %r8,128(0,%r30)
- stw %r7,-124(0,%r30)
- stw %r4,-112(0,%r30)
- stw %r3,-108(0,%r30)
- copy %r26,%r3
- copy %r25,%r4
- stw %r6,-120(0,%r30)
- ldi 0,%r7
- stw %r5,-116(0,%r30)
- movb,<> %r24,%r5,L$0059
- ldi 2,%r6
- bl L$0076,0
- ldi -1,%r28
-L$0059
- .CALL ARGW0=GR
- bl BN_num_bits_word,%r2
- copy %r5,%r26
- ldi 32,%r19
- comb,= %r19,%r28,L$0060
- subi 31,%r28,%r19
- mtsar %r19
- zvdepi 1,32,%r19
- comb,>>= %r19,%r3,L$0060
- addil LR'__iob-$global$+32,%r27
- ldo RR'__iob-$global$+32(%r1),%r26
- ldil LR'L$C0000,%r25
- .CALL ARGW0=GR,ARGW1=GR
- bl fprintf,%r2
- ldo RR'L$C0000(%r25),%r25
- .CALL
- bl abort,%r2
- nop
-L$0060
- comb,>> %r5,%r3,L$0061
- subi 32,%r28,%r28
- sub %r3,%r5,%r3
-L$0061
- comib,= 0,%r28,L$0062
- subi 31,%r28,%r19
- mtsar %r19
- zvdep %r5,32,%r5
- zvdep %r3,32,%r21
- subi 32,%r28,%r20
- mtsar %r20
- vshd 0,%r4,%r20
- or %r21,%r20,%r3
- mtsar %r19
- zvdep %r4,32,%r4
-L$0062
- extru %r5,15,16,%r23
- extru %r5,31,16,%r28
-L$0063
- extru %r3,15,16,%r19
- comb,<> %r23,%r19,L$0066
- copy %r3,%r26
- bl L$0067,0
- zdepi -1,31,16,%r29
-L$0066
- .IMPORT $$divU,MILLICODE
- bl $$divU,%r31
- copy %r23,%r25
-L$0067
- stw %r29,-16(0,%r30)
- fldws -16(0,%r30),%fr10L
- stw %r28,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- stw %r23,-16(0,%r30)
- xmpyu %fr10L,%fr10R,%fr8
- fldws -16(0,%r30),%fr10R
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr10L,%fr10R,%fr9
- ldw -16(0,%r30),%r8
- fstws %fr9R,-16(0,%r30)
- copy %r8,%r22
- ldw -16(0,%r30),%r8
- extru %r4,15,16,%r24
- copy %r8,%r21
-L$0068
- sub %r3,%r21,%r20
- copy %r20,%r19
- depi 0,31,16,%r19
- comib,<> 0,%r19,L$0069
- zdep %r20,15,16,%r19
- addl %r19,%r24,%r19
- comb,>>= %r19,%r22,L$0069
- sub %r22,%r28,%r22
- sub %r21,%r23,%r21
- bl L$0068,0
- ldo -1(%r29),%r29
-L$0069
- stw %r29,-16(0,%r30)
- fldws -16(0,%r30),%fr10L
- stw %r28,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- ldw -16(0,%r30),%r8
- stw %r23,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- copy %r8,%r19
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- extru %r19,15,16,%r20
- ldw -16(0,%r30),%r8
- zdep %r19,15,16,%r19
- addl %r8,%r20,%r20
- comclr,<<= %r19,%r4,0
- addi 1,%r20,%r20
- comb,<<= %r20,%r3,L$0074
- sub %r4,%r19,%r4
- addl %r3,%r5,%r3
- ldo -1(%r29),%r29
-L$0074
- addib,= -1,%r6,L$0064
- sub %r3,%r20,%r3
- zdep %r29,15,16,%r7
- shd %r3,%r4,16,%r3
- bl L$0063,0
- zdep %r4,15,16,%r4
-L$0064
- or %r7,%r29,%r28
-L$0076
- ldw -148(0,%r30),%r2
- ldw -124(0,%r30),%r7
- ldw -120(0,%r30),%r6
- ldw -116(0,%r30),%r5
- ldw -112(0,%r30),%r4
- ldw -108(0,%r30),%r3
- bv 0(%r2)
- ldwm -128(0,%r30),%r8
- .EXIT
- .PROCEND
diff --git a/crypto/bn/asm/pa-risc2.s.old b/crypto/bn/asm/pa-risc2.s.old
deleted file mode 100644
index c2725996a4..0000000000
--- a/crypto/bn/asm/pa-risc2.s.old
+++ /dev/null
@@ -1,416 +0,0 @@
- .SPACE $PRIVATE$
- .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
- .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
- .SPACE $TEXT$
- .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
- .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
- .IMPORT $global$,DATA
- .IMPORT $$dyncall,MILLICODE
-; gcc_compiled.:
- .SPACE $TEXT$
- .SUBSPA $CODE$
-
- .align 4
- .EXPORT bn_mul_add_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
-bn_mul_add_words
- .PROC
- .CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=4
- .ENTRY
- stw %r2,-20(0,%r30)
- stwm %r4,64(0,%r30)
- copy %r24,%r31
- stw %r3,-60(0,%r30)
- ldi 0,%r20
- ldo 12(%r26),%r2
- stw %r23,-16(0,%r30)
- copy %r25,%r3
- ldo 12(%r3),%r1
- fldws -16(0,%r30),%fr8L
-L$0010
- copy %r20,%r25
- ldi 0,%r24
- fldws 0(0,%r3),%fr9L
- ldw 0(0,%r26),%r19
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r19,%r23
- ldw -16(0,%r30),%r28
- ldw -12(0,%r30),%r29
- ldi 0,%r22
- add %r23,%r29,%r29
- addc %r22,%r28,%r28
- add %r25,%r29,%r29
- addc %r24,%r28,%r28
- copy %r28,%r21
- ldi 0,%r20
- copy %r21,%r20
- addib,= -1,%r31,L$0011
- stw %r29,0(0,%r26)
- copy %r20,%r25
- ldi 0,%r24
- fldws -8(0,%r1),%fr9L
- ldw -8(0,%r2),%r19
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r19,%r23
- ldw -16(0,%r30),%r28
- ldw -12(0,%r30),%r29
- ldi 0,%r22
- add %r23,%r29,%r29
- addc %r22,%r28,%r28
- add %r25,%r29,%r29
- addc %r24,%r28,%r28
- copy %r28,%r21
- ldi 0,%r20
- copy %r21,%r20
- addib,= -1,%r31,L$0011
- stw %r29,-8(0,%r2)
- copy %r20,%r25
- ldi 0,%r24
- fldws -4(0,%r1),%fr9L
- ldw -4(0,%r2),%r19
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r19,%r23
- ldw -16(0,%r30),%r28
- ldw -12(0,%r30),%r29
- ldi 0,%r22
- add %r23,%r29,%r29
- addc %r22,%r28,%r28
- add %r25,%r29,%r29
- addc %r24,%r28,%r28
- copy %r28,%r21
- ldi 0,%r20
- copy %r21,%r20
- addib,= -1,%r31,L$0011
- stw %r29,-4(0,%r2)
- copy %r20,%r25
- ldi 0,%r24
- fldws 0(0,%r1),%fr9L
- ldw 0(0,%r2),%r19
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r19,%r23
- ldw -16(0,%r30),%r28
- ldw -12(0,%r30),%r29
- ldi 0,%r22
- add %r23,%r29,%r29
- addc %r22,%r28,%r28
- add %r25,%r29,%r29
- addc %r24,%r28,%r28
- copy %r28,%r21
- ldi 0,%r20
- copy %r21,%r20
- addib,= -1,%r31,L$0011
- stw %r29,0(0,%r2)
- ldo 16(%r1),%r1
- ldo 16(%r3),%r3
- ldo 16(%r2),%r2
- bl L$0010,0
- ldo 16(%r26),%r26
-L$0011
- copy %r20,%r28
- ldw -84(0,%r30),%r2
- ldw -60(0,%r30),%r3
- bv 0(%r2)
- ldwm -64(0,%r30),%r4
- .EXIT
- .PROCEND
- .align 4
- .EXPORT bn_mul_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
-bn_mul_words
- .PROC
- .CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=3
- .ENTRY
- stw %r2,-20(0,%r30)
- copy %r25,%r2
- stwm %r4,64(0,%r30)
- copy %r24,%r19
- ldi 0,%r28
- stw %r23,-16(0,%r30)
- ldo 12(%r26),%r31
- ldo 12(%r2),%r29
- fldws -16(0,%r30),%fr8L
-L$0026
- fldws 0(0,%r2),%fr9L
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r28,%r21
- ldi 0,%r20
- ldw -16(0,%r30),%r24
- ldw -12(0,%r30),%r25
- add %r21,%r25,%r25
- addc %r20,%r24,%r24
- copy %r24,%r23
- ldi 0,%r22
- copy %r23,%r28
- addib,= -1,%r19,L$0027
- stw %r25,0(0,%r26)
- fldws -8(0,%r29),%fr9L
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r28,%r21
- ldi 0,%r20
- ldw -16(0,%r30),%r24
- ldw -12(0,%r30),%r25
- add %r21,%r25,%r25
- addc %r20,%r24,%r24
- copy %r24,%r23
- ldi 0,%r22
- copy %r23,%r28
- addib,= -1,%r19,L$0027
- stw %r25,-8(0,%r31)
- fldws -4(0,%r29),%fr9L
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r28,%r21
- ldi 0,%r20
- ldw -16(0,%r30),%r24
- ldw -12(0,%r30),%r25
- add %r21,%r25,%r25
- addc %r20,%r24,%r24
- copy %r24,%r23
- ldi 0,%r22
- copy %r23,%r28
- addib,= -1,%r19,L$0027
- stw %r25,-4(0,%r31)
- fldws 0(0,%r29),%fr9L
- xmpyu %fr8L,%fr9L,%fr9
- fstds %fr9,-16(0,%r30)
- copy %r28,%r21
- ldi 0,%r20
- ldw -16(0,%r30),%r24
- ldw -12(0,%r30),%r25
- add %r21,%r25,%r25
- addc %r20,%r24,%r24
- copy %r24,%r23
- ldi 0,%r22
- copy %r23,%r28
- addib,= -1,%r19,L$0027
- stw %r25,0(0,%r31)
- ldo 16(%r29),%r29
- ldo 16(%r2),%r2
- ldo 16(%r31),%r31
- bl L$0026,0
- ldo 16(%r26),%r26
-L$0027
- ldw -84(0,%r30),%r2
- bv 0(%r2)
- ldwm -64(0,%r30),%r4
- .EXIT
- .PROCEND
- .align 4
- .EXPORT bn_sqr_words,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR
-bn_sqr_words
- .PROC
- .CALLINFO FRAME=0,NO_CALLS
- .ENTRY
- ldo 28(%r26),%r19
- ldo 12(%r25),%r28
-L$0042
- fldws 0(0,%r25),%fr8L
- fldws 0(0,%r25),%fr8R
- xmpyu %fr8L,%fr8R,%fr8
- fstds %fr8,-16(0,%r30)
- ldw -16(0,%r30),%r22
- ldw -12(0,%r30),%r23
- stw %r23,0(0,%r26)
- copy %r22,%r21
- ldi 0,%r20
- addib,= -1,%r24,L$0049
- stw %r21,-24(0,%r19)
- fldws -8(0,%r28),%fr8L
- fldws -8(0,%r28),%fr8R
- xmpyu %fr8L,%fr8R,%fr8
- fstds %fr8,-16(0,%r30)
- ldw -16(0,%r30),%r22
- ldw -12(0,%r30),%r23
- stw %r23,-20(0,%r19)
- copy %r22,%r21
- ldi 0,%r20
- addib,= -1,%r24,L$0049
- stw %r21,-16(0,%r19)
- fldws -4(0,%r28),%fr8L
- fldws -4(0,%r28),%fr8R
- xmpyu %fr8L,%fr8R,%fr8
- fstds %fr8,-16(0,%r30)
- ldw -16(0,%r30),%r22
- ldw -12(0,%r30),%r23
- stw %r23,-12(0,%r19)
- copy %r22,%r21
- ldi 0,%r20
- addib,= -1,%r24,L$0049
- stw %r21,-8(0,%r19)
- fldws 0(0,%r28),%fr8L
- fldws 0(0,%r28),%fr8R
- xmpyu %fr8L,%fr8R,%fr8
- fstds %fr8,-16(0,%r30)
- ldw -16(0,%r30),%r22
- ldw -12(0,%r30),%r23
- stw %r23,-4(0,%r19)
- copy %r22,%r21
- ldi 0,%r20
- addib,= -1,%r24,L$0049
- stw %r21,0(0,%r19)
- ldo 16(%r28),%r28
- ldo 16(%r25),%r25
- ldo 32(%r19),%r19
- bl L$0042,0
- ldo 32(%r26),%r26
-L$0049
- bv,n 0(%r2)
- .EXIT
- .PROCEND
- .IMPORT BN_num_bits_word,CODE
- .IMPORT fprintf,CODE
- .IMPORT __iob,DATA
- .SPACE $TEXT$
- .SUBSPA $LIT$
-
- .align 4
-L$C0000
- .STRING "Division would overflow (%d)\x0a\x00"
- .IMPORT abort,CODE
- .SPACE $TEXT$
- .SUBSPA $CODE$
-
- .align 4
- .EXPORT bn_div64,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,RTNVAL=GR
-bn_div64
- .PROC
- .CALLINFO FRAME=128,CALLS,SAVE_RP,ENTRY_GR=8
- .ENTRY
- stw %r2,-20(0,%r30)
- stwm %r8,128(0,%r30)
- stw %r7,-124(0,%r30)
- stw %r4,-112(0,%r30)
- stw %r3,-108(0,%r30)
- copy %r26,%r3
- copy %r25,%r4
- stw %r6,-120(0,%r30)
- ldi 0,%r7
- stw %r5,-116(0,%r30)
- movb,<> %r24,%r5,L$0051
- ldi 2,%r6
- bl L$0068,0
- ldi -1,%r28
-L$0051
- .CALL ARGW0=GR
- bl BN_num_bits_word,%r2
- copy %r5,%r26
- copy %r28,%r24
- ldi 32,%r19
- comb,= %r19,%r24,L$0052
- subi 31,%r24,%r19
- mtsar %r19
- zvdepi 1,32,%r19
- comb,>>= %r19,%r3,L$0052
- addil LR'__iob-$global$+32,%r27
- ldo RR'__iob-$global$+32(%r1),%r26
- ldil LR'L$C0000,%r25
- .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR
- bl fprintf,%r2
- ldo RR'L$C0000(%r25),%r25
- .CALL
- bl abort,%r2
- nop
-L$0052
- comb,>> %r5,%r3,L$0053
- subi 32,%r24,%r24
- sub %r3,%r5,%r3
-L$0053
- comib,= 0,%r24,L$0054
- subi 31,%r24,%r19
- mtsar %r19
- zvdep %r5,32,%r5
- zvdep %r3,32,%r21
- subi 32,%r24,%r20
- mtsar %r20
- vshd 0,%r4,%r20
- or %r21,%r20,%r3
- mtsar %r19
- zvdep %r4,32,%r4
-L$0054
- extru %r5,15,16,%r23
- extru %r5,31,16,%r28
-L$0055
- extru %r3,15,16,%r19
- comb,<> %r23,%r19,L$0058
- copy %r3,%r26
- bl L$0059,0
- zdepi -1,31,16,%r29
-L$0058
- .IMPORT $$divU,MILLICODE
- bl $$divU,%r31
- copy %r23,%r25
-L$0059
- stw %r29,-16(0,%r30)
- fldws -16(0,%r30),%fr10L
- stw %r28,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- stw %r23,-16(0,%r30)
- xmpyu %fr10L,%fr10R,%fr8
- fldws -16(0,%r30),%fr10R
- fstws %fr8R,-16(0,%r30)
- xmpyu %fr10L,%fr10R,%fr9
- ldw -16(0,%r30),%r8
- fstws %fr9R,-16(0,%r30)
- copy %r8,%r22
- ldw -16(0,%r30),%r8
- extru %r4,15,16,%r24
- copy %r8,%r21
-L$0060
- sub %r3,%r21,%r20
- copy %r20,%r19
- depi 0,31,16,%r19
- comib,<> 0,%r19,L$0061
- zdep %r20,15,16,%r19
- addl %r19,%r24,%r19
- comb,>>= %r19,%r22,L$0061
- sub %r22,%r28,%r22
- sub %r21,%r23,%r21
- bl L$0060,0
- ldo -1(%r29),%r29
-L$0061
- stw %r29,-16(0,%r30)
- fldws -16(0,%r30),%fr10L
- stw %r28,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- ldw -16(0,%r30),%r8
- stw %r23,-16(0,%r30)
- fldws -16(0,%r30),%fr10R
- copy %r8,%r19
- xmpyu %fr10L,%fr10R,%fr8
- fstws %fr8R,-16(0,%r30)
- extru %r19,15,16,%r20
- ldw -16(0,%r30),%r8
- zdep %r19,15,16,%r19
- addl %r8,%r20,%r20
- comclr,<<= %r19,%r4,0
- addi 1,%r20,%r20
- comb,<<= %r20,%r3,L$0066
- sub %r4,%r19,%r4
- addl %r3,%r5,%r3
- ldo -1(%r29),%r29
-L$0066
- addib,= -1,%r6,L$0056
- sub %r3,%r20,%r3
- zdep %r29,15,16,%r7
- shd %r3,%r4,16,%r3
- bl L$0055,0
- zdep %r4,15,16,%r4
-L$0056
- or %r7,%r29,%r28
-L$0068
- ldw -148(0,%r30),%r2
- ldw -124(0,%r30),%r7
- ldw -120(0,%r30),%r6
- ldw -116(0,%r30),%r5
- ldw -112(0,%r30),%r4
- ldw -108(0,%r30),%r3
- bv 0(%r2)
- ldwm -128(0,%r30),%r8
- .EXIT
- .PROCEND
diff --git a/crypto/bn/asm/r3000.s b/crypto/bn/asm/r3000.s
deleted file mode 100644
index e95269afa3..0000000000
--- a/crypto/bn/asm/r3000.s
+++ /dev/null
@@ -1,646 +0,0 @@
- .file 1 "../bn_mulw.c"
- .set nobopt
- .option pic2
-
- # GNU C 2.6.3 [AL 1.1, MM 40] SGI running IRIX 5.0 compiled by GNU C
-
- # Cc1 defaults:
- # -mabicalls
-
- # Cc1 arguments (-G value = 0, Cpu = 3000, ISA = 1):
- # -quiet -dumpbase -O2 -o
-
-gcc2_compiled.:
-__gnu_compiled_c:
- .rdata
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x34,0x39,0x20
- .byte 0x24,0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x33,0x34,0x20
- .byte 0x24,0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x35,0x20,0x24
- .byte 0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x38,0x20,0x24
- .byte 0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x32,0x33,0x20
- .byte 0x24,0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x37,0x38,0x20
- .byte 0x24,0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x33,0x2e,0x37,0x30,0x20
- .byte 0x24,0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x32,0x20,0x24
- .byte 0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x34,0x20,0x24
- .byte 0x0
-
- .byte 0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
- .byte 0x6e,0x3a,0x20,0x31,0x2e,0x38,0x20,0x24
- .byte 0x0
- .text
- .align 2
- .globl bn_mul_add_words
- .ent bn_mul_add_words
-bn_mul_add_words:
- .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, extra= 0
- .mask 0x00000000,0
- .fmask 0x00000000,0
- .set noreorder
- .cpload $25
- .set reorder
- move $12,$4
- move $14,$5
- move $9,$6
- move $13,$7
- move $8,$0
- addu $10,$12,12
- addu $11,$14,12
-$L2:
- lw $6,0($14)
- #nop
- multu $13,$6
- mfhi $6
- mflo $7
- #nop
- move $5,$8
- move $4,$0
- lw $3,0($12)
- addu $9,$9,-1
- move $2,$0
- addu $7,$7,$3
- sltu $8,$7,$3
- addu $6,$6,$2
- addu $6,$6,$8
- addu $7,$7,$5
- sltu $2,$7,$5
- addu $6,$6,$4
- addu $6,$6,$2
- srl $3,$6,0
- move $2,$0
- move $8,$3
- .set noreorder
- .set nomacro
- beq $9,$0,$L3
- sw $7,0($12)
- .set macro
- .set reorder
-
- lw $6,-8($11)
- #nop
- multu $13,$6
- mfhi $6
- mflo $7
- #nop
- move $5,$8
- move $4,$0
- lw $3,-8($10)
- addu $9,$9,-1
- move $2,$0
- addu $7,$7,$3
- sltu $8,$7,$3
- addu $6,$6,$2
- addu $6,$6,$8
- addu $7,$7,$5
- sltu $2,$7,$5
- addu $6,$6,$4
- addu $6,$6,$2
- srl $3,$6,0
- move $2,$0
- move $8,$3
- .set noreorder
- .set nomacro
- beq $9,$0,$L3
- sw $7,-8($10)
- .set macro
- .set reorder
-
- lw $6,-4($11)
- #nop
- multu $13,$6
- mfhi $6
- mflo $7
- #nop
- move $5,$8
- move $4,$0
- lw $3,-4($10)
- addu $9,$9,-1
- move $2,$0
- addu $7,$7,$3
- sltu $8,$7,$3
- addu $6,$6,$2
- addu $6,$6,$8
- addu $7,$7,$5
- sltu $2,$7,$5
- addu $6,$6,$4
- addu $6,$6,$2
- srl $3,$6,0
- move $2,$0
- move $8,$3
- .set noreorder
- .set nomacro
- beq $9,$0,$L3
- sw $7,-4($10)
- .set macro
- .set reorder
-
- lw $6,0($11)
- #nop
- multu $13,$6
- mfhi $6
- mflo $7
- #nop
- move $5,$8
- move $4,$0
- lw $3,0($10)
- addu $9,$9,-1
- move $2,$0
- addu $7,$7,$3
- sltu $8,$7,$3
- addu $6,$6,$2
- addu $6,$6,$8
- addu $7,$7,$5
- sltu $2,$7,$5
- addu $6,$6,$4
- addu $6,$6,$2
- srl $3,$6,0
- move $2,$0
- move $8,$3
- .set noreorder
- .set nomacro
- beq $9,$0,$L3
- sw $7,0($10)
- .set macro
- .set reorder
-
- addu $11,$11,16
- addu $14,$14,16
- addu $10,$10,16
- .set noreorder
- .set nomacro
- j $L2
- addu $12,$12,16
- .set macro
- .set reorder
-
-$L3:
- .set noreorder
- .set nomacro
- j $31
- move $2,$8
- .set macro
- .set reorder
-
- .end bn_mul_add_words
- .align 2
- .globl bn_mul_words
- .ent bn_mul_words
-bn_mul_words:
- .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, extra= 0
- .mask 0x00000000,0
- .fmask 0x00000000,0
- .set noreorder
- .cpload $25
- .set reorder
- move $11,$4
- move $12,$5
- move $8,$6
- move $6,$0
- addu $10,$11,12
- addu $9,$12,12
-$L10:
- lw $4,0($12)
- #nop
- multu $7,$4
- mfhi $4
- mflo $5
- #nop
- move $3,$6
- move $2,$0
- addu $8,$8,-1
- addu $5,$5,$3
- sltu $6,$5,$3
- addu $4,$4,$2
- addu $4,$4,$6
- srl $3,$4,0
- move $2,$0
- move $6,$3
- .set noreorder
- .set nomacro
- beq $8,$0,$L11
- sw $5,0($11)
- .set macro
- .set reorder
-
- lw $4,-8($9)
- #nop
- multu $7,$4
- mfhi $4
- mflo $5
- #nop
- move $3,$6
- move $2,$0
- addu $8,$8,-1
- addu $5,$5,$3
- sltu $6,$5,$3
- addu $4,$4,$2
- addu $4,$4,$6
- srl $3,$4,0
- move $2,$0
- move $6,$3
- .set noreorder
- .set nomacro
- beq $8,$0,$L11
- sw $5,-8($10)
- .set macro
- .set reorder
-
- lw $4,-4($9)
- #nop
- multu $7,$4
- mfhi $4
- mflo $5
- #nop
- move $3,$6
- move $2,$0
- addu $8,$8,-1
- addu $5,$5,$3
- sltu $6,$5,$3
- addu $4,$4,$2
- addu $4,$4,$6
- srl $3,$4,0
- move $2,$0
- move $6,$3
- .set noreorder
- .set nomacro
- beq $8,$0,$L11
- sw $5,-4($10)
- .set macro
- .set reorder
-
- lw $4,0($9)
- #nop
- multu $7,$4
- mfhi $4
- mflo $5
- #nop
- move $3,$6
- move $2,$0
- addu $8,$8,-1
- addu $5,$5,$3
- sltu $6,$5,$3
- addu $4,$4,$2
- addu $4,$4,$6
- srl $3,$4,0
- move $2,$0
- move $6,$3
- .set noreorder
- .set nomacro
- beq $8,$0,$L11
- sw $5,0($10)
- .set macro
- .set reorder
-
- addu $9,$9,16
- addu $12,$12,16
- addu $10,$10,16
- .set noreorder
- .set nomacro
- j $L10
- addu $11,$11,16
- .set macro
- .set reorder
-
-$L11:
- .set noreorder
- .set nomacro
- j $31
- move $2,$6
- .set macro
- .set reorder
-
- .end bn_mul_words
- .align 2
- .globl bn_sqr_words
- .ent bn_sqr_words
-bn_sqr_words:
- .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, extra= 0
- .mask 0x00000000,0
- .fmask 0x00000000,0
- .set noreorder
- .cpload $25
- .set reorder
- move $9,$4
- addu $7,$9,28
- addu $8,$5,12
-$L18:
- lw $2,0($5)
- #nop
- multu $2,$2
- mfhi $2
- mflo $3
- #nop
- addu $6,$6,-1
- sw $3,0($9)
- srl $3,$2,0
- move $2,$0
- .set noreorder
- .set nomacro
- beq $6,$0,$L19
- sw $3,-24($7)
- .set macro
- .set reorder
-
- lw $2,-8($8)
- #nop
- multu $2,$2
- mfhi $2
- mflo $3
- #nop
- addu $6,$6,-1
- sw $3,-20($7)
- srl $3,$2,0
- move $2,$0
- .set noreorder
- .set nomacro
- beq $6,$0,$L19
- sw $3,-16($7)
- .set macro
- .set reorder
-
- lw $2,-4($8)
- #nop
- multu $2,$2
- mfhi $2
- mflo $3
- #nop
- addu $6,$6,-1
- sw $3,-12($7)
- srl $3,$2,0
- move $2,$0
- .set noreorder
- .set nomacro
- beq $6,$0,$L19
- sw $3,-8($7)
- .set macro
- .set reorder
-
- lw $2,0($8)
- #nop
- multu $2,$2
- mfhi $2
- mflo $3
- #nop
- addu $6,$6,-1
- sw $3,-4($7)
- srl $3,$2,0
- move $2,$0
- .set noreorder
- .set nomacro
- beq $6,$0,$L19
- sw $3,0($7)
- .set macro
- .set reorder
-
- addu $8,$8,16
- addu $5,$5,16
- addu $7,$7,32
- .set noreorder
- .set nomacro
- j $L18
- addu $9,$9,32
- .set macro
- .set reorder
-
-$L19:
- j $31
- .end bn_sqr_words
- .rdata
- .align 2
-$LC0:
-
- .byte 0x44,0x69,0x76,0x69,0x73,0x69,0x6f,0x6e
- .byte 0x20,0x77,0x6f,0x75,0x6c,0x64,0x20,0x6f
- .byte 0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0xa
- .byte 0x0
- .text
- .align 2
- .globl bn_div64
- .ent bn_div64
-bn_div64:
- .frame $sp,56,$31 # vars= 0, regs= 7/0, args= 16, extra= 8
- .mask 0x901f0000,-8
- .fmask 0x00000000,0
- .set noreorder
- .cpload $25
- .set reorder
- subu $sp,$sp,56
- .cprestore 16
- sw $16,24($sp)
- move $16,$4
- sw $17,28($sp)
- move $17,$5
- sw $18,32($sp)
- move $18,$6
- sw $20,40($sp)
- move $20,$0
- sw $19,36($sp)
- li $19,0x00000002 # 2
- sw $31,48($sp)
- .set noreorder
- .set nomacro
- bne $18,$0,$L26
- sw $28,44($sp)
- .set macro
- .set reorder
-
- .set noreorder
- .set nomacro
- j $L43
- li $2,-1 # 0xffffffff
- .set macro
- .set reorder
-
-$L26:
- move $4,$18
- jal BN_num_bits_word
- move $4,$2
- li $2,0x00000020 # 32
- .set noreorder
- .set nomacro
- beq $4,$2,$L27
- li $2,0x00000001 # 1
- .set macro
- .set reorder
-
- sll $2,$2,$4
- sltu $2,$2,$16
- .set noreorder
- .set nomacro
- beq $2,$0,$L44
- li $5,0x00000020 # 32
- .set macro
- .set reorder
-
- la $4,__iob+32
- la $5,$LC0
- jal fprintf
- jal abort
-$L27:
- li $5,0x00000020 # 32
-$L44:
- sltu $2,$16,$18
- .set noreorder
- .set nomacro
- bne $2,$0,$L28
- subu $4,$5,$4
- .set macro
- .set reorder
-
- subu $16,$16,$18
-$L28:
- .set noreorder
- .set nomacro
- beq $4,$0,$L29
- li $10,-65536 # 0xffff0000
- .set macro
- .set reorder
-
- sll $18,$18,$4
- sll $3,$16,$4
- subu $2,$5,$4
- srl $2,$17,$2
- or $16,$3,$2
- sll $17,$17,$4
-$L29:
- srl $7,$18,16
- andi $9,$18,0xffff
-$L30:
- srl $2,$16,16
- .set noreorder
- .set nomacro
- beq $2,$7,$L34
- li $6,0x0000ffff # 65535
- .set macro
- .set reorder
-
- divu $6,$16,$7
-$L34:
- mult $6,$9
- mflo $5
- #nop
- #nop
- mult $6,$7
- and $2,$17,$10
- srl $8,$2,16
- mflo $4
-$L35:
- subu $3,$16,$4
- and $2,$3,$10
- .set noreorder
- .set nomacro
- bne $2,$0,$L36
- sll $2,$3,16
- .set macro
- .set reorder
-
- addu $2,$2,$8
- sltu $2,$2,$5
- .set noreorder
- .set nomacro
- beq $2,$0,$L36
- subu $5,$5,$9
- .set macro
- .set reorder
-
- subu $4,$4,$7
- .set noreorder
- .set nomacro
- j $L35
- addu $6,$6,-1
- .set macro
- .set reorder
-
-$L36:
- mult $6,$7
- mflo $5
- #nop
- #nop
- mult $6,$9
- mflo $4
- #nop
- #nop
- srl $3,$4,16
- sll $2,$4,16
- and $4,$2,$10
- sltu $2,$17,$4
- .set noreorder
- .set nomacro
- beq $2,$0,$L40
- addu $5,$5,$3
- .set macro
- .set reorder
-
- addu $5,$5,1
-$L40:
- sltu $2,$16,$5
- .set noreorder
- .set nomacro
- beq $2,$0,$L41
- subu $17,$17,$4
- .set macro
- .set reorder
-
- addu $16,$16,$18
- addu $6,$6,-1
-$L41:
- addu $19,$19,-1
- .set noreorder
- .set nomacro
- beq $19,$0,$L31
- subu $16,$16,$5
- .set macro
- .set reorder
-
- sll $20,$6,16
- sll $3,$16,16
- srl $2,$17,16
- or $16,$3,$2
- .set noreorder
- .set nomacro
- j $L30
- sll $17,$17,16
- .set macro
- .set reorder
-
-$L31:
- or $2,$20,$6
-$L43:
- lw $31,48($sp)
- lw $20,40($sp)
- lw $19,36($sp)
- lw $18,32($sp)
- lw $17,28($sp)
- lw $16,24($sp)
- addu $sp,$sp,56
- j $31
- .end bn_div64
-
- .globl abort .text
- .globl fprintf .text
- .globl BN_num_bits_word .text
diff --git a/crypto/bn/bn_ctx.c b/crypto/bn/bn_ctx.c
index 12d8a8cbf8..5bd742a97c 100644
--- a/crypto/bn/bn_ctx.c
+++ b/crypto/bn/bn_ctx.c
@@ -70,10 +70,7 @@
*
* 1. Check a bunch of "(words+1)" type hacks in various bignum functions and
* check they can be safely removed.
- * - BN_bin2bn() looks pretty nasty with the miscellaneous +1 and +2 adjustments.
- * Needs a full rubber-gloving, me thinks.
* - Check +1 and other ugliness in BN_from_montgomery()
- * - Aspects of BN_bn2dec() also look a bit arbitrary
*
* 2. Consider allowing a BN_new_ex() that, at least, lets you specify an
* appropriate 'block' size that will be honoured by bn_expand_internal() to
diff --git a/crypto/bn/bn_mont.c b/crypto/bn/bn_mont.c
index 287392db0f..61416483cb 100644
--- a/crypto/bn/bn_mont.c
+++ b/crypto/bn/bn_mont.c
@@ -277,7 +277,7 @@ int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
BN_CTX_start(ctx);
if((Ri = BN_CTX_get(ctx)) == NULL) goto err;
R= &(mont->RR); /* grab RR as a temp */
- BN_copy(&(mont->N),mod); /* Set N */
+ if (!BN_copy(&(mont->N),mod)) goto err; /* Set N */
mont->N.neg = 0;
#ifdef MONT_WORD
diff --git a/crypto/bn/bn_print.c b/crypto/bn/bn_print.c
index 092322d2ff..5fb8473f37 100644
--- a/crypto/bn/bn_print.c
+++ b/crypto/bn/bn_print.c
@@ -102,14 +102,19 @@ err:
/* Must 'OPENSSL_free' the returned data */
char *BN_bn2dec(const BIGNUM *a)
{
- int i=0,num;
+ int i=0,num, ok = 0;
char *buf=NULL;
char *p;
BIGNUM *t=NULL;
BN_ULONG *bn_data=NULL,*lp;
+ /* get an upper bound for the length of the decimal integer
+ * num <= (BN_num_bits(a) + 1) * log(2)
+ * <= 3 * BN_num_bits(a) * 0.1001 + log(2) + 1 (rounding error)
+ * <= BN_num_bits(a)/10 + BN_num_bits/1000 + 1 + 1
+ */
i=BN_num_bits(a)*3;
- num=(i/10+i/1000+3)+1;
+ num=(i/10+i/1000+1)+1;
bn_data=(BN_ULONG *)OPENSSL_malloc((num/BN_DEC_NUM+1)*sizeof(BN_ULONG));
buf=(char *)OPENSSL_malloc(num+3);
if ((buf == NULL) || (bn_data == NULL))
@@ -122,7 +127,6 @@ char *BN_bn2dec(const BIGNUM *a)
#define BUF_REMAIN (num+3 - (size_t)(p - buf))
p=buf;
lp=bn_data;
- if (t->neg) *(p++)='-';
if (BN_is_zero(t))
{
*(p++)='0';
@@ -130,6 +134,9 @@ char *BN_bn2dec(const BIGNUM *a)
}
else
{
+ if (BN_get_sign(t))
+ *p++ = '-';
+
i=0;
while (!BN_is_zero(t))
{
@@ -149,9 +156,16 @@ char *BN_bn2dec(const BIGNUM *a)
while (*p) p++;
}
}
+ ok = 1;
err:
if (bn_data != NULL) OPENSSL_free(bn_data);
if (t != NULL) BN_free(t);
+ if (!ok && buf)
+ {
+ OPENSSL_free(buf);
+ buf = NULL;
+ }
+
return(buf);
}
diff --git a/crypto/bn/bntest.c b/crypto/bn/bntest.c
index d4cb92f847..9169cc8813 100644
--- a/crypto/bn/bntest.c
+++ b/crypto/bn/bntest.c
@@ -468,6 +468,22 @@ int test_div(BIO *bp, BN_CTX *ctx)
return(1);
}
+static void print_word(BIO *bp,BN_ULONG w)
+ {
+#ifdef SIXTY_FOUR_BIT
+ if (sizeof(w) > sizeof(unsigned long))
+ {
+ unsigned long h=(unsigned long)(w>>32),
+ l=(unsigned long)(w);
+
+ if (h) BIO_printf(bp,"%lX%08lX",h,l);
+ else BIO_printf(bp,"%lX",l);
+ return;
+ }
+#endif
+ BIO_printf(bp,"%lX",w);
+ }
+
int test_div_word(BIO *bp)
{
BIGNUM a,b;
@@ -494,7 +510,7 @@ int test_div_word(BIO *bp)
{
BN_print(bp,&a);
BIO_puts(bp," / ");
- BIO_printf(bp,"%lX",s);
+ print_word(bp,s);
BIO_puts(bp," - ");
}
BN_print(bp,&b);
@@ -504,10 +520,10 @@ int test_div_word(BIO *bp)
{
BN_print(bp,&a);
BIO_puts(bp," % ");
- BIO_printf(bp,"%lX",s);
+ print_word(bp,s);
BIO_puts(bp," - ");
}
- BIO_printf(bp,"%lX",r);
+ print_word(bp,r);
BIO_puts(bp,"\n");
}
BN_mul_word(&b,s);
diff --git a/crypto/buffer/Makefile.ssl b/crypto/buffer/Makefile.ssl
index 58cacab2be..25facaeb05 100644
--- a/crypto/buffer/Makefile.ssl
+++ b/crypto/buffer/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/cast/Makefile.ssl b/crypto/cast/Makefile.ssl
index 98393a37ba..5ff5b7a715 100644
--- a/crypto/cast/Makefile.ssl
+++ b/crypto/cast/Makefile.ssl
@@ -18,14 +18,10 @@ MAKEFILE= Makefile.ssl
AR= ar r
CAST_ENC=c_enc.o
-# or use
-#CAST_ENC=asm/cx86-elf.o
-#CAST_ENC=asm/cx86-out.o
-#CAST_ENC=asm/cx86-sol.o
-#CAST_ENC=asm/cx86bdsi.o
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=casttest.c
@@ -52,20 +48,15 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/cx86-elf.s: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) cast-586.pl elf $(CLAGS) $(PROCESSOR) > cx86-elf.s)
-
+# ELF
+cx86-elf.s: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) cast-586.pl elf $(CLAGS) $(PROCESSOR) > ../$@)
+# COFF
+cx86-cof.s: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) cast-586.pl coff $(CLAGS) $(PROCESSOR) > ../$@)
# a.out
-asm/cx86-out.o: asm/cx86unix.cpp
- $(CPP) -DOUT asm/cx86unix.cpp | as -o asm/cx86-out.o
-
-# bsdi
-asm/cx86bsdi.o: asm/cx86unix.cpp
- $(CPP) -DBSDI asm/cx86unix.cpp | sed 's/ :/:/' | as -o asm/cx86bsdi.o
-
-asm/cx86unix.cpp: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) cast-586.pl cpp $(PROCESSOR) >cx86unix.cpp)
+cx86-out.s: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) cast-586.pl a.out $(CLAGS) $(PROCESSOR) > ../$@)
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -77,7 +68,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -99,7 +90,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/cx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/crypto/comp/Makefile.ssl b/crypto/comp/Makefile.ssl
index 2e00c3f203..c2950086ce 100644
--- a/crypto/comp/Makefile.ssl
+++ b/crypto/comp/Makefile.ssl
@@ -56,7 +56,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -91,7 +91,8 @@ 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/obj_mac.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
diff --git a/crypto/comp/c_zlib.c b/crypto/comp/c_zlib.c
index 7553a2d107..171fa5b86b 100644
--- a/crypto/comp/c_zlib.c
+++ b/crypto/comp/c_zlib.c
@@ -3,6 +3,7 @@
#include <string.h>
#include <openssl/objects.h>
#include <openssl/comp.h>
+#include <openssl/err.h>
COMP_METHOD *COMP_zlib(void );
@@ -357,7 +358,17 @@ COMP_METHOD *COMP_zlib(void)
if (!zlib_loaded)
{
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
- zlib_dso = DSO_load(NULL, "ZLIB", NULL, 0);
+ zlib_dso = DSO_load(NULL, "ZLIB1", NULL, 0);
+ if (!zlib_dso)
+ {
+ zlib_dso = DSO_load(NULL, "ZLIB", NULL, 0);
+ if (zlib_dso)
+ {
+ /* Clear the errors from the first failed
+ DSO_load() */
+ ERR_clear_error();
+ }
+ }
#else
zlib_dso = DSO_load(NULL, "z", NULL, 0);
#endif
diff --git a/crypto/conf/Makefile.ssl b/crypto/conf/Makefile.ssl
index 36c36d5263..e752678e49 100644
--- a/crypto/conf/Makefile.ssl
+++ b/crypto/conf/Makefile.ssl
@@ -56,7 +56,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c
index b180aebce9..3cfcb9e602 100644
--- a/crypto/cryptlib.c
+++ b/crypto/cryptlib.c
@@ -539,18 +539,56 @@ const char *CRYPTO_get_lock_name(int type)
return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS));
}
-#ifdef _DLL
-#ifdef OPENSSL_SYS_WIN32
+#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
+ defined(__INTEL__) || \
+ defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64)
+
+unsigned long OPENSSL_ia32cap_P=0;
+unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; }
+
+#if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY)
+#define OPENSSL_CPUID_SETUP
+void OPENSSL_cpuid_setup(void)
+{ static int trigger=0;
+ unsigned long OPENSSL_ia32_cpuid(void);
+ char *env;
+
+ if (trigger) return;
+
+ trigger=1;
+ if ((env=getenv("OPENSSL_ia32cap")))
+ OPENSSL_ia32cap_P = strtoul(env,NULL,0)|(1<<10);
+ else
+ OPENSSL_ia32cap_P = OPENSSL_ia32_cpuid()|(1<<10);
+ /*
+ * |(1<<10) sets a reserved bit to signal that variable
+ * was initialized already... This is to avoid interference
+ * with cpuid snippets in ELF .init segment.
+ */
+}
+#endif
+
+#endif
+#if !defined(OPENSSL_CPUID_SETUP)
+void OPENSSL_cpuid_setup(void) {}
+#endif
+
+#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(_DLL)
+#ifdef __CYGWIN__
+/* pick DLL_[PROCESS|THREAD]_[ATTACH|DETACH] definitions */
+#include <windows.h>
+#endif
/* All we really need to do is remove the 'error' state when a thread
* detaches */
-BOOL WINAPI DLLEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason,
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
LPVOID lpvReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
+ OPENSSL_cpuid_setup();
break;
case DLL_THREAD_ATTACH:
break;
@@ -564,8 +602,6 @@ BOOL WINAPI DLLEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason,
}
#endif
-#endif
-
void OpenSSLDie(const char *file,int line,const char *assertion)
{
fprintf(stderr,
diff --git a/crypto/cryptlib.h b/crypto/cryptlib.h
index 0d6b9d59f0..8b0add7e20 100644
--- a/crypto/cryptlib.h
+++ b/crypto/cryptlib.h
@@ -93,6 +93,9 @@ extern "C" {
#define DECIMAL_SIZE(type) ((sizeof(type)*8+2)/3+1)
#define HEX_SIZE(type) (sizeof(type)*2)
+void OPENSSL_cpuid_setup(void);
+extern unsigned long OPENSSL_ia32cap_P;
+
#ifdef __cplusplus
}
#endif
diff --git a/crypto/crypto-lib.com b/crypto/crypto-lib.com
index 14ce5d9a07..8f7b1b153c 100644
--- a/crypto/crypto-lib.com
+++ b/crypto/crypto-lib.com
@@ -230,7 +230,7 @@ $ LIB_ENGINE = "eng_err,eng_lib,eng_list,eng_init,eng_ctrl,"+ -
"eng_table,eng_pkey,eng_fat,eng_all,"+ -
"tb_rsa,tb_dsa,tb_ecdsa,tb_dh,tb_ecdh,tb_rand,tb_store,"+ -
"tb_cipher,tb_digest,"+ -
- "eng_openssl,eng_dyn,eng_cnf,eng_cryptodev"
+ "eng_openssl,eng_dyn,eng_cnf,eng_cryptodev,eng_padlock"
$ LIB_AES = "aes_core,aes_misc,aes_ecb,aes_cbc,aes_cfb,aes_ofb,aes_ctr"
$ LIB_BUFFER = "buffer,buf_err"
$ LIB_BIO = "bio_lib,bio_cb,bio_err,"+ -
@@ -274,12 +274,12 @@ $ LIB_X509 = "x509_def,x509_d2,x509_r2x,x509_cmp,"+ -
"x509_set,x509cset,x509rset,x509_err,"+ -
"x509name,x509_v3,x509_ext,x509_att,"+ -
"x509type,x509_lu,x_all,x509_txt,"+ -
- "x509_trs,by_file,by_dir"
+ "x509_trs,by_file,by_dir,x509_vpm"
$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ -
"v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ -
"v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ -
- "v3_ocsp,v3_akeya,v3_pmaps,v3_pcons,v3_ncons,pcy_cache,pcy_node,"+ -
- "pcy_data,pcy_map,pcy_tree,pcy_lib"
+ "v3_ocsp,v3_akeya,v3_pmaps,v3_pcons,v3_ncons,v3_pcia,v3_pci,"+ -
+ "pcy_cache,pcy_node,pcy_data,pcy_map,pcy_tree,pcy_lib"
$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap"
$ LIB_TXT_DB = "txt_db"
$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ -
@@ -789,8 +789,8 @@ $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
-$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.SSL]LIBCRYPTO.OLB Library."
-$ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.SSL]*.EXE Programs."
+$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
+$ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.EXE Programs."
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
$ WRITE SYS$OUTPUT ""
diff --git a/crypto/crypto.h b/crypto/crypto.h
index 9edb24dc6d..a1bd005c3a 100644
--- a/crypto/crypto.h
+++ b/crypto/crypto.h
@@ -541,6 +541,9 @@ void ERR_load_CRYPTO_strings(void);
/* Reason codes. */
#define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100
+unsigned long *OPENSSL_ia32cap_loc(void);
+#define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc()))
+
#ifdef __cplusplus
}
#endif
diff --git a/crypto/des/Makefile.ssl b/crypto/des/Makefile.ssl
index 387a8b3f46..a0c1baa8ab 100644
--- a/crypto/des/Makefile.ssl
+++ b/crypto/des/Makefile.ssl
@@ -23,6 +23,7 @@ DES_ENC= des_enc.o fcrypt_b.o
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=destest.c
@@ -66,35 +67,24 @@ lib: $(LIBOBJ)
des: des.o cbc3_enc.o lib
$(CC) $(CFLAGS) -o des des.o cbc3_enc.o $(LIB)
-asm/des_enc-sparc.S: asm/des_enc.m4
- m4 -B 8192 asm/des_enc.m4 > asm/des_enc-sparc.S
-
-# elf
-asm/dx86-elf.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) des-586.pl elf $(CFLAGS) > dx86-elf.s)
-
-asm/yx86-elf.s: asm/crypt586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) crypt586.pl elf $(CFLAGS) > yx86-elf.s)
-
+des_enc-sparc.S: asm/des_enc.m4
+ m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S
+
+# ELF
+dx86-elf.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) des-586.pl elf $(CFLAGS) > ../$@)
+yx86-elf.s: asm/crypt586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) crypt586.pl elf $(CFLAGS) > ../$@)
+# COFF
+dx86-cof.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) des-586.pl coff $(CFLAGS) > ../$@)
+yx86-cof.s: asm/crypt586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) crypt586.pl coff $(CFLAGS) > ../$@)
# a.out
-asm/dx86-out.o: asm/dx86unix.cpp
- $(CPP) -DOUT asm/dx86unix.cpp | as -o asm/dx86-out.o
-
-asm/yx86-out.o: asm/yx86unix.cpp
- $(CPP) -DOUT asm/yx86unix.cpp | as -o asm/yx86-out.o
-
-# bsdi
-asm/dx86bsdi.o: asm/dx86unix.cpp
- $(CPP) -DBSDI asm/dx86unix.cpp | sed 's/ :/:/' | as -o asm/dx86bsdi.o
-
-asm/yx86bsdi.o: asm/yx86unix.cpp
- $(CPP) -DBSDI asm/yx86unix.cpp | sed 's/ :/:/' | as -o asm/yx86bsdi.o
-
-asm/dx86unix.cpp: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) des-586.pl cpp >dx86unix.cpp)
-
-asm/yx86unix.cpp: asm/crypt586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) crypt586.pl cpp >yx86unix.cpp)
+dx86-out.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) des-586.pl a.out $(CFLAGS) > ../$@)
+yx86-out.s: asm/crypt586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) crypt586.pl a.out $(CFLAGS) > ../$@)
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -108,7 +98,7 @@ links:
install: installs
installs:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -130,7 +120,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/dx86unix.cpp asm/yx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj des lib tags core .pure .nfs* *.old *.bak fluff
+ rm -f *.s *.o *.obj des lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
@@ -146,8 +136,9 @@ 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: ../../include/openssl/des.h ../../include/openssl/des_old.h
-cfb64ede.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
+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
diff --git a/crypto/des/cfb64ede.c b/crypto/des/cfb64ede.c
index 453b078d30..de34ecceb9 100644
--- a/crypto/des/cfb64ede.c
+++ b/crypto/des/cfb64ede.c
@@ -57,6 +57,7 @@
*/
#include "des_locl.h"
+#include "e_os.h"
/* The input and output encrypted as though 64bit cfb mode is being
* used. The extra state information to record how much of the
diff --git a/crypto/dh/Makefile.ssl b/crypto/dh/Makefile.ssl
index f5ca23cb22..fe5c3f4ae5 100644
--- a/crypto/dh/Makefile.ssl
+++ b/crypto/dh/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/dsa/Makefile.ssl b/crypto/dsa/Makefile.ssl
index ba23345c82..0ce7445cb9 100644
--- a/crypto/dsa/Makefile.ssl
+++ b/crypto/dsa/Makefile.ssl
@@ -55,7 +55,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/dsa/dsa_gen.c b/crypto/dsa/dsa_gen.c
index 878dc67ad2..74da6becd5 100644
--- a/crypto/dsa/dsa_gen.c
+++ b/crypto/dsa/dsa_gen.c
@@ -139,7 +139,8 @@ static int dsa_builtin_paramgen(DSA *ret, int bits,
p = BN_CTX_get(ctx);
test = BN_CTX_get(ctx);
- BN_lshift(test,BN_value_one(),bits-1);
+ if (!BN_lshift(test,BN_value_one(),bits-1))
+ goto err;
for (;;)
{
@@ -209,7 +210,7 @@ static int dsa_builtin_paramgen(DSA *ret, int bits,
goto err;
/* step 7 */
- BN_zero(W);
+ if (!BN_zero(W)) goto err;
/* now 'buf' contains "SEED + offset - 1" */
for (k=0; k<=n; k++)
{
@@ -225,20 +226,20 @@ static int dsa_builtin_paramgen(DSA *ret, int bits,
/* step 8 */
if (!BN_bin2bn(md,SHA_DIGEST_LENGTH,r0))
goto err;
- BN_lshift(r0,r0,160*k);
- BN_add(W,W,r0);
+ if (!BN_lshift(r0,r0,160*k)) goto err;
+ if (!BN_add(W,W,r0)) goto err;
}
/* more of step 8 */
- BN_mask_bits(W,bits-1);
- BN_copy(X,W); /* this should be ok */
- BN_add(X,X,test); /* this should be ok */
+ if (!BN_mask_bits(W,bits-1)) goto err;
+ if (!BN_copy(X,W)) goto err;
+ if (!BN_add(X,X,test)) goto err;
/* step 9 */
- BN_lshift1(r0,q);
- BN_mod(c,X,r0,ctx);
- BN_sub(r0,c,BN_value_one());
- BN_sub(p,X,r0);
+ if (!BN_lshift1(r0,q)) goto err;
+ if (!BN_mod(c,X,r0,ctx)) goto err;
+ if (!BN_sub(r0,c,BN_value_one())) goto err;
+ if (!BN_sub(p,X,r0)) goto err;
/* step 10 */
if (BN_cmp(p,test) >= 0)
@@ -266,18 +267,18 @@ end:
/* We now need to generate g */
/* Set r0=(p-1)/q */
- BN_sub(test,p,BN_value_one());
- BN_div(r0,NULL,test,q,ctx);
+ if (!BN_sub(test,p,BN_value_one())) goto err;
+ if (!BN_div(r0,NULL,test,q,ctx)) goto err;
- BN_set_word(test,h);
- BN_MONT_CTX_set(mont,p,ctx);
+ if (!BN_set_word(test,h)) goto err;
+ if (!BN_MONT_CTX_set(mont,p,ctx)) goto err;
for (;;)
{
/* g=test^r0%p */
- BN_mod_exp_mont(g,test,r0,p,ctx,mont);
+ if (!BN_mod_exp_mont(g,test,r0,p,ctx,mont)) goto err;
if (!BN_is_one(g)) break;
- BN_add(test,test,BN_value_one());
+ if (!BN_add(test,test,BN_value_one())) goto err;
h++;
}
@@ -294,6 +295,11 @@ err:
ret->p=BN_dup(p);
ret->q=BN_dup(q);
ret->g=BN_dup(g);
+ if (ret->p == NULL || ret->q == NULL || ret->g == NULL)
+ {
+ ok=0;
+ goto err;
+ }
if ((m > 1) && (seed_in != NULL)) memcpy(seed_in,seed,20);
if (counter_ret != NULL) *counter_ret=counter;
if (h_ret != NULL) *h_ret=h;
diff --git a/crypto/dso/Makefile.ssl b/crypto/dso/Makefile.ssl
index 26cee4b2d3..7478f4c532 100644
--- a/crypto/dso/Makefile.ssl
+++ b/crypto/dso/Makefile.ssl
@@ -55,7 +55,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/ec/Makefile.ssl b/crypto/ec/Makefile.ssl
index 3e293c00be..f0bb149ae6 100644
--- a/crypto/ec/Makefile.ssl
+++ b/crypto/ec/Makefile.ssl
@@ -58,7 +58,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/ec/ec2_smpl.c b/crypto/ec/ec2_smpl.c
index d34e97d676..34c3a953a5 100644
--- a/crypto/ec/ec2_smpl.c
+++ b/crypto/ec/ec2_smpl.c
@@ -805,13 +805,18 @@ int ec_GF2m_simple_is_at_infinity(const EC_GROUP *group, const EC_POINT *point)
*/
int ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx)
{
- BN_CTX *new_ctx = NULL;
- BIGNUM *rh, *lh, *tmp1;
int ret = -1;
+ BN_CTX *new_ctx = NULL;
+ BIGNUM *lh, *y2;
+ int (*field_mul)(const EC_GROUP *, BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *);
+ int (*field_sqr)(const EC_GROUP *, BIGNUM *, const BIGNUM *, BN_CTX *);
if (EC_POINT_is_at_infinity(group, point))
return 1;
-
+
+ field_mul = group->meth->field_mul;
+ field_sqr = group->meth->field_sqr;
+
/* only support affine coordinates */
if (!point->Z_is_one) goto err;
@@ -823,37 +828,23 @@ int ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_
}
BN_CTX_start(ctx);
- rh = BN_CTX_get(ctx);
+ y2 = BN_CTX_get(ctx);
lh = BN_CTX_get(ctx);
- tmp1 = BN_CTX_get(ctx);
- if (tmp1 == NULL) goto err;
+ if (lh == NULL) goto err;
/* We have a curve defined by a Weierstrass equation
* y^2 + x*y = x^3 + a*x^2 + b.
- * To test this, we add up the right-hand side in 'rh'
- * and the left-hand side in 'lh'.
+ * <=> x^3 + a*x^2 + x*y + b + y^2 = 0
+ * <=> ((x + a) * x + y ) * x + b + y^2 = 0
*/
-
- /* rh := X^3 */
- if (!group->meth->field_sqr(group, tmp1, &point->X, ctx)) goto err;
- if (!group->meth->field_mul(group, rh, tmp1, &point->X, ctx)) goto err;
-
- /* rh := rh + a*X^2 */
- if (!group->meth->field_mul(group, tmp1, tmp1, &group->a, ctx)) goto err;
- if (!BN_GF2m_add(rh, rh, tmp1)) goto err;
-
- /* rh := rh + b */
- if (!BN_GF2m_add(rh, rh, &group->b)) goto err;
-
- /* lh := Y^2 */
- if (!group->meth->field_sqr(group, lh, &point->Y, ctx)) goto err;
-
- /* lh := lh + x*y */
- if (!group->meth->field_mul(group, tmp1, &point->X, &point->Y, ctx)) goto err;
- if (!BN_GF2m_add(lh, lh, tmp1)) goto err;
-
- ret = (0 == BN_GF2m_cmp(lh, rh));
-
+ if (!BN_GF2m_add(lh, &point->X, &group->a)) goto err;
+ if (!field_mul(group, lh, lh, &point->X, ctx)) goto err;
+ if (!BN_GF2m_add(lh, lh, &point->Y)) goto err;
+ if (!field_mul(group, lh, lh, &point->X, ctx)) goto err;
+ if (!BN_GF2m_add(lh, lh, &group->b)) goto err;
+ if (!field_sqr(group, y2, &point->Y, ctx)) goto err;
+ if (!BN_GF2m_add(lh, lh, y2)) goto err;
+ ret = BN_is_zero(lh);
err:
if (ctx) BN_CTX_end(ctx);
if (new_ctx) BN_CTX_free(new_ctx);
diff --git a/crypto/ec/ecp_smpl.c b/crypto/ec/ecp_smpl.c
index 87ebf7b89e..1c0052c5ca 100644
--- a/crypto/ec/ecp_smpl.c
+++ b/crypto/ec/ecp_smpl.c
@@ -1301,7 +1301,7 @@ int ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_C
int (*field_sqr)(const EC_GROUP *, BIGNUM *, const BIGNUM *, BN_CTX *);
const BIGNUM *p;
BN_CTX *new_ctx = NULL;
- BIGNUM *rh, *tmp1, *tmp2, *Z4, *Z6;
+ BIGNUM *rh, *tmp, *Z4, *Z6;
int ret = -1;
if (EC_POINT_is_at_infinity(group, point))
@@ -1320,8 +1320,7 @@ int ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_C
BN_CTX_start(ctx);
rh = BN_CTX_get(ctx);
- tmp1 = BN_CTX_get(ctx);
- tmp2 = BN_CTX_get(ctx);
+ tmp = BN_CTX_get(ctx);
Z4 = BN_CTX_get(ctx);
Z6 = BN_CTX_get(ctx);
if (Z6 == NULL) goto err;
@@ -1335,59 +1334,49 @@ int ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_C
* To test this, we add up the right-hand side in 'rh'.
*/
- /* rh := X^3 */
+ /* rh := X^2 */
if (!field_sqr(group, rh, &point->X, ctx)) goto err;
- if (!field_mul(group, rh, rh, &point->X, ctx)) goto err;
if (!point->Z_is_one)
{
- if (!field_sqr(group, tmp1, &point->Z, ctx)) goto err;
- if (!field_sqr(group, Z4, tmp1, ctx)) goto err;
- if (!field_mul(group, Z6, Z4, tmp1, ctx)) goto err;
+ if (!field_sqr(group, tmp, &point->Z, ctx)) goto err;
+ if (!field_sqr(group, Z4, tmp, ctx)) goto err;
+ if (!field_mul(group, Z6, Z4, tmp, ctx)) goto err;
- /* rh := rh + a*X*Z^4 */
- if (!field_mul(group, tmp1, &point->X, Z4, ctx)) goto err;
+ /* rh := (rh + a*Z^4)*X */
if (group->a_is_minus3)
{
- if (!BN_mod_lshift1_quick(tmp2, tmp1, p)) goto err;
- if (!BN_mod_add_quick(tmp2, tmp2, tmp1, p)) goto err;
- if (!BN_mod_sub_quick(rh, rh, tmp2, p)) goto err;
+ if (!BN_mod_lshift1_quick(tmp, Z4, p)) goto err;
+ if (!BN_mod_add_quick(tmp, tmp, Z4, p)) goto err;
+ if (!BN_mod_sub_quick(rh, rh, tmp, p)) goto err;
+ if (!field_mul(group, rh, rh, &point->X, ctx)) goto err;
}
else
{
- if (!field_mul(group, tmp2, tmp1, &group->a, ctx)) goto err;
- if (!BN_mod_add_quick(rh, rh, tmp2, p)) goto err;
+ if (!field_mul(group, tmp, Z4, &group->a, ctx)) goto err;
+ if (!BN_mod_add_quick(rh, rh, tmp, p)) goto err;
+ if (!field_mul(group, rh, rh, &point->X, ctx)) goto err;
}
/* rh := rh + b*Z^6 */
- if (!field_mul(group, tmp1, &group->b, Z6, ctx)) goto err;
- if (!BN_mod_add_quick(rh, rh, tmp1, p)) goto err;
+ if (!field_mul(group, tmp, &group->b, Z6, ctx)) goto err;
+ if (!BN_mod_add_quick(rh, rh, tmp, p)) goto err;
}
else
{
/* point->Z_is_one */
- /* rh := rh + a*X */
- if (group->a_is_minus3)
- {
- if (!BN_mod_lshift1_quick(tmp2, &point->X, p)) goto err;
- if (!BN_mod_add_quick(tmp2, tmp2, &point->X, p)) goto err;
- if (!BN_mod_sub_quick(rh, rh, tmp2, p)) goto err;
- }
- else
- {
- if (!field_mul(group, tmp2, &point->X, &group->a, ctx)) goto err;
- if (!BN_mod_add_quick(rh, rh, tmp2, p)) goto err;
- }
-
+ /* rh := (rh + a)*X */
+ if (!BN_mod_add_quick(rh, rh, &group->a, p)) goto err;
+ if (!field_mul(group, rh, rh, &point->X, ctx)) goto err;
/* rh := rh + b */
if (!BN_mod_add_quick(rh, rh, &group->b, p)) goto err;
}
/* 'lh' := Y^2 */
- if (!field_sqr(group, tmp1, &point->Y, ctx)) goto err;
+ if (!field_sqr(group, tmp, &point->Y, ctx)) goto err;
- ret = (0 == BN_cmp(tmp1, rh));
+ ret = (0 == BN_ucmp(tmp, rh));
err:
BN_CTX_end(ctx);
diff --git a/crypto/ecdh/Makefile.ssl b/crypto/ecdh/Makefile.ssl
index ff46ca041d..7e1dfefd85 100644
--- a/crypto/ecdh/Makefile.ssl
+++ b/crypto/ecdh/Makefile.ssl
@@ -54,7 +54,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/ecdh/ech_key.c b/crypto/ecdh/ech_key.c
index 923a7e9dd9..7d1bb32ae0 100644
--- a/crypto/ecdh/ech_key.c
+++ b/crypto/ecdh/ech_key.c
@@ -68,7 +68,9 @@
*/
#include "ecdh.h"
+#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
+#endif
int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, EC_KEY *eckey,
void *(*KDF)(void *in, size_t inlen, void *out, size_t outlen))
diff --git a/crypto/ecdh/ech_lib.c b/crypto/ecdh/ech_lib.c
index a0e4ef45f0..f2abfed510 100644
--- a/crypto/ecdh/ech_lib.c
+++ b/crypto/ecdh/ech_lib.c
@@ -69,7 +69,9 @@
#include "ecdh.h"
#include <string.h>
+#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
+#endif
#include <openssl/err.h>
const char *ECDH_version="ECDH" OPENSSL_VERSION_PTEXT;
@@ -105,11 +107,13 @@ int ECDH_set_method(EC_KEY *eckey, const ECDH_METHOD *meth)
if (mtmp->finish)
mtmp->finish(eckey);
#endif
+#ifndef OPENSSL_NO_ENGINE
if (ecdh->engine)
{
ENGINE_finish(ecdh->engine);
ecdh->engine = NULL;
}
+#endif
ecdh->meth = meth;
#if 0
if (meth->init)
@@ -139,6 +143,7 @@ ECDH_DATA *ECDH_DATA_new_method(ENGINE *engine)
ret->meth = ECDH_get_default_method();
ret->engine = engine;
+#ifndef OPENSSL_NO_ENGINE
if (!ret->engine)
ret->engine = ENGINE_get_default_ECDH();
if (ret->engine)
@@ -152,6 +157,7 @@ ECDH_DATA *ECDH_DATA_new_method(ENGINE *engine)
return NULL;
}
}
+#endif
ret->flags = ret->meth->flags;
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ECDH, ret, &ret->ex_data);
@@ -172,8 +178,10 @@ void ECDH_DATA_free(ECDH_DATA *r)
if (r->meth->finish)
r->meth->finish(r);
#endif
+#ifndef OPENSSL_NO_ENGINE
if (r->engine)
ENGINE_finish(r->engine);
+#endif
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_ECDH, r, &r->ex_data);
diff --git a/crypto/ecdsa/Makefile.ssl b/crypto/ecdsa/Makefile.ssl
index 935ea7a44f..e096a0a90e 100644
--- a/crypto/ecdsa/Makefile.ssl
+++ b/crypto/ecdsa/Makefile.ssl
@@ -54,7 +54,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/ecdsa/ecdsatest.c b/crypto/ecdsa/ecdsatest.c
index 401b23c694..44321c5ac6 100644
--- a/crypto/ecdsa/ecdsatest.c
+++ b/crypto/ecdsa/ecdsatest.c
@@ -483,7 +483,7 @@ err:
BIO_printf(out, "\nECDSA test failed\n");
else
BIO_printf(out, "\nECDSA test passed\n");
- if (!ret)
+ if (ret)
ERR_print_errors(out);
CRYPTO_cleanup_all_ex_data();
ERR_remove_state(0);
diff --git a/crypto/ecdsa/ecs_lib.c b/crypto/ecdsa/ecs_lib.c
index d553ea1cd6..e355a35698 100644
--- a/crypto/ecdsa/ecs_lib.c
+++ b/crypto/ecdsa/ecs_lib.c
@@ -55,7 +55,9 @@
#include <string.h>
#include "ecdsa.h"
+#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
+#endif
#include <openssl/err.h>
#include <openssl/bn.h>
@@ -92,11 +94,13 @@ int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth)
if (mtmp->finish)
mtmp->finish(eckey);
#endif
+#ifndef OPENSSL_NO_ENGINE
if (ecdsa->engine)
{
ENGINE_finish(ecdsa->engine);
ecdsa->engine = NULL;
}
+#endif
ecdsa->meth = meth;
#if 0
if (meth->init)
@@ -129,6 +133,7 @@ ECDSA_DATA *ECDSA_DATA_new_method(ENGINE *engine)
ret->meth = ECDSA_get_default_method();
ret->engine = engine;
+#ifndef OPENSSL_NO_ENGINE
if (!ret->engine)
ret->engine = ENGINE_get_default_ECDSA();
if (ret->engine)
@@ -142,6 +147,7 @@ ECDSA_DATA *ECDSA_DATA_new_method(ENGINE *engine)
return NULL;
}
}
+#endif
ret->flags = ret->meth->flags;
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ECDSA, ret, &ret->ex_data);
@@ -167,8 +173,10 @@ void ECDSA_DATA_free(ECDSA_DATA *r)
if (r->meth->finish)
r->meth->finish(r);
#endif
+#ifndef OPENSSL_NO_ENGINE
if (r->engine)
ENGINE_finish(r->engine);
+#endif
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_ECDSA, r, &r->ex_data);
diff --git a/crypto/ecdsa/ecs_sign.c b/crypto/ecdsa/ecs_sign.c
index 215da1211a..4667c8cfcc 100644
--- a/crypto/ecdsa/ecs_sign.c
+++ b/crypto/ecdsa/ecs_sign.c
@@ -54,7 +54,9 @@
*/
#include "ecdsa.h"
+#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
+#endif
ECDSA_SIG * ECDSA_do_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey)
{
diff --git a/crypto/ecdsa/ecs_vrf.c b/crypto/ecdsa/ecs_vrf.c
index 269671bec8..15a6ab49f9 100644
--- a/crypto/ecdsa/ecs_vrf.c
+++ b/crypto/ecdsa/ecs_vrf.c
@@ -54,7 +54,9 @@
*/
#include "ecdsa.h"
+#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
+#endif
/* returns
* 1: correct signature
diff --git a/crypto/engine/Makefile.ssl b/crypto/engine/Makefile.ssl
index ef42383295..f75297fd0c 100644
--- a/crypto/engine/Makefile.ssl
+++ b/crypto/engine/Makefile.ssl
@@ -27,12 +27,12 @@ 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 \
- eng_openssl.c eng_cnf.c eng_dyn.c eng_cryptodev.c
+ eng_openssl.c eng_cnf.c eng_dyn.c eng_cryptodev.c eng_padlock.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 \
- eng_openssl.o eng_cnf.o eng_dyn.o eng_cryptodev.o
+ eng_openssl.o eng_cnf.o eng_dyn.o eng_cryptodev.o eng_padlock.o
SRC= $(LIBSRC)
@@ -61,7 +61,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -187,6 +187,16 @@ 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_padlock.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
+eng_padlock.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
+eng_padlock.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
+eng_padlock.o: ../../include/openssl/engine.h ../../include/openssl/evp.h
+eng_padlock.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+eng_padlock.o: ../../include/openssl/opensslconf.h
+eng_padlock.o: ../../include/openssl/opensslv.h
+eng_padlock.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
+eng_padlock.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+eng_padlock.o: ../../include/openssl/symhacks.h eng_padlock.c
eng_pkey.o: ../../e_os.h ../../include/openssl/bio.h
eng_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
eng_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
diff --git a/crypto/engine/eng_all.c b/crypto/engine/eng_all.c
index 1f28b4078b..93c54d0f6f 100644
--- a/crypto/engine/eng_all.c
+++ b/crypto/engine/eng_all.c
@@ -95,6 +95,9 @@ void ENGINE_load_builtin_engines(void)
#ifndef OPENSSL_NO_HW_UBSEC
ENGINE_load_ubsec();
#endif
+#ifndef OPENSSL_NO_HW_PADLOCK
+ ENGINE_load_padlock();
+#endif
#endif
#if defined(__OpenBSD__) || defined(__FreeBSD__)
ENGINE_load_cryptodev();
diff --git a/crypto/engine/engine.h b/crypto/engine/engine.h
index 86517b8ba5..14fefea474 100644
--- a/crypto/engine/engine.h
+++ b/crypto/engine/engine.h
@@ -347,6 +347,7 @@ void ENGINE_load_sureware(void);
void ENGINE_load_ubsec(void);
#endif
void ENGINE_load_cryptodev(void);
+void ENGINE_load_padlock(void);
void ENGINE_load_builtin_engines(void);
/* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation
diff --git a/crypto/err/Makefile.ssl b/crypto/err/Makefile.ssl
index 8c183ef8b9..5630819423 100644
--- a/crypto/err/Makefile.ssl
+++ b/crypto/err/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/evp/Makefile.ssl b/crypto/evp/Makefile.ssl
index 5d56822946..70788962a8 100644
--- a/crypto/evp/Makefile.ssl
+++ b/crypto/evp/Makefile.ssl
@@ -76,7 +76,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/evp/bio_md.c b/crypto/evp/bio_md.c
index c632dfb202..27ec62f4b5 100644
--- a/crypto/evp/bio_md.c
+++ b/crypto/evp/bio_md.c
@@ -176,10 +176,11 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
{
case BIO_CTRL_RESET:
if (b->init)
- EVP_DigestInit_ex(ctx,ctx->digest, NULL);
+ ret = EVP_DigestInit_ex(ctx,ctx->digest, NULL);
else
ret=0;
- ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
+ if (ret > 0)
+ ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
break;
case BIO_C_GET_MD:
if (b->init)
@@ -207,8 +208,9 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_C_SET_MD:
md=ptr;
- EVP_DigestInit_ex(ctx,md, NULL);
- b->init=1;
+ ret = EVP_DigestInit_ex(ctx,md, NULL);
+ if (ret > 0)
+ b->init=1;
break;
case BIO_CTRL_DUP:
dbio=ptr;
diff --git a/crypto/evp/bio_ok.c b/crypto/evp/bio_ok.c
index 4e3f10141b..98bc1ab409 100644
--- a/crypto/evp/bio_ok.c
+++ b/crypto/evp/bio_ok.c
@@ -119,6 +119,7 @@
#include <stdio.h>
#include <errno.h>
+#include <assert.h>
#include "cryptlib.h"
#include <openssl/buffer.h>
#include <openssl/bio.h>
@@ -141,22 +142,12 @@ static void block_in(BIO* b);
#define IOBS (OK_BLOCK_SIZE+ OK_BLOCK_BLOCK+ 3*EVP_MAX_MD_SIZE)
#define WELLKNOWN "The quick brown fox jumped over the lazy dog's back."
-#ifndef L_ENDIAN
-#define swapem(x) \
- ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
- (((unsigned long int)(x) & 0x0000ff00U) << 8) | \
- (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \
- (((unsigned long int)(x) & 0xff000000U) >> 24)))
-#else
-#define swapem(x) (x)
-#endif
-
typedef struct ok_struct
{
- int buf_len;
- int buf_off;
- int buf_len_save;
- int buf_off_save;
+ size_t buf_len;
+ size_t buf_off;
+ size_t buf_len_save;
+ size_t buf_off_save;
int cont; /* <= 0 when finished */
int finished;
EVP_MD_CTX md;
@@ -295,6 +286,8 @@ static int ok_write(BIO *b, const char *in, int inl)
int ret=0,n,i;
BIO_OK_CTX *ctx;
+ if (inl <= 0) return inl;
+
ctx=(BIO_OK_CTX *)b->ptr;
ret=inl;
@@ -330,7 +323,7 @@ static int ok_write(BIO *b, const char *in, int inl)
if ((in == NULL) || (inl <= 0)) return(0);
n= (inl+ ctx->buf_len > OK_BLOCK_SIZE+ OK_BLOCK_BLOCK) ?
- OK_BLOCK_SIZE+ OK_BLOCK_BLOCK- ctx->buf_len : inl;
+ (int)(OK_BLOCK_SIZE+OK_BLOCK_BLOCK-ctx->buf_len) : inl;
memcpy((unsigned char *)(&(ctx->buf[ctx->buf_len])),(unsigned char *)in,n);
ctx->buf_len+= n;
@@ -448,16 +441,18 @@ static long ok_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
return(ret);
}
-static void longswap(void *_ptr, int len)
-{
-#ifndef L_ENDIAN
- int i;
- char *ptr=_ptr;
+static void longswap(void *_ptr, size_t len)
+{ const union { long one; char little; } is_endian = {1};
- for(i= 0;i < len;i+= 4){
- *((unsigned long *)&(ptr[i]))= swapem(*((unsigned long *)&(ptr[i])));
+ if (is_endian.little) {
+ size_t i;
+ unsigned char *p=_ptr,c;
+
+ for(i= 0;i < len;i+= 4) {
+ c=p[0],p[0]=p[3],p[3]=c;
+ c=p[1],p[1]=p[2],p[2]=c;
+ }
}
-#endif
}
static void sig_out(BIO* b)
@@ -496,7 +491,7 @@ static void sig_in(BIO* b)
ctx=b->ptr;
md=&ctx->md;
- if(ctx->buf_len- ctx->buf_off < 2* md->digest->md_size) return;
+ if((int)(ctx->buf_len-ctx->buf_off) < 2*md->digest->md_size) return;
EVP_DigestInit_ex(md, md->digest, NULL);
memcpy(md->md_data, &(ctx->buf[ctx->buf_off]), md->digest->md_size);
@@ -533,9 +528,10 @@ static void block_out(BIO* b)
md=&ctx->md;
tl= ctx->buf_len- OK_BLOCK_BLOCK;
- tl= swapem(tl);
- memcpy(ctx->buf, &tl, OK_BLOCK_BLOCK);
- tl= swapem(tl);
+ ctx->buf[0]=(unsigned char)(tl>>24);
+ ctx->buf[1]=(unsigned char)(tl>>16);
+ ctx->buf[2]=(unsigned char)(tl>>8);
+ ctx->buf[3]=(unsigned char)(tl);
EVP_DigestUpdate(md, (unsigned char*) &(ctx->buf[OK_BLOCK_BLOCK]), tl);
EVP_DigestFinal_ex(md, &(ctx->buf[ctx->buf_len]), NULL);
ctx->buf_len+= md->digest->md_size;
@@ -546,14 +542,18 @@ static void block_in(BIO* b)
{
BIO_OK_CTX *ctx;
EVP_MD_CTX *md;
- long tl= 0;
+ unsigned long tl= 0;
unsigned char tmp[EVP_MAX_MD_SIZE];
ctx=b->ptr;
md=&ctx->md;
- memcpy(&tl, ctx->buf, OK_BLOCK_BLOCK);
- tl= swapem(tl);
+ assert(sizeof(tl)>=OK_BLOCK_BLOCK); /* always true */
+ tl =ctx->buf[0]; tl<<=8;
+ tl|=ctx->buf[1]; tl<<=8;
+ tl|=ctx->buf[2]; tl<<=8;
+ tl|=ctx->buf[3];
+
if (ctx->buf_len < tl+ OK_BLOCK_BLOCK+ md->digest->md_size) return;
EVP_DigestUpdate(md, (unsigned char*) &(ctx->buf[OK_BLOCK_BLOCK]), tl);
diff --git a/crypto/evp/c_all.c b/crypto/evp/c_all.c
index fa60a73ead..a5da52e62d 100644
--- a/crypto/evp/c_all.c
+++ b/crypto/evp/c_all.c
@@ -74,6 +74,12 @@ void OpenSSL_add_all_algorithms(void)
void OPENSSL_add_all_algorithms_noconf(void)
{
+ /*
+ * For the moment OPENSSL_cpuid_setup does something
+ * only on IA-32, but we reserve the option for all
+ * platforms...
+ */
+ OPENSSL_cpuid_setup();
OpenSSL_add_all_ciphers();
OpenSSL_add_all_digests();
#ifndef OPENSSL_NO_ENGINE
diff --git a/crypto/evp/evp_pkey.c b/crypto/evp/evp_pkey.c
index e81b810dea..e752c2073a 100644
--- a/crypto/evp/evp_pkey.c
+++ b/crypto/evp/evp_pkey.c
@@ -341,7 +341,11 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken)
return NULL;
}
p8->broken = broken;
- ASN1_INTEGER_set (p8->version, 0);
+ if (!ASN1_INTEGER_set(p8->version, 0)) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ PKCS8_PRIV_KEY_INFO_free (p8);
+ return NULL;
+ }
if (!(p8->pkeyalg->parameter = ASN1_TYPE_new ())) {
EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
PKCS8_PRIV_KEY_INFO_free (p8);
@@ -418,29 +422,35 @@ PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken)
#ifndef OPENSSL_NO_DSA
static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
{
- ASN1_STRING *params;
- ASN1_INTEGER *prkey;
- ASN1_TYPE *ttmp;
- STACK_OF(ASN1_TYPE) *ndsa;
- unsigned char *p, *q;
+ ASN1_STRING *params = NULL;
+ ASN1_INTEGER *prkey = NULL;
+ ASN1_TYPE *ttmp = NULL;
+ STACK_OF(ASN1_TYPE) *ndsa = NULL;
+ unsigned char *p = NULL, *q;
int len;
p8->pkeyalg->algorithm = OBJ_nid2obj(NID_dsa);
len = i2d_DSAparams (pkey->pkey.dsa, NULL);
if (!(p = OPENSSL_malloc(len))) {
EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
- PKCS8_PRIV_KEY_INFO_free (p8);
- return 0;
+ goto err;
}
q = p;
i2d_DSAparams (pkey->pkey.dsa, &q);
- params = ASN1_STRING_new();
- ASN1_STRING_set(params, p, len);
+ if (!(params = ASN1_STRING_new())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ if (!ASN1_STRING_set(params, p, len)) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
OPENSSL_free(p);
+ p = NULL;
/* Get private key into integer */
if (!(prkey = BN_to_ASN1_INTEGER (pkey->pkey.dsa->priv_key, NULL))) {
EVPerr(EVP_F_EVP_PKEY2PKCS8,EVP_R_ENCODE_ERROR);
- return 0;
+ goto err;
}
switch(p8->broken) {
@@ -451,12 +461,13 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
if (!ASN1_pack_string((char *)prkey, i2d_ASN1_INTEGER,
&p8->pkey->value.octet_string)) {
EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
- M_ASN1_INTEGER_free (prkey);
- return 0;
+ goto err;
}
M_ASN1_INTEGER_free (prkey);
+ prkey = NULL;
p8->pkeyalg->parameter->value.sequence = params;
+ params = NULL;
p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE;
break;
@@ -464,32 +475,51 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
case PKCS8_NS_DB:
p8->pkeyalg->parameter->value.sequence = params;
+ params = NULL;
p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE;
- ndsa = sk_ASN1_TYPE_new_null();
- ttmp = ASN1_TYPE_new();
- if (!(ttmp->value.integer = BN_to_ASN1_INTEGER (pkey->pkey.dsa->pub_key, NULL))) {
+ if (!(ndsa = sk_ASN1_TYPE_new_null())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ if (!(ttmp = ASN1_TYPE_new())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ if (!(ttmp->value.integer =
+ BN_to_ASN1_INTEGER(pkey->pkey.dsa->pub_key, NULL))) {
EVPerr(EVP_F_EVP_PKEY2PKCS8,EVP_R_ENCODE_ERROR);
- PKCS8_PRIV_KEY_INFO_free(p8);
- return 0;
+ goto err;
}
ttmp->type = V_ASN1_INTEGER;
- sk_ASN1_TYPE_push(ndsa, ttmp);
+ if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
- ttmp = ASN1_TYPE_new();
+ if (!(ttmp = ASN1_TYPE_new())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
ttmp->value.integer = prkey;
+ prkey = NULL;
ttmp->type = V_ASN1_INTEGER;
- sk_ASN1_TYPE_push(ndsa, ttmp);
+ if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ ttmp = NULL;
- p8->pkey->value.octet_string = ASN1_OCTET_STRING_new();
+ if (!(p8->pkey->value.octet_string = ASN1_OCTET_STRING_new())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
if (!ASN1_seq_pack_ASN1_TYPE(ndsa, i2d_ASN1_TYPE,
&p8->pkey->value.octet_string->data,
&p8->pkey->value.octet_string->length)) {
EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
- sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
- M_ASN1_INTEGER_free(prkey);
- return 0;
+ goto err;
}
sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
break;
@@ -497,32 +527,58 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
case PKCS8_EMBEDDED_PARAM:
p8->pkeyalg->parameter->type = V_ASN1_NULL;
- ndsa = sk_ASN1_TYPE_new_null();
- ttmp = ASN1_TYPE_new();
+ if (!(ndsa = sk_ASN1_TYPE_new_null())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ if (!(ttmp = ASN1_TYPE_new())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
ttmp->value.sequence = params;
+ params = NULL;
ttmp->type = V_ASN1_SEQUENCE;
- sk_ASN1_TYPE_push(ndsa, ttmp);
+ if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
- ttmp = ASN1_TYPE_new();
+ if (!(ttmp = ASN1_TYPE_new())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
ttmp->value.integer = prkey;
+ prkey = NULL;
ttmp->type = V_ASN1_INTEGER;
- sk_ASN1_TYPE_push(ndsa, ttmp);
+ if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ ttmp = NULL;
- p8->pkey->value.octet_string = ASN1_OCTET_STRING_new();
+ if (!(p8->pkey->value.octet_string = ASN1_OCTET_STRING_new())) {
+ EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
if (!ASN1_seq_pack_ASN1_TYPE(ndsa, i2d_ASN1_TYPE,
&p8->pkey->value.octet_string->data,
&p8->pkey->value.octet_string->length)) {
EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
- sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
- M_ASN1_INTEGER_free (prkey);
- return 0;
+ goto err;
}
sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
break;
}
return 1;
+err:
+ if (p != NULL) OPENSSL_free(p);
+ if (params != NULL) ASN1_STRING_free(params);
+ if (prkey != NULL) M_ASN1_INTEGER_free(prkey);
+ if (ttmp != NULL) ASN1_TYPE_free(ttmp);
+ if (ndsa != NULL) sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
+ return 0;
}
#endif
diff --git a/crypto/hmac/Makefile.ssl b/crypto/hmac/Makefile.ssl
index f803110b2c..6b6d9c3ba9 100644
--- a/crypto/hmac/Makefile.ssl
+++ b/crypto/hmac/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/hmac/hmac.c b/crypto/hmac/hmac.c
index 50765e227b..16d95e08d5 100644
--- a/crypto/hmac/hmac.c
+++ b/crypto/hmac/hmac.c
@@ -89,7 +89,7 @@ void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
}
else
{
- OPENSSL_assert(len <= (int)sizeof(ctx->key));
+ OPENSSL_assert(len>=0 && len<=(int)sizeof(ctx->key));
memcpy(ctx->key,key,len);
ctx->key_length=len;
}
diff --git a/crypto/idea/Makefile.ssl b/crypto/idea/Makefile.ssl
index fa016ea399..4ceb095151 100644
--- a/crypto/idea/Makefile.ssl
+++ b/crypto/idea/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/krb5/Makefile.ssl b/crypto/krb5/Makefile.ssl
index 26b88e7cdd..98be630fb6 100644
--- a/crypto/krb5/Makefile.ssl
+++ b/crypto/krb5/Makefile.ssl
@@ -54,7 +54,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/lhash/Makefile.ssl b/crypto/lhash/Makefile.ssl
index d008c1866b..426cdb25a2 100644
--- a/crypto/lhash/Makefile.ssl
+++ b/crypto/lhash/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/md2/Makefile.ssl b/crypto/md2/Makefile.ssl
index 367dc1275c..213ed2932c 100644
--- a/crypto/md2/Makefile.ssl
+++ b/crypto/md2/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/md2/md2.h b/crypto/md2/md2.h
index 45bf4cc29c..5b71855cb2 100644
--- a/crypto/md2/md2.h
+++ b/crypto/md2/md2.h
@@ -73,7 +73,7 @@ extern "C" {
typedef struct MD2state_st
{
- int num;
+ unsigned int num;
unsigned char data[MD2_BLOCK];
MD2_INT cksm[MD2_BLOCK];
MD2_INT state[MD2_BLOCK];
diff --git a/crypto/md2/md2test.c b/crypto/md2/md2test.c
index 13cbec4ab0..21b381c351 100644
--- a/crypto/md2/md2test.c
+++ b/crypto/md2/md2test.c
@@ -110,7 +110,7 @@ int main(int argc, char *argv[])
i=1;
while (*P != NULL)
{
- EVP_Digest((unsigned char *)*P,(unsigned long)strlen(*P),md,NULL,EVP_md2(), NULL);
+ EVP_Digest((unsigned char *)*P,strlen(*P),md,NULL,EVP_md2(), NULL);
p=pt(md);
if (strcmp(p,*R) != 0)
{
diff --git a/crypto/md32_common.h b/crypto/md32_common.h
index 5bdcf035aa..0cbcfaf8a2 100644
--- a/crypto/md32_common.h
+++ b/crypto/md32_common.h
@@ -77,7 +77,7 @@
* ...
* HASH_LONG Nl,Nh;
* HASH_LONG data[HASH_LBLOCK];
- * int num;
+ * unsigned int num;
* ...
* } HASH_CTX;
* HASH_UPDATE
@@ -206,7 +206,7 @@
: "cc"); \
ret; \
})
-# elif defined(__powerpc) || defined(__ppc)
+# elif defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__)
# define ROTATE(a,n) ({ register unsigned int ret; \
asm ( \
"rlwinm %0,%1,%2,0,31" \
@@ -398,7 +398,7 @@ int HASH_UPDATE (HASH_CTX *c, const void *data_, size_t len)
const unsigned char *data=data_;
register HASH_LONG * p;
register HASH_LONG l;
- unsigned int sw,sc,ew,ec;
+ size_t sw,sc,ew,ec;
if (len==0) return 1;
@@ -430,7 +430,7 @@ int HASH_UPDATE (HASH_CTX *c, const void *data_, size_t len)
}
else
{
- c->num+=len;
+ c->num+=(unsigned int)len;
if ((sc+len) < 4) /* ugly, add char's to a word */
{
l=p[sw]; HOST_p_c2l_p(data,l,sc,len); p[sw]=l;
diff --git a/crypto/md4/Makefile.ssl b/crypto/md4/Makefile.ssl
index c13a037467..d1eb9519f9 100644
--- a/crypto/md4/Makefile.ssl
+++ b/crypto/md4/Makefile.ssl
@@ -54,7 +54,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/md4/md4.h b/crypto/md4/md4.h
index 9a5b6603fe..b080cbdc21 100644
--- a/crypto/md4/md4.h
+++ b/crypto/md4/md4.h
@@ -101,7 +101,7 @@ typedef struct MD4state_st
MD4_LONG A,B,C,D;
MD4_LONG Nl,Nh;
MD4_LONG data[MD4_LBLOCK];
- int num;
+ unsigned int num;
} MD4_CTX;
int MD4_Init(MD4_CTX *c);
diff --git a/crypto/md4/md4test.c b/crypto/md4/md4test.c
index 21a77d96f7..5da53382c9 100644
--- a/crypto/md4/md4test.c
+++ b/crypto/md4/md4test.c
@@ -106,7 +106,7 @@ int main(int argc, char *argv[])
i=1;
while (*P != NULL)
{
- EVP_Digest(&(P[0][0]),(unsigned long)strlen((char *)*P),md,NULL,EVP_md4(), NULL);
+ EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_md4(), NULL);
p=pt(md);
if (strcmp(p,(char *)*R) != 0)
{
diff --git a/crypto/md5/Makefile.ssl b/crypto/md5/Makefile.ssl
index 456326c8b7..5d1a29f6ab 100644
--- a/crypto/md5/Makefile.ssl
+++ b/crypto/md5/Makefile.ssl
@@ -21,6 +21,7 @@ MD5_ASM_OBJ=
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=md5test.c
@@ -47,24 +48,19 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/mx86-elf.s: asm/md5-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) md5-586.pl elf $(CFLAGS) > mx86-elf.s)
-
+# ELF
+mx86-elf.s: asm/md5-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) md5-586.pl elf $(CFLAGS) > ../$@)
+# COFF
+mx86-cof.s: asm/md5-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) md5-586.pl coff $(CFLAGS) > ../$@)
# a.out
-asm/mx86-out.o: asm/mx86unix.cpp
- $(CPP) -DOUT asm/mx86unix.cpp | as -o asm/mx86-out.o
-
-# bsdi
-asm/mx86bsdi.o: asm/mx86unix.cpp
- $(CPP) -DBSDI asm/mx86unix.cpp | sed 's/ :/:/' | as -o asm/mx86bsdi.o
-
-asm/mx86unix.cpp: asm/md5-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) md5-586.pl cpp >mx86unix.cpp)
+mx86-out.s: asm/md5-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) md5-586.pl a.out $(CFLAGS) > ../$@)
-asm/md5-sparcv8plus.o: asm/md5-sparcv9.S
+md5-sparcv8plus.o: asm/md5-sparcv9.S
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
- -o asm/md5-sparcv8plus.o asm/md5-sparcv9.S
+ -o md5-sparcv8plus.o asm/md5-sparcv9.S
# Old GNU assembler doesn't understand V9 instructions, so we
# hire /usr/ccs/bin/as to do the job. Note that option is called
@@ -72,13 +68,13 @@ asm/md5-sparcv8plus.o: asm/md5-sparcv9.S
# if they didn't bother to upgrade GNU assembler. Such users should
# not choose this option, but be adviced to *remove* GNU assembler
# or upgrade it.
-asm/md5-sparcv8plus-gcc27.o: asm/md5-sparcv9.S
+md5-sparcv8plus-gcc27.o: asm/md5-sparcv9.S
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -E asm/md5-sparcv9.S | \
- /usr/ccs/bin/as -xarch=v8plus - -o asm/md5-sparcv8plus-gcc27.o
+ /usr/ccs/bin/as -xarch=v8plus - -o md5-sparcv8plus-gcc27.o
-asm/md5-sparcv9.o: asm/md5-sparcv9.S
+md5-sparcv9.o: asm/md5-sparcv9.S
$(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
- -o asm/md5-sparcv9.o asm/md5-sparcv9.S
+ -o md5-sparcv9.o asm/md5-sparcv9.S
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -90,7 +86,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -112,7 +108,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/mx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/crypto/md5/md5.h b/crypto/md5/md5.h
index 587d947b9a..6d283fe9da 100644
--- a/crypto/md5/md5.h
+++ b/crypto/md5/md5.h
@@ -101,7 +101,7 @@ typedef struct MD5state_st
MD5_LONG A,B,C,D;
MD5_LONG Nl,Nh;
MD5_LONG data[MD5_LBLOCK];
- int num;
+ unsigned int num;
} MD5_CTX;
int MD5_Init(MD5_CTX *c);
diff --git a/crypto/md5/md5test.c b/crypto/md5/md5test.c
index 667b6be344..0628053fa7 100644
--- a/crypto/md5/md5test.c
+++ b/crypto/md5/md5test.c
@@ -106,7 +106,7 @@ int main(int argc, char *argv[])
i=1;
while (*P != NULL)
{
- EVP_Digest(&(P[0][0]),(unsigned long)strlen((char *)*P),md,NULL,EVP_md5(), NULL);
+ EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_md5(), NULL);
p=pt(md);
if (strcmp(p,(char *)*R) != 0)
{
diff --git a/crypto/mdc2/Makefile.ssl b/crypto/mdc2/Makefile.ssl
index 2476d75e12..8ce78cac5c 100644
--- a/crypto/mdc2/Makefile.ssl
+++ b/crypto/mdc2/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/mdc2/mdc2.h b/crypto/mdc2/mdc2.h
index 6490e5c7d3..72778a5212 100644
--- a/crypto/mdc2/mdc2.h
+++ b/crypto/mdc2/mdc2.h
@@ -74,7 +74,7 @@ extern "C" {
typedef struct mdc2_ctx_st
{
- int num;
+ unsigned int num;
unsigned char data[MDC2_BLOCK];
DES_cblock h,hh;
int pad_type; /* either 1 or 2, default 1 */
diff --git a/crypto/mdc2/mdc2dgst.c b/crypto/mdc2/mdc2dgst.c
index aa9ba0ee6b..4aa406edc3 100644
--- a/crypto/mdc2/mdc2dgst.c
+++ b/crypto/mdc2/mdc2dgst.c
@@ -160,7 +160,8 @@ static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len)
int MDC2_Final(unsigned char *md, MDC2_CTX *c)
{
- int i,j;
+ unsigned int i;
+ int j;
i=c->num;
j=c->pad_type;
diff --git a/crypto/o_dir.c b/crypto/o_dir.c
index ded369f23c..42891ea459 100644
--- a/crypto/o_dir.c
+++ b/crypto/o_dir.c
@@ -70,7 +70,7 @@
#include "o_dir.h"
#define LPDIR_H
-#if defined OPENSSL_SYS_UNIX
+#if defined OPENSSL_SYS_UNIX || defined DJGPP
#include "LPdir_unix.c"
#elif defined OPENSSL_SYS_VMS
#include "LPdir_vms.c"
diff --git a/crypto/o_str.c b/crypto/o_str.c
index 7189d13352..da8860491d 100644
--- a/crypto/o_str.c
+++ b/crypto/o_str.c
@@ -57,20 +57,12 @@
*/
#include <ctype.h>
-#include <openssl/e_os2.h>
-#ifdef OPENSSL_SYS_WINDOWS
-# include <string.h>
-#else
-# include <strings.h>
-#endif
+#include <e_os.h>
#include "o_str.h"
-#undef strncasecmp
-#undef strcasecmp
-
int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n)
{
-#if defined(OPENSSL_SYS_VMS)
+#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
while (*str1 && *str2 && n)
{
int res = toupper(*str1) - toupper(*str2);
@@ -86,18 +78,17 @@ int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n)
if (*str2)
return -1;
return 0;
-#elif defined(OPENSSL_SYS_WINDOWS)
- return _strnicmp(str1, str2, n);
#else
+ /* Recursion hazard warning! Whenever strncasecmp is #defined as
+ * OPENSSL_strncasecmp, OPENSSL_IMPLEMENTS_strncasecmp must be
+ * defined as well. */
return strncasecmp(str1, str2, n);
#endif
}
int OPENSSL_strcasecmp(const char *str1, const char *str2)
{
-#if defined(OPENSSL_SYS_VMS)
+#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
return OPENSSL_strncasecmp(str1, str2, (size_t)-1);
-#elif defined(OPENSSL_SYS_WINDOWS)
- return _stricmp(str1, str2);
#else
return strcasecmp(str1, str2);
#endif
diff --git a/crypto/o_time.c b/crypto/o_time.c
index 785468131e..e29091d650 100644
--- a/crypto/o_time.c
+++ b/crypto/o_time.c
@@ -114,16 +114,28 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
return NULL;
logvalue[reslen] = '\0';
+ t = *timer;
+
+/* The following is extracted from the DEC C header time.h */
+/*
+** Beginning in OpenVMS Version 7.0 mktime, time, ctime, strftime
+** have two implementations. One implementation is provided
+** for compatibility and deals with time in terms of local time,
+** the other __utc_* deals with time in terms of UTC.
+*/
+/* We use the same conditions as in said time.h to check if we should
+ assume that t contains local time (and should therefore be adjusted)
+ or UTC (and should therefore be left untouched). */
+#if __CRTL_VER < 70000000 || defined _VMS_V6_SOURCE
/* Get the numerical value of the equivalence string */
status = atoi(logvalue);
/* and use it to move time to GMT */
- t = *timer - status;
+ t -= status;
+#endif
/* then convert the result to the time structure */
-#ifndef OPENSSL_THREADS
- ts=(struct tm *)localtime(&t);
-#else
+
/* Since there was no gmtime_r() to do this stuff for us,
we have to do it the hard way. */
{
@@ -198,7 +210,6 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
result->tm_isdst = 0; /* There's no way to know... */
ts = result;
-#endif
}
}
#endif
diff --git a/crypto/objects/Makefile.ssl b/crypto/objects/Makefile.ssl
index 52e56fd232..00f9ee34d2 100644
--- a/crypto/objects/Makefile.ssl
+++ b/crypto/objects/Makefile.ssl
@@ -61,7 +61,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -89,11 +89,12 @@ clean:
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/lhash.h ../../include/openssl/obj_mac.h
-o_names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-o_names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-o_names.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-o_names.o: ../../include/openssl/symhacks.h o_names.c
+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/buffer.h
obj_dat.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
diff --git a/crypto/objects/o_names.c b/crypto/objects/o_names.c
index b4453b4a98..28c9370ca3 100644
--- a/crypto/objects/o_names.c
+++ b/crypto/objects/o_names.c
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <string.h>
+#include <openssl/err.h>
#include <openssl/lhash.h>
#include <openssl/objects.h>
#include <openssl/safestack.h>
@@ -80,7 +81,11 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *),
MemCheck_off();
name_funcs = OPENSSL_malloc(sizeof(NAME_FUNCS));
MemCheck_on();
- if (!name_funcs) return(0);
+ if (!name_funcs)
+ {
+ OBJerr(OBJ_F_OBJ_NAME_NEW_INDEX,ERR_R_MALLOC_FAILURE);
+ return(0);
+ }
name_funcs->hash_func = lh_strhash;
name_funcs->cmp_func = OPENSSL_strcmp;
name_funcs->free_func = 0; /* NULL is often declared to
diff --git a/crypto/objects/obj_dat.c b/crypto/objects/obj_dat.c
index dbff4e075f..15f813a489 100644
--- a/crypto/objects/obj_dat.c
+++ b/crypto/objects/obj_dat.c
@@ -236,13 +236,13 @@ int OBJ_add_object(const ASN1_OBJECT *obj)
if (added == NULL)
if (!init_added()) return(0);
if ((o=OBJ_dup(obj)) == NULL) goto err;
- if (!(ao[ADDED_NID]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err;
+ if (!(ao[ADDED_NID]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
if ((o->length != 0) && (obj->data != NULL))
- ao[ADDED_DATA]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ));
+ if (!(ao[ADDED_DATA]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
if (o->sn != NULL)
- ao[ADDED_SNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ));
+ if (!(ao[ADDED_SNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
if (o->ln != NULL)
- ao[ADDED_LNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ));
+ if (!(ao[ADDED_LNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
for (i=ADDED_DATA; i<=ADDED_NID; i++)
{
@@ -260,6 +260,8 @@ int OBJ_add_object(const ASN1_OBJECT *obj)
ASN1_OBJECT_FLAG_DYNAMIC_DATA);
return(o->nid);
+err2:
+ OBJerr(OBJ_F_OBJ_ADD_OBJECT,ERR_R_MALLOC_FAILURE);
err:
for (i=ADDED_DATA; i<=ADDED_NID; i++)
if (ao[i] != NULL) OPENSSL_free(ao[i]);
@@ -669,7 +671,7 @@ int OBJ_create(const char *oid, const char *sn, const char *ln)
if ((buf=(unsigned char *)OPENSSL_malloc(i)) == NULL)
{
- OBJerr(OBJ_F_OBJ_CREATE,OBJ_R_MALLOC_FAILURE);
+ OBJerr(OBJ_F_OBJ_CREATE,ERR_R_MALLOC_FAILURE);
return(0);
}
i=a2d_ASN1_OBJECT(buf,i,oid,-1);
diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h
index ea9d9e8c9c..c2a707a984 100644
--- a/crypto/objects/obj_dat.h
+++ b/crypto/objects/obj_dat.h
@@ -62,12 +62,12 @@
* [including the GNU Public Licence.]
*/
-#define NUM_NID 745
-#define NUM_SN 740
-#define NUM_LN 740
-#define NUM_OBJ 702
+#define NUM_NID 751
+#define NUM_SN 747
+#define NUM_LN 747
+#define NUM_OBJ 709
-static unsigned char lvalues[4957]={
+static unsigned char lvalues[5002]={
0x00, /* [ 0] OBJ_undef */
0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */
@@ -542,234 +542,241 @@ static unsigned char lvalues[4957]={
0x09,0x92,0x26,0x89,0x93,0xF2,0x2C,0x64,0x01,0x36,/* [3813] OBJ_dITRedirect */
0x09,0x92,0x26,0x89,0x93,0xF2,0x2C,0x64,0x01,0x37,/* [3823] OBJ_audio */
0x09,0x92,0x26,0x89,0x93,0xF2,0x2C,0x64,0x01,0x38,/* [3833] OBJ_documentPublisher */
-0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03, /* [3843] OBJ_X9_62_id_characteristic_two_basis */
-0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03,0x01,/* [3851] OBJ_X9_62_onBasis */
-0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03,0x02,/* [3860] OBJ_X9_62_tpBasis */
-0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03,0x03,/* [3869] OBJ_X9_62_ppBasis */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x01, /* [3878] OBJ_X9_62_c2pnb163v1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x02, /* [3886] OBJ_X9_62_c2pnb163v2 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x03, /* [3894] OBJ_X9_62_c2pnb163v3 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x04, /* [3902] OBJ_X9_62_c2pnb176v1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x05, /* [3910] OBJ_X9_62_c2tnb191v1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x06, /* [3918] OBJ_X9_62_c2tnb191v2 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x07, /* [3926] OBJ_X9_62_c2tnb191v3 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x08, /* [3934] OBJ_X9_62_c2onb191v4 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x09, /* [3942] OBJ_X9_62_c2onb191v5 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0A, /* [3950] OBJ_X9_62_c2pnb208w1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0B, /* [3958] OBJ_X9_62_c2tnb239v1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0C, /* [3966] OBJ_X9_62_c2tnb239v2 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0D, /* [3974] OBJ_X9_62_c2tnb239v3 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0E, /* [3982] OBJ_X9_62_c2onb239v4 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0F, /* [3990] OBJ_X9_62_c2onb239v5 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x10, /* [3998] OBJ_X9_62_c2pnb272w1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x11, /* [4006] OBJ_X9_62_c2pnb304w1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x12, /* [4014] OBJ_X9_62_c2tnb359v1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x13, /* [4022] OBJ_X9_62_c2pnb368w1 */
-0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x14, /* [4030] OBJ_X9_62_c2tnb431r1 */
-0x2B, /* [4038] OBJ_identified_organization */
-0x2B,0x81,0x04, /* [4039] OBJ_certicom_arc */
-0x2B,0x81,0x04,0x00,0x06, /* [4042] OBJ_secp112r1 */
-0x2B,0x81,0x04,0x00,0x07, /* [4047] OBJ_secp112r2 */
-0x2B,0x81,0x04,0x00,0x1C, /* [4052] OBJ_secp128r1 */
-0x2B,0x81,0x04,0x00,0x1D, /* [4057] OBJ_secp128r2 */
-0x2B,0x81,0x04,0x00,0x09, /* [4062] OBJ_secp160k1 */
-0x2B,0x81,0x04,0x00,0x08, /* [4067] OBJ_secp160r1 */
-0x2B,0x81,0x04,0x00,0x1E, /* [4072] OBJ_secp160r2 */
-0x2B,0x81,0x04,0x00,0x1F, /* [4077] OBJ_secp192k1 */
-0x2B,0x81,0x04,0x00,0x20, /* [4082] OBJ_secp224k1 */
-0x2B,0x81,0x04,0x00,0x21, /* [4087] OBJ_secp224r1 */
-0x2B,0x81,0x04,0x00,0x0A, /* [4092] OBJ_secp256k1 */
-0x2B,0x81,0x04,0x00,0x22, /* [4097] OBJ_secp384r1 */
-0x2B,0x81,0x04,0x00,0x23, /* [4102] OBJ_secp521r1 */
-0x2B,0x81,0x04,0x00,0x04, /* [4107] OBJ_sect113r1 */
-0x2B,0x81,0x04,0x00,0x05, /* [4112] OBJ_sect113r2 */
-0x2B,0x81,0x04,0x00,0x16, /* [4117] OBJ_sect131r1 */
-0x2B,0x81,0x04,0x00,0x17, /* [4122] OBJ_sect131r2 */
-0x2B,0x81,0x04,0x00,0x01, /* [4127] OBJ_sect163k1 */
-0x2B,0x81,0x04,0x00,0x02, /* [4132] OBJ_sect163r1 */
-0x2B,0x81,0x04,0x00,0x0F, /* [4137] OBJ_sect163r2 */
-0x2B,0x81,0x04,0x00,0x18, /* [4142] OBJ_sect193r1 */
-0x2B,0x81,0x04,0x00,0x19, /* [4147] OBJ_sect193r2 */
-0x2B,0x81,0x04,0x00,0x1A, /* [4152] OBJ_sect233k1 */
-0x2B,0x81,0x04,0x00,0x1B, /* [4157] OBJ_sect233r1 */
-0x2B,0x81,0x04,0x00,0x03, /* [4162] OBJ_sect239k1 */
-0x2B,0x81,0x04,0x00,0x10, /* [4167] OBJ_sect283k1 */
-0x2B,0x81,0x04,0x00,0x11, /* [4172] OBJ_sect283r1 */
-0x2B,0x81,0x04,0x00,0x24, /* [4177] OBJ_sect409k1 */
-0x2B,0x81,0x04,0x00,0x25, /* [4182] OBJ_sect409r1 */
-0x2B,0x81,0x04,0x00,0x26, /* [4187] OBJ_sect571k1 */
-0x2B,0x81,0x04,0x00,0x27, /* [4192] OBJ_sect571r1 */
-0x67,0x2B, /* [4197] OBJ_wap */
-0x67,0x2B,0x0D, /* [4199] OBJ_wap_wsg */
-0x67,0x2B,0x0D,0x04,0x01, /* [4202] OBJ_wap_wsg_idm_ecid_wtls1 */
-0x67,0x2B,0x0D,0x04,0x06, /* [4207] OBJ_wap_wsg_idm_ecid_wtls6 */
-0x67,0x2B,0x0D,0x04,0x08, /* [4212] OBJ_wap_wsg_idm_ecid_wtls8 */
-0x67,0x2B,0x0D,0x04,0x09, /* [4217] OBJ_wap_wsg_idm_ecid_wtls9 */
-0x55,0x04,0x2D, /* [4222] OBJ_x500UniqueIdentifier */
-0x2B,0x06,0x01,0x07,0x01, /* [4225] OBJ_mime_mhs */
-0x2B,0x06,0x01,0x07,0x01,0x01, /* [4230] OBJ_mime_mhs_headings */
-0x2B,0x06,0x01,0x07,0x01,0x02, /* [4236] OBJ_mime_mhs_bodies */
-0x2B,0x06,0x01,0x07,0x01,0x01,0x01, /* [4242] OBJ_id_hex_partial_message */
-0x2B,0x06,0x01,0x07,0x01,0x01,0x02, /* [4249] OBJ_id_hex_multipart_message */
-0x55,0x04,0x2C, /* [4256] OBJ_generationQualifier */
-0x55,0x04,0x41, /* [4259] OBJ_pseudonym */
-0x67,0x2A, /* [4262] OBJ_id_set */
-0x67,0x2A,0x00, /* [4264] OBJ_set_ctype */
-0x67,0x2A,0x01, /* [4267] OBJ_set_msgExt */
-0x67,0x2A,0x03, /* [4270] OBJ_set_attr */
-0x67,0x2A,0x05, /* [4273] OBJ_set_policy */
-0x67,0x2A,0x07, /* [4276] OBJ_set_certExt */
-0x67,0x2A,0x08, /* [4279] OBJ_set_brand */
-0x67,0x2A,0x00,0x00, /* [4282] OBJ_setct_PANData */
-0x67,0x2A,0x00,0x01, /* [4286] OBJ_setct_PANToken */
-0x67,0x2A,0x00,0x02, /* [4290] OBJ_setct_PANOnly */
-0x67,0x2A,0x00,0x03, /* [4294] OBJ_setct_OIData */
-0x67,0x2A,0x00,0x04, /* [4298] OBJ_setct_PI */
-0x67,0x2A,0x00,0x05, /* [4302] OBJ_setct_PIData */
-0x67,0x2A,0x00,0x06, /* [4306] OBJ_setct_PIDataUnsigned */
-0x67,0x2A,0x00,0x07, /* [4310] OBJ_setct_HODInput */
-0x67,0x2A,0x00,0x08, /* [4314] OBJ_setct_AuthResBaggage */
-0x67,0x2A,0x00,0x09, /* [4318] OBJ_setct_AuthRevReqBaggage */
-0x67,0x2A,0x00,0x0A, /* [4322] OBJ_setct_AuthRevResBaggage */
-0x67,0x2A,0x00,0x0B, /* [4326] OBJ_setct_CapTokenSeq */
-0x67,0x2A,0x00,0x0C, /* [4330] OBJ_setct_PInitResData */
-0x67,0x2A,0x00,0x0D, /* [4334] OBJ_setct_PI_TBS */
-0x67,0x2A,0x00,0x0E, /* [4338] OBJ_setct_PResData */
-0x67,0x2A,0x00,0x10, /* [4342] OBJ_setct_AuthReqTBS */
-0x67,0x2A,0x00,0x11, /* [4346] OBJ_setct_AuthResTBS */
-0x67,0x2A,0x00,0x12, /* [4350] OBJ_setct_AuthResTBSX */
-0x67,0x2A,0x00,0x13, /* [4354] OBJ_setct_AuthTokenTBS */
-0x67,0x2A,0x00,0x14, /* [4358] OBJ_setct_CapTokenData */
-0x67,0x2A,0x00,0x15, /* [4362] OBJ_setct_CapTokenTBS */
-0x67,0x2A,0x00,0x16, /* [4366] OBJ_setct_AcqCardCodeMsg */
-0x67,0x2A,0x00,0x17, /* [4370] OBJ_setct_AuthRevReqTBS */
-0x67,0x2A,0x00,0x18, /* [4374] OBJ_setct_AuthRevResData */
-0x67,0x2A,0x00,0x19, /* [4378] OBJ_setct_AuthRevResTBS */
-0x67,0x2A,0x00,0x1A, /* [4382] OBJ_setct_CapReqTBS */
-0x67,0x2A,0x00,0x1B, /* [4386] OBJ_setct_CapReqTBSX */
-0x67,0x2A,0x00,0x1C, /* [4390] OBJ_setct_CapResData */
-0x67,0x2A,0x00,0x1D, /* [4394] OBJ_setct_CapRevReqTBS */
-0x67,0x2A,0x00,0x1E, /* [4398] OBJ_setct_CapRevReqTBSX */
-0x67,0x2A,0x00,0x1F, /* [4402] OBJ_setct_CapRevResData */
-0x67,0x2A,0x00,0x20, /* [4406] OBJ_setct_CredReqTBS */
-0x67,0x2A,0x00,0x21, /* [4410] OBJ_setct_CredReqTBSX */
-0x67,0x2A,0x00,0x22, /* [4414] OBJ_setct_CredResData */
-0x67,0x2A,0x00,0x23, /* [4418] OBJ_setct_CredRevReqTBS */
-0x67,0x2A,0x00,0x24, /* [4422] OBJ_setct_CredRevReqTBSX */
-0x67,0x2A,0x00,0x25, /* [4426] OBJ_setct_CredRevResData */
-0x67,0x2A,0x00,0x26, /* [4430] OBJ_setct_PCertReqData */
-0x67,0x2A,0x00,0x27, /* [4434] OBJ_setct_PCertResTBS */
-0x67,0x2A,0x00,0x28, /* [4438] OBJ_setct_BatchAdminReqData */
-0x67,0x2A,0x00,0x29, /* [4442] OBJ_setct_BatchAdminResData */
-0x67,0x2A,0x00,0x2A, /* [4446] OBJ_setct_CardCInitResTBS */
-0x67,0x2A,0x00,0x2B, /* [4450] OBJ_setct_MeAqCInitResTBS */
-0x67,0x2A,0x00,0x2C, /* [4454] OBJ_setct_RegFormResTBS */
-0x67,0x2A,0x00,0x2D, /* [4458] OBJ_setct_CertReqData */
-0x67,0x2A,0x00,0x2E, /* [4462] OBJ_setct_CertReqTBS */
-0x67,0x2A,0x00,0x2F, /* [4466] OBJ_setct_CertResData */
-0x67,0x2A,0x00,0x30, /* [4470] OBJ_setct_CertInqReqTBS */
-0x67,0x2A,0x00,0x31, /* [4474] OBJ_setct_ErrorTBS */
-0x67,0x2A,0x00,0x32, /* [4478] OBJ_setct_PIDualSignedTBE */
-0x67,0x2A,0x00,0x33, /* [4482] OBJ_setct_PIUnsignedTBE */
-0x67,0x2A,0x00,0x34, /* [4486] OBJ_setct_AuthReqTBE */
-0x67,0x2A,0x00,0x35, /* [4490] OBJ_setct_AuthResTBE */
-0x67,0x2A,0x00,0x36, /* [4494] OBJ_setct_AuthResTBEX */
-0x67,0x2A,0x00,0x37, /* [4498] OBJ_setct_AuthTokenTBE */
-0x67,0x2A,0x00,0x38, /* [4502] OBJ_setct_CapTokenTBE */
-0x67,0x2A,0x00,0x39, /* [4506] OBJ_setct_CapTokenTBEX */
-0x67,0x2A,0x00,0x3A, /* [4510] OBJ_setct_AcqCardCodeMsgTBE */
-0x67,0x2A,0x00,0x3B, /* [4514] OBJ_setct_AuthRevReqTBE */
-0x67,0x2A,0x00,0x3C, /* [4518] OBJ_setct_AuthRevResTBE */
-0x67,0x2A,0x00,0x3D, /* [4522] OBJ_setct_AuthRevResTBEB */
-0x67,0x2A,0x00,0x3E, /* [4526] OBJ_setct_CapReqTBE */
-0x67,0x2A,0x00,0x3F, /* [4530] OBJ_setct_CapReqTBEX */
-0x67,0x2A,0x00,0x40, /* [4534] OBJ_setct_CapResTBE */
-0x67,0x2A,0x00,0x41, /* [4538] OBJ_setct_CapRevReqTBE */
-0x67,0x2A,0x00,0x42, /* [4542] OBJ_setct_CapRevReqTBEX */
-0x67,0x2A,0x00,0x43, /* [4546] OBJ_setct_CapRevResTBE */
-0x67,0x2A,0x00,0x44, /* [4550] OBJ_setct_CredReqTBE */
-0x67,0x2A,0x00,0x45, /* [4554] OBJ_setct_CredReqTBEX */
-0x67,0x2A,0x00,0x46, /* [4558] OBJ_setct_CredResTBE */
-0x67,0x2A,0x00,0x47, /* [4562] OBJ_setct_CredRevReqTBE */
-0x67,0x2A,0x00,0x48, /* [4566] OBJ_setct_CredRevReqTBEX */
-0x67,0x2A,0x00,0x49, /* [4570] OBJ_setct_CredRevResTBE */
-0x67,0x2A,0x00,0x4A, /* [4574] OBJ_setct_BatchAdminReqTBE */
-0x67,0x2A,0x00,0x4B, /* [4578] OBJ_setct_BatchAdminResTBE */
-0x67,0x2A,0x00,0x4C, /* [4582] OBJ_setct_RegFormReqTBE */
-0x67,0x2A,0x00,0x4D, /* [4586] OBJ_setct_CertReqTBE */
-0x67,0x2A,0x00,0x4E, /* [4590] OBJ_setct_CertReqTBEX */
-0x67,0x2A,0x00,0x4F, /* [4594] OBJ_setct_CertResTBE */
-0x67,0x2A,0x00,0x50, /* [4598] OBJ_setct_CRLNotificationTBS */
-0x67,0x2A,0x00,0x51, /* [4602] OBJ_setct_CRLNotificationResTBS */
-0x67,0x2A,0x00,0x52, /* [4606] OBJ_setct_BCIDistributionTBS */
-0x67,0x2A,0x01,0x01, /* [4610] OBJ_setext_genCrypt */
-0x67,0x2A,0x01,0x03, /* [4614] OBJ_setext_miAuth */
-0x67,0x2A,0x01,0x04, /* [4618] OBJ_setext_pinSecure */
-0x67,0x2A,0x01,0x05, /* [4622] OBJ_setext_pinAny */
-0x67,0x2A,0x01,0x07, /* [4626] OBJ_setext_track2 */
-0x67,0x2A,0x01,0x08, /* [4630] OBJ_setext_cv */
-0x67,0x2A,0x05,0x00, /* [4634] OBJ_set_policy_root */
-0x67,0x2A,0x07,0x00, /* [4638] OBJ_setCext_hashedRoot */
-0x67,0x2A,0x07,0x01, /* [4642] OBJ_setCext_certType */
-0x67,0x2A,0x07,0x02, /* [4646] OBJ_setCext_merchData */
-0x67,0x2A,0x07,0x03, /* [4650] OBJ_setCext_cCertRequired */
-0x67,0x2A,0x07,0x04, /* [4654] OBJ_setCext_tunneling */
-0x67,0x2A,0x07,0x05, /* [4658] OBJ_setCext_setExt */
-0x67,0x2A,0x07,0x06, /* [4662] OBJ_setCext_setQualf */
-0x67,0x2A,0x07,0x07, /* [4666] OBJ_setCext_PGWYcapabilities */
-0x67,0x2A,0x07,0x08, /* [4670] OBJ_setCext_TokenIdentifier */
-0x67,0x2A,0x07,0x09, /* [4674] OBJ_setCext_Track2Data */
-0x67,0x2A,0x07,0x0A, /* [4678] OBJ_setCext_TokenType */
-0x67,0x2A,0x07,0x0B, /* [4682] OBJ_setCext_IssuerCapabilities */
-0x67,0x2A,0x03,0x00, /* [4686] OBJ_setAttr_Cert */
-0x67,0x2A,0x03,0x01, /* [4690] OBJ_setAttr_PGWYcap */
-0x67,0x2A,0x03,0x02, /* [4694] OBJ_setAttr_TokenType */
-0x67,0x2A,0x03,0x03, /* [4698] OBJ_setAttr_IssCap */
-0x67,0x2A,0x03,0x00,0x00, /* [4702] OBJ_set_rootKeyThumb */
-0x67,0x2A,0x03,0x00,0x01, /* [4707] OBJ_set_addPolicy */
-0x67,0x2A,0x03,0x02,0x01, /* [4712] OBJ_setAttr_Token_EMV */
-0x67,0x2A,0x03,0x02,0x02, /* [4717] OBJ_setAttr_Token_B0Prime */
-0x67,0x2A,0x03,0x03,0x03, /* [4722] OBJ_setAttr_IssCap_CVM */
-0x67,0x2A,0x03,0x03,0x04, /* [4727] OBJ_setAttr_IssCap_T2 */
-0x67,0x2A,0x03,0x03,0x05, /* [4732] OBJ_setAttr_IssCap_Sig */
-0x67,0x2A,0x03,0x03,0x03,0x01, /* [4737] OBJ_setAttr_GenCryptgrm */
-0x67,0x2A,0x03,0x03,0x04,0x01, /* [4743] OBJ_setAttr_T2Enc */
-0x67,0x2A,0x03,0x03,0x04,0x02, /* [4749] OBJ_setAttr_T2cleartxt */
-0x67,0x2A,0x03,0x03,0x05,0x01, /* [4755] OBJ_setAttr_TokICCsig */
-0x67,0x2A,0x03,0x03,0x05,0x02, /* [4761] OBJ_setAttr_SecDevSig */
-0x67,0x2A,0x08,0x01, /* [4767] OBJ_set_brand_IATA_ATA */
-0x67,0x2A,0x08,0x1E, /* [4771] OBJ_set_brand_Diners */
-0x67,0x2A,0x08,0x22, /* [4775] OBJ_set_brand_AmericanExpress */
-0x67,0x2A,0x08,0x23, /* [4779] OBJ_set_brand_JCB */
-0x67,0x2A,0x08,0x04, /* [4783] OBJ_set_brand_Visa */
-0x67,0x2A,0x08,0x05, /* [4787] OBJ_set_brand_MasterCard */
-0x67,0x2A,0x08,0xAE,0x7B, /* [4791] OBJ_set_brand_Novus */
-0x2A,0x86,0x48,0x86,0xF7,0x0D,0x03,0x0A, /* [4796] OBJ_des_cdmf */
-0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x06,/* [4804] OBJ_rsaOAEPEncryptionSET */
-0x67,0x2B,0x0D,0x04,0x03, /* [4813] OBJ_wap_wsg_idm_ecid_wtls3 */
-0x67,0x2B,0x0D,0x04,0x04, /* [4818] OBJ_wap_wsg_idm_ecid_wtls4 */
-0x67,0x2B,0x0D,0x04,0x05, /* [4823] OBJ_wap_wsg_idm_ecid_wtls5 */
-0x67,0x2B,0x0D,0x04,0x07, /* [4828] OBJ_wap_wsg_idm_ecid_wtls7 */
-0x67,0x2B,0x0D,0x04,0x0A, /* [4833] OBJ_wap_wsg_idm_ecid_wtls10 */
-0x67,0x2B,0x0D,0x04,0x0B, /* [4838] OBJ_wap_wsg_idm_ecid_wtls11 */
-0x67,0x2B,0x0D,0x04,0x0C, /* [4843] OBJ_wap_wsg_idm_ecid_wtls12 */
-0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x02,/* [4848] OBJ_ms_smartcard_login */
-0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x03,/* [4858] OBJ_ms_upn */
-0x55,0x1D,0x20,0x00, /* [4868] OBJ_any_policy */
-0x55,0x1D,0x21, /* [4872] OBJ_policy_mappings */
-0x55,0x1D,0x1E, /* [4875] OBJ_name_constraints */
-0x00, /* [4878] OBJ_itu_t */
-0x50, /* [4879] OBJ_joint_iso_itu_t */
-0x67, /* [4880] OBJ_international_organizations */
-0x55,0x1D,0x36, /* [4881] OBJ_inhibit_any_policy */
-0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0B,/* [4884] OBJ_sha256WithRSAEncryption */
-0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0C,/* [4893] OBJ_sha384WithRSAEncryption */
-0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0D,/* [4902] OBJ_sha512WithRSAEncryption */
-0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0E,/* [4911] OBJ_sha224WithRSAEncryption */
-0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,/* [4920] OBJ_sha256 */
-0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x02,/* [4929] OBJ_sha384 */
-0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x03,/* [4938] OBJ_sha512 */
-0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x04,/* [4947] OBJ_sha224 */
+0x55,0x04,0x2D, /* [3843] OBJ_x500UniqueIdentifier */
+0x2B,0x06,0x01,0x07,0x01, /* [3846] OBJ_mime_mhs */
+0x2B,0x06,0x01,0x07,0x01,0x01, /* [3851] OBJ_mime_mhs_headings */
+0x2B,0x06,0x01,0x07,0x01,0x02, /* [3857] OBJ_mime_mhs_bodies */
+0x2B,0x06,0x01,0x07,0x01,0x01,0x01, /* [3863] OBJ_id_hex_partial_message */
+0x2B,0x06,0x01,0x07,0x01,0x01,0x02, /* [3870] OBJ_id_hex_multipart_message */
+0x55,0x04,0x2C, /* [3877] OBJ_generationQualifier */
+0x55,0x04,0x41, /* [3880] OBJ_pseudonym */
+0x67,0x2A, /* [3883] OBJ_id_set */
+0x67,0x2A,0x00, /* [3885] OBJ_set_ctype */
+0x67,0x2A,0x01, /* [3888] OBJ_set_msgExt */
+0x67,0x2A,0x03, /* [3891] OBJ_set_attr */
+0x67,0x2A,0x05, /* [3894] OBJ_set_policy */
+0x67,0x2A,0x07, /* [3897] OBJ_set_certExt */
+0x67,0x2A,0x08, /* [3900] OBJ_set_brand */
+0x67,0x2A,0x00,0x00, /* [3903] OBJ_setct_PANData */
+0x67,0x2A,0x00,0x01, /* [3907] OBJ_setct_PANToken */
+0x67,0x2A,0x00,0x02, /* [3911] OBJ_setct_PANOnly */
+0x67,0x2A,0x00,0x03, /* [3915] OBJ_setct_OIData */
+0x67,0x2A,0x00,0x04, /* [3919] OBJ_setct_PI */
+0x67,0x2A,0x00,0x05, /* [3923] OBJ_setct_PIData */
+0x67,0x2A,0x00,0x06, /* [3927] OBJ_setct_PIDataUnsigned */
+0x67,0x2A,0x00,0x07, /* [3931] OBJ_setct_HODInput */
+0x67,0x2A,0x00,0x08, /* [3935] OBJ_setct_AuthResBaggage */
+0x67,0x2A,0x00,0x09, /* [3939] OBJ_setct_AuthRevReqBaggage */
+0x67,0x2A,0x00,0x0A, /* [3943] OBJ_setct_AuthRevResBaggage */
+0x67,0x2A,0x00,0x0B, /* [3947] OBJ_setct_CapTokenSeq */
+0x67,0x2A,0x00,0x0C, /* [3951] OBJ_setct_PInitResData */
+0x67,0x2A,0x00,0x0D, /* [3955] OBJ_setct_PI_TBS */
+0x67,0x2A,0x00,0x0E, /* [3959] OBJ_setct_PResData */
+0x67,0x2A,0x00,0x10, /* [3963] OBJ_setct_AuthReqTBS */
+0x67,0x2A,0x00,0x11, /* [3967] OBJ_setct_AuthResTBS */
+0x67,0x2A,0x00,0x12, /* [3971] OBJ_setct_AuthResTBSX */
+0x67,0x2A,0x00,0x13, /* [3975] OBJ_setct_AuthTokenTBS */
+0x67,0x2A,0x00,0x14, /* [3979] OBJ_setct_CapTokenData */
+0x67,0x2A,0x00,0x15, /* [3983] OBJ_setct_CapTokenTBS */
+0x67,0x2A,0x00,0x16, /* [3987] OBJ_setct_AcqCardCodeMsg */
+0x67,0x2A,0x00,0x17, /* [3991] OBJ_setct_AuthRevReqTBS */
+0x67,0x2A,0x00,0x18, /* [3995] OBJ_setct_AuthRevResData */
+0x67,0x2A,0x00,0x19, /* [3999] OBJ_setct_AuthRevResTBS */
+0x67,0x2A,0x00,0x1A, /* [4003] OBJ_setct_CapReqTBS */
+0x67,0x2A,0x00,0x1B, /* [4007] OBJ_setct_CapReqTBSX */
+0x67,0x2A,0x00,0x1C, /* [4011] OBJ_setct_CapResData */
+0x67,0x2A,0x00,0x1D, /* [4015] OBJ_setct_CapRevReqTBS */
+0x67,0x2A,0x00,0x1E, /* [4019] OBJ_setct_CapRevReqTBSX */
+0x67,0x2A,0x00,0x1F, /* [4023] OBJ_setct_CapRevResData */
+0x67,0x2A,0x00,0x20, /* [4027] OBJ_setct_CredReqTBS */
+0x67,0x2A,0x00,0x21, /* [4031] OBJ_setct_CredReqTBSX */
+0x67,0x2A,0x00,0x22, /* [4035] OBJ_setct_CredResData */
+0x67,0x2A,0x00,0x23, /* [4039] OBJ_setct_CredRevReqTBS */
+0x67,0x2A,0x00,0x24, /* [4043] OBJ_setct_CredRevReqTBSX */
+0x67,0x2A,0x00,0x25, /* [4047] OBJ_setct_CredRevResData */
+0x67,0x2A,0x00,0x26, /* [4051] OBJ_setct_PCertReqData */
+0x67,0x2A,0x00,0x27, /* [4055] OBJ_setct_PCertResTBS */
+0x67,0x2A,0x00,0x28, /* [4059] OBJ_setct_BatchAdminReqData */
+0x67,0x2A,0x00,0x29, /* [4063] OBJ_setct_BatchAdminResData */
+0x67,0x2A,0x00,0x2A, /* [4067] OBJ_setct_CardCInitResTBS */
+0x67,0x2A,0x00,0x2B, /* [4071] OBJ_setct_MeAqCInitResTBS */
+0x67,0x2A,0x00,0x2C, /* [4075] OBJ_setct_RegFormResTBS */
+0x67,0x2A,0x00,0x2D, /* [4079] OBJ_setct_CertReqData */
+0x67,0x2A,0x00,0x2E, /* [4083] OBJ_setct_CertReqTBS */
+0x67,0x2A,0x00,0x2F, /* [4087] OBJ_setct_CertResData */
+0x67,0x2A,0x00,0x30, /* [4091] OBJ_setct_CertInqReqTBS */
+0x67,0x2A,0x00,0x31, /* [4095] OBJ_setct_ErrorTBS */
+0x67,0x2A,0x00,0x32, /* [4099] OBJ_setct_PIDualSignedTBE */
+0x67,0x2A,0x00,0x33, /* [4103] OBJ_setct_PIUnsignedTBE */
+0x67,0x2A,0x00,0x34, /* [4107] OBJ_setct_AuthReqTBE */
+0x67,0x2A,0x00,0x35, /* [4111] OBJ_setct_AuthResTBE */
+0x67,0x2A,0x00,0x36, /* [4115] OBJ_setct_AuthResTBEX */
+0x67,0x2A,0x00,0x37, /* [4119] OBJ_setct_AuthTokenTBE */
+0x67,0x2A,0x00,0x38, /* [4123] OBJ_setct_CapTokenTBE */
+0x67,0x2A,0x00,0x39, /* [4127] OBJ_setct_CapTokenTBEX */
+0x67,0x2A,0x00,0x3A, /* [4131] OBJ_setct_AcqCardCodeMsgTBE */
+0x67,0x2A,0x00,0x3B, /* [4135] OBJ_setct_AuthRevReqTBE */
+0x67,0x2A,0x00,0x3C, /* [4139] OBJ_setct_AuthRevResTBE */
+0x67,0x2A,0x00,0x3D, /* [4143] OBJ_setct_AuthRevResTBEB */
+0x67,0x2A,0x00,0x3E, /* [4147] OBJ_setct_CapReqTBE */
+0x67,0x2A,0x00,0x3F, /* [4151] OBJ_setct_CapReqTBEX */
+0x67,0x2A,0x00,0x40, /* [4155] OBJ_setct_CapResTBE */
+0x67,0x2A,0x00,0x41, /* [4159] OBJ_setct_CapRevReqTBE */
+0x67,0x2A,0x00,0x42, /* [4163] OBJ_setct_CapRevReqTBEX */
+0x67,0x2A,0x00,0x43, /* [4167] OBJ_setct_CapRevResTBE */
+0x67,0x2A,0x00,0x44, /* [4171] OBJ_setct_CredReqTBE */
+0x67,0x2A,0x00,0x45, /* [4175] OBJ_setct_CredReqTBEX */
+0x67,0x2A,0x00,0x46, /* [4179] OBJ_setct_CredResTBE */
+0x67,0x2A,0x00,0x47, /* [4183] OBJ_setct_CredRevReqTBE */
+0x67,0x2A,0x00,0x48, /* [4187] OBJ_setct_CredRevReqTBEX */
+0x67,0x2A,0x00,0x49, /* [4191] OBJ_setct_CredRevResTBE */
+0x67,0x2A,0x00,0x4A, /* [4195] OBJ_setct_BatchAdminReqTBE */
+0x67,0x2A,0x00,0x4B, /* [4199] OBJ_setct_BatchAdminResTBE */
+0x67,0x2A,0x00,0x4C, /* [4203] OBJ_setct_RegFormReqTBE */
+0x67,0x2A,0x00,0x4D, /* [4207] OBJ_setct_CertReqTBE */
+0x67,0x2A,0x00,0x4E, /* [4211] OBJ_setct_CertReqTBEX */
+0x67,0x2A,0x00,0x4F, /* [4215] OBJ_setct_CertResTBE */
+0x67,0x2A,0x00,0x50, /* [4219] OBJ_setct_CRLNotificationTBS */
+0x67,0x2A,0x00,0x51, /* [4223] OBJ_setct_CRLNotificationResTBS */
+0x67,0x2A,0x00,0x52, /* [4227] OBJ_setct_BCIDistributionTBS */
+0x67,0x2A,0x01,0x01, /* [4231] OBJ_setext_genCrypt */
+0x67,0x2A,0x01,0x03, /* [4235] OBJ_setext_miAuth */
+0x67,0x2A,0x01,0x04, /* [4239] OBJ_setext_pinSecure */
+0x67,0x2A,0x01,0x05, /* [4243] OBJ_setext_pinAny */
+0x67,0x2A,0x01,0x07, /* [4247] OBJ_setext_track2 */
+0x67,0x2A,0x01,0x08, /* [4251] OBJ_setext_cv */
+0x67,0x2A,0x05,0x00, /* [4255] OBJ_set_policy_root */
+0x67,0x2A,0x07,0x00, /* [4259] OBJ_setCext_hashedRoot */
+0x67,0x2A,0x07,0x01, /* [4263] OBJ_setCext_certType */
+0x67,0x2A,0x07,0x02, /* [4267] OBJ_setCext_merchData */
+0x67,0x2A,0x07,0x03, /* [4271] OBJ_setCext_cCertRequired */
+0x67,0x2A,0x07,0x04, /* [4275] OBJ_setCext_tunneling */
+0x67,0x2A,0x07,0x05, /* [4279] OBJ_setCext_setExt */
+0x67,0x2A,0x07,0x06, /* [4283] OBJ_setCext_setQualf */
+0x67,0x2A,0x07,0x07, /* [4287] OBJ_setCext_PGWYcapabilities */
+0x67,0x2A,0x07,0x08, /* [4291] OBJ_setCext_TokenIdentifier */
+0x67,0x2A,0x07,0x09, /* [4295] OBJ_setCext_Track2Data */
+0x67,0x2A,0x07,0x0A, /* [4299] OBJ_setCext_TokenType */
+0x67,0x2A,0x07,0x0B, /* [4303] OBJ_setCext_IssuerCapabilities */
+0x67,0x2A,0x03,0x00, /* [4307] OBJ_setAttr_Cert */
+0x67,0x2A,0x03,0x01, /* [4311] OBJ_setAttr_PGWYcap */
+0x67,0x2A,0x03,0x02, /* [4315] OBJ_setAttr_TokenType */
+0x67,0x2A,0x03,0x03, /* [4319] OBJ_setAttr_IssCap */
+0x67,0x2A,0x03,0x00,0x00, /* [4323] OBJ_set_rootKeyThumb */
+0x67,0x2A,0x03,0x00,0x01, /* [4328] OBJ_set_addPolicy */
+0x67,0x2A,0x03,0x02,0x01, /* [4333] OBJ_setAttr_Token_EMV */
+0x67,0x2A,0x03,0x02,0x02, /* [4338] OBJ_setAttr_Token_B0Prime */
+0x67,0x2A,0x03,0x03,0x03, /* [4343] OBJ_setAttr_IssCap_CVM */
+0x67,0x2A,0x03,0x03,0x04, /* [4348] OBJ_setAttr_IssCap_T2 */
+0x67,0x2A,0x03,0x03,0x05, /* [4353] OBJ_setAttr_IssCap_Sig */
+0x67,0x2A,0x03,0x03,0x03,0x01, /* [4358] OBJ_setAttr_GenCryptgrm */
+0x67,0x2A,0x03,0x03,0x04,0x01, /* [4364] OBJ_setAttr_T2Enc */
+0x67,0x2A,0x03,0x03,0x04,0x02, /* [4370] OBJ_setAttr_T2cleartxt */
+0x67,0x2A,0x03,0x03,0x05,0x01, /* [4376] OBJ_setAttr_TokICCsig */
+0x67,0x2A,0x03,0x03,0x05,0x02, /* [4382] OBJ_setAttr_SecDevSig */
+0x67,0x2A,0x08,0x01, /* [4388] OBJ_set_brand_IATA_ATA */
+0x67,0x2A,0x08,0x1E, /* [4392] OBJ_set_brand_Diners */
+0x67,0x2A,0x08,0x22, /* [4396] OBJ_set_brand_AmericanExpress */
+0x67,0x2A,0x08,0x23, /* [4400] OBJ_set_brand_JCB */
+0x67,0x2A,0x08,0x04, /* [4404] OBJ_set_brand_Visa */
+0x67,0x2A,0x08,0x05, /* [4408] OBJ_set_brand_MasterCard */
+0x67,0x2A,0x08,0xAE,0x7B, /* [4412] OBJ_set_brand_Novus */
+0x2A,0x86,0x48,0x86,0xF7,0x0D,0x03,0x0A, /* [4417] OBJ_des_cdmf */
+0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x06,/* [4425] OBJ_rsaOAEPEncryptionSET */
+0x00, /* [4434] OBJ_itu_t */
+0x50, /* [4435] OBJ_joint_iso_itu_t */
+0x67, /* [4436] OBJ_international_organizations */
+0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x02,/* [4437] OBJ_ms_smartcard_login */
+0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x03,/* [4447] OBJ_ms_upn */
+0x55,0x04,0x09, /* [4457] OBJ_streetAddress */
+0x55,0x04,0x11, /* [4460] OBJ_postalCode */
+0x2B, /* [4463] OBJ_identified_organization */
+0x2B,0x81,0x04, /* [4464] OBJ_certicom_arc */
+0x67,0x2B, /* [4467] OBJ_wap */
+0x67,0x2B,0x0D, /* [4469] OBJ_wap_wsg */
+0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03, /* [4472] OBJ_X9_62_id_characteristic_two_basis */
+0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03,0x01,/* [4480] OBJ_X9_62_onBasis */
+0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03,0x02,/* [4489] OBJ_X9_62_tpBasis */
+0x2A,0x86,0x48,0xCE,0x3D,0x01,0x02,0x03,0x03,/* [4498] OBJ_X9_62_ppBasis */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x01, /* [4507] OBJ_X9_62_c2pnb163v1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x02, /* [4515] OBJ_X9_62_c2pnb163v2 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x03, /* [4523] OBJ_X9_62_c2pnb163v3 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x04, /* [4531] OBJ_X9_62_c2pnb176v1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x05, /* [4539] OBJ_X9_62_c2tnb191v1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x06, /* [4547] OBJ_X9_62_c2tnb191v2 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x07, /* [4555] OBJ_X9_62_c2tnb191v3 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x08, /* [4563] OBJ_X9_62_c2onb191v4 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x09, /* [4571] OBJ_X9_62_c2onb191v5 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0A, /* [4579] OBJ_X9_62_c2pnb208w1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0B, /* [4587] OBJ_X9_62_c2tnb239v1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0C, /* [4595] OBJ_X9_62_c2tnb239v2 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0D, /* [4603] OBJ_X9_62_c2tnb239v3 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0E, /* [4611] OBJ_X9_62_c2onb239v4 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x0F, /* [4619] OBJ_X9_62_c2onb239v5 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x10, /* [4627] OBJ_X9_62_c2pnb272w1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x11, /* [4635] OBJ_X9_62_c2pnb304w1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x12, /* [4643] OBJ_X9_62_c2tnb359v1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x13, /* [4651] OBJ_X9_62_c2pnb368w1 */
+0x2A,0x86,0x48,0xCE,0x3D,0x03,0x00,0x14, /* [4659] OBJ_X9_62_c2tnb431r1 */
+0x2B,0x81,0x04,0x00,0x06, /* [4667] OBJ_secp112r1 */
+0x2B,0x81,0x04,0x00,0x07, /* [4672] OBJ_secp112r2 */
+0x2B,0x81,0x04,0x00,0x1C, /* [4677] OBJ_secp128r1 */
+0x2B,0x81,0x04,0x00,0x1D, /* [4682] OBJ_secp128r2 */
+0x2B,0x81,0x04,0x00,0x09, /* [4687] OBJ_secp160k1 */
+0x2B,0x81,0x04,0x00,0x08, /* [4692] OBJ_secp160r1 */
+0x2B,0x81,0x04,0x00,0x1E, /* [4697] OBJ_secp160r2 */
+0x2B,0x81,0x04,0x00,0x1F, /* [4702] OBJ_secp192k1 */
+0x2B,0x81,0x04,0x00,0x20, /* [4707] OBJ_secp224k1 */
+0x2B,0x81,0x04,0x00,0x21, /* [4712] OBJ_secp224r1 */
+0x2B,0x81,0x04,0x00,0x0A, /* [4717] OBJ_secp256k1 */
+0x2B,0x81,0x04,0x00,0x22, /* [4722] OBJ_secp384r1 */
+0x2B,0x81,0x04,0x00,0x23, /* [4727] OBJ_secp521r1 */
+0x2B,0x81,0x04,0x00,0x04, /* [4732] OBJ_sect113r1 */
+0x2B,0x81,0x04,0x00,0x05, /* [4737] OBJ_sect113r2 */
+0x2B,0x81,0x04,0x00,0x16, /* [4742] OBJ_sect131r1 */
+0x2B,0x81,0x04,0x00,0x17, /* [4747] OBJ_sect131r2 */
+0x2B,0x81,0x04,0x00,0x01, /* [4752] OBJ_sect163k1 */
+0x2B,0x81,0x04,0x00,0x02, /* [4757] OBJ_sect163r1 */
+0x2B,0x81,0x04,0x00,0x0F, /* [4762] OBJ_sect163r2 */
+0x2B,0x81,0x04,0x00,0x18, /* [4767] OBJ_sect193r1 */
+0x2B,0x81,0x04,0x00,0x19, /* [4772] OBJ_sect193r2 */
+0x2B,0x81,0x04,0x00,0x1A, /* [4777] OBJ_sect233k1 */
+0x2B,0x81,0x04,0x00,0x1B, /* [4782] OBJ_sect233r1 */
+0x2B,0x81,0x04,0x00,0x03, /* [4787] OBJ_sect239k1 */
+0x2B,0x81,0x04,0x00,0x10, /* [4792] OBJ_sect283k1 */
+0x2B,0x81,0x04,0x00,0x11, /* [4797] OBJ_sect283r1 */
+0x2B,0x81,0x04,0x00,0x24, /* [4802] OBJ_sect409k1 */
+0x2B,0x81,0x04,0x00,0x25, /* [4807] OBJ_sect409r1 */
+0x2B,0x81,0x04,0x00,0x26, /* [4812] OBJ_sect571k1 */
+0x2B,0x81,0x04,0x00,0x27, /* [4817] OBJ_sect571r1 */
+0x67,0x2B,0x0D,0x04,0x01, /* [4822] OBJ_wap_wsg_idm_ecid_wtls1 */
+0x67,0x2B,0x0D,0x04,0x03, /* [4827] OBJ_wap_wsg_idm_ecid_wtls3 */
+0x67,0x2B,0x0D,0x04,0x04, /* [4832] OBJ_wap_wsg_idm_ecid_wtls4 */
+0x67,0x2B,0x0D,0x04,0x05, /* [4837] OBJ_wap_wsg_idm_ecid_wtls5 */
+0x67,0x2B,0x0D,0x04,0x06, /* [4842] OBJ_wap_wsg_idm_ecid_wtls6 */
+0x67,0x2B,0x0D,0x04,0x07, /* [4847] OBJ_wap_wsg_idm_ecid_wtls7 */
+0x67,0x2B,0x0D,0x04,0x08, /* [4852] OBJ_wap_wsg_idm_ecid_wtls8 */
+0x67,0x2B,0x0D,0x04,0x09, /* [4857] OBJ_wap_wsg_idm_ecid_wtls9 */
+0x67,0x2B,0x0D,0x04,0x0A, /* [4862] OBJ_wap_wsg_idm_ecid_wtls10 */
+0x67,0x2B,0x0D,0x04,0x0B, /* [4867] OBJ_wap_wsg_idm_ecid_wtls11 */
+0x67,0x2B,0x0D,0x04,0x0C, /* [4872] OBJ_wap_wsg_idm_ecid_wtls12 */
+0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0B,/* [4877] OBJ_sha256WithRSAEncryption */
+0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0C,/* [4886] OBJ_sha384WithRSAEncryption */
+0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0D,/* [4895] OBJ_sha512WithRSAEncryption */
+0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0E,/* [4904] OBJ_sha224WithRSAEncryption */
+0x55,0x1D,0x1E, /* [4913] OBJ_name_constraints */
+0x55,0x1D,0x20,0x00, /* [4916] OBJ_any_policy */
+0x55,0x1D,0x21, /* [4920] OBJ_policy_mappings */
+0x55,0x1D,0x36, /* [4923] OBJ_inhibit_any_policy */
+0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,/* [4926] OBJ_sha256 */
+0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x02,/* [4935] OBJ_sha384 */
+0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x03,/* [4944] OBJ_sha512 */
+0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x04,/* [4953] OBJ_sha224 */
+0x2B,0x06,0x01,0x05,0x05,0x07,0x15, /* [4962] OBJ_id_ppl */
+0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x0E, /* [4969] OBJ_proxyCertInfo */
+0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x00, /* [4977] OBJ_id_ppl_anyLanguage */
+0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x01, /* [4985] OBJ_id_ppl_inheritAll */
+0x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x02, /* [4993] OBJ_Independent */
};
static ASN1_OBJECT nid_objs[NUM_NID]={
@@ -1541,370 +1548,279 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
{"audio","audio",NID_audio,10,&(lvalues[3823]),0},
{"documentPublisher","documentPublisher",NID_documentPublisher,10,
&(lvalues[3833]),0},
-{"id-characteristic-two-basis","id-characteristic-two-basis",
- NID_X9_62_id_characteristic_two_basis,8,&(lvalues[3843]),0},
-{"onBasis","onBasis",NID_X9_62_onBasis,9,&(lvalues[3851]),0},
-{"tpBasis","tpBasis",NID_X9_62_tpBasis,9,&(lvalues[3860]),0},
-{"ppBasis","ppBasis",NID_X9_62_ppBasis,9,&(lvalues[3869]),0},
-{"c2pnb163v1","c2pnb163v1",NID_X9_62_c2pnb163v1,8,&(lvalues[3878]),0},
-{"c2pnb163v2","c2pnb163v2",NID_X9_62_c2pnb163v2,8,&(lvalues[3886]),0},
-{"c2pnb163v3","c2pnb163v3",NID_X9_62_c2pnb163v3,8,&(lvalues[3894]),0},
-{"c2pnb176v1","c2pnb176v1",NID_X9_62_c2pnb176v1,8,&(lvalues[3902]),0},
-{"c2tnb191v1","c2tnb191v1",NID_X9_62_c2tnb191v1,8,&(lvalues[3910]),0},
-{"c2tnb191v2","c2tnb191v2",NID_X9_62_c2tnb191v2,8,&(lvalues[3918]),0},
-{"c2tnb191v3","c2tnb191v3",NID_X9_62_c2tnb191v3,8,&(lvalues[3926]),0},
-{"c2onb191v4","c2onb191v4",NID_X9_62_c2onb191v4,8,&(lvalues[3934]),0},
-{"c2onb191v5","c2onb191v5",NID_X9_62_c2onb191v5,8,&(lvalues[3942]),0},
-{"c2pnb208w1","c2pnb208w1",NID_X9_62_c2pnb208w1,8,&(lvalues[3950]),0},
-{"c2tnb239v1","c2tnb239v1",NID_X9_62_c2tnb239v1,8,&(lvalues[3958]),0},
-{"c2tnb239v2","c2tnb239v2",NID_X9_62_c2tnb239v2,8,&(lvalues[3966]),0},
-{"c2tnb239v3","c2tnb239v3",NID_X9_62_c2tnb239v3,8,&(lvalues[3974]),0},
-{"c2onb239v4","c2onb239v4",NID_X9_62_c2onb239v4,8,&(lvalues[3982]),0},
-{"c2onb239v5","c2onb239v5",NID_X9_62_c2onb239v5,8,&(lvalues[3990]),0},
-{"c2pnb272w1","c2pnb272w1",NID_X9_62_c2pnb272w1,8,&(lvalues[3998]),0},
-{"c2pnb304w1","c2pnb304w1",NID_X9_62_c2pnb304w1,8,&(lvalues[4006]),0},
-{"c2tnb359v1","c2tnb359v1",NID_X9_62_c2tnb359v1,8,&(lvalues[4014]),0},
-{"c2pnb368w1","c2pnb368w1",NID_X9_62_c2pnb368w1,8,&(lvalues[4022]),0},
-{"c2tnb431r1","c2tnb431r1",NID_X9_62_c2tnb431r1,8,&(lvalues[4030]),0},
-{"identified-organization","identified-organization",
- NID_identified_organization,1,&(lvalues[4038]),0},
-{"certicom-arc","certicom-arc",NID_certicom_arc,3,&(lvalues[4039]),0},
-{"secp112r1","secp112r1",NID_secp112r1,5,&(lvalues[4042]),0},
-{"secp112r2","secp112r2",NID_secp112r2,5,&(lvalues[4047]),0},
-{"secp128r1","secp128r1",NID_secp128r1,5,&(lvalues[4052]),0},
-{"secp128r2","secp128r2",NID_secp128r2,5,&(lvalues[4057]),0},
-{"secp160k1","secp160k1",NID_secp160k1,5,&(lvalues[4062]),0},
-{"secp160r1","secp160r1",NID_secp160r1,5,&(lvalues[4067]),0},
-{"secp160r2","secp160r2",NID_secp160r2,5,&(lvalues[4072]),0},
-{"secp192k1","secp192k1",NID_secp192k1,5,&(lvalues[4077]),0},
-{NULL,NULL,NID_undef,0,NULL},
-{"secp224k1","secp224k1",NID_secp224k1,5,&(lvalues[4082]),0},
-{"secp224r1","secp224r1",NID_secp224r1,5,&(lvalues[4087]),0},
-{"secp256k1","secp256k1",NID_secp256k1,5,&(lvalues[4092]),0},
-{NULL,NULL,NID_undef,0,NULL},
-{"secp384r1","secp384r1",NID_secp384r1,5,&(lvalues[4097]),0},
-{"secp521r1","secp521r1",NID_secp521r1,5,&(lvalues[4102]),0},
-{"sect113r1","sect113r1",NID_sect113r1,5,&(lvalues[4107]),0},
-{"sect113r2","sect113r2",NID_sect113r2,5,&(lvalues[4112]),0},
-{"sect131r1","sect131r1",NID_sect131r1,5,&(lvalues[4117]),0},
-{"sect131r2","sect131r2",NID_sect131r2,5,&(lvalues[4122]),0},
-{"sect163k1","sect163k1",NID_sect163k1,5,&(lvalues[4127]),0},
-{"sect163r1","sect163r1",NID_sect163r1,5,&(lvalues[4132]),0},
-{"sect163r2","sect163r2",NID_sect163r2,5,&(lvalues[4137]),0},
-{"sect193r1","sect193r1",NID_sect193r1,5,&(lvalues[4142]),0},
-{"sect193r2","sect193r2",NID_sect193r2,5,&(lvalues[4147]),0},
-{"sect233k1","sect233k1",NID_sect233k1,5,&(lvalues[4152]),0},
-{"sect233r1","sect233r1",NID_sect233r1,5,&(lvalues[4157]),0},
-{"sect239k1","sect239k1",NID_sect239k1,5,&(lvalues[4162]),0},
-{"sect283k1","sect283k1",NID_sect283k1,5,&(lvalues[4167]),0},
-{"sect283r1","sect283r1",NID_sect283r1,5,&(lvalues[4172]),0},
-{"sect409k1","sect409k1",NID_sect409k1,5,&(lvalues[4177]),0},
-{"sect409r1","sect409r1",NID_sect409r1,5,&(lvalues[4182]),0},
-{"sect571k1","sect571k1",NID_sect571k1,5,&(lvalues[4187]),0},
-{"sect571r1","sect571r1",NID_sect571r1,5,&(lvalues[4192]),0},
-{"wap","wap",NID_wap,2,&(lvalues[4197]),0},
-{"wap-wsg","wap-wsg",NID_wap_wsg,3,&(lvalues[4199]),0},
-{"wap-wsg-idm-ecid-wtls1","wap-wsg-idm-ecid-wtls1",
- NID_wap_wsg_idm_ecid_wtls1,5,&(lvalues[4202]),0},
-{"wap-wsg-idm-ecid-wtls6","wap-wsg-idm-ecid-wtls6",
- NID_wap_wsg_idm_ecid_wtls6,5,&(lvalues[4207]),0},
-{"wap-wsg-idm-ecid-wtls8","wap-wsg-idm-ecid-wtls8",
- NID_wap_wsg_idm_ecid_wtls8,5,&(lvalues[4212]),0},
-{"wap-wsg-idm-ecid-wtls9","wap-wsg-idm-ecid-wtls9",
- NID_wap_wsg_idm_ecid_wtls9,5,&(lvalues[4217]),0},
{"x500UniqueIdentifier","x500UniqueIdentifier",
- NID_x500UniqueIdentifier,3,&(lvalues[4222]),0},
-{"mime-mhs","MIME MHS",NID_mime_mhs,5,&(lvalues[4225]),0},
+ NID_x500UniqueIdentifier,3,&(lvalues[3843]),0},
+{"mime-mhs","MIME MHS",NID_mime_mhs,5,&(lvalues[3846]),0},
{"mime-mhs-headings","mime-mhs-headings",NID_mime_mhs_headings,6,
- &(lvalues[4230]),0},
+ &(lvalues[3851]),0},
{"mime-mhs-bodies","mime-mhs-bodies",NID_mime_mhs_bodies,6,
- &(lvalues[4236]),0},
+ &(lvalues[3857]),0},
{"id-hex-partial-message","id-hex-partial-message",
- NID_id_hex_partial_message,7,&(lvalues[4242]),0},
+ NID_id_hex_partial_message,7,&(lvalues[3863]),0},
{"id-hex-multipart-message","id-hex-multipart-message",
- NID_id_hex_multipart_message,7,&(lvalues[4249]),0},
+ NID_id_hex_multipart_message,7,&(lvalues[3870]),0},
{"generationQualifier","generationQualifier",NID_generationQualifier,
- 3,&(lvalues[4256]),0},
-{"pseudonym","pseudonym",NID_pseudonym,3,&(lvalues[4259]),0},
+ 3,&(lvalues[3877]),0},
+{"pseudonym","pseudonym",NID_pseudonym,3,&(lvalues[3880]),0},
+{NULL,NULL,NID_undef,0,NULL},
{"id-set","Secure Electronic Transactions",NID_id_set,2,
- &(lvalues[4262]),0},
-{"set-ctype","content types",NID_set_ctype,3,&(lvalues[4264]),0},
-{"set-msgExt","message extensions",NID_set_msgExt,3,&(lvalues[4267]),0},
-{"set-attr","set-attr",NID_set_attr,3,&(lvalues[4270]),0},
-{"set-policy","set-policy",NID_set_policy,3,&(lvalues[4273]),0},
+ &(lvalues[3883]),0},
+{"set-ctype","content types",NID_set_ctype,3,&(lvalues[3885]),0},
+{"set-msgExt","message extensions",NID_set_msgExt,3,&(lvalues[3888]),0},
+{"set-attr","set-attr",NID_set_attr,3,&(lvalues[3891]),0},
+{"set-policy","set-policy",NID_set_policy,3,&(lvalues[3894]),0},
{"set-certExt","certificate extensions",NID_set_certExt,3,
- &(lvalues[4276]),0},
-{"set-brand","set-brand",NID_set_brand,3,&(lvalues[4279]),0},
-{"setct-PANData","setct-PANData",NID_setct_PANData,4,&(lvalues[4282]),0},
+ &(lvalues[3897]),0},
+{"set-brand","set-brand",NID_set_brand,3,&(lvalues[3900]),0},
+{"setct-PANData","setct-PANData",NID_setct_PANData,4,&(lvalues[3903]),0},
{"setct-PANToken","setct-PANToken",NID_setct_PANToken,4,
- &(lvalues[4286]),0},
-{"setct-PANOnly","setct-PANOnly",NID_setct_PANOnly,4,&(lvalues[4290]),0},
-{"setct-OIData","setct-OIData",NID_setct_OIData,4,&(lvalues[4294]),0},
-{"setct-PI","setct-PI",NID_setct_PI,4,&(lvalues[4298]),0},
-{"setct-PIData","setct-PIData",NID_setct_PIData,4,&(lvalues[4302]),0},
+ &(lvalues[3907]),0},
+{"setct-PANOnly","setct-PANOnly",NID_setct_PANOnly,4,&(lvalues[3911]),0},
+{"setct-OIData","setct-OIData",NID_setct_OIData,4,&(lvalues[3915]),0},
+{"setct-PI","setct-PI",NID_setct_PI,4,&(lvalues[3919]),0},
+{"setct-PIData","setct-PIData",NID_setct_PIData,4,&(lvalues[3923]),0},
{"setct-PIDataUnsigned","setct-PIDataUnsigned",
- NID_setct_PIDataUnsigned,4,&(lvalues[4306]),0},
+ NID_setct_PIDataUnsigned,4,&(lvalues[3927]),0},
{"setct-HODInput","setct-HODInput",NID_setct_HODInput,4,
- &(lvalues[4310]),0},
+ &(lvalues[3931]),0},
{"setct-AuthResBaggage","setct-AuthResBaggage",
- NID_setct_AuthResBaggage,4,&(lvalues[4314]),0},
+ NID_setct_AuthResBaggage,4,&(lvalues[3935]),0},
{"setct-AuthRevReqBaggage","setct-AuthRevReqBaggage",
- NID_setct_AuthRevReqBaggage,4,&(lvalues[4318]),0},
+ NID_setct_AuthRevReqBaggage,4,&(lvalues[3939]),0},
{"setct-AuthRevResBaggage","setct-AuthRevResBaggage",
- NID_setct_AuthRevResBaggage,4,&(lvalues[4322]),0},
+ NID_setct_AuthRevResBaggage,4,&(lvalues[3943]),0},
{"setct-CapTokenSeq","setct-CapTokenSeq",NID_setct_CapTokenSeq,4,
- &(lvalues[4326]),0},
+ &(lvalues[3947]),0},
{"setct-PInitResData","setct-PInitResData",NID_setct_PInitResData,4,
- &(lvalues[4330]),0},
-{"setct-PI-TBS","setct-PI-TBS",NID_setct_PI_TBS,4,&(lvalues[4334]),0},
+ &(lvalues[3951]),0},
+{"setct-PI-TBS","setct-PI-TBS",NID_setct_PI_TBS,4,&(lvalues[3955]),0},
{"setct-PResData","setct-PResData",NID_setct_PResData,4,
- &(lvalues[4338]),0},
+ &(lvalues[3959]),0},
{"setct-AuthReqTBS","setct-AuthReqTBS",NID_setct_AuthReqTBS,4,
- &(lvalues[4342]),0},
+ &(lvalues[3963]),0},
{"setct-AuthResTBS","setct-AuthResTBS",NID_setct_AuthResTBS,4,
- &(lvalues[4346]),0},
+ &(lvalues[3967]),0},
{"setct-AuthResTBSX","setct-AuthResTBSX",NID_setct_AuthResTBSX,4,
- &(lvalues[4350]),0},
+ &(lvalues[3971]),0},
{"setct-AuthTokenTBS","setct-AuthTokenTBS",NID_setct_AuthTokenTBS,4,
- &(lvalues[4354]),0},
+ &(lvalues[3975]),0},
{"setct-CapTokenData","setct-CapTokenData",NID_setct_CapTokenData,4,
- &(lvalues[4358]),0},
+ &(lvalues[3979]),0},
{"setct-CapTokenTBS","setct-CapTokenTBS",NID_setct_CapTokenTBS,4,
- &(lvalues[4362]),0},
+ &(lvalues[3983]),0},
{"setct-AcqCardCodeMsg","setct-AcqCardCodeMsg",
- NID_setct_AcqCardCodeMsg,4,&(lvalues[4366]),0},
+ NID_setct_AcqCardCodeMsg,4,&(lvalues[3987]),0},
{"setct-AuthRevReqTBS","setct-AuthRevReqTBS",NID_setct_AuthRevReqTBS,
- 4,&(lvalues[4370]),0},
+ 4,&(lvalues[3991]),0},
{"setct-AuthRevResData","setct-AuthRevResData",
- NID_setct_AuthRevResData,4,&(lvalues[4374]),0},
+ NID_setct_AuthRevResData,4,&(lvalues[3995]),0},
{"setct-AuthRevResTBS","setct-AuthRevResTBS",NID_setct_AuthRevResTBS,
- 4,&(lvalues[4378]),0},
+ 4,&(lvalues[3999]),0},
{"setct-CapReqTBS","setct-CapReqTBS",NID_setct_CapReqTBS,4,
- &(lvalues[4382]),0},
+ &(lvalues[4003]),0},
{"setct-CapReqTBSX","setct-CapReqTBSX",NID_setct_CapReqTBSX,4,
- &(lvalues[4386]),0},
+ &(lvalues[4007]),0},
{"setct-CapResData","setct-CapResData",NID_setct_CapResData,4,
- &(lvalues[4390]),0},
+ &(lvalues[4011]),0},
{"setct-CapRevReqTBS","setct-CapRevReqTBS",NID_setct_CapRevReqTBS,4,
- &(lvalues[4394]),0},
+ &(lvalues[4015]),0},
{"setct-CapRevReqTBSX","setct-CapRevReqTBSX",NID_setct_CapRevReqTBSX,
- 4,&(lvalues[4398]),0},
+ 4,&(lvalues[4019]),0},
{"setct-CapRevResData","setct-CapRevResData",NID_setct_CapRevResData,
- 4,&(lvalues[4402]),0},
+ 4,&(lvalues[4023]),0},
{"setct-CredReqTBS","setct-CredReqTBS",NID_setct_CredReqTBS,4,
- &(lvalues[4406]),0},
+ &(lvalues[4027]),0},
{"setct-CredReqTBSX","setct-CredReqTBSX",NID_setct_CredReqTBSX,4,
- &(lvalues[4410]),0},
+ &(lvalues[4031]),0},
{"setct-CredResData","setct-CredResData",NID_setct_CredResData,4,
- &(lvalues[4414]),0},
+ &(lvalues[4035]),0},
{"setct-CredRevReqTBS","setct-CredRevReqTBS",NID_setct_CredRevReqTBS,
- 4,&(lvalues[4418]),0},
+ 4,&(lvalues[4039]),0},
{"setct-CredRevReqTBSX","setct-CredRevReqTBSX",
- NID_setct_CredRevReqTBSX,4,&(lvalues[4422]),0},
+ NID_setct_CredRevReqTBSX,4,&(lvalues[4043]),0},
{"setct-CredRevResData","setct-CredRevResData",
- NID_setct_CredRevResData,4,&(lvalues[4426]),0},
+ NID_setct_CredRevResData,4,&(lvalues[4047]),0},
{"setct-PCertReqData","setct-PCertReqData",NID_setct_PCertReqData,4,
- &(lvalues[4430]),0},
+ &(lvalues[4051]),0},
{"setct-PCertResTBS","setct-PCertResTBS",NID_setct_PCertResTBS,4,
- &(lvalues[4434]),0},
+ &(lvalues[4055]),0},
{"setct-BatchAdminReqData","setct-BatchAdminReqData",
- NID_setct_BatchAdminReqData,4,&(lvalues[4438]),0},
+ NID_setct_BatchAdminReqData,4,&(lvalues[4059]),0},
{"setct-BatchAdminResData","setct-BatchAdminResData",
- NID_setct_BatchAdminResData,4,&(lvalues[4442]),0},
+ NID_setct_BatchAdminResData,4,&(lvalues[4063]),0},
{"setct-CardCInitResTBS","setct-CardCInitResTBS",
- NID_setct_CardCInitResTBS,4,&(lvalues[4446]),0},
+ NID_setct_CardCInitResTBS,4,&(lvalues[4067]),0},
{"setct-MeAqCInitResTBS","setct-MeAqCInitResTBS",
- NID_setct_MeAqCInitResTBS,4,&(lvalues[4450]),0},
+ NID_setct_MeAqCInitResTBS,4,&(lvalues[4071]),0},
{"setct-RegFormResTBS","setct-RegFormResTBS",NID_setct_RegFormResTBS,
- 4,&(lvalues[4454]),0},
+ 4,&(lvalues[4075]),0},
{"setct-CertReqData","setct-CertReqData",NID_setct_CertReqData,4,
- &(lvalues[4458]),0},
+ &(lvalues[4079]),0},
{"setct-CertReqTBS","setct-CertReqTBS",NID_setct_CertReqTBS,4,
- &(lvalues[4462]),0},
+ &(lvalues[4083]),0},
{"setct-CertResData","setct-CertResData",NID_setct_CertResData,4,
- &(lvalues[4466]),0},
+ &(lvalues[4087]),0},
{"setct-CertInqReqTBS","setct-CertInqReqTBS",NID_setct_CertInqReqTBS,
- 4,&(lvalues[4470]),0},
+ 4,&(lvalues[4091]),0},
{"setct-ErrorTBS","setct-ErrorTBS",NID_setct_ErrorTBS,4,
- &(lvalues[4474]),0},
+ &(lvalues[4095]),0},
{"setct-PIDualSignedTBE","setct-PIDualSignedTBE",
- NID_setct_PIDualSignedTBE,4,&(lvalues[4478]),0},
+ NID_setct_PIDualSignedTBE,4,&(lvalues[4099]),0},
{"setct-PIUnsignedTBE","setct-PIUnsignedTBE",NID_setct_PIUnsignedTBE,
- 4,&(lvalues[4482]),0},
+ 4,&(lvalues[4103]),0},
{"setct-AuthReqTBE","setct-AuthReqTBE",NID_setct_AuthReqTBE,4,
- &(lvalues[4486]),0},
+ &(lvalues[4107]),0},
{"setct-AuthResTBE","setct-AuthResTBE",NID_setct_AuthResTBE,4,
- &(lvalues[4490]),0},
+ &(lvalues[4111]),0},
{"setct-AuthResTBEX","setct-AuthResTBEX",NID_setct_AuthResTBEX,4,
- &(lvalues[4494]),0},
+ &(lvalues[4115]),0},
{"setct-AuthTokenTBE","setct-AuthTokenTBE",NID_setct_AuthTokenTBE,4,
- &(lvalues[4498]),0},
+ &(lvalues[4119]),0},
{"setct-CapTokenTBE","setct-CapTokenTBE",NID_setct_CapTokenTBE,4,
- &(lvalues[4502]),0},
+ &(lvalues[4123]),0},
{"setct-CapTokenTBEX","setct-CapTokenTBEX",NID_setct_CapTokenTBEX,4,
- &(lvalues[4506]),0},
+ &(lvalues[4127]),0},
{"setct-AcqCardCodeMsgTBE","setct-AcqCardCodeMsgTBE",
- NID_setct_AcqCardCodeMsgTBE,4,&(lvalues[4510]),0},
+ NID_setct_AcqCardCodeMsgTBE,4,&(lvalues[4131]),0},
{"setct-AuthRevReqTBE","setct-AuthRevReqTBE",NID_setct_AuthRevReqTBE,
- 4,&(lvalues[4514]),0},
+ 4,&(lvalues[4135]),0},
{"setct-AuthRevResTBE","setct-AuthRevResTBE",NID_setct_AuthRevResTBE,
- 4,&(lvalues[4518]),0},
+ 4,&(lvalues[4139]),0},
{"setct-AuthRevResTBEB","setct-AuthRevResTBEB",
- NID_setct_AuthRevResTBEB,4,&(lvalues[4522]),0},
+ NID_setct_AuthRevResTBEB,4,&(lvalues[4143]),0},
{"setct-CapReqTBE","setct-CapReqTBE",NID_setct_CapReqTBE,4,
- &(lvalues[4526]),0},
+ &(lvalues[4147]),0},
{"setct-CapReqTBEX","setct-CapReqTBEX",NID_setct_CapReqTBEX,4,
- &(lvalues[4530]),0},
+ &(lvalues[4151]),0},
{"setct-CapResTBE","setct-CapResTBE",NID_setct_CapResTBE,4,
- &(lvalues[4534]),0},
+ &(lvalues[4155]),0},
{"setct-CapRevReqTBE","setct-CapRevReqTBE",NID_setct_CapRevReqTBE,4,
- &(lvalues[4538]),0},
+ &(lvalues[4159]),0},
{"setct-CapRevReqTBEX","setct-CapRevReqTBEX",NID_setct_CapRevReqTBEX,
- 4,&(lvalues[4542]),0},
+ 4,&(lvalues[4163]),0},
{"setct-CapRevResTBE","setct-CapRevResTBE",NID_setct_CapRevResTBE,4,
- &(lvalues[4546]),0},
+ &(lvalues[4167]),0},
{"setct-CredReqTBE","setct-CredReqTBE",NID_setct_CredReqTBE,4,
- &(lvalues[4550]),0},
+ &(lvalues[4171]),0},
{"setct-CredReqTBEX","setct-CredReqTBEX",NID_setct_CredReqTBEX,4,
- &(lvalues[4554]),0},
+ &(lvalues[4175]),0},
{"setct-CredResTBE","setct-CredResTBE",NID_setct_CredResTBE,4,
- &(lvalues[4558]),0},
+ &(lvalues[4179]),0},
{"setct-CredRevReqTBE","setct-CredRevReqTBE",NID_setct_CredRevReqTBE,
- 4,&(lvalues[4562]),0},
+ 4,&(lvalues[4183]),0},
{"setct-CredRevReqTBEX","setct-CredRevReqTBEX",
- NID_setct_CredRevReqTBEX,4,&(lvalues[4566]),0},
+ NID_setct_CredRevReqTBEX,4,&(lvalues[4187]),0},
{"setct-CredRevResTBE","setct-CredRevResTBE",NID_setct_CredRevResTBE,
- 4,&(lvalues[4570]),0},
+ 4,&(lvalues[4191]),0},
{"setct-BatchAdminReqTBE","setct-BatchAdminReqTBE",
- NID_setct_BatchAdminReqTBE,4,&(lvalues[4574]),0},
+ NID_setct_BatchAdminReqTBE,4,&(lvalues[4195]),0},
{"setct-BatchAdminResTBE","setct-BatchAdminResTBE",
- NID_setct_BatchAdminResTBE,4,&(lvalues[4578]),0},
+ NID_setct_BatchAdminResTBE,4,&(lvalues[4199]),0},
{"setct-RegFormReqTBE","setct-RegFormReqTBE",NID_setct_RegFormReqTBE,
- 4,&(lvalues[4582]),0},
+ 4,&(lvalues[4203]),0},
{"setct-CertReqTBE","setct-CertReqTBE",NID_setct_CertReqTBE,4,
- &(lvalues[4586]),0},
+ &(lvalues[4207]),0},
{"setct-CertReqTBEX","setct-CertReqTBEX",NID_setct_CertReqTBEX,4,
- &(lvalues[4590]),0},
+ &(lvalues[4211]),0},
{"setct-CertResTBE","setct-CertResTBE",NID_setct_CertResTBE,4,
- &(lvalues[4594]),0},
+ &(lvalues[4215]),0},
{"setct-CRLNotificationTBS","setct-CRLNotificationTBS",
- NID_setct_CRLNotificationTBS,4,&(lvalues[4598]),0},
+ NID_setct_CRLNotificationTBS,4,&(lvalues[4219]),0},
{"setct-CRLNotificationResTBS","setct-CRLNotificationResTBS",
- NID_setct_CRLNotificationResTBS,4,&(lvalues[4602]),0},
+ NID_setct_CRLNotificationResTBS,4,&(lvalues[4223]),0},
{"setct-BCIDistributionTBS","setct-BCIDistributionTBS",
- NID_setct_BCIDistributionTBS,4,&(lvalues[4606]),0},
+ NID_setct_BCIDistributionTBS,4,&(lvalues[4227]),0},
{"setext-genCrypt","generic cryptogram",NID_setext_genCrypt,4,
- &(lvalues[4610]),0},
+ &(lvalues[4231]),0},
{"setext-miAuth","merchant initiated auth",NID_setext_miAuth,4,
- &(lvalues[4614]),0},
+ &(lvalues[4235]),0},
{"setext-pinSecure","setext-pinSecure",NID_setext_pinSecure,4,
- &(lvalues[4618]),0},
-{"setext-pinAny","setext-pinAny",NID_setext_pinAny,4,&(lvalues[4622]),0},
-{"setext-track2","setext-track2",NID_setext_track2,4,&(lvalues[4626]),0},
+ &(lvalues[4239]),0},
+{"setext-pinAny","setext-pinAny",NID_setext_pinAny,4,&(lvalues[4243]),0},
+{"setext-track2","setext-track2",NID_setext_track2,4,&(lvalues[4247]),0},
{"setext-cv","additional verification",NID_setext_cv,4,
- &(lvalues[4630]),0},
+ &(lvalues[4251]),0},
{"set-policy-root","set-policy-root",NID_set_policy_root,4,
- &(lvalues[4634]),0},
+ &(lvalues[4255]),0},
{"setCext-hashedRoot","setCext-hashedRoot",NID_setCext_hashedRoot,4,
- &(lvalues[4638]),0},
+ &(lvalues[4259]),0},
{"setCext-certType","setCext-certType",NID_setCext_certType,4,
- &(lvalues[4642]),0},
+ &(lvalues[4263]),0},
{"setCext-merchData","setCext-merchData",NID_setCext_merchData,4,
- &(lvalues[4646]),0},
+ &(lvalues[4267]),0},
{"setCext-cCertRequired","setCext-cCertRequired",
- NID_setCext_cCertRequired,4,&(lvalues[4650]),0},
+ NID_setCext_cCertRequired,4,&(lvalues[4271]),0},
{"setCext-tunneling","setCext-tunneling",NID_setCext_tunneling,4,
- &(lvalues[4654]),0},
+ &(lvalues[4275]),0},
{"setCext-setExt","setCext-setExt",NID_setCext_setExt,4,
- &(lvalues[4658]),0},
+ &(lvalues[4279]),0},
{"setCext-setQualf","setCext-setQualf",NID_setCext_setQualf,4,
- &(lvalues[4662]),0},
+ &(lvalues[4283]),0},
{"setCext-PGWYcapabilities","setCext-PGWYcapabilities",
- NID_setCext_PGWYcapabilities,4,&(lvalues[4666]),0},
+ NID_setCext_PGWYcapabilities,4,&(lvalues[4287]),0},
{"setCext-TokenIdentifier","setCext-TokenIdentifier",
- NID_setCext_TokenIdentifier,4,&(lvalues[4670]),0},
+ NID_setCext_TokenIdentifier,4,&(lvalues[4291]),0},
{"setCext-Track2Data","setCext-Track2Data",NID_setCext_Track2Data,4,
- &(lvalues[4674]),0},
+ &(lvalues[4295]),0},
{"setCext-TokenType","setCext-TokenType",NID_setCext_TokenType,4,
- &(lvalues[4678]),0},
+ &(lvalues[4299]),0},
{"setCext-IssuerCapabilities","setCext-IssuerCapabilities",
- NID_setCext_IssuerCapabilities,4,&(lvalues[4682]),0},
-{"setAttr-Cert","setAttr-Cert",NID_setAttr_Cert,4,&(lvalues[4686]),0},
+ NID_setCext_IssuerCapabilities,4,&(lvalues[4303]),0},
+{"setAttr-Cert","setAttr-Cert",NID_setAttr_Cert,4,&(lvalues[4307]),0},
{"setAttr-PGWYcap","payment gateway capabilities",NID_setAttr_PGWYcap,
- 4,&(lvalues[4690]),0},
+ 4,&(lvalues[4311]),0},
{"setAttr-TokenType","setAttr-TokenType",NID_setAttr_TokenType,4,
- &(lvalues[4694]),0},
+ &(lvalues[4315]),0},
{"setAttr-IssCap","issuer capabilities",NID_setAttr_IssCap,4,
- &(lvalues[4698]),0},
+ &(lvalues[4319]),0},
{"set-rootKeyThumb","set-rootKeyThumb",NID_set_rootKeyThumb,5,
- &(lvalues[4702]),0},
-{"set-addPolicy","set-addPolicy",NID_set_addPolicy,5,&(lvalues[4707]),0},
+ &(lvalues[4323]),0},
+{"set-addPolicy","set-addPolicy",NID_set_addPolicy,5,&(lvalues[4328]),0},
{"setAttr-Token-EMV","setAttr-Token-EMV",NID_setAttr_Token_EMV,5,
- &(lvalues[4712]),0},
+ &(lvalues[4333]),0},
{"setAttr-Token-B0Prime","setAttr-Token-B0Prime",
- NID_setAttr_Token_B0Prime,5,&(lvalues[4717]),0},
+ NID_setAttr_Token_B0Prime,5,&(lvalues[4338]),0},
{"setAttr-IssCap-CVM","setAttr-IssCap-CVM",NID_setAttr_IssCap_CVM,5,
- &(lvalues[4722]),0},
+ &(lvalues[4343]),0},
{"setAttr-IssCap-T2","setAttr-IssCap-T2",NID_setAttr_IssCap_T2,5,
- &(lvalues[4727]),0},
+ &(lvalues[4348]),0},
{"setAttr-IssCap-Sig","setAttr-IssCap-Sig",NID_setAttr_IssCap_Sig,5,
- &(lvalues[4732]),0},
+ &(lvalues[4353]),0},
{"setAttr-GenCryptgrm","generate cryptogram",NID_setAttr_GenCryptgrm,
- 6,&(lvalues[4737]),0},
+ 6,&(lvalues[4358]),0},
{"setAttr-T2Enc","encrypted track 2",NID_setAttr_T2Enc,6,
- &(lvalues[4743]),0},
+ &(lvalues[4364]),0},
{"setAttr-T2cleartxt","cleartext track 2",NID_setAttr_T2cleartxt,6,
- &(lvalues[4749]),0},
+ &(lvalues[4370]),0},
{"setAttr-TokICCsig","ICC or token signature",NID_setAttr_TokICCsig,6,
- &(lvalues[4755]),0},
+ &(lvalues[4376]),0},
{"setAttr-SecDevSig","secure device signature",NID_setAttr_SecDevSig,
- 6,&(lvalues[4761]),0},
+ 6,&(lvalues[4382]),0},
{"set-brand-IATA-ATA","set-brand-IATA-ATA",NID_set_brand_IATA_ATA,4,
- &(lvalues[4767]),0},
+ &(lvalues[4388]),0},
{"set-brand-Diners","set-brand-Diners",NID_set_brand_Diners,4,
- &(lvalues[4771]),0},
+ &(lvalues[4392]),0},
{"set-brand-AmericanExpress","set-brand-AmericanExpress",
- NID_set_brand_AmericanExpress,4,&(lvalues[4775]),0},
-{"set-brand-JCB","set-brand-JCB",NID_set_brand_JCB,4,&(lvalues[4779]),0},
+ NID_set_brand_AmericanExpress,4,&(lvalues[4396]),0},
+{"set-brand-JCB","set-brand-JCB",NID_set_brand_JCB,4,&(lvalues[4400]),0},
{"set-brand-Visa","set-brand-Visa",NID_set_brand_Visa,4,
- &(lvalues[4783]),0},
+ &(lvalues[4404]),0},
{"set-brand-MasterCard","set-brand-MasterCard",
- NID_set_brand_MasterCard,4,&(lvalues[4787]),0},
+ NID_set_brand_MasterCard,4,&(lvalues[4408]),0},
{"set-brand-Novus","set-brand-Novus",NID_set_brand_Novus,5,
- &(lvalues[4791]),0},
-{"DES-CDMF","des-cdmf",NID_des_cdmf,8,&(lvalues[4796]),0},
+ &(lvalues[4412]),0},
+{"DES-CDMF","des-cdmf",NID_des_cdmf,8,&(lvalues[4417]),0},
{"rsaOAEPEncryptionSET","rsaOAEPEncryptionSET",
- NID_rsaOAEPEncryptionSET,9,&(lvalues[4804]),0},
-{"wap-wsg-idm-ecid-wtls3","wap-wsg-idm-ecid-wtls3",
- NID_wap_wsg_idm_ecid_wtls3,5,&(lvalues[4813]),0},
-{"wap-wsg-idm-ecid-wtls4","wap-wsg-idm-ecid-wtls4",
- NID_wap_wsg_idm_ecid_wtls4,5,&(lvalues[4818]),0},
-{"wap-wsg-idm-ecid-wtls5","wap-wsg-idm-ecid-wtls5",
- NID_wap_wsg_idm_ecid_wtls5,5,&(lvalues[4823]),0},
-{"wap-wsg-idm-ecid-wtls7","wap-wsg-idm-ecid-wtls7",
- NID_wap_wsg_idm_ecid_wtls7,5,&(lvalues[4828]),0},
-{"wap-wsg-idm-ecid-wtls10","wap-wsg-idm-ecid-wtls10",
- NID_wap_wsg_idm_ecid_wtls10,5,&(lvalues[4833]),0},
-{"wap-wsg-idm-ecid-wtls11","wap-wsg-idm-ecid-wtls11",
- NID_wap_wsg_idm_ecid_wtls11,5,&(lvalues[4838]),0},
-{"wap-wsg-idm-ecid-wtls12","wap-wsg-idm-ecid-wtls12",
- NID_wap_wsg_idm_ecid_wtls12,5,&(lvalues[4843]),0},
-{"msSmartcardLogin","Microsoft Smartcardlogin",NID_ms_smartcard_login,
- 10,&(lvalues[4848]),0},
-{"msUPN","Microsoft Universal Principal Name",NID_ms_upn,10,
- &(lvalues[4858]),0},
-{"anyPolicy","X509v3 Any Policy",NID_any_policy,4,&(lvalues[4868]),0},
-{"policyMappings","X509v3 Policy Mappings",NID_policy_mappings,3,
- &(lvalues[4872]),0},
-{"nameConstraints","X509v3 Name Constraints",NID_name_constraints,3,
- &(lvalues[4875]),0},
-{"ITU-T","itu-t",NID_itu_t,1,&(lvalues[4878]),0},
+ NID_rsaOAEPEncryptionSET,9,&(lvalues[4425]),0},
+{"ITU-T","itu-t",NID_itu_t,1,&(lvalues[4434]),0},
{"JOINT-ISO-ITU-T","joint-iso-itu-t",NID_joint_iso_itu_t,1,
- &(lvalues[4879]),0},
+ &(lvalues[4435]),0},
{"international-organizations","International Organizations",
- NID_international_organizations,1,&(lvalues[4880]),0},
-{"Oakley-EC2N-3","ipsec3",NID_ipsec3,0,NULL},
-{"Oakley-EC2N-4","ipsec4",NID_ipsec4,0,NULL},
+ NID_international_organizations,1,&(lvalues[4436]),0},
+{"msSmartcardLogin","Microsoft Smartcardlogin",NID_ms_smartcard_login,
+ 10,&(lvalues[4437]),0},
+{"msUPN","Microsoft Universal Principal Name",NID_ms_upn,10,
+ &(lvalues[4447]),0},
{"AES-128-CFB1","aes-128-cfb1",NID_aes_128_cfb1,0,NULL},
{"AES-192-CFB1","aes-192-cfb1",NID_aes_192_cfb1,0,NULL},
{"AES-256-CFB1","aes-256-cfb1",NID_aes_256_cfb1,0,NULL},
@@ -1915,40 +1831,140 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
{"DES-CFB8","des-cfb8",NID_des_cfb8,0,NULL},
{"DES-EDE3-CFB1","des-ede3-cfb1",NID_des_ede3_cfb1,0,NULL},
{"DES-EDE3-CFB8","des-ede3-cfb8",NID_des_ede3_cfb8,0,NULL},
-{"inhibitAnyPolicy","X509v3 Inhibit Any Policy",
- NID_inhibit_any_policy,3,&(lvalues[4881]),0},
+{"streetAddress","streetAddress",NID_streetAddress,3,&(lvalues[4457]),0},
+{"postalCode","postalCode",NID_postalCode,3,&(lvalues[4460]),0},
+{"identified-organization","identified-organization",
+ NID_identified_organization,1,&(lvalues[4463]),0},
+{"certicom-arc","certicom-arc",NID_certicom_arc,3,&(lvalues[4464]),0},
+{"wap","wap",NID_wap,2,&(lvalues[4467]),0},
+{"wap-wsg","wap-wsg",NID_wap_wsg,3,&(lvalues[4469]),0},
+{"id-characteristic-two-basis","id-characteristic-two-basis",
+ NID_X9_62_id_characteristic_two_basis,8,&(lvalues[4472]),0},
+{"onBasis","onBasis",NID_X9_62_onBasis,9,&(lvalues[4480]),0},
+{"tpBasis","tpBasis",NID_X9_62_tpBasis,9,&(lvalues[4489]),0},
+{"ppBasis","ppBasis",NID_X9_62_ppBasis,9,&(lvalues[4498]),0},
+{"c2pnb163v1","c2pnb163v1",NID_X9_62_c2pnb163v1,8,&(lvalues[4507]),0},
+{"c2pnb163v2","c2pnb163v2",NID_X9_62_c2pnb163v2,8,&(lvalues[4515]),0},
+{"c2pnb163v3","c2pnb163v3",NID_X9_62_c2pnb163v3,8,&(lvalues[4523]),0},
+{"c2pnb176v1","c2pnb176v1",NID_X9_62_c2pnb176v1,8,&(lvalues[4531]),0},
+{"c2tnb191v1","c2tnb191v1",NID_X9_62_c2tnb191v1,8,&(lvalues[4539]),0},
+{"c2tnb191v2","c2tnb191v2",NID_X9_62_c2tnb191v2,8,&(lvalues[4547]),0},
+{"c2tnb191v3","c2tnb191v3",NID_X9_62_c2tnb191v3,8,&(lvalues[4555]),0},
+{"c2onb191v4","c2onb191v4",NID_X9_62_c2onb191v4,8,&(lvalues[4563]),0},
+{"c2onb191v5","c2onb191v5",NID_X9_62_c2onb191v5,8,&(lvalues[4571]),0},
+{"c2pnb208w1","c2pnb208w1",NID_X9_62_c2pnb208w1,8,&(lvalues[4579]),0},
+{"c2tnb239v1","c2tnb239v1",NID_X9_62_c2tnb239v1,8,&(lvalues[4587]),0},
+{"c2tnb239v2","c2tnb239v2",NID_X9_62_c2tnb239v2,8,&(lvalues[4595]),0},
+{"c2tnb239v3","c2tnb239v3",NID_X9_62_c2tnb239v3,8,&(lvalues[4603]),0},
+{"c2onb239v4","c2onb239v4",NID_X9_62_c2onb239v4,8,&(lvalues[4611]),0},
+{"c2onb239v5","c2onb239v5",NID_X9_62_c2onb239v5,8,&(lvalues[4619]),0},
+{"c2pnb272w1","c2pnb272w1",NID_X9_62_c2pnb272w1,8,&(lvalues[4627]),0},
+{"c2pnb304w1","c2pnb304w1",NID_X9_62_c2pnb304w1,8,&(lvalues[4635]),0},
+{"c2tnb359v1","c2tnb359v1",NID_X9_62_c2tnb359v1,8,&(lvalues[4643]),0},
+{"c2pnb368w1","c2pnb368w1",NID_X9_62_c2pnb368w1,8,&(lvalues[4651]),0},
+{"c2tnb431r1","c2tnb431r1",NID_X9_62_c2tnb431r1,8,&(lvalues[4659]),0},
+{"secp112r1","secp112r1",NID_secp112r1,5,&(lvalues[4667]),0},
+{"secp112r2","secp112r2",NID_secp112r2,5,&(lvalues[4672]),0},
+{"secp128r1","secp128r1",NID_secp128r1,5,&(lvalues[4677]),0},
+{"secp128r2","secp128r2",NID_secp128r2,5,&(lvalues[4682]),0},
+{"secp160k1","secp160k1",NID_secp160k1,5,&(lvalues[4687]),0},
+{"secp160r1","secp160r1",NID_secp160r1,5,&(lvalues[4692]),0},
+{"secp160r2","secp160r2",NID_secp160r2,5,&(lvalues[4697]),0},
+{"secp192k1","secp192k1",NID_secp192k1,5,&(lvalues[4702]),0},
+{"secp224k1","secp224k1",NID_secp224k1,5,&(lvalues[4707]),0},
+{"secp224r1","secp224r1",NID_secp224r1,5,&(lvalues[4712]),0},
+{"secp256k1","secp256k1",NID_secp256k1,5,&(lvalues[4717]),0},
+{"secp384r1","secp384r1",NID_secp384r1,5,&(lvalues[4722]),0},
+{"secp521r1","secp521r1",NID_secp521r1,5,&(lvalues[4727]),0},
+{"sect113r1","sect113r1",NID_sect113r1,5,&(lvalues[4732]),0},
+{"sect113r2","sect113r2",NID_sect113r2,5,&(lvalues[4737]),0},
+{"sect131r1","sect131r1",NID_sect131r1,5,&(lvalues[4742]),0},
+{"sect131r2","sect131r2",NID_sect131r2,5,&(lvalues[4747]),0},
+{"sect163k1","sect163k1",NID_sect163k1,5,&(lvalues[4752]),0},
+{"sect163r1","sect163r1",NID_sect163r1,5,&(lvalues[4757]),0},
+{"sect163r2","sect163r2",NID_sect163r2,5,&(lvalues[4762]),0},
+{"sect193r1","sect193r1",NID_sect193r1,5,&(lvalues[4767]),0},
+{"sect193r2","sect193r2",NID_sect193r2,5,&(lvalues[4772]),0},
+{"sect233k1","sect233k1",NID_sect233k1,5,&(lvalues[4777]),0},
+{"sect233r1","sect233r1",NID_sect233r1,5,&(lvalues[4782]),0},
+{"sect239k1","sect239k1",NID_sect239k1,5,&(lvalues[4787]),0},
+{"sect283k1","sect283k1",NID_sect283k1,5,&(lvalues[4792]),0},
+{"sect283r1","sect283r1",NID_sect283r1,5,&(lvalues[4797]),0},
+{"sect409k1","sect409k1",NID_sect409k1,5,&(lvalues[4802]),0},
+{"sect409r1","sect409r1",NID_sect409r1,5,&(lvalues[4807]),0},
+{"sect571k1","sect571k1",NID_sect571k1,5,&(lvalues[4812]),0},
+{"sect571r1","sect571r1",NID_sect571r1,5,&(lvalues[4817]),0},
+{"wap-wsg-idm-ecid-wtls1","wap-wsg-idm-ecid-wtls1",
+ NID_wap_wsg_idm_ecid_wtls1,5,&(lvalues[4822]),0},
+{"wap-wsg-idm-ecid-wtls3","wap-wsg-idm-ecid-wtls3",
+ NID_wap_wsg_idm_ecid_wtls3,5,&(lvalues[4827]),0},
+{"wap-wsg-idm-ecid-wtls4","wap-wsg-idm-ecid-wtls4",
+ NID_wap_wsg_idm_ecid_wtls4,5,&(lvalues[4832]),0},
+{"wap-wsg-idm-ecid-wtls5","wap-wsg-idm-ecid-wtls5",
+ NID_wap_wsg_idm_ecid_wtls5,5,&(lvalues[4837]),0},
+{"wap-wsg-idm-ecid-wtls6","wap-wsg-idm-ecid-wtls6",
+ NID_wap_wsg_idm_ecid_wtls6,5,&(lvalues[4842]),0},
+{"wap-wsg-idm-ecid-wtls7","wap-wsg-idm-ecid-wtls7",
+ NID_wap_wsg_idm_ecid_wtls7,5,&(lvalues[4847]),0},
+{"wap-wsg-idm-ecid-wtls8","wap-wsg-idm-ecid-wtls8",
+ NID_wap_wsg_idm_ecid_wtls8,5,&(lvalues[4852]),0},
+{"wap-wsg-idm-ecid-wtls9","wap-wsg-idm-ecid-wtls9",
+ NID_wap_wsg_idm_ecid_wtls9,5,&(lvalues[4857]),0},
+{"wap-wsg-idm-ecid-wtls10","wap-wsg-idm-ecid-wtls10",
+ NID_wap_wsg_idm_ecid_wtls10,5,&(lvalues[4862]),0},
+{"wap-wsg-idm-ecid-wtls11","wap-wsg-idm-ecid-wtls11",
+ NID_wap_wsg_idm_ecid_wtls11,5,&(lvalues[4867]),0},
+{"wap-wsg-idm-ecid-wtls12","wap-wsg-idm-ecid-wtls12",
+ NID_wap_wsg_idm_ecid_wtls12,5,&(lvalues[4872]),0},
{"RSA-SHA256","sha256WithRSAEncryption",NID_sha256WithRSAEncryption,9,
- &(lvalues[4884]),0},
+ &(lvalues[4877]),0},
{"RSA-SHA384","sha384WithRSAEncryption",NID_sha384WithRSAEncryption,9,
- &(lvalues[4893]),0},
+ &(lvalues[4886]),0},
{"RSA-SHA512","sha512WithRSAEncryption",NID_sha512WithRSAEncryption,9,
- &(lvalues[4902]),0},
+ &(lvalues[4895]),0},
{"RSA-SHA224","sha224WithRSAEncryption",NID_sha224WithRSAEncryption,9,
- &(lvalues[4911]),0},
-{"SHA256","sha256",NID_sha256,9,&(lvalues[4920]),0},
-{"SHA384","sha384",NID_sha384,9,&(lvalues[4929]),0},
-{"SHA512","sha512",NID_sha512,9,&(lvalues[4938]),0},
-{"SHA224","sha224",NID_sha224,9,&(lvalues[4947]),0},
+ &(lvalues[4904]),0},
+{"nameConstraints","X509v3 Name Constraints",NID_name_constraints,3,
+ &(lvalues[4913]),0},
+{"anyPolicy","X509v3 Any Policy",NID_any_policy,4,&(lvalues[4916]),0},
+{"policyMappings","X509v3 Policy Mappings",NID_policy_mappings,3,
+ &(lvalues[4920]),0},
+{"inhibitAnyPolicy","X509v3 Inhibit Any Policy",
+ NID_inhibit_any_policy,3,&(lvalues[4923]),0},
+{"SHA256","sha256",NID_sha256,9,&(lvalues[4926]),0},
+{"SHA384","sha384",NID_sha384,9,&(lvalues[4935]),0},
+{"SHA512","sha512",NID_sha512,9,&(lvalues[4944]),0},
+{"SHA224","sha224",NID_sha224,9,&(lvalues[4953]),0},
+{"Oakley-EC2N-3","ipsec3",NID_ipsec3,0,NULL},
+{"Oakley-EC2N-4","ipsec4",NID_ipsec4,0,NULL},
+{"id-ppl","id-ppl",NID_id_ppl,7,&(lvalues[4962]),0},
+{"proxyCertInfo","Proxy Certificate Information",NID_proxyCertInfo,8,
+ &(lvalues[4969]),0},
+{"id-ppl-anyLanguage","Any language",NID_id_ppl_anyLanguage,8,
+ &(lvalues[4977]),0},
+{"id-ppl-inheritAll","Inherit all",NID_id_ppl_inheritAll,8,
+ &(lvalues[4985]),0},
+{"id-ppl-independent","Independent",NID_Independent,8,&(lvalues[4993]),0},
};
static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[364]),/* "AD_DVCS" */
&(nid_objs[419]),/* "AES-128-CBC" */
&(nid_objs[421]),/* "AES-128-CFB" */
-&(nid_objs[726]),/* "AES-128-CFB1" */
-&(nid_objs[729]),/* "AES-128-CFB8" */
+&(nid_objs[650]),/* "AES-128-CFB1" */
+&(nid_objs[653]),/* "AES-128-CFB8" */
&(nid_objs[418]),/* "AES-128-ECB" */
&(nid_objs[420]),/* "AES-128-OFB" */
&(nid_objs[423]),/* "AES-192-CBC" */
&(nid_objs[425]),/* "AES-192-CFB" */
-&(nid_objs[727]),/* "AES-192-CFB1" */
-&(nid_objs[730]),/* "AES-192-CFB8" */
+&(nid_objs[651]),/* "AES-192-CFB1" */
+&(nid_objs[654]),/* "AES-192-CFB8" */
&(nid_objs[422]),/* "AES-192-ECB" */
&(nid_objs[424]),/* "AES-192-OFB" */
&(nid_objs[427]),/* "AES-256-CBC" */
&(nid_objs[429]),/* "AES-256-CFB" */
-&(nid_objs[728]),/* "AES-256-CFB1" */
-&(nid_objs[731]),/* "AES-256-CFB8" */
+&(nid_objs[652]),/* "AES-256-CFB1" */
+&(nid_objs[655]),/* "AES-256-CFB8" */
&(nid_objs[426]),/* "AES-256-ECB" */
&(nid_objs[428]),/* "AES-256-OFB" */
&(nid_objs[91]),/* "BF-CBC" */
@@ -1966,10 +1982,10 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[367]),/* "CrlID" */
&(nid_objs[391]),/* "DC" */
&(nid_objs[31]),/* "DES-CBC" */
-&(nid_objs[707]),/* "DES-CDMF" */
+&(nid_objs[643]),/* "DES-CDMF" */
&(nid_objs[30]),/* "DES-CFB" */
-&(nid_objs[732]),/* "DES-CFB1" */
-&(nid_objs[733]),/* "DES-CFB8" */
+&(nid_objs[656]),/* "DES-CFB1" */
+&(nid_objs[657]),/* "DES-CFB8" */
&(nid_objs[29]),/* "DES-ECB" */
&(nid_objs[32]),/* "DES-EDE" */
&(nid_objs[43]),/* "DES-EDE-CBC" */
@@ -1978,8 +1994,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[33]),/* "DES-EDE3" */
&(nid_objs[44]),/* "DES-EDE3-CBC" */
&(nid_objs[61]),/* "DES-EDE3-CFB" */
-&(nid_objs[734]),/* "DES-EDE3-CFB1" */
-&(nid_objs[735]),/* "DES-EDE3-CFB8" */
+&(nid_objs[658]),/* "DES-EDE3-CFB1" */
+&(nid_objs[659]),/* "DES-EDE3-CFB8" */
&(nid_objs[63]),/* "DES-EDE3-OFB" */
&(nid_objs[45]),/* "DES-OFB" */
&(nid_objs[80]),/* "DESX-CBC" */
@@ -1998,8 +2014,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[46]),/* "IDEA-OFB" */
&(nid_objs[181]),/* "ISO" */
&(nid_objs[183]),/* "ISO-US" */
-&(nid_objs[721]),/* "ITU-T" */
-&(nid_objs[722]),/* "JOINT-ISO-ITU-T" */
+&(nid_objs[645]),/* "ITU-T" */
+&(nid_objs[646]),/* "JOINT-ISO-ITU-T" */
&(nid_objs[15]),/* "L" */
&(nid_objs[ 3]),/* "MD2" */
&(nid_objs[257]),/* "MD4" */
@@ -2016,8 +2032,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[180]),/* "OCSPSigning" */
&(nid_objs[379]),/* "ORG" */
&(nid_objs[18]),/* "OU" */
-&(nid_objs[724]),/* "Oakley-EC2N-3" */
-&(nid_objs[725]),/* "Oakley-EC2N-4" */
+&(nid_objs[744]),/* "Oakley-EC2N-3" */
+&(nid_objs[745]),/* "Oakley-EC2N-4" */
&(nid_objs[ 9]),/* "PBE-MD2-DES" */
&(nid_objs[168]),/* "PBE-MD2-RC2-64" */
&(nid_objs[10]),/* "PBE-MD5-DES" */
@@ -2058,16 +2074,16 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[42]),/* "RSA-SHA" */
&(nid_objs[65]),/* "RSA-SHA1" */
&(nid_objs[115]),/* "RSA-SHA1-2" */
-&(nid_objs[740]),/* "RSA-SHA224" */
-&(nid_objs[737]),/* "RSA-SHA256" */
-&(nid_objs[738]),/* "RSA-SHA384" */
-&(nid_objs[739]),/* "RSA-SHA512" */
+&(nid_objs[735]),/* "RSA-SHA224" */
+&(nid_objs[732]),/* "RSA-SHA256" */
+&(nid_objs[733]),/* "RSA-SHA384" */
+&(nid_objs[734]),/* "RSA-SHA512" */
&(nid_objs[41]),/* "SHA" */
&(nid_objs[64]),/* "SHA1" */
-&(nid_objs[744]),/* "SHA224" */
-&(nid_objs[741]),/* "SHA256" */
-&(nid_objs[742]),/* "SHA384" */
-&(nid_objs[743]),/* "SHA512" */
+&(nid_objs[743]),/* "SHA224" */
+&(nid_objs[740]),/* "SHA256" */
+&(nid_objs[741]),/* "SHA384" */
+&(nid_objs[742]),/* "SHA512" */
&(nid_objs[188]),/* "SMIME" */
&(nid_objs[167]),/* "SMIME-CAPS" */
&(nid_objs[100]),/* "SN" */
@@ -2091,7 +2107,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[363]),/* "ad_timestamping" */
&(nid_objs[376]),/* "algorithm" */
&(nid_objs[405]),/* "ansi-X9-62" */
-&(nid_objs[718]),/* "anyPolicy" */
+&(nid_objs[737]),/* "anyPolicy" */
&(nid_objs[370]),/* "archiveCutoff" */
&(nid_objs[484]),/* "associatedDomain" */
&(nid_objs[485]),/* "associatedName" */
@@ -2102,31 +2118,31 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[365]),/* "basicOCSPResponse" */
&(nid_objs[285]),/* "biometricInfo" */
&(nid_objs[494]),/* "buildingName" */
-&(nid_objs[514]),/* "c2onb191v4" */
-&(nid_objs[515]),/* "c2onb191v5" */
-&(nid_objs[520]),/* "c2onb239v4" */
-&(nid_objs[521]),/* "c2onb239v5" */
-&(nid_objs[507]),/* "c2pnb163v1" */
-&(nid_objs[508]),/* "c2pnb163v2" */
-&(nid_objs[509]),/* "c2pnb163v3" */
-&(nid_objs[510]),/* "c2pnb176v1" */
-&(nid_objs[516]),/* "c2pnb208w1" */
-&(nid_objs[522]),/* "c2pnb272w1" */
-&(nid_objs[523]),/* "c2pnb304w1" */
-&(nid_objs[525]),/* "c2pnb368w1" */
-&(nid_objs[511]),/* "c2tnb191v1" */
-&(nid_objs[512]),/* "c2tnb191v2" */
-&(nid_objs[513]),/* "c2tnb191v3" */
-&(nid_objs[517]),/* "c2tnb239v1" */
-&(nid_objs[518]),/* "c2tnb239v2" */
-&(nid_objs[519]),/* "c2tnb239v3" */
-&(nid_objs[524]),/* "c2tnb359v1" */
-&(nid_objs[526]),/* "c2tnb431r1" */
+&(nid_objs[677]),/* "c2onb191v4" */
+&(nid_objs[678]),/* "c2onb191v5" */
+&(nid_objs[683]),/* "c2onb239v4" */
+&(nid_objs[684]),/* "c2onb239v5" */
+&(nid_objs[670]),/* "c2pnb163v1" */
+&(nid_objs[671]),/* "c2pnb163v2" */
+&(nid_objs[672]),/* "c2pnb163v3" */
+&(nid_objs[673]),/* "c2pnb176v1" */
+&(nid_objs[679]),/* "c2pnb208w1" */
+&(nid_objs[685]),/* "c2pnb272w1" */
+&(nid_objs[686]),/* "c2pnb304w1" */
+&(nid_objs[688]),/* "c2pnb368w1" */
+&(nid_objs[674]),/* "c2tnb191v1" */
+&(nid_objs[675]),/* "c2tnb191v2" */
+&(nid_objs[676]),/* "c2tnb191v3" */
+&(nid_objs[680]),/* "c2tnb239v1" */
+&(nid_objs[681]),/* "c2tnb239v2" */
+&(nid_objs[682]),/* "c2tnb239v3" */
+&(nid_objs[687]),/* "c2tnb359v1" */
+&(nid_objs[689]),/* "c2tnb431r1" */
&(nid_objs[483]),/* "cNAMERecord" */
&(nid_objs[179]),/* "caIssuers" */
&(nid_objs[443]),/* "caseIgnoreIA5StringSyntax" */
&(nid_objs[152]),/* "certBag" */
-&(nid_objs[528]),/* "certicom-arc" */
+&(nid_objs[663]),/* "certicom-arc" */
&(nid_objs[89]),/* "certificatePolicies" */
&(nid_objs[54]),/* "challengePassword" */
&(nid_objs[407]),/* "characteristic-two-field" */
@@ -2171,7 +2187,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[453]),/* "friendlyCountry" */
&(nid_objs[490]),/* "friendlyCountryName" */
&(nid_objs[156]),/* "friendlyName" */
-&(nid_objs[574]),/* "generationQualifier" */
+&(nid_objs[509]),/* "generationQualifier" */
&(nid_objs[163]),/* "hmacWithSHA1" */
&(nid_objs[432]),/* "holdInstructionCallIssuer" */
&(nid_objs[430]),/* "holdInstructionCode" */
@@ -2199,7 +2215,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[362]),/* "id-cct-PKIResponse" */
&(nid_objs[360]),/* "id-cct-crs" */
&(nid_objs[81]),/* "id-ce" */
-&(nid_objs[503]),/* "id-characteristic-two-basis" */
+&(nid_objs[666]),/* "id-characteristic-two-basis" */
&(nid_objs[263]),/* "id-cmc" */
&(nid_objs[334]),/* "id-cmc-addExtensions" */
&(nid_objs[346]),/* "id-cmc-confirmCertAcceptance" */
@@ -2222,8 +2238,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[327]),/* "id-cmc-statusInfo" */
&(nid_objs[331]),/* "id-cmc-transactionId" */
&(nid_objs[408]),/* "id-ecPublicKey" */
-&(nid_objs[573]),/* "id-hex-multipart-message" */
-&(nid_objs[572]),/* "id-hex-partial-message" */
+&(nid_objs[508]),/* "id-hex-multipart-message" */
+&(nid_objs[507]),/* "id-hex-partial-message" */
&(nid_objs[260]),/* "id-it" */
&(nid_objs[302]),/* "id-it-caKeyUpdateInfo" */
&(nid_objs[298]),/* "id-it-caProtEncCert" */
@@ -2268,6 +2284,10 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[271]),/* "id-pkix1-explicit-93" */
&(nid_objs[270]),/* "id-pkix1-implicit-88" */
&(nid_objs[272]),/* "id-pkix1-implicit-93" */
+&(nid_objs[746]),/* "id-ppl" */
+&(nid_objs[748]),/* "id-ppl-anyLanguage" */
+&(nid_objs[750]),/* "id-ppl-independent" */
+&(nid_objs[749]),/* "id-ppl-inheritAll" */
&(nid_objs[267]),/* "id-qcs" */
&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */
&(nid_objs[259]),/* "id-qt" */
@@ -2283,7 +2303,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[314]),/* "id-regInfo" */
&(nid_objs[322]),/* "id-regInfo-certReq" */
&(nid_objs[321]),/* "id-regInfo-utf8Pairs" */
-&(nid_objs[576]),/* "id-set" */
+&(nid_objs[512]),/* "id-set" */
&(nid_objs[191]),/* "id-smime-aa" */
&(nid_objs[215]),/* "id-smime-aa-contentHint" */
&(nid_objs[218]),/* "id-smime-aa-contentIdentifier" */
@@ -2352,11 +2372,11 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[194]),/* "id-smime-spq" */
&(nid_objs[250]),/* "id-smime-spq-ets-sqt-unotice" */
&(nid_objs[249]),/* "id-smime-spq-ets-sqt-uri" */
-&(nid_objs[527]),/* "identified-organization" */
+&(nid_objs[662]),/* "identified-organization" */
&(nid_objs[461]),/* "info" */
-&(nid_objs[736]),/* "inhibitAnyPolicy" */
+&(nid_objs[739]),/* "inhibitAnyPolicy" */
&(nid_objs[101]),/* "initials" */
-&(nid_objs[723]),/* "international-organizations" */
+&(nid_objs[647]),/* "international-organizations" */
&(nid_objs[142]),/* "invalidityDate" */
&(nid_objs[294]),/* "ipsecEndSystem" */
&(nid_objs[295]),/* "ipsecTunnel" */
@@ -2375,9 +2395,9 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[182]),/* "member-body" */
&(nid_objs[51]),/* "messageDigest" */
&(nid_objs[383]),/* "mgmt" */
-&(nid_objs[569]),/* "mime-mhs" */
-&(nid_objs[571]),/* "mime-mhs-bodies" */
-&(nid_objs[570]),/* "mime-mhs-headings" */
+&(nid_objs[504]),/* "mime-mhs" */
+&(nid_objs[506]),/* "mime-mhs-bodies" */
+&(nid_objs[505]),/* "mime-mhs-headings" */
&(nid_objs[488]),/* "mobileTelephoneNumber" */
&(nid_objs[136]),/* "msCTLSign" */
&(nid_objs[135]),/* "msCodeCom" */
@@ -2385,11 +2405,11 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[138]),/* "msEFS" */
&(nid_objs[171]),/* "msExtReq" */
&(nid_objs[137]),/* "msSGC" */
-&(nid_objs[716]),/* "msSmartcardLogin" */
-&(nid_objs[717]),/* "msUPN" */
+&(nid_objs[648]),/* "msSmartcardLogin" */
+&(nid_objs[649]),/* "msUPN" */
&(nid_objs[481]),/* "nSRecord" */
&(nid_objs[173]),/* "name" */
-&(nid_objs[720]),/* "nameConstraints" */
+&(nid_objs[736]),/* "nameConstraints" */
&(nid_objs[369]),/* "noCheck" */
&(nid_objs[403]),/* "noRevAvail" */
&(nid_objs[72]),/* "nsBaseUrl" */
@@ -2404,7 +2424,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[73]),/* "nsRevocationUrl" */
&(nid_objs[139]),/* "nsSGC" */
&(nid_objs[77]),/* "nsSslServerName" */
-&(nid_objs[504]),/* "onBasis" */
+&(nid_objs[667]),/* "onBasis" */
&(nid_objs[491]),/* "organizationalStatus" */
&(nid_objs[475]),/* "otherMailbox" */
&(nid_objs[489]),/* "pagerTelephoneNumber" */
@@ -2437,8 +2457,9 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */
&(nid_objs[47]),/* "pkcs9" */
&(nid_objs[401]),/* "policyConstraints" */
-&(nid_objs[719]),/* "policyMappings" */
-&(nid_objs[506]),/* "ppBasis" */
+&(nid_objs[738]),/* "policyMappings" */
+&(nid_objs[661]),/* "postalCode" */
+&(nid_objs[669]),/* "ppBasis" */
&(nid_objs[406]),/* "prime-field" */
&(nid_objs[409]),/* "prime192v1" */
&(nid_objs[410]),/* "prime192v2" */
@@ -2449,7 +2470,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[415]),/* "prime256v1" */
&(nid_objs[385]),/* "private" */
&(nid_objs[84]),/* "privateKeyUsagePeriod" */
-&(nid_objs[575]),/* "pseudonym" */
+&(nid_objs[747]),/* "proxyCertInfo" */
+&(nid_objs[510]),/* "pseudonym" */
&(nid_objs[435]),/* "pss" */
&(nid_objs[286]),/* "qcStatements" */
&(nid_objs[457]),/* "qualityLabelledData" */
@@ -2458,7 +2480,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[448]),/* "room" */
&(nid_objs[463]),/* "roomNumber" */
&(nid_objs[ 6]),/* "rsaEncryption" */
-&(nid_objs[708]),/* "rsaOAEPEncryptionSET" */
+&(nid_objs[644]),/* "rsaOAEPEncryptionSET" */
&(nid_objs[377]),/* "rsaSignature" */
&(nid_objs[ 1]),/* "rsadsi" */
&(nid_objs[482]),/* "sOARecord" */
@@ -2467,178 +2489,179 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[290]),/* "sbqp-ipAddrBlock" */
&(nid_objs[292]),/* "sbqp-routerIdentifier" */
&(nid_objs[159]),/* "sdsiCertificate" */
-&(nid_objs[529]),/* "secp112r1" */
-&(nid_objs[530]),/* "secp112r2" */
-&(nid_objs[531]),/* "secp128r1" */
-&(nid_objs[532]),/* "secp128r2" */
-&(nid_objs[533]),/* "secp160k1" */
-&(nid_objs[534]),/* "secp160r1" */
-&(nid_objs[535]),/* "secp160r2" */
-&(nid_objs[536]),/* "secp192k1" */
-&(nid_objs[538]),/* "secp224k1" */
-&(nid_objs[539]),/* "secp224r1" */
-&(nid_objs[540]),/* "secp256k1" */
-&(nid_objs[542]),/* "secp384r1" */
-&(nid_objs[543]),/* "secp521r1" */
+&(nid_objs[690]),/* "secp112r1" */
+&(nid_objs[691]),/* "secp112r2" */
+&(nid_objs[692]),/* "secp128r1" */
+&(nid_objs[693]),/* "secp128r2" */
+&(nid_objs[694]),/* "secp160k1" */
+&(nid_objs[695]),/* "secp160r1" */
+&(nid_objs[696]),/* "secp160r2" */
+&(nid_objs[697]),/* "secp192k1" */
+&(nid_objs[698]),/* "secp224k1" */
+&(nid_objs[699]),/* "secp224r1" */
+&(nid_objs[700]),/* "secp256k1" */
+&(nid_objs[701]),/* "secp384r1" */
+&(nid_objs[702]),/* "secp521r1" */
&(nid_objs[154]),/* "secretBag" */
&(nid_objs[474]),/* "secretary" */
-&(nid_objs[544]),/* "sect113r1" */
-&(nid_objs[545]),/* "sect113r2" */
-&(nid_objs[546]),/* "sect131r1" */
-&(nid_objs[547]),/* "sect131r2" */
-&(nid_objs[548]),/* "sect163k1" */
-&(nid_objs[549]),/* "sect163r1" */
-&(nid_objs[550]),/* "sect163r2" */
-&(nid_objs[551]),/* "sect193r1" */
-&(nid_objs[552]),/* "sect193r2" */
-&(nid_objs[553]),/* "sect233k1" */
-&(nid_objs[554]),/* "sect233r1" */
-&(nid_objs[555]),/* "sect239k1" */
-&(nid_objs[556]),/* "sect283k1" */
-&(nid_objs[557]),/* "sect283r1" */
-&(nid_objs[558]),/* "sect409k1" */
-&(nid_objs[559]),/* "sect409r1" */
-&(nid_objs[560]),/* "sect571k1" */
-&(nid_objs[561]),/* "sect571r1" */
+&(nid_objs[703]),/* "sect113r1" */
+&(nid_objs[704]),/* "sect113r2" */
+&(nid_objs[705]),/* "sect131r1" */
+&(nid_objs[706]),/* "sect131r2" */
+&(nid_objs[707]),/* "sect163k1" */
+&(nid_objs[708]),/* "sect163r1" */
+&(nid_objs[709]),/* "sect163r2" */
+&(nid_objs[710]),/* "sect193r1" */
+&(nid_objs[711]),/* "sect193r2" */
+&(nid_objs[712]),/* "sect233k1" */
+&(nid_objs[713]),/* "sect233r1" */
+&(nid_objs[714]),/* "sect239k1" */
+&(nid_objs[715]),/* "sect283k1" */
+&(nid_objs[716]),/* "sect283r1" */
+&(nid_objs[717]),/* "sect409k1" */
+&(nid_objs[718]),/* "sect409r1" */
+&(nid_objs[719]),/* "sect571k1" */
+&(nid_objs[720]),/* "sect571r1" */
&(nid_objs[386]),/* "security" */
&(nid_objs[394]),/* "selected-attribute-types" */
&(nid_objs[105]),/* "serialNumber" */
&(nid_objs[129]),/* "serverAuth" */
&(nid_objs[371]),/* "serviceLocator" */
-&(nid_objs[689]),/* "set-addPolicy" */
-&(nid_objs[579]),/* "set-attr" */
-&(nid_objs[582]),/* "set-brand" */
-&(nid_objs[702]),/* "set-brand-AmericanExpress" */
-&(nid_objs[701]),/* "set-brand-Diners" */
-&(nid_objs[700]),/* "set-brand-IATA-ATA" */
-&(nid_objs[703]),/* "set-brand-JCB" */
-&(nid_objs[705]),/* "set-brand-MasterCard" */
-&(nid_objs[706]),/* "set-brand-Novus" */
-&(nid_objs[704]),/* "set-brand-Visa" */
-&(nid_objs[581]),/* "set-certExt" */
-&(nid_objs[577]),/* "set-ctype" */
-&(nid_objs[578]),/* "set-msgExt" */
-&(nid_objs[580]),/* "set-policy" */
-&(nid_objs[671]),/* "set-policy-root" */
-&(nid_objs[688]),/* "set-rootKeyThumb" */
-&(nid_objs[684]),/* "setAttr-Cert" */
-&(nid_objs[695]),/* "setAttr-GenCryptgrm" */
-&(nid_objs[687]),/* "setAttr-IssCap" */
-&(nid_objs[692]),/* "setAttr-IssCap-CVM" */
-&(nid_objs[694]),/* "setAttr-IssCap-Sig" */
-&(nid_objs[693]),/* "setAttr-IssCap-T2" */
-&(nid_objs[685]),/* "setAttr-PGWYcap" */
-&(nid_objs[699]),/* "setAttr-SecDevSig" */
-&(nid_objs[696]),/* "setAttr-T2Enc" */
-&(nid_objs[697]),/* "setAttr-T2cleartxt" */
-&(nid_objs[698]),/* "setAttr-TokICCsig" */
-&(nid_objs[691]),/* "setAttr-Token-B0Prime" */
-&(nid_objs[690]),/* "setAttr-Token-EMV" */
-&(nid_objs[686]),/* "setAttr-TokenType" */
-&(nid_objs[683]),/* "setCext-IssuerCapabilities" */
-&(nid_objs[679]),/* "setCext-PGWYcapabilities" */
-&(nid_objs[680]),/* "setCext-TokenIdentifier" */
-&(nid_objs[682]),/* "setCext-TokenType" */
-&(nid_objs[681]),/* "setCext-Track2Data" */
-&(nid_objs[675]),/* "setCext-cCertRequired" */
-&(nid_objs[673]),/* "setCext-certType" */
-&(nid_objs[672]),/* "setCext-hashedRoot" */
-&(nid_objs[674]),/* "setCext-merchData" */
-&(nid_objs[677]),/* "setCext-setExt" */
-&(nid_objs[678]),/* "setCext-setQualf" */
-&(nid_objs[676]),/* "setCext-tunneling" */
-&(nid_objs[604]),/* "setct-AcqCardCodeMsg" */
-&(nid_objs[640]),/* "setct-AcqCardCodeMsgTBE" */
-&(nid_objs[634]),/* "setct-AuthReqTBE" */
-&(nid_objs[598]),/* "setct-AuthReqTBS" */
-&(nid_objs[591]),/* "setct-AuthResBaggage" */
-&(nid_objs[635]),/* "setct-AuthResTBE" */
-&(nid_objs[636]),/* "setct-AuthResTBEX" */
-&(nid_objs[599]),/* "setct-AuthResTBS" */
-&(nid_objs[600]),/* "setct-AuthResTBSX" */
-&(nid_objs[592]),/* "setct-AuthRevReqBaggage" */
-&(nid_objs[641]),/* "setct-AuthRevReqTBE" */
-&(nid_objs[605]),/* "setct-AuthRevReqTBS" */
-&(nid_objs[593]),/* "setct-AuthRevResBaggage" */
-&(nid_objs[606]),/* "setct-AuthRevResData" */
-&(nid_objs[642]),/* "setct-AuthRevResTBE" */
-&(nid_objs[643]),/* "setct-AuthRevResTBEB" */
-&(nid_objs[607]),/* "setct-AuthRevResTBS" */
-&(nid_objs[637]),/* "setct-AuthTokenTBE" */
-&(nid_objs[601]),/* "setct-AuthTokenTBS" */
-&(nid_objs[664]),/* "setct-BCIDistributionTBS" */
-&(nid_objs[622]),/* "setct-BatchAdminReqData" */
-&(nid_objs[656]),/* "setct-BatchAdminReqTBE" */
-&(nid_objs[623]),/* "setct-BatchAdminResData" */
-&(nid_objs[657]),/* "setct-BatchAdminResTBE" */
-&(nid_objs[663]),/* "setct-CRLNotificationResTBS" */
-&(nid_objs[662]),/* "setct-CRLNotificationTBS" */
-&(nid_objs[644]),/* "setct-CapReqTBE" */
-&(nid_objs[645]),/* "setct-CapReqTBEX" */
-&(nid_objs[608]),/* "setct-CapReqTBS" */
-&(nid_objs[609]),/* "setct-CapReqTBSX" */
-&(nid_objs[610]),/* "setct-CapResData" */
-&(nid_objs[646]),/* "setct-CapResTBE" */
-&(nid_objs[647]),/* "setct-CapRevReqTBE" */
-&(nid_objs[648]),/* "setct-CapRevReqTBEX" */
-&(nid_objs[611]),/* "setct-CapRevReqTBS" */
-&(nid_objs[612]),/* "setct-CapRevReqTBSX" */
-&(nid_objs[613]),/* "setct-CapRevResData" */
-&(nid_objs[649]),/* "setct-CapRevResTBE" */
-&(nid_objs[602]),/* "setct-CapTokenData" */
-&(nid_objs[594]),/* "setct-CapTokenSeq" */
-&(nid_objs[638]),/* "setct-CapTokenTBE" */
-&(nid_objs[639]),/* "setct-CapTokenTBEX" */
-&(nid_objs[603]),/* "setct-CapTokenTBS" */
-&(nid_objs[624]),/* "setct-CardCInitResTBS" */
-&(nid_objs[630]),/* "setct-CertInqReqTBS" */
-&(nid_objs[627]),/* "setct-CertReqData" */
-&(nid_objs[659]),/* "setct-CertReqTBE" */
-&(nid_objs[660]),/* "setct-CertReqTBEX" */
-&(nid_objs[628]),/* "setct-CertReqTBS" */
-&(nid_objs[629]),/* "setct-CertResData" */
-&(nid_objs[661]),/* "setct-CertResTBE" */
-&(nid_objs[650]),/* "setct-CredReqTBE" */
-&(nid_objs[651]),/* "setct-CredReqTBEX" */
-&(nid_objs[614]),/* "setct-CredReqTBS" */
-&(nid_objs[615]),/* "setct-CredReqTBSX" */
-&(nid_objs[616]),/* "setct-CredResData" */
-&(nid_objs[652]),/* "setct-CredResTBE" */
-&(nid_objs[653]),/* "setct-CredRevReqTBE" */
-&(nid_objs[654]),/* "setct-CredRevReqTBEX" */
-&(nid_objs[617]),/* "setct-CredRevReqTBS" */
-&(nid_objs[618]),/* "setct-CredRevReqTBSX" */
-&(nid_objs[619]),/* "setct-CredRevResData" */
-&(nid_objs[655]),/* "setct-CredRevResTBE" */
-&(nid_objs[631]),/* "setct-ErrorTBS" */
-&(nid_objs[590]),/* "setct-HODInput" */
-&(nid_objs[625]),/* "setct-MeAqCInitResTBS" */
-&(nid_objs[586]),/* "setct-OIData" */
-&(nid_objs[583]),/* "setct-PANData" */
-&(nid_objs[585]),/* "setct-PANOnly" */
-&(nid_objs[584]),/* "setct-PANToken" */
-&(nid_objs[620]),/* "setct-PCertReqData" */
-&(nid_objs[621]),/* "setct-PCertResTBS" */
-&(nid_objs[587]),/* "setct-PI" */
-&(nid_objs[596]),/* "setct-PI-TBS" */
-&(nid_objs[588]),/* "setct-PIData" */
-&(nid_objs[589]),/* "setct-PIDataUnsigned" */
-&(nid_objs[632]),/* "setct-PIDualSignedTBE" */
-&(nid_objs[633]),/* "setct-PIUnsignedTBE" */
-&(nid_objs[595]),/* "setct-PInitResData" */
-&(nid_objs[597]),/* "setct-PResData" */
-&(nid_objs[658]),/* "setct-RegFormReqTBE" */
-&(nid_objs[626]),/* "setct-RegFormResTBS" */
-&(nid_objs[670]),/* "setext-cv" */
-&(nid_objs[665]),/* "setext-genCrypt" */
-&(nid_objs[666]),/* "setext-miAuth" */
-&(nid_objs[668]),/* "setext-pinAny" */
-&(nid_objs[667]),/* "setext-pinSecure" */
-&(nid_objs[669]),/* "setext-track2" */
+&(nid_objs[625]),/* "set-addPolicy" */
+&(nid_objs[515]),/* "set-attr" */
+&(nid_objs[518]),/* "set-brand" */
+&(nid_objs[638]),/* "set-brand-AmericanExpress" */
+&(nid_objs[637]),/* "set-brand-Diners" */
+&(nid_objs[636]),/* "set-brand-IATA-ATA" */
+&(nid_objs[639]),/* "set-brand-JCB" */
+&(nid_objs[641]),/* "set-brand-MasterCard" */
+&(nid_objs[642]),/* "set-brand-Novus" */
+&(nid_objs[640]),/* "set-brand-Visa" */
+&(nid_objs[517]),/* "set-certExt" */
+&(nid_objs[513]),/* "set-ctype" */
+&(nid_objs[514]),/* "set-msgExt" */
+&(nid_objs[516]),/* "set-policy" */
+&(nid_objs[607]),/* "set-policy-root" */
+&(nid_objs[624]),/* "set-rootKeyThumb" */
+&(nid_objs[620]),/* "setAttr-Cert" */
+&(nid_objs[631]),/* "setAttr-GenCryptgrm" */
+&(nid_objs[623]),/* "setAttr-IssCap" */
+&(nid_objs[628]),/* "setAttr-IssCap-CVM" */
+&(nid_objs[630]),/* "setAttr-IssCap-Sig" */
+&(nid_objs[629]),/* "setAttr-IssCap-T2" */
+&(nid_objs[621]),/* "setAttr-PGWYcap" */
+&(nid_objs[635]),/* "setAttr-SecDevSig" */
+&(nid_objs[632]),/* "setAttr-T2Enc" */
+&(nid_objs[633]),/* "setAttr-T2cleartxt" */
+&(nid_objs[634]),/* "setAttr-TokICCsig" */
+&(nid_objs[627]),/* "setAttr-Token-B0Prime" */
+&(nid_objs[626]),/* "setAttr-Token-EMV" */
+&(nid_objs[622]),/* "setAttr-TokenType" */
+&(nid_objs[619]),/* "setCext-IssuerCapabilities" */
+&(nid_objs[615]),/* "setCext-PGWYcapabilities" */
+&(nid_objs[616]),/* "setCext-TokenIdentifier" */
+&(nid_objs[618]),/* "setCext-TokenType" */
+&(nid_objs[617]),/* "setCext-Track2Data" */
+&(nid_objs[611]),/* "setCext-cCertRequired" */
+&(nid_objs[609]),/* "setCext-certType" */
+&(nid_objs[608]),/* "setCext-hashedRoot" */
+&(nid_objs[610]),/* "setCext-merchData" */
+&(nid_objs[613]),/* "setCext-setExt" */
+&(nid_objs[614]),/* "setCext-setQualf" */
+&(nid_objs[612]),/* "setCext-tunneling" */
+&(nid_objs[540]),/* "setct-AcqCardCodeMsg" */
+&(nid_objs[576]),/* "setct-AcqCardCodeMsgTBE" */
+&(nid_objs[570]),/* "setct-AuthReqTBE" */
+&(nid_objs[534]),/* "setct-AuthReqTBS" */
+&(nid_objs[527]),/* "setct-AuthResBaggage" */
+&(nid_objs[571]),/* "setct-AuthResTBE" */
+&(nid_objs[572]),/* "setct-AuthResTBEX" */
+&(nid_objs[535]),/* "setct-AuthResTBS" */
+&(nid_objs[536]),/* "setct-AuthResTBSX" */
+&(nid_objs[528]),/* "setct-AuthRevReqBaggage" */
+&(nid_objs[577]),/* "setct-AuthRevReqTBE" */
+&(nid_objs[541]),/* "setct-AuthRevReqTBS" */
+&(nid_objs[529]),/* "setct-AuthRevResBaggage" */
+&(nid_objs[542]),/* "setct-AuthRevResData" */
+&(nid_objs[578]),/* "setct-AuthRevResTBE" */
+&(nid_objs[579]),/* "setct-AuthRevResTBEB" */
+&(nid_objs[543]),/* "setct-AuthRevResTBS" */
+&(nid_objs[573]),/* "setct-AuthTokenTBE" */
+&(nid_objs[537]),/* "setct-AuthTokenTBS" */
+&(nid_objs[600]),/* "setct-BCIDistributionTBS" */
+&(nid_objs[558]),/* "setct-BatchAdminReqData" */
+&(nid_objs[592]),/* "setct-BatchAdminReqTBE" */
+&(nid_objs[559]),/* "setct-BatchAdminResData" */
+&(nid_objs[593]),/* "setct-BatchAdminResTBE" */
+&(nid_objs[599]),/* "setct-CRLNotificationResTBS" */
+&(nid_objs[598]),/* "setct-CRLNotificationTBS" */
+&(nid_objs[580]),/* "setct-CapReqTBE" */
+&(nid_objs[581]),/* "setct-CapReqTBEX" */
+&(nid_objs[544]),/* "setct-CapReqTBS" */
+&(nid_objs[545]),/* "setct-CapReqTBSX" */
+&(nid_objs[546]),/* "setct-CapResData" */
+&(nid_objs[582]),/* "setct-CapResTBE" */
+&(nid_objs[583]),/* "setct-CapRevReqTBE" */
+&(nid_objs[584]),/* "setct-CapRevReqTBEX" */
+&(nid_objs[547]),/* "setct-CapRevReqTBS" */
+&(nid_objs[548]),/* "setct-CapRevReqTBSX" */
+&(nid_objs[549]),/* "setct-CapRevResData" */
+&(nid_objs[585]),/* "setct-CapRevResTBE" */
+&(nid_objs[538]),/* "setct-CapTokenData" */
+&(nid_objs[530]),/* "setct-CapTokenSeq" */
+&(nid_objs[574]),/* "setct-CapTokenTBE" */
+&(nid_objs[575]),/* "setct-CapTokenTBEX" */
+&(nid_objs[539]),/* "setct-CapTokenTBS" */
+&(nid_objs[560]),/* "setct-CardCInitResTBS" */
+&(nid_objs[566]),/* "setct-CertInqReqTBS" */
+&(nid_objs[563]),/* "setct-CertReqData" */
+&(nid_objs[595]),/* "setct-CertReqTBE" */
+&(nid_objs[596]),/* "setct-CertReqTBEX" */
+&(nid_objs[564]),/* "setct-CertReqTBS" */
+&(nid_objs[565]),/* "setct-CertResData" */
+&(nid_objs[597]),/* "setct-CertResTBE" */
+&(nid_objs[586]),/* "setct-CredReqTBE" */
+&(nid_objs[587]),/* "setct-CredReqTBEX" */
+&(nid_objs[550]),/* "setct-CredReqTBS" */
+&(nid_objs[551]),/* "setct-CredReqTBSX" */
+&(nid_objs[552]),/* "setct-CredResData" */
+&(nid_objs[588]),/* "setct-CredResTBE" */
+&(nid_objs[589]),/* "setct-CredRevReqTBE" */
+&(nid_objs[590]),/* "setct-CredRevReqTBEX" */
+&(nid_objs[553]),/* "setct-CredRevReqTBS" */
+&(nid_objs[554]),/* "setct-CredRevReqTBSX" */
+&(nid_objs[555]),/* "setct-CredRevResData" */
+&(nid_objs[591]),/* "setct-CredRevResTBE" */
+&(nid_objs[567]),/* "setct-ErrorTBS" */
+&(nid_objs[526]),/* "setct-HODInput" */
+&(nid_objs[561]),/* "setct-MeAqCInitResTBS" */
+&(nid_objs[522]),/* "setct-OIData" */
+&(nid_objs[519]),/* "setct-PANData" */
+&(nid_objs[521]),/* "setct-PANOnly" */
+&(nid_objs[520]),/* "setct-PANToken" */
+&(nid_objs[556]),/* "setct-PCertReqData" */
+&(nid_objs[557]),/* "setct-PCertResTBS" */
+&(nid_objs[523]),/* "setct-PI" */
+&(nid_objs[532]),/* "setct-PI-TBS" */
+&(nid_objs[524]),/* "setct-PIData" */
+&(nid_objs[525]),/* "setct-PIDataUnsigned" */
+&(nid_objs[568]),/* "setct-PIDualSignedTBE" */
+&(nid_objs[569]),/* "setct-PIUnsignedTBE" */
+&(nid_objs[531]),/* "setct-PInitResData" */
+&(nid_objs[533]),/* "setct-PResData" */
+&(nid_objs[594]),/* "setct-RegFormReqTBE" */
+&(nid_objs[562]),/* "setct-RegFormResTBS" */
+&(nid_objs[606]),/* "setext-cv" */
+&(nid_objs[601]),/* "setext-genCrypt" */
+&(nid_objs[602]),/* "setext-miAuth" */
+&(nid_objs[604]),/* "setext-pinAny" */
+&(nid_objs[603]),/* "setext-pinSecure" */
+&(nid_objs[605]),/* "setext-track2" */
&(nid_objs[52]),/* "signingTime" */
&(nid_objs[454]),/* "simpleSecurityObject" */
&(nid_objs[496]),/* "singleLevelQuality" */
&(nid_objs[387]),/* "snmpv2" */
+&(nid_objs[660]),/* "streetAddress" */
&(nid_objs[85]),/* "subjectAltName" */
&(nid_objs[398]),/* "subjectInfoAccess" */
&(nid_objs[82]),/* "subjectKeyIdentifier" */
@@ -2649,27 +2672,27 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[293]),/* "textNotice" */
&(nid_objs[133]),/* "timeStamping" */
&(nid_objs[106]),/* "title" */
-&(nid_objs[505]),/* "tpBasis" */
+&(nid_objs[668]),/* "tpBasis" */
&(nid_objs[375]),/* "trustRoot" */
&(nid_objs[436]),/* "ucl" */
&(nid_objs[55]),/* "unstructuredAddress" */
&(nid_objs[49]),/* "unstructuredName" */
&(nid_objs[465]),/* "userClass" */
&(nid_objs[373]),/* "valid" */
-&(nid_objs[562]),/* "wap" */
-&(nid_objs[563]),/* "wap-wsg" */
-&(nid_objs[564]),/* "wap-wsg-idm-ecid-wtls1" */
-&(nid_objs[713]),/* "wap-wsg-idm-ecid-wtls10" */
-&(nid_objs[714]),/* "wap-wsg-idm-ecid-wtls11" */
-&(nid_objs[715]),/* "wap-wsg-idm-ecid-wtls12" */
-&(nid_objs[709]),/* "wap-wsg-idm-ecid-wtls3" */
-&(nid_objs[710]),/* "wap-wsg-idm-ecid-wtls4" */
-&(nid_objs[711]),/* "wap-wsg-idm-ecid-wtls5" */
-&(nid_objs[565]),/* "wap-wsg-idm-ecid-wtls6" */
-&(nid_objs[712]),/* "wap-wsg-idm-ecid-wtls7" */
-&(nid_objs[566]),/* "wap-wsg-idm-ecid-wtls8" */
-&(nid_objs[567]),/* "wap-wsg-idm-ecid-wtls9" */
-&(nid_objs[568]),/* "x500UniqueIdentifier" */
+&(nid_objs[664]),/* "wap" */
+&(nid_objs[665]),/* "wap-wsg" */
+&(nid_objs[721]),/* "wap-wsg-idm-ecid-wtls1" */
+&(nid_objs[729]),/* "wap-wsg-idm-ecid-wtls10" */
+&(nid_objs[730]),/* "wap-wsg-idm-ecid-wtls11" */
+&(nid_objs[731]),/* "wap-wsg-idm-ecid-wtls12" */
+&(nid_objs[722]),/* "wap-wsg-idm-ecid-wtls3" */
+&(nid_objs[723]),/* "wap-wsg-idm-ecid-wtls4" */
+&(nid_objs[724]),/* "wap-wsg-idm-ecid-wtls5" */
+&(nid_objs[725]),/* "wap-wsg-idm-ecid-wtls6" */
+&(nid_objs[726]),/* "wap-wsg-idm-ecid-wtls7" */
+&(nid_objs[727]),/* "wap-wsg-idm-ecid-wtls8" */
+&(nid_objs[728]),/* "wap-wsg-idm-ecid-wtls9" */
+&(nid_objs[503]),/* "x500UniqueIdentifier" */
&(nid_objs[158]),/* "x509Certificate" */
&(nid_objs[160]),/* "x509Crl" */
};
@@ -2678,6 +2701,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[363]),/* "AD Time Stamping" */
&(nid_objs[405]),/* "ANSI X9.62" */
&(nid_objs[368]),/* "Acceptable OCSP Responses" */
+&(nid_objs[748]),/* "Any language" */
&(nid_objs[177]),/* "Authority Information Access" */
&(nid_objs[365]),/* "Basic OCSP Response" */
&(nid_objs[285]),/* "Biometric Info" */
@@ -2694,15 +2718,17 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[430]),/* "Hold Instruction Code" */
&(nid_objs[431]),/* "Hold Instruction None" */
&(nid_objs[433]),/* "Hold Instruction Reject" */
-&(nid_objs[698]),/* "ICC or token signature" */
+&(nid_objs[634]),/* "ICC or token signature" */
&(nid_objs[294]),/* "IPSec End System" */
&(nid_objs[295]),/* "IPSec Tunnel" */
&(nid_objs[296]),/* "IPSec User" */
&(nid_objs[182]),/* "ISO Member Body" */
&(nid_objs[183]),/* "ISO US Member Body" */
-&(nid_objs[723]),/* "International Organizations" */
+&(nid_objs[750]),/* "Independent" */
+&(nid_objs[749]),/* "Inherit all" */
+&(nid_objs[647]),/* "International Organizations" */
&(nid_objs[142]),/* "Invalidity Date" */
-&(nid_objs[569]),/* "MIME MHS" */
+&(nid_objs[504]),/* "MIME MHS" */
&(nid_objs[388]),/* "Mail" */
&(nid_objs[383]),/* "Management" */
&(nid_objs[417]),/* "Microsoft CSP Name" */
@@ -2711,9 +2737,9 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[171]),/* "Microsoft Extension Request" */
&(nid_objs[134]),/* "Microsoft Individual Code Signing" */
&(nid_objs[137]),/* "Microsoft Server Gated Crypto" */
-&(nid_objs[716]),/* "Microsoft Smartcardlogin" */
+&(nid_objs[648]),/* "Microsoft Smartcardlogin" */
&(nid_objs[136]),/* "Microsoft Trust List Signing" */
-&(nid_objs[717]),/* "Microsoft Universal Principal Name" */
+&(nid_objs[649]),/* "Microsoft Universal Principal Name" */
&(nid_objs[393]),/* "NULL" */
&(nid_objs[404]),/* "NULL" */
&(nid_objs[72]),/* "Netscape Base Url" */
@@ -2743,12 +2769,13 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[164]),/* "Policy Qualifier CPS" */
&(nid_objs[165]),/* "Policy Qualifier User Notice" */
&(nid_objs[385]),/* "Private" */
+&(nid_objs[747]),/* "Proxy Certificate Information" */
&(nid_objs[ 1]),/* "RSA Data Security, Inc." */
&(nid_objs[ 2]),/* "RSA Data Security, Inc. PKCS" */
&(nid_objs[188]),/* "S/MIME" */
&(nid_objs[167]),/* "S/MIME Capabilities" */
&(nid_objs[387]),/* "SNMPv2" */
-&(nid_objs[576]),/* "Secure Electronic Transactions" */
+&(nid_objs[512]),/* "Secure Electronic Transactions" */
&(nid_objs[386]),/* "Security" */
&(nid_objs[394]),/* "Selected Attribute Types" */
&(nid_objs[143]),/* "Strong Extranet ID" */
@@ -2759,7 +2786,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[375]),/* "Trust Root" */
&(nid_objs[12]),/* "X509" */
&(nid_objs[402]),/* "X509v3 AC Targeting" */
-&(nid_objs[718]),/* "X509v3 Any Policy" */
+&(nid_objs[737]),/* "X509v3 Any Policy" */
&(nid_objs[90]),/* "X509v3 Authority Key Identifier" */
&(nid_objs[87]),/* "X509v3 Basic Constraints" */
&(nid_objs[103]),/* "X509v3 CRL Distribution Points" */
@@ -2768,13 +2795,13 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[89]),/* "X509v3 Certificate Policies" */
&(nid_objs[140]),/* "X509v3 Delta CRL Indicator" */
&(nid_objs[126]),/* "X509v3 Extended Key Usage" */
-&(nid_objs[736]),/* "X509v3 Inhibit Any Policy" */
+&(nid_objs[739]),/* "X509v3 Inhibit Any Policy" */
&(nid_objs[86]),/* "X509v3 Issuer Alternative Name" */
&(nid_objs[83]),/* "X509v3 Key Usage" */
-&(nid_objs[720]),/* "X509v3 Name Constraints" */
+&(nid_objs[736]),/* "X509v3 Name Constraints" */
&(nid_objs[403]),/* "X509v3 No Revocation Available" */
&(nid_objs[401]),/* "X509v3 Policy Constraints" */
-&(nid_objs[719]),/* "X509v3 Policy Mappings" */
+&(nid_objs[738]),/* "X509v3 Policy Mappings" */
&(nid_objs[84]),/* "X509v3 Private Key Usage Period" */
&(nid_objs[85]),/* "X509v3 Subject Alternative Name" */
&(nid_objs[82]),/* "X509v3 Subject Key Identifier" */
@@ -2787,23 +2814,23 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[288]),/* "ac-targeting" */
&(nid_objs[446]),/* "account" */
&(nid_objs[364]),/* "ad dvcs" */
-&(nid_objs[670]),/* "additional verification" */
+&(nid_objs[606]),/* "additional verification" */
&(nid_objs[419]),/* "aes-128-cbc" */
&(nid_objs[421]),/* "aes-128-cfb" */
-&(nid_objs[726]),/* "aes-128-cfb1" */
-&(nid_objs[729]),/* "aes-128-cfb8" */
+&(nid_objs[650]),/* "aes-128-cfb1" */
+&(nid_objs[653]),/* "aes-128-cfb8" */
&(nid_objs[418]),/* "aes-128-ecb" */
&(nid_objs[420]),/* "aes-128-ofb" */
&(nid_objs[423]),/* "aes-192-cbc" */
&(nid_objs[425]),/* "aes-192-cfb" */
-&(nid_objs[727]),/* "aes-192-cfb1" */
-&(nid_objs[730]),/* "aes-192-cfb8" */
+&(nid_objs[651]),/* "aes-192-cfb1" */
+&(nid_objs[654]),/* "aes-192-cfb8" */
&(nid_objs[422]),/* "aes-192-ecb" */
&(nid_objs[424]),/* "aes-192-ofb" */
&(nid_objs[427]),/* "aes-256-cbc" */
&(nid_objs[429]),/* "aes-256-cfb" */
-&(nid_objs[728]),/* "aes-256-cfb1" */
-&(nid_objs[731]),/* "aes-256-cfb8" */
+&(nid_objs[652]),/* "aes-256-cfb1" */
+&(nid_objs[655]),/* "aes-256-cfb8" */
&(nid_objs[426]),/* "aes-256-ecb" */
&(nid_objs[428]),/* "aes-256-ofb" */
&(nid_objs[376]),/* "algorithm" */
@@ -2815,26 +2842,26 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[92]),/* "bf-ecb" */
&(nid_objs[94]),/* "bf-ofb" */
&(nid_objs[494]),/* "buildingName" */
-&(nid_objs[514]),/* "c2onb191v4" */
-&(nid_objs[515]),/* "c2onb191v5" */
-&(nid_objs[520]),/* "c2onb239v4" */
-&(nid_objs[521]),/* "c2onb239v5" */
-&(nid_objs[507]),/* "c2pnb163v1" */
-&(nid_objs[508]),/* "c2pnb163v2" */
-&(nid_objs[509]),/* "c2pnb163v3" */
-&(nid_objs[510]),/* "c2pnb176v1" */
-&(nid_objs[516]),/* "c2pnb208w1" */
-&(nid_objs[522]),/* "c2pnb272w1" */
-&(nid_objs[523]),/* "c2pnb304w1" */
-&(nid_objs[525]),/* "c2pnb368w1" */
-&(nid_objs[511]),/* "c2tnb191v1" */
-&(nid_objs[512]),/* "c2tnb191v2" */
-&(nid_objs[513]),/* "c2tnb191v3" */
-&(nid_objs[517]),/* "c2tnb239v1" */
-&(nid_objs[518]),/* "c2tnb239v2" */
-&(nid_objs[519]),/* "c2tnb239v3" */
-&(nid_objs[524]),/* "c2tnb359v1" */
-&(nid_objs[526]),/* "c2tnb431r1" */
+&(nid_objs[677]),/* "c2onb191v4" */
+&(nid_objs[678]),/* "c2onb191v5" */
+&(nid_objs[683]),/* "c2onb239v4" */
+&(nid_objs[684]),/* "c2onb239v5" */
+&(nid_objs[670]),/* "c2pnb163v1" */
+&(nid_objs[671]),/* "c2pnb163v2" */
+&(nid_objs[672]),/* "c2pnb163v3" */
+&(nid_objs[673]),/* "c2pnb176v1" */
+&(nid_objs[679]),/* "c2pnb208w1" */
+&(nid_objs[685]),/* "c2pnb272w1" */
+&(nid_objs[686]),/* "c2pnb304w1" */
+&(nid_objs[688]),/* "c2pnb368w1" */
+&(nid_objs[674]),/* "c2tnb191v1" */
+&(nid_objs[675]),/* "c2tnb191v2" */
+&(nid_objs[676]),/* "c2tnb191v3" */
+&(nid_objs[680]),/* "c2tnb239v1" */
+&(nid_objs[681]),/* "c2tnb239v2" */
+&(nid_objs[682]),/* "c2tnb239v3" */
+&(nid_objs[687]),/* "c2tnb359v1" */
+&(nid_objs[689]),/* "c2tnb431r1" */
&(nid_objs[483]),/* "cNAMERecord" */
&(nid_objs[443]),/* "caseIgnoreIA5StringSyntax" */
&(nid_objs[108]),/* "cast5-cbc" */
@@ -2842,14 +2869,14 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[109]),/* "cast5-ecb" */
&(nid_objs[111]),/* "cast5-ofb" */
&(nid_objs[152]),/* "certBag" */
-&(nid_objs[528]),/* "certicom-arc" */
-&(nid_objs[581]),/* "certificate extensions" */
+&(nid_objs[663]),/* "certicom-arc" */
+&(nid_objs[517]),/* "certificate extensions" */
&(nid_objs[54]),/* "challengePassword" */
&(nid_objs[407]),/* "characteristic-two-field" */
&(nid_objs[395]),/* "clearance" */
-&(nid_objs[697]),/* "cleartext track 2" */
+&(nid_objs[633]),/* "cleartext track 2" */
&(nid_objs[13]),/* "commonName" */
-&(nid_objs[577]),/* "content types" */
+&(nid_objs[513]),/* "content types" */
&(nid_objs[50]),/* "contentType" */
&(nid_objs[53]),/* "countersignature" */
&(nid_objs[14]),/* "countryName" */
@@ -2860,10 +2887,10 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[434]),/* "data" */
&(nid_objs[390]),/* "dcObject" */
&(nid_objs[31]),/* "des-cbc" */
-&(nid_objs[707]),/* "des-cdmf" */
+&(nid_objs[643]),/* "des-cdmf" */
&(nid_objs[30]),/* "des-cfb" */
-&(nid_objs[732]),/* "des-cfb1" */
-&(nid_objs[733]),/* "des-cfb8" */
+&(nid_objs[656]),/* "des-cfb1" */
+&(nid_objs[657]),/* "des-cfb8" */
&(nid_objs[29]),/* "des-ecb" */
&(nid_objs[32]),/* "des-ede" */
&(nid_objs[43]),/* "des-ede-cbc" */
@@ -2872,8 +2899,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[33]),/* "des-ede3" */
&(nid_objs[44]),/* "des-ede3-cbc" */
&(nid_objs[61]),/* "des-ede3-cfb" */
-&(nid_objs[734]),/* "des-ede3-cfb1" */
-&(nid_objs[735]),/* "des-ede3-cfb8" */
+&(nid_objs[658]),/* "des-ede3-cfb1" */
+&(nid_objs[659]),/* "des-ede3-cfb8" */
&(nid_objs[63]),/* "des-ede3-ofb" */
&(nid_objs[45]),/* "des-ofb" */
&(nid_objs[107]),/* "description" */
@@ -2901,15 +2928,15 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[297]),/* "dvcs" */
&(nid_objs[416]),/* "ecdsa-with-SHA1" */
&(nid_objs[48]),/* "emailAddress" */
-&(nid_objs[696]),/* "encrypted track 2" */
+&(nid_objs[632]),/* "encrypted track 2" */
&(nid_objs[56]),/* "extendedCertificateAttributes" */
&(nid_objs[462]),/* "favouriteDrink" */
&(nid_objs[453]),/* "friendlyCountry" */
&(nid_objs[490]),/* "friendlyCountryName" */
&(nid_objs[156]),/* "friendlyName" */
-&(nid_objs[695]),/* "generate cryptogram" */
-&(nid_objs[574]),/* "generationQualifier" */
-&(nid_objs[665]),/* "generic cryptogram" */
+&(nid_objs[631]),/* "generate cryptogram" */
+&(nid_objs[509]),/* "generationQualifier" */
+&(nid_objs[601]),/* "generic cryptogram" */
&(nid_objs[99]),/* "givenName" */
&(nid_objs[163]),/* "hmacWithSHA1" */
&(nid_objs[486]),/* "homePostalAddress" */
@@ -2935,7 +2962,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[362]),/* "id-cct-PKIResponse" */
&(nid_objs[360]),/* "id-cct-crs" */
&(nid_objs[81]),/* "id-ce" */
-&(nid_objs[503]),/* "id-characteristic-two-basis" */
+&(nid_objs[666]),/* "id-characteristic-two-basis" */
&(nid_objs[263]),/* "id-cmc" */
&(nid_objs[334]),/* "id-cmc-addExtensions" */
&(nid_objs[346]),/* "id-cmc-confirmCertAcceptance" */
@@ -2958,8 +2985,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[327]),/* "id-cmc-statusInfo" */
&(nid_objs[331]),/* "id-cmc-transactionId" */
&(nid_objs[408]),/* "id-ecPublicKey" */
-&(nid_objs[573]),/* "id-hex-multipart-message" */
-&(nid_objs[572]),/* "id-hex-partial-message" */
+&(nid_objs[508]),/* "id-hex-multipart-message" */
+&(nid_objs[507]),/* "id-hex-partial-message" */
&(nid_objs[260]),/* "id-it" */
&(nid_objs[302]),/* "id-it-caKeyUpdateInfo" */
&(nid_objs[298]),/* "id-it-caProtEncCert" */
@@ -3004,6 +3031,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[271]),/* "id-pkix1-explicit-93" */
&(nid_objs[270]),/* "id-pkix1-implicit-88" */
&(nid_objs[272]),/* "id-pkix1-implicit-93" */
+&(nid_objs[746]),/* "id-ppl" */
&(nid_objs[267]),/* "id-qcs" */
&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */
&(nid_objs[259]),/* "id-qt" */
@@ -3089,16 +3117,16 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[35]),/* "idea-cfb" */
&(nid_objs[36]),/* "idea-ecb" */
&(nid_objs[46]),/* "idea-ofb" */
-&(nid_objs[527]),/* "identified-organization" */
+&(nid_objs[662]),/* "identified-organization" */
&(nid_objs[461]),/* "info" */
&(nid_objs[101]),/* "initials" */
-&(nid_objs[724]),/* "ipsec3" */
-&(nid_objs[725]),/* "ipsec4" */
+&(nid_objs[744]),/* "ipsec3" */
+&(nid_objs[745]),/* "ipsec4" */
&(nid_objs[181]),/* "iso" */
-&(nid_objs[687]),/* "issuer capabilities" */
-&(nid_objs[721]),/* "itu-t" */
+&(nid_objs[623]),/* "issuer capabilities" */
+&(nid_objs[645]),/* "itu-t" */
&(nid_objs[492]),/* "janetMailbox" */
-&(nid_objs[722]),/* "joint-iso-itu-t" */
+&(nid_objs[646]),/* "joint-iso-itu-t" */
&(nid_objs[150]),/* "keyBag" */
&(nid_objs[477]),/* "lastModifiedBy" */
&(nid_objs[476]),/* "lastModifiedTime" */
@@ -3117,15 +3145,15 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[ 8]),/* "md5WithRSAEncryption" */
&(nid_objs[95]),/* "mdc2" */
&(nid_objs[96]),/* "mdc2WithRSA" */
-&(nid_objs[666]),/* "merchant initiated auth" */
-&(nid_objs[578]),/* "message extensions" */
+&(nid_objs[602]),/* "merchant initiated auth" */
+&(nid_objs[514]),/* "message extensions" */
&(nid_objs[51]),/* "messageDigest" */
-&(nid_objs[571]),/* "mime-mhs-bodies" */
-&(nid_objs[570]),/* "mime-mhs-headings" */
+&(nid_objs[506]),/* "mime-mhs-bodies" */
+&(nid_objs[505]),/* "mime-mhs-headings" */
&(nid_objs[488]),/* "mobileTelephoneNumber" */
&(nid_objs[481]),/* "nSRecord" */
&(nid_objs[173]),/* "name" */
-&(nid_objs[504]),/* "onBasis" */
+&(nid_objs[667]),/* "onBasis" */
&(nid_objs[379]),/* "org" */
&(nid_objs[17]),/* "organizationName" */
&(nid_objs[491]),/* "organizationalStatus" */
@@ -3133,7 +3161,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[475]),/* "otherMailbox" */
&(nid_objs[489]),/* "pagerTelephoneNumber" */
&(nid_objs[374]),/* "path" */
-&(nid_objs[685]),/* "payment gateway capabilities" */
+&(nid_objs[621]),/* "payment gateway capabilities" */
&(nid_objs[ 9]),/* "pbeWithMD2AndDES-CBC" */
&(nid_objs[168]),/* "pbeWithMD2AndRC2-CBC" */
&(nid_objs[112]),/* "pbeWithMD5AndCast5CBC" */
@@ -3172,7 +3200,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[22]),/* "pkcs7-signedData" */
&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */
&(nid_objs[47]),/* "pkcs9" */
-&(nid_objs[506]),/* "ppBasis" */
+&(nid_objs[661]),/* "postalCode" */
+&(nid_objs[669]),/* "ppBasis" */
&(nid_objs[406]),/* "prime-field" */
&(nid_objs[409]),/* "prime192v1" */
&(nid_objs[410]),/* "prime192v2" */
@@ -3181,7 +3210,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[413]),/* "prime239v2" */
&(nid_objs[414]),/* "prime239v3" */
&(nid_objs[415]),/* "prime256v1" */
-&(nid_objs[575]),/* "pseudonym" */
+&(nid_objs[510]),/* "pseudonym" */
&(nid_objs[435]),/* "pss" */
&(nid_objs[286]),/* "qcStatements" */
&(nid_objs[457]),/* "qualityLabelledData" */
@@ -3206,7 +3235,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[463]),/* "roomNumber" */
&(nid_objs[19]),/* "rsa" */
&(nid_objs[ 6]),/* "rsaEncryption" */
-&(nid_objs[708]),/* "rsaOAEPEncryptionSET" */
+&(nid_objs[644]),/* "rsaOAEPEncryptionSET" */
&(nid_objs[377]),/* "rsaSignature" */
&(nid_objs[124]),/* "run length compression" */
&(nid_objs[482]),/* "sOARecord" */
@@ -3215,182 +3244,183 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[290]),/* "sbqp-ipAddrBlock" */
&(nid_objs[292]),/* "sbqp-routerIdentifier" */
&(nid_objs[159]),/* "sdsiCertificate" */
-&(nid_objs[529]),/* "secp112r1" */
-&(nid_objs[530]),/* "secp112r2" */
-&(nid_objs[531]),/* "secp128r1" */
-&(nid_objs[532]),/* "secp128r2" */
-&(nid_objs[533]),/* "secp160k1" */
-&(nid_objs[534]),/* "secp160r1" */
-&(nid_objs[535]),/* "secp160r2" */
-&(nid_objs[536]),/* "secp192k1" */
-&(nid_objs[538]),/* "secp224k1" */
-&(nid_objs[539]),/* "secp224r1" */
-&(nid_objs[540]),/* "secp256k1" */
-&(nid_objs[542]),/* "secp384r1" */
-&(nid_objs[543]),/* "secp521r1" */
+&(nid_objs[690]),/* "secp112r1" */
+&(nid_objs[691]),/* "secp112r2" */
+&(nid_objs[692]),/* "secp128r1" */
+&(nid_objs[693]),/* "secp128r2" */
+&(nid_objs[694]),/* "secp160k1" */
+&(nid_objs[695]),/* "secp160r1" */
+&(nid_objs[696]),/* "secp160r2" */
+&(nid_objs[697]),/* "secp192k1" */
+&(nid_objs[698]),/* "secp224k1" */
+&(nid_objs[699]),/* "secp224r1" */
+&(nid_objs[700]),/* "secp256k1" */
+&(nid_objs[701]),/* "secp384r1" */
+&(nid_objs[702]),/* "secp521r1" */
&(nid_objs[154]),/* "secretBag" */
&(nid_objs[474]),/* "secretary" */
-&(nid_objs[544]),/* "sect113r1" */
-&(nid_objs[545]),/* "sect113r2" */
-&(nid_objs[546]),/* "sect131r1" */
-&(nid_objs[547]),/* "sect131r2" */
-&(nid_objs[548]),/* "sect163k1" */
-&(nid_objs[549]),/* "sect163r1" */
-&(nid_objs[550]),/* "sect163r2" */
-&(nid_objs[551]),/* "sect193r1" */
-&(nid_objs[552]),/* "sect193r2" */
-&(nid_objs[553]),/* "sect233k1" */
-&(nid_objs[554]),/* "sect233r1" */
-&(nid_objs[555]),/* "sect239k1" */
-&(nid_objs[556]),/* "sect283k1" */
-&(nid_objs[557]),/* "sect283r1" */
-&(nid_objs[558]),/* "sect409k1" */
-&(nid_objs[559]),/* "sect409r1" */
-&(nid_objs[560]),/* "sect571k1" */
-&(nid_objs[561]),/* "sect571r1" */
-&(nid_objs[699]),/* "secure device signature" */
+&(nid_objs[703]),/* "sect113r1" */
+&(nid_objs[704]),/* "sect113r2" */
+&(nid_objs[705]),/* "sect131r1" */
+&(nid_objs[706]),/* "sect131r2" */
+&(nid_objs[707]),/* "sect163k1" */
+&(nid_objs[708]),/* "sect163r1" */
+&(nid_objs[709]),/* "sect163r2" */
+&(nid_objs[710]),/* "sect193r1" */
+&(nid_objs[711]),/* "sect193r2" */
+&(nid_objs[712]),/* "sect233k1" */
+&(nid_objs[713]),/* "sect233r1" */
+&(nid_objs[714]),/* "sect239k1" */
+&(nid_objs[715]),/* "sect283k1" */
+&(nid_objs[716]),/* "sect283r1" */
+&(nid_objs[717]),/* "sect409k1" */
+&(nid_objs[718]),/* "sect409r1" */
+&(nid_objs[719]),/* "sect571k1" */
+&(nid_objs[720]),/* "sect571r1" */
+&(nid_objs[635]),/* "secure device signature" */
&(nid_objs[105]),/* "serialNumber" */
-&(nid_objs[689]),/* "set-addPolicy" */
-&(nid_objs[579]),/* "set-attr" */
-&(nid_objs[582]),/* "set-brand" */
-&(nid_objs[702]),/* "set-brand-AmericanExpress" */
-&(nid_objs[701]),/* "set-brand-Diners" */
-&(nid_objs[700]),/* "set-brand-IATA-ATA" */
-&(nid_objs[703]),/* "set-brand-JCB" */
-&(nid_objs[705]),/* "set-brand-MasterCard" */
-&(nid_objs[706]),/* "set-brand-Novus" */
-&(nid_objs[704]),/* "set-brand-Visa" */
-&(nid_objs[580]),/* "set-policy" */
-&(nid_objs[671]),/* "set-policy-root" */
-&(nid_objs[688]),/* "set-rootKeyThumb" */
-&(nid_objs[684]),/* "setAttr-Cert" */
-&(nid_objs[692]),/* "setAttr-IssCap-CVM" */
-&(nid_objs[694]),/* "setAttr-IssCap-Sig" */
-&(nid_objs[693]),/* "setAttr-IssCap-T2" */
-&(nid_objs[691]),/* "setAttr-Token-B0Prime" */
-&(nid_objs[690]),/* "setAttr-Token-EMV" */
-&(nid_objs[686]),/* "setAttr-TokenType" */
-&(nid_objs[683]),/* "setCext-IssuerCapabilities" */
-&(nid_objs[679]),/* "setCext-PGWYcapabilities" */
-&(nid_objs[680]),/* "setCext-TokenIdentifier" */
-&(nid_objs[682]),/* "setCext-TokenType" */
-&(nid_objs[681]),/* "setCext-Track2Data" */
-&(nid_objs[675]),/* "setCext-cCertRequired" */
-&(nid_objs[673]),/* "setCext-certType" */
-&(nid_objs[672]),/* "setCext-hashedRoot" */
-&(nid_objs[674]),/* "setCext-merchData" */
-&(nid_objs[677]),/* "setCext-setExt" */
-&(nid_objs[678]),/* "setCext-setQualf" */
-&(nid_objs[676]),/* "setCext-tunneling" */
-&(nid_objs[604]),/* "setct-AcqCardCodeMsg" */
-&(nid_objs[640]),/* "setct-AcqCardCodeMsgTBE" */
-&(nid_objs[634]),/* "setct-AuthReqTBE" */
-&(nid_objs[598]),/* "setct-AuthReqTBS" */
-&(nid_objs[591]),/* "setct-AuthResBaggage" */
-&(nid_objs[635]),/* "setct-AuthResTBE" */
-&(nid_objs[636]),/* "setct-AuthResTBEX" */
-&(nid_objs[599]),/* "setct-AuthResTBS" */
-&(nid_objs[600]),/* "setct-AuthResTBSX" */
-&(nid_objs[592]),/* "setct-AuthRevReqBaggage" */
-&(nid_objs[641]),/* "setct-AuthRevReqTBE" */
-&(nid_objs[605]),/* "setct-AuthRevReqTBS" */
-&(nid_objs[593]),/* "setct-AuthRevResBaggage" */
-&(nid_objs[606]),/* "setct-AuthRevResData" */
-&(nid_objs[642]),/* "setct-AuthRevResTBE" */
-&(nid_objs[643]),/* "setct-AuthRevResTBEB" */
-&(nid_objs[607]),/* "setct-AuthRevResTBS" */
-&(nid_objs[637]),/* "setct-AuthTokenTBE" */
-&(nid_objs[601]),/* "setct-AuthTokenTBS" */
-&(nid_objs[664]),/* "setct-BCIDistributionTBS" */
-&(nid_objs[622]),/* "setct-BatchAdminReqData" */
-&(nid_objs[656]),/* "setct-BatchAdminReqTBE" */
-&(nid_objs[623]),/* "setct-BatchAdminResData" */
-&(nid_objs[657]),/* "setct-BatchAdminResTBE" */
-&(nid_objs[663]),/* "setct-CRLNotificationResTBS" */
-&(nid_objs[662]),/* "setct-CRLNotificationTBS" */
-&(nid_objs[644]),/* "setct-CapReqTBE" */
-&(nid_objs[645]),/* "setct-CapReqTBEX" */
-&(nid_objs[608]),/* "setct-CapReqTBS" */
-&(nid_objs[609]),/* "setct-CapReqTBSX" */
-&(nid_objs[610]),/* "setct-CapResData" */
-&(nid_objs[646]),/* "setct-CapResTBE" */
-&(nid_objs[647]),/* "setct-CapRevReqTBE" */
-&(nid_objs[648]),/* "setct-CapRevReqTBEX" */
-&(nid_objs[611]),/* "setct-CapRevReqTBS" */
-&(nid_objs[612]),/* "setct-CapRevReqTBSX" */
-&(nid_objs[613]),/* "setct-CapRevResData" */
-&(nid_objs[649]),/* "setct-CapRevResTBE" */
-&(nid_objs[602]),/* "setct-CapTokenData" */
-&(nid_objs[594]),/* "setct-CapTokenSeq" */
-&(nid_objs[638]),/* "setct-CapTokenTBE" */
-&(nid_objs[639]),/* "setct-CapTokenTBEX" */
-&(nid_objs[603]),/* "setct-CapTokenTBS" */
-&(nid_objs[624]),/* "setct-CardCInitResTBS" */
-&(nid_objs[630]),/* "setct-CertInqReqTBS" */
-&(nid_objs[627]),/* "setct-CertReqData" */
-&(nid_objs[659]),/* "setct-CertReqTBE" */
-&(nid_objs[660]),/* "setct-CertReqTBEX" */
-&(nid_objs[628]),/* "setct-CertReqTBS" */
-&(nid_objs[629]),/* "setct-CertResData" */
-&(nid_objs[661]),/* "setct-CertResTBE" */
-&(nid_objs[650]),/* "setct-CredReqTBE" */
-&(nid_objs[651]),/* "setct-CredReqTBEX" */
-&(nid_objs[614]),/* "setct-CredReqTBS" */
-&(nid_objs[615]),/* "setct-CredReqTBSX" */
-&(nid_objs[616]),/* "setct-CredResData" */
-&(nid_objs[652]),/* "setct-CredResTBE" */
-&(nid_objs[653]),/* "setct-CredRevReqTBE" */
-&(nid_objs[654]),/* "setct-CredRevReqTBEX" */
-&(nid_objs[617]),/* "setct-CredRevReqTBS" */
-&(nid_objs[618]),/* "setct-CredRevReqTBSX" */
-&(nid_objs[619]),/* "setct-CredRevResData" */
-&(nid_objs[655]),/* "setct-CredRevResTBE" */
-&(nid_objs[631]),/* "setct-ErrorTBS" */
-&(nid_objs[590]),/* "setct-HODInput" */
-&(nid_objs[625]),/* "setct-MeAqCInitResTBS" */
-&(nid_objs[586]),/* "setct-OIData" */
-&(nid_objs[583]),/* "setct-PANData" */
-&(nid_objs[585]),/* "setct-PANOnly" */
-&(nid_objs[584]),/* "setct-PANToken" */
-&(nid_objs[620]),/* "setct-PCertReqData" */
-&(nid_objs[621]),/* "setct-PCertResTBS" */
-&(nid_objs[587]),/* "setct-PI" */
-&(nid_objs[596]),/* "setct-PI-TBS" */
-&(nid_objs[588]),/* "setct-PIData" */
-&(nid_objs[589]),/* "setct-PIDataUnsigned" */
-&(nid_objs[632]),/* "setct-PIDualSignedTBE" */
-&(nid_objs[633]),/* "setct-PIUnsignedTBE" */
-&(nid_objs[595]),/* "setct-PInitResData" */
-&(nid_objs[597]),/* "setct-PResData" */
-&(nid_objs[658]),/* "setct-RegFormReqTBE" */
-&(nid_objs[626]),/* "setct-RegFormResTBS" */
-&(nid_objs[668]),/* "setext-pinAny" */
-&(nid_objs[667]),/* "setext-pinSecure" */
-&(nid_objs[669]),/* "setext-track2" */
+&(nid_objs[625]),/* "set-addPolicy" */
+&(nid_objs[515]),/* "set-attr" */
+&(nid_objs[518]),/* "set-brand" */
+&(nid_objs[638]),/* "set-brand-AmericanExpress" */
+&(nid_objs[637]),/* "set-brand-Diners" */
+&(nid_objs[636]),/* "set-brand-IATA-ATA" */
+&(nid_objs[639]),/* "set-brand-JCB" */
+&(nid_objs[641]),/* "set-brand-MasterCard" */
+&(nid_objs[642]),/* "set-brand-Novus" */
+&(nid_objs[640]),/* "set-brand-Visa" */
+&(nid_objs[516]),/* "set-policy" */
+&(nid_objs[607]),/* "set-policy-root" */
+&(nid_objs[624]),/* "set-rootKeyThumb" */
+&(nid_objs[620]),/* "setAttr-Cert" */
+&(nid_objs[628]),/* "setAttr-IssCap-CVM" */
+&(nid_objs[630]),/* "setAttr-IssCap-Sig" */
+&(nid_objs[629]),/* "setAttr-IssCap-T2" */
+&(nid_objs[627]),/* "setAttr-Token-B0Prime" */
+&(nid_objs[626]),/* "setAttr-Token-EMV" */
+&(nid_objs[622]),/* "setAttr-TokenType" */
+&(nid_objs[619]),/* "setCext-IssuerCapabilities" */
+&(nid_objs[615]),/* "setCext-PGWYcapabilities" */
+&(nid_objs[616]),/* "setCext-TokenIdentifier" */
+&(nid_objs[618]),/* "setCext-TokenType" */
+&(nid_objs[617]),/* "setCext-Track2Data" */
+&(nid_objs[611]),/* "setCext-cCertRequired" */
+&(nid_objs[609]),/* "setCext-certType" */
+&(nid_objs[608]),/* "setCext-hashedRoot" */
+&(nid_objs[610]),/* "setCext-merchData" */
+&(nid_objs[613]),/* "setCext-setExt" */
+&(nid_objs[614]),/* "setCext-setQualf" */
+&(nid_objs[612]),/* "setCext-tunneling" */
+&(nid_objs[540]),/* "setct-AcqCardCodeMsg" */
+&(nid_objs[576]),/* "setct-AcqCardCodeMsgTBE" */
+&(nid_objs[570]),/* "setct-AuthReqTBE" */
+&(nid_objs[534]),/* "setct-AuthReqTBS" */
+&(nid_objs[527]),/* "setct-AuthResBaggage" */
+&(nid_objs[571]),/* "setct-AuthResTBE" */
+&(nid_objs[572]),/* "setct-AuthResTBEX" */
+&(nid_objs[535]),/* "setct-AuthResTBS" */
+&(nid_objs[536]),/* "setct-AuthResTBSX" */
+&(nid_objs[528]),/* "setct-AuthRevReqBaggage" */
+&(nid_objs[577]),/* "setct-AuthRevReqTBE" */
+&(nid_objs[541]),/* "setct-AuthRevReqTBS" */
+&(nid_objs[529]),/* "setct-AuthRevResBaggage" */
+&(nid_objs[542]),/* "setct-AuthRevResData" */
+&(nid_objs[578]),/* "setct-AuthRevResTBE" */
+&(nid_objs[579]),/* "setct-AuthRevResTBEB" */
+&(nid_objs[543]),/* "setct-AuthRevResTBS" */
+&(nid_objs[573]),/* "setct-AuthTokenTBE" */
+&(nid_objs[537]),/* "setct-AuthTokenTBS" */
+&(nid_objs[600]),/* "setct-BCIDistributionTBS" */
+&(nid_objs[558]),/* "setct-BatchAdminReqData" */
+&(nid_objs[592]),/* "setct-BatchAdminReqTBE" */
+&(nid_objs[559]),/* "setct-BatchAdminResData" */
+&(nid_objs[593]),/* "setct-BatchAdminResTBE" */
+&(nid_objs[599]),/* "setct-CRLNotificationResTBS" */
+&(nid_objs[598]),/* "setct-CRLNotificationTBS" */
+&(nid_objs[580]),/* "setct-CapReqTBE" */
+&(nid_objs[581]),/* "setct-CapReqTBEX" */
+&(nid_objs[544]),/* "setct-CapReqTBS" */
+&(nid_objs[545]),/* "setct-CapReqTBSX" */
+&(nid_objs[546]),/* "setct-CapResData" */
+&(nid_objs[582]),/* "setct-CapResTBE" */
+&(nid_objs[583]),/* "setct-CapRevReqTBE" */
+&(nid_objs[584]),/* "setct-CapRevReqTBEX" */
+&(nid_objs[547]),/* "setct-CapRevReqTBS" */
+&(nid_objs[548]),/* "setct-CapRevReqTBSX" */
+&(nid_objs[549]),/* "setct-CapRevResData" */
+&(nid_objs[585]),/* "setct-CapRevResTBE" */
+&(nid_objs[538]),/* "setct-CapTokenData" */
+&(nid_objs[530]),/* "setct-CapTokenSeq" */
+&(nid_objs[574]),/* "setct-CapTokenTBE" */
+&(nid_objs[575]),/* "setct-CapTokenTBEX" */
+&(nid_objs[539]),/* "setct-CapTokenTBS" */
+&(nid_objs[560]),/* "setct-CardCInitResTBS" */
+&(nid_objs[566]),/* "setct-CertInqReqTBS" */
+&(nid_objs[563]),/* "setct-CertReqData" */
+&(nid_objs[595]),/* "setct-CertReqTBE" */
+&(nid_objs[596]),/* "setct-CertReqTBEX" */
+&(nid_objs[564]),/* "setct-CertReqTBS" */
+&(nid_objs[565]),/* "setct-CertResData" */
+&(nid_objs[597]),/* "setct-CertResTBE" */
+&(nid_objs[586]),/* "setct-CredReqTBE" */
+&(nid_objs[587]),/* "setct-CredReqTBEX" */
+&(nid_objs[550]),/* "setct-CredReqTBS" */
+&(nid_objs[551]),/* "setct-CredReqTBSX" */
+&(nid_objs[552]),/* "setct-CredResData" */
+&(nid_objs[588]),/* "setct-CredResTBE" */
+&(nid_objs[589]),/* "setct-CredRevReqTBE" */
+&(nid_objs[590]),/* "setct-CredRevReqTBEX" */
+&(nid_objs[553]),/* "setct-CredRevReqTBS" */
+&(nid_objs[554]),/* "setct-CredRevReqTBSX" */
+&(nid_objs[555]),/* "setct-CredRevResData" */
+&(nid_objs[591]),/* "setct-CredRevResTBE" */
+&(nid_objs[567]),/* "setct-ErrorTBS" */
+&(nid_objs[526]),/* "setct-HODInput" */
+&(nid_objs[561]),/* "setct-MeAqCInitResTBS" */
+&(nid_objs[522]),/* "setct-OIData" */
+&(nid_objs[519]),/* "setct-PANData" */
+&(nid_objs[521]),/* "setct-PANOnly" */
+&(nid_objs[520]),/* "setct-PANToken" */
+&(nid_objs[556]),/* "setct-PCertReqData" */
+&(nid_objs[557]),/* "setct-PCertResTBS" */
+&(nid_objs[523]),/* "setct-PI" */
+&(nid_objs[532]),/* "setct-PI-TBS" */
+&(nid_objs[524]),/* "setct-PIData" */
+&(nid_objs[525]),/* "setct-PIDataUnsigned" */
+&(nid_objs[568]),/* "setct-PIDualSignedTBE" */
+&(nid_objs[569]),/* "setct-PIUnsignedTBE" */
+&(nid_objs[531]),/* "setct-PInitResData" */
+&(nid_objs[533]),/* "setct-PResData" */
+&(nid_objs[594]),/* "setct-RegFormReqTBE" */
+&(nid_objs[562]),/* "setct-RegFormResTBS" */
+&(nid_objs[604]),/* "setext-pinAny" */
+&(nid_objs[603]),/* "setext-pinSecure" */
+&(nid_objs[605]),/* "setext-track2" */
&(nid_objs[41]),/* "sha" */
&(nid_objs[64]),/* "sha1" */
&(nid_objs[115]),/* "sha1WithRSA" */
&(nid_objs[65]),/* "sha1WithRSAEncryption" */
-&(nid_objs[744]),/* "sha224" */
-&(nid_objs[740]),/* "sha224WithRSAEncryption" */
-&(nid_objs[741]),/* "sha256" */
-&(nid_objs[737]),/* "sha256WithRSAEncryption" */
-&(nid_objs[742]),/* "sha384" */
-&(nid_objs[738]),/* "sha384WithRSAEncryption" */
-&(nid_objs[743]),/* "sha512" */
-&(nid_objs[739]),/* "sha512WithRSAEncryption" */
+&(nid_objs[743]),/* "sha224" */
+&(nid_objs[735]),/* "sha224WithRSAEncryption" */
+&(nid_objs[740]),/* "sha256" */
+&(nid_objs[732]),/* "sha256WithRSAEncryption" */
+&(nid_objs[741]),/* "sha384" */
+&(nid_objs[733]),/* "sha384WithRSAEncryption" */
+&(nid_objs[742]),/* "sha512" */
+&(nid_objs[734]),/* "sha512WithRSAEncryption" */
&(nid_objs[42]),/* "shaWithRSAEncryption" */
&(nid_objs[52]),/* "signingTime" */
&(nid_objs[454]),/* "simpleSecurityObject" */
&(nid_objs[496]),/* "singleLevelQuality" */
&(nid_objs[16]),/* "stateOrProvinceName" */
+&(nid_objs[660]),/* "streetAddress" */
&(nid_objs[498]),/* "subtreeMaximumQuality" */
&(nid_objs[497]),/* "subtreeMinimumQuality" */
&(nid_objs[100]),/* "surname" */
&(nid_objs[459]),/* "textEncodedORAddress" */
&(nid_objs[293]),/* "textNotice" */
&(nid_objs[106]),/* "title" */
-&(nid_objs[505]),/* "tpBasis" */
+&(nid_objs[668]),/* "tpBasis" */
&(nid_objs[436]),/* "ucl" */
&(nid_objs[ 0]),/* "undefined" */
&(nid_objs[55]),/* "unstructuredAddress" */
@@ -3398,20 +3428,20 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[465]),/* "userClass" */
&(nid_objs[458]),/* "userId" */
&(nid_objs[373]),/* "valid" */
-&(nid_objs[562]),/* "wap" */
-&(nid_objs[563]),/* "wap-wsg" */
-&(nid_objs[564]),/* "wap-wsg-idm-ecid-wtls1" */
-&(nid_objs[713]),/* "wap-wsg-idm-ecid-wtls10" */
-&(nid_objs[714]),/* "wap-wsg-idm-ecid-wtls11" */
-&(nid_objs[715]),/* "wap-wsg-idm-ecid-wtls12" */
-&(nid_objs[709]),/* "wap-wsg-idm-ecid-wtls3" */
-&(nid_objs[710]),/* "wap-wsg-idm-ecid-wtls4" */
-&(nid_objs[711]),/* "wap-wsg-idm-ecid-wtls5" */
-&(nid_objs[565]),/* "wap-wsg-idm-ecid-wtls6" */
-&(nid_objs[712]),/* "wap-wsg-idm-ecid-wtls7" */
-&(nid_objs[566]),/* "wap-wsg-idm-ecid-wtls8" */
-&(nid_objs[567]),/* "wap-wsg-idm-ecid-wtls9" */
-&(nid_objs[568]),/* "x500UniqueIdentifier" */
+&(nid_objs[664]),/* "wap" */
+&(nid_objs[665]),/* "wap-wsg" */
+&(nid_objs[721]),/* "wap-wsg-idm-ecid-wtls1" */
+&(nid_objs[729]),/* "wap-wsg-idm-ecid-wtls10" */
+&(nid_objs[730]),/* "wap-wsg-idm-ecid-wtls11" */
+&(nid_objs[731]),/* "wap-wsg-idm-ecid-wtls12" */
+&(nid_objs[722]),/* "wap-wsg-idm-ecid-wtls3" */
+&(nid_objs[723]),/* "wap-wsg-idm-ecid-wtls4" */
+&(nid_objs[724]),/* "wap-wsg-idm-ecid-wtls5" */
+&(nid_objs[725]),/* "wap-wsg-idm-ecid-wtls6" */
+&(nid_objs[726]),/* "wap-wsg-idm-ecid-wtls7" */
+&(nid_objs[727]),/* "wap-wsg-idm-ecid-wtls8" */
+&(nid_objs[728]),/* "wap-wsg-idm-ecid-wtls9" */
+&(nid_objs[503]),/* "x500UniqueIdentifier" */
&(nid_objs[158]),/* "x509Certificate" */
&(nid_objs[160]),/* "x509Crl" */
&(nid_objs[125]),/* "zlib compression" */
@@ -3421,25 +3451,25 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[ 0]),/* OBJ_undef 0 */
&(nid_objs[393]),/* OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t */
&(nid_objs[404]),/* OBJ_ccitt OBJ_itu_t */
-&(nid_objs[721]),/* OBJ_itu_t 0 */
+&(nid_objs[645]),/* OBJ_itu_t 0 */
&(nid_objs[434]),/* OBJ_data 0 9 */
&(nid_objs[181]),/* OBJ_iso 1 */
&(nid_objs[182]),/* OBJ_member_body 1 2 */
&(nid_objs[379]),/* OBJ_org 1 3 */
-&(nid_objs[527]),/* OBJ_identified_organization 1 3 */
-&(nid_objs[722]),/* OBJ_joint_iso_itu_t 2 */
+&(nid_objs[662]),/* OBJ_identified_organization 1 3 */
+&(nid_objs[646]),/* OBJ_joint_iso_itu_t 2 */
&(nid_objs[11]),/* OBJ_X500 2 5 */
-&(nid_objs[723]),/* OBJ_international_organizations 2 23 */
+&(nid_objs[647]),/* OBJ_international_organizations 2 23 */
&(nid_objs[380]),/* OBJ_dod 1 3 6 */
&(nid_objs[12]),/* OBJ_X509 2 5 4 */
&(nid_objs[378]),/* OBJ_X500algorithms 2 5 8 */
&(nid_objs[81]),/* OBJ_id_ce 2 5 29 */
-&(nid_objs[576]),/* OBJ_id_set 2 23 42 */
-&(nid_objs[562]),/* OBJ_wap 2 23 43 */
+&(nid_objs[512]),/* OBJ_id_set 2 23 42 */
+&(nid_objs[664]),/* OBJ_wap 2 23 43 */
&(nid_objs[435]),/* OBJ_pss 0 9 2342 */
&(nid_objs[183]),/* OBJ_ISO_US 1 2 840 */
&(nid_objs[381]),/* OBJ_iana 1 3 6 1 */
-&(nid_objs[528]),/* OBJ_certicom_arc 1 3 132 */
+&(nid_objs[663]),/* OBJ_certicom_arc 1 3 132 */
&(nid_objs[394]),/* OBJ_selected_attribute_types 2 5 1 5 */
&(nid_objs[13]),/* OBJ_commonName 2 5 4 3 */
&(nid_objs[100]),/* OBJ_surname 2 5 4 4 */
@@ -3447,17 +3477,19 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[14]),/* OBJ_countryName 2 5 4 6 */
&(nid_objs[15]),/* OBJ_localityName 2 5 4 7 */
&(nid_objs[16]),/* OBJ_stateOrProvinceName 2 5 4 8 */
+&(nid_objs[660]),/* OBJ_streetAddress 2 5 4 9 */
&(nid_objs[17]),/* OBJ_organizationName 2 5 4 10 */
&(nid_objs[18]),/* OBJ_organizationalUnitName 2 5 4 11 */
&(nid_objs[106]),/* OBJ_title 2 5 4 12 */
&(nid_objs[107]),/* OBJ_description 2 5 4 13 */
+&(nid_objs[661]),/* OBJ_postalCode 2 5 4 17 */
&(nid_objs[173]),/* OBJ_name 2 5 4 41 */
&(nid_objs[99]),/* OBJ_givenName 2 5 4 42 */
&(nid_objs[101]),/* OBJ_initials 2 5 4 43 */
-&(nid_objs[574]),/* OBJ_generationQualifier 2 5 4 44 */
-&(nid_objs[568]),/* OBJ_x500UniqueIdentifier 2 5 4 45 */
+&(nid_objs[509]),/* OBJ_generationQualifier 2 5 4 44 */
+&(nid_objs[503]),/* OBJ_x500UniqueIdentifier 2 5 4 45 */
&(nid_objs[174]),/* OBJ_dnQualifier 2 5 4 46 */
-&(nid_objs[575]),/* OBJ_pseudonym 2 5 4 65 */
+&(nid_objs[510]),/* OBJ_pseudonym 2 5 4 65 */
&(nid_objs[400]),/* OBJ_role 2 5 4 72 */
&(nid_objs[82]),/* OBJ_subject_key_identifier 2 5 29 14 */
&(nid_objs[83]),/* OBJ_key_usage 2 5 29 15 */
@@ -3470,23 +3502,23 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[430]),/* OBJ_hold_instruction_code 2 5 29 23 */
&(nid_objs[142]),/* OBJ_invalidity_date 2 5 29 24 */
&(nid_objs[140]),/* OBJ_delta_crl 2 5 29 27 */
-&(nid_objs[720]),/* OBJ_name_constraints 2 5 29 30 */
+&(nid_objs[736]),/* OBJ_name_constraints 2 5 29 30 */
&(nid_objs[103]),/* OBJ_crl_distribution_points 2 5 29 31 */
&(nid_objs[89]),/* OBJ_certificate_policies 2 5 29 32 */
-&(nid_objs[719]),/* OBJ_policy_mappings 2 5 29 33 */
+&(nid_objs[738]),/* OBJ_policy_mappings 2 5 29 33 */
&(nid_objs[90]),/* OBJ_authority_key_identifier 2 5 29 35 */
&(nid_objs[401]),/* OBJ_policy_constraints 2 5 29 36 */
&(nid_objs[126]),/* OBJ_ext_key_usage 2 5 29 37 */
-&(nid_objs[736]),/* OBJ_inhibit_any_policy 2 5 29 54 */
+&(nid_objs[739]),/* OBJ_inhibit_any_policy 2 5 29 54 */
&(nid_objs[402]),/* OBJ_target_information 2 5 29 55 */
&(nid_objs[403]),/* OBJ_no_rev_avail 2 5 29 56 */
-&(nid_objs[577]),/* OBJ_set_ctype 2 23 42 0 */
-&(nid_objs[578]),/* OBJ_set_msgExt 2 23 42 1 */
-&(nid_objs[579]),/* OBJ_set_attr 2 23 42 3 */
-&(nid_objs[580]),/* OBJ_set_policy 2 23 42 5 */
-&(nid_objs[581]),/* OBJ_set_certExt 2 23 42 7 */
-&(nid_objs[582]),/* OBJ_set_brand 2 23 42 8 */
-&(nid_objs[563]),/* OBJ_wap_wsg 2 23 43 13 */
+&(nid_objs[513]),/* OBJ_set_ctype 2 23 42 0 */
+&(nid_objs[514]),/* OBJ_set_msgExt 2 23 42 1 */
+&(nid_objs[515]),/* OBJ_set_attr 2 23 42 3 */
+&(nid_objs[516]),/* OBJ_set_policy 2 23 42 5 */
+&(nid_objs[517]),/* OBJ_set_certExt 2 23 42 7 */
+&(nid_objs[518]),/* OBJ_set_brand 2 23 42 8 */
+&(nid_objs[665]),/* OBJ_wap_wsg 2 23 43 13 */
&(nid_objs[382]),/* OBJ_Directory 1 3 6 1 1 */
&(nid_objs[383]),/* OBJ_Management 1 3 6 1 2 */
&(nid_objs[384]),/* OBJ_Experimental 1 3 6 1 3 */
@@ -3499,122 +3531,122 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[19]),/* OBJ_rsa 2 5 8 1 1 */
&(nid_objs[96]),/* OBJ_mdc2WithRSA 2 5 8 3 100 */
&(nid_objs[95]),/* OBJ_mdc2 2 5 8 3 101 */
-&(nid_objs[718]),/* OBJ_any_policy 2 5 29 32 0 */
-&(nid_objs[583]),/* OBJ_setct_PANData 2 23 42 0 0 */
-&(nid_objs[584]),/* OBJ_setct_PANToken 2 23 42 0 1 */
-&(nid_objs[585]),/* OBJ_setct_PANOnly 2 23 42 0 2 */
-&(nid_objs[586]),/* OBJ_setct_OIData 2 23 42 0 3 */
-&(nid_objs[587]),/* OBJ_setct_PI 2 23 42 0 4 */
-&(nid_objs[588]),/* OBJ_setct_PIData 2 23 42 0 5 */
-&(nid_objs[589]),/* OBJ_setct_PIDataUnsigned 2 23 42 0 6 */
-&(nid_objs[590]),/* OBJ_setct_HODInput 2 23 42 0 7 */
-&(nid_objs[591]),/* OBJ_setct_AuthResBaggage 2 23 42 0 8 */
-&(nid_objs[592]),/* OBJ_setct_AuthRevReqBaggage 2 23 42 0 9 */
-&(nid_objs[593]),/* OBJ_setct_AuthRevResBaggage 2 23 42 0 10 */
-&(nid_objs[594]),/* OBJ_setct_CapTokenSeq 2 23 42 0 11 */
-&(nid_objs[595]),/* OBJ_setct_PInitResData 2 23 42 0 12 */
-&(nid_objs[596]),/* OBJ_setct_PI_TBS 2 23 42 0 13 */
-&(nid_objs[597]),/* OBJ_setct_PResData 2 23 42 0 14 */
-&(nid_objs[598]),/* OBJ_setct_AuthReqTBS 2 23 42 0 16 */
-&(nid_objs[599]),/* OBJ_setct_AuthResTBS 2 23 42 0 17 */
-&(nid_objs[600]),/* OBJ_setct_AuthResTBSX 2 23 42 0 18 */
-&(nid_objs[601]),/* OBJ_setct_AuthTokenTBS 2 23 42 0 19 */
-&(nid_objs[602]),/* OBJ_setct_CapTokenData 2 23 42 0 20 */
-&(nid_objs[603]),/* OBJ_setct_CapTokenTBS 2 23 42 0 21 */
-&(nid_objs[604]),/* OBJ_setct_AcqCardCodeMsg 2 23 42 0 22 */
-&(nid_objs[605]),/* OBJ_setct_AuthRevReqTBS 2 23 42 0 23 */
-&(nid_objs[606]),/* OBJ_setct_AuthRevResData 2 23 42 0 24 */
-&(nid_objs[607]),/* OBJ_setct_AuthRevResTBS 2 23 42 0 25 */
-&(nid_objs[608]),/* OBJ_setct_CapReqTBS 2 23 42 0 26 */
-&(nid_objs[609]),/* OBJ_setct_CapReqTBSX 2 23 42 0 27 */
-&(nid_objs[610]),/* OBJ_setct_CapResData 2 23 42 0 28 */
-&(nid_objs[611]),/* OBJ_setct_CapRevReqTBS 2 23 42 0 29 */
-&(nid_objs[612]),/* OBJ_setct_CapRevReqTBSX 2 23 42 0 30 */
-&(nid_objs[613]),/* OBJ_setct_CapRevResData 2 23 42 0 31 */
-&(nid_objs[614]),/* OBJ_setct_CredReqTBS 2 23 42 0 32 */
-&(nid_objs[615]),/* OBJ_setct_CredReqTBSX 2 23 42 0 33 */
-&(nid_objs[616]),/* OBJ_setct_CredResData 2 23 42 0 34 */
-&(nid_objs[617]),/* OBJ_setct_CredRevReqTBS 2 23 42 0 35 */
-&(nid_objs[618]),/* OBJ_setct_CredRevReqTBSX 2 23 42 0 36 */
-&(nid_objs[619]),/* OBJ_setct_CredRevResData 2 23 42 0 37 */
-&(nid_objs[620]),/* OBJ_setct_PCertReqData 2 23 42 0 38 */
-&(nid_objs[621]),/* OBJ_setct_PCertResTBS 2 23 42 0 39 */
-&(nid_objs[622]),/* OBJ_setct_BatchAdminReqData 2 23 42 0 40 */
-&(nid_objs[623]),/* OBJ_setct_BatchAdminResData 2 23 42 0 41 */
-&(nid_objs[624]),/* OBJ_setct_CardCInitResTBS 2 23 42 0 42 */
-&(nid_objs[625]),/* OBJ_setct_MeAqCInitResTBS 2 23 42 0 43 */
-&(nid_objs[626]),/* OBJ_setct_RegFormResTBS 2 23 42 0 44 */
-&(nid_objs[627]),/* OBJ_setct_CertReqData 2 23 42 0 45 */
-&(nid_objs[628]),/* OBJ_setct_CertReqTBS 2 23 42 0 46 */
-&(nid_objs[629]),/* OBJ_setct_CertResData 2 23 42 0 47 */
-&(nid_objs[630]),/* OBJ_setct_CertInqReqTBS 2 23 42 0 48 */
-&(nid_objs[631]),/* OBJ_setct_ErrorTBS 2 23 42 0 49 */
-&(nid_objs[632]),/* OBJ_setct_PIDualSignedTBE 2 23 42 0 50 */
-&(nid_objs[633]),/* OBJ_setct_PIUnsignedTBE 2 23 42 0 51 */
-&(nid_objs[634]),/* OBJ_setct_AuthReqTBE 2 23 42 0 52 */
-&(nid_objs[635]),/* OBJ_setct_AuthResTBE 2 23 42 0 53 */
-&(nid_objs[636]),/* OBJ_setct_AuthResTBEX 2 23 42 0 54 */
-&(nid_objs[637]),/* OBJ_setct_AuthTokenTBE 2 23 42 0 55 */
-&(nid_objs[638]),/* OBJ_setct_CapTokenTBE 2 23 42 0 56 */
-&(nid_objs[639]),/* OBJ_setct_CapTokenTBEX 2 23 42 0 57 */
-&(nid_objs[640]),/* OBJ_setct_AcqCardCodeMsgTBE 2 23 42 0 58 */
-&(nid_objs[641]),/* OBJ_setct_AuthRevReqTBE 2 23 42 0 59 */
-&(nid_objs[642]),/* OBJ_setct_AuthRevResTBE 2 23 42 0 60 */
-&(nid_objs[643]),/* OBJ_setct_AuthRevResTBEB 2 23 42 0 61 */
-&(nid_objs[644]),/* OBJ_setct_CapReqTBE 2 23 42 0 62 */
-&(nid_objs[645]),/* OBJ_setct_CapReqTBEX 2 23 42 0 63 */
-&(nid_objs[646]),/* OBJ_setct_CapResTBE 2 23 42 0 64 */
-&(nid_objs[647]),/* OBJ_setct_CapRevReqTBE 2 23 42 0 65 */
-&(nid_objs[648]),/* OBJ_setct_CapRevReqTBEX 2 23 42 0 66 */
-&(nid_objs[649]),/* OBJ_setct_CapRevResTBE 2 23 42 0 67 */
-&(nid_objs[650]),/* OBJ_setct_CredReqTBE 2 23 42 0 68 */
-&(nid_objs[651]),/* OBJ_setct_CredReqTBEX 2 23 42 0 69 */
-&(nid_objs[652]),/* OBJ_setct_CredResTBE 2 23 42 0 70 */
-&(nid_objs[653]),/* OBJ_setct_CredRevReqTBE 2 23 42 0 71 */
-&(nid_objs[654]),/* OBJ_setct_CredRevReqTBEX 2 23 42 0 72 */
-&(nid_objs[655]),/* OBJ_setct_CredRevResTBE 2 23 42 0 73 */
-&(nid_objs[656]),/* OBJ_setct_BatchAdminReqTBE 2 23 42 0 74 */
-&(nid_objs[657]),/* OBJ_setct_BatchAdminResTBE 2 23 42 0 75 */
-&(nid_objs[658]),/* OBJ_setct_RegFormReqTBE 2 23 42 0 76 */
-&(nid_objs[659]),/* OBJ_setct_CertReqTBE 2 23 42 0 77 */
-&(nid_objs[660]),/* OBJ_setct_CertReqTBEX 2 23 42 0 78 */
-&(nid_objs[661]),/* OBJ_setct_CertResTBE 2 23 42 0 79 */
-&(nid_objs[662]),/* OBJ_setct_CRLNotificationTBS 2 23 42 0 80 */
-&(nid_objs[663]),/* OBJ_setct_CRLNotificationResTBS 2 23 42 0 81 */
-&(nid_objs[664]),/* OBJ_setct_BCIDistributionTBS 2 23 42 0 82 */
-&(nid_objs[665]),/* OBJ_setext_genCrypt 2 23 42 1 1 */
-&(nid_objs[666]),/* OBJ_setext_miAuth 2 23 42 1 3 */
-&(nid_objs[667]),/* OBJ_setext_pinSecure 2 23 42 1 4 */
-&(nid_objs[668]),/* OBJ_setext_pinAny 2 23 42 1 5 */
-&(nid_objs[669]),/* OBJ_setext_track2 2 23 42 1 7 */
-&(nid_objs[670]),/* OBJ_setext_cv 2 23 42 1 8 */
-&(nid_objs[684]),/* OBJ_setAttr_Cert 2 23 42 3 0 */
-&(nid_objs[685]),/* OBJ_setAttr_PGWYcap 2 23 42 3 1 */
-&(nid_objs[686]),/* OBJ_setAttr_TokenType 2 23 42 3 2 */
-&(nid_objs[687]),/* OBJ_setAttr_IssCap 2 23 42 3 3 */
-&(nid_objs[671]),/* OBJ_set_policy_root 2 23 42 5 0 */
-&(nid_objs[672]),/* OBJ_setCext_hashedRoot 2 23 42 7 0 */
-&(nid_objs[673]),/* OBJ_setCext_certType 2 23 42 7 1 */
-&(nid_objs[674]),/* OBJ_setCext_merchData 2 23 42 7 2 */
-&(nid_objs[675]),/* OBJ_setCext_cCertRequired 2 23 42 7 3 */
-&(nid_objs[676]),/* OBJ_setCext_tunneling 2 23 42 7 4 */
-&(nid_objs[677]),/* OBJ_setCext_setExt 2 23 42 7 5 */
-&(nid_objs[678]),/* OBJ_setCext_setQualf 2 23 42 7 6 */
-&(nid_objs[679]),/* OBJ_setCext_PGWYcapabilities 2 23 42 7 7 */
-&(nid_objs[680]),/* OBJ_setCext_TokenIdentifier 2 23 42 7 8 */
-&(nid_objs[681]),/* OBJ_setCext_Track2Data 2 23 42 7 9 */
-&(nid_objs[682]),/* OBJ_setCext_TokenType 2 23 42 7 10 */
-&(nid_objs[683]),/* OBJ_setCext_IssuerCapabilities 2 23 42 7 11 */
-&(nid_objs[700]),/* OBJ_set_brand_IATA_ATA 2 23 42 8 1 */
-&(nid_objs[704]),/* OBJ_set_brand_Visa 2 23 42 8 4 */
-&(nid_objs[705]),/* OBJ_set_brand_MasterCard 2 23 42 8 5 */
-&(nid_objs[701]),/* OBJ_set_brand_Diners 2 23 42 8 30 */
-&(nid_objs[702]),/* OBJ_set_brand_AmericanExpress 2 23 42 8 34 */
-&(nid_objs[703]),/* OBJ_set_brand_JCB 2 23 42 8 35 */
+&(nid_objs[737]),/* OBJ_any_policy 2 5 29 32 0 */
+&(nid_objs[519]),/* OBJ_setct_PANData 2 23 42 0 0 */
+&(nid_objs[520]),/* OBJ_setct_PANToken 2 23 42 0 1 */
+&(nid_objs[521]),/* OBJ_setct_PANOnly 2 23 42 0 2 */
+&(nid_objs[522]),/* OBJ_setct_OIData 2 23 42 0 3 */
+&(nid_objs[523]),/* OBJ_setct_PI 2 23 42 0 4 */
+&(nid_objs[524]),/* OBJ_setct_PIData 2 23 42 0 5 */
+&(nid_objs[525]),/* OBJ_setct_PIDataUnsigned 2 23 42 0 6 */
+&(nid_objs[526]),/* OBJ_setct_HODInput 2 23 42 0 7 */
+&(nid_objs[527]),/* OBJ_setct_AuthResBaggage 2 23 42 0 8 */
+&(nid_objs[528]),/* OBJ_setct_AuthRevReqBaggage 2 23 42 0 9 */
+&(nid_objs[529]),/* OBJ_setct_AuthRevResBaggage 2 23 42 0 10 */
+&(nid_objs[530]),/* OBJ_setct_CapTokenSeq 2 23 42 0 11 */
+&(nid_objs[531]),/* OBJ_setct_PInitResData 2 23 42 0 12 */
+&(nid_objs[532]),/* OBJ_setct_PI_TBS 2 23 42 0 13 */
+&(nid_objs[533]),/* OBJ_setct_PResData 2 23 42 0 14 */
+&(nid_objs[534]),/* OBJ_setct_AuthReqTBS 2 23 42 0 16 */
+&(nid_objs[535]),/* OBJ_setct_AuthResTBS 2 23 42 0 17 */
+&(nid_objs[536]),/* OBJ_setct_AuthResTBSX 2 23 42 0 18 */
+&(nid_objs[537]),/* OBJ_setct_AuthTokenTBS 2 23 42 0 19 */
+&(nid_objs[538]),/* OBJ_setct_CapTokenData 2 23 42 0 20 */
+&(nid_objs[539]),/* OBJ_setct_CapTokenTBS 2 23 42 0 21 */
+&(nid_objs[540]),/* OBJ_setct_AcqCardCodeMsg 2 23 42 0 22 */
+&(nid_objs[541]),/* OBJ_setct_AuthRevReqTBS 2 23 42 0 23 */
+&(nid_objs[542]),/* OBJ_setct_AuthRevResData 2 23 42 0 24 */
+&(nid_objs[543]),/* OBJ_setct_AuthRevResTBS 2 23 42 0 25 */
+&(nid_objs[544]),/* OBJ_setct_CapReqTBS 2 23 42 0 26 */
+&(nid_objs[545]),/* OBJ_setct_CapReqTBSX 2 23 42 0 27 */
+&(nid_objs[546]),/* OBJ_setct_CapResData 2 23 42 0 28 */
+&(nid_objs[547]),/* OBJ_setct_CapRevReqTBS 2 23 42 0 29 */
+&(nid_objs[548]),/* OBJ_setct_CapRevReqTBSX 2 23 42 0 30 */
+&(nid_objs[549]),/* OBJ_setct_CapRevResData 2 23 42 0 31 */
+&(nid_objs[550]),/* OBJ_setct_CredReqTBS 2 23 42 0 32 */
+&(nid_objs[551]),/* OBJ_setct_CredReqTBSX 2 23 42 0 33 */
+&(nid_objs[552]),/* OBJ_setct_CredResData 2 23 42 0 34 */
+&(nid_objs[553]),/* OBJ_setct_CredRevReqTBS 2 23 42 0 35 */
+&(nid_objs[554]),/* OBJ_setct_CredRevReqTBSX 2 23 42 0 36 */
+&(nid_objs[555]),/* OBJ_setct_CredRevResData 2 23 42 0 37 */
+&(nid_objs[556]),/* OBJ_setct_PCertReqData 2 23 42 0 38 */
+&(nid_objs[557]),/* OBJ_setct_PCertResTBS 2 23 42 0 39 */
+&(nid_objs[558]),/* OBJ_setct_BatchAdminReqData 2 23 42 0 40 */
+&(nid_objs[559]),/* OBJ_setct_BatchAdminResData 2 23 42 0 41 */
+&(nid_objs[560]),/* OBJ_setct_CardCInitResTBS 2 23 42 0 42 */
+&(nid_objs[561]),/* OBJ_setct_MeAqCInitResTBS 2 23 42 0 43 */
+&(nid_objs[562]),/* OBJ_setct_RegFormResTBS 2 23 42 0 44 */
+&(nid_objs[563]),/* OBJ_setct_CertReqData 2 23 42 0 45 */
+&(nid_objs[564]),/* OBJ_setct_CertReqTBS 2 23 42 0 46 */
+&(nid_objs[565]),/* OBJ_setct_CertResData 2 23 42 0 47 */
+&(nid_objs[566]),/* OBJ_setct_CertInqReqTBS 2 23 42 0 48 */
+&(nid_objs[567]),/* OBJ_setct_ErrorTBS 2 23 42 0 49 */
+&(nid_objs[568]),/* OBJ_setct_PIDualSignedTBE 2 23 42 0 50 */
+&(nid_objs[569]),/* OBJ_setct_PIUnsignedTBE 2 23 42 0 51 */
+&(nid_objs[570]),/* OBJ_setct_AuthReqTBE 2 23 42 0 52 */
+&(nid_objs[571]),/* OBJ_setct_AuthResTBE 2 23 42 0 53 */
+&(nid_objs[572]),/* OBJ_setct_AuthResTBEX 2 23 42 0 54 */
+&(nid_objs[573]),/* OBJ_setct_AuthTokenTBE 2 23 42 0 55 */
+&(nid_objs[574]),/* OBJ_setct_CapTokenTBE 2 23 42 0 56 */
+&(nid_objs[575]),/* OBJ_setct_CapTokenTBEX 2 23 42 0 57 */
+&(nid_objs[576]),/* OBJ_setct_AcqCardCodeMsgTBE 2 23 42 0 58 */
+&(nid_objs[577]),/* OBJ_setct_AuthRevReqTBE 2 23 42 0 59 */
+&(nid_objs[578]),/* OBJ_setct_AuthRevResTBE 2 23 42 0 60 */
+&(nid_objs[579]),/* OBJ_setct_AuthRevResTBEB 2 23 42 0 61 */
+&(nid_objs[580]),/* OBJ_setct_CapReqTBE 2 23 42 0 62 */
+&(nid_objs[581]),/* OBJ_setct_CapReqTBEX 2 23 42 0 63 */
+&(nid_objs[582]),/* OBJ_setct_CapResTBE 2 23 42 0 64 */
+&(nid_objs[583]),/* OBJ_setct_CapRevReqTBE 2 23 42 0 65 */
+&(nid_objs[584]),/* OBJ_setct_CapRevReqTBEX 2 23 42 0 66 */
+&(nid_objs[585]),/* OBJ_setct_CapRevResTBE 2 23 42 0 67 */
+&(nid_objs[586]),/* OBJ_setct_CredReqTBE 2 23 42 0 68 */
+&(nid_objs[587]),/* OBJ_setct_CredReqTBEX 2 23 42 0 69 */
+&(nid_objs[588]),/* OBJ_setct_CredResTBE 2 23 42 0 70 */
+&(nid_objs[589]),/* OBJ_setct_CredRevReqTBE 2 23 42 0 71 */
+&(nid_objs[590]),/* OBJ_setct_CredRevReqTBEX 2 23 42 0 72 */
+&(nid_objs[591]),/* OBJ_setct_CredRevResTBE 2 23 42 0 73 */
+&(nid_objs[592]),/* OBJ_setct_BatchAdminReqTBE 2 23 42 0 74 */
+&(nid_objs[593]),/* OBJ_setct_BatchAdminResTBE 2 23 42 0 75 */
+&(nid_objs[594]),/* OBJ_setct_RegFormReqTBE 2 23 42 0 76 */
+&(nid_objs[595]),/* OBJ_setct_CertReqTBE 2 23 42 0 77 */
+&(nid_objs[596]),/* OBJ_setct_CertReqTBEX 2 23 42 0 78 */
+&(nid_objs[597]),/* OBJ_setct_CertResTBE 2 23 42 0 79 */
+&(nid_objs[598]),/* OBJ_setct_CRLNotificationTBS 2 23 42 0 80 */
+&(nid_objs[599]),/* OBJ_setct_CRLNotificationResTBS 2 23 42 0 81 */
+&(nid_objs[600]),/* OBJ_setct_BCIDistributionTBS 2 23 42 0 82 */
+&(nid_objs[601]),/* OBJ_setext_genCrypt 2 23 42 1 1 */
+&(nid_objs[602]),/* OBJ_setext_miAuth 2 23 42 1 3 */
+&(nid_objs[603]),/* OBJ_setext_pinSecure 2 23 42 1 4 */
+&(nid_objs[604]),/* OBJ_setext_pinAny 2 23 42 1 5 */
+&(nid_objs[605]),/* OBJ_setext_track2 2 23 42 1 7 */
+&(nid_objs[606]),/* OBJ_setext_cv 2 23 42 1 8 */
+&(nid_objs[620]),/* OBJ_setAttr_Cert 2 23 42 3 0 */
+&(nid_objs[621]),/* OBJ_setAttr_PGWYcap 2 23 42 3 1 */
+&(nid_objs[622]),/* OBJ_setAttr_TokenType 2 23 42 3 2 */
+&(nid_objs[623]),/* OBJ_setAttr_IssCap 2 23 42 3 3 */
+&(nid_objs[607]),/* OBJ_set_policy_root 2 23 42 5 0 */
+&(nid_objs[608]),/* OBJ_setCext_hashedRoot 2 23 42 7 0 */
+&(nid_objs[609]),/* OBJ_setCext_certType 2 23 42 7 1 */
+&(nid_objs[610]),/* OBJ_setCext_merchData 2 23 42 7 2 */
+&(nid_objs[611]),/* OBJ_setCext_cCertRequired 2 23 42 7 3 */
+&(nid_objs[612]),/* OBJ_setCext_tunneling 2 23 42 7 4 */
+&(nid_objs[613]),/* OBJ_setCext_setExt 2 23 42 7 5 */
+&(nid_objs[614]),/* OBJ_setCext_setQualf 2 23 42 7 6 */
+&(nid_objs[615]),/* OBJ_setCext_PGWYcapabilities 2 23 42 7 7 */
+&(nid_objs[616]),/* OBJ_setCext_TokenIdentifier 2 23 42 7 8 */
+&(nid_objs[617]),/* OBJ_setCext_Track2Data 2 23 42 7 9 */
+&(nid_objs[618]),/* OBJ_setCext_TokenType 2 23 42 7 10 */
+&(nid_objs[619]),/* OBJ_setCext_IssuerCapabilities 2 23 42 7 11 */
+&(nid_objs[636]),/* OBJ_set_brand_IATA_ATA 2 23 42 8 1 */
+&(nid_objs[640]),/* OBJ_set_brand_Visa 2 23 42 8 4 */
+&(nid_objs[641]),/* OBJ_set_brand_MasterCard 2 23 42 8 5 */
+&(nid_objs[637]),/* OBJ_set_brand_Diners 2 23 42 8 30 */
+&(nid_objs[638]),/* OBJ_set_brand_AmericanExpress 2 23 42 8 34 */
+&(nid_objs[639]),/* OBJ_set_brand_JCB 2 23 42 8 35 */
&(nid_objs[184]),/* OBJ_X9_57 1 2 840 10040 */
&(nid_objs[405]),/* OBJ_ansi_X9_62 1 2 840 10045 */
&(nid_objs[389]),/* OBJ_Enterprises 1 3 6 1 4 1 */
-&(nid_objs[569]),/* OBJ_mime_mhs 1 3 6 1 7 1 */
+&(nid_objs[504]),/* OBJ_mime_mhs 1 3 6 1 7 1 */
&(nid_objs[104]),/* OBJ_md5WithRSA 1 3 14 3 2 3 */
&(nid_objs[29]),/* OBJ_des_ecb 1 3 14 3 2 6 */
&(nid_objs[31]),/* OBJ_des_cbc 1 3 14 3 2 7 */
@@ -3631,69 +3663,69 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[115]),/* OBJ_sha1WithRSA 1 3 14 3 2 29 */
&(nid_objs[117]),/* OBJ_ripemd160 1 3 36 3 2 1 */
&(nid_objs[143]),/* OBJ_sxnet 1 3 101 1 4 1 */
-&(nid_objs[548]),/* OBJ_sect163k1 1 3 132 0 1 */
-&(nid_objs[549]),/* OBJ_sect163r1 1 3 132 0 2 */
-&(nid_objs[555]),/* OBJ_sect239k1 1 3 132 0 3 */
-&(nid_objs[544]),/* OBJ_sect113r1 1 3 132 0 4 */
-&(nid_objs[545]),/* OBJ_sect113r2 1 3 132 0 5 */
-&(nid_objs[529]),/* OBJ_secp112r1 1 3 132 0 6 */
-&(nid_objs[530]),/* OBJ_secp112r2 1 3 132 0 7 */
-&(nid_objs[534]),/* OBJ_secp160r1 1 3 132 0 8 */
-&(nid_objs[533]),/* OBJ_secp160k1 1 3 132 0 9 */
-&(nid_objs[540]),/* OBJ_secp256k1 1 3 132 0 10 */
-&(nid_objs[550]),/* OBJ_sect163r2 1 3 132 0 15 */
-&(nid_objs[556]),/* OBJ_sect283k1 1 3 132 0 16 */
-&(nid_objs[557]),/* OBJ_sect283r1 1 3 132 0 17 */
-&(nid_objs[546]),/* OBJ_sect131r1 1 3 132 0 22 */
-&(nid_objs[547]),/* OBJ_sect131r2 1 3 132 0 23 */
-&(nid_objs[551]),/* OBJ_sect193r1 1 3 132 0 24 */
-&(nid_objs[552]),/* OBJ_sect193r2 1 3 132 0 25 */
-&(nid_objs[553]),/* OBJ_sect233k1 1 3 132 0 26 */
-&(nid_objs[554]),/* OBJ_sect233r1 1 3 132 0 27 */
-&(nid_objs[531]),/* OBJ_secp128r1 1 3 132 0 28 */
-&(nid_objs[532]),/* OBJ_secp128r2 1 3 132 0 29 */
-&(nid_objs[535]),/* OBJ_secp160r2 1 3 132 0 30 */
-&(nid_objs[536]),/* OBJ_secp192k1 1 3 132 0 31 */
-&(nid_objs[538]),/* OBJ_secp224k1 1 3 132 0 32 */
-&(nid_objs[539]),/* OBJ_secp224r1 1 3 132 0 33 */
-&(nid_objs[542]),/* OBJ_secp384r1 1 3 132 0 34 */
-&(nid_objs[543]),/* OBJ_secp521r1 1 3 132 0 35 */
-&(nid_objs[558]),/* OBJ_sect409k1 1 3 132 0 36 */
-&(nid_objs[559]),/* OBJ_sect409r1 1 3 132 0 37 */
-&(nid_objs[560]),/* OBJ_sect571k1 1 3 132 0 38 */
-&(nid_objs[561]),/* OBJ_sect571r1 1 3 132 0 39 */
-&(nid_objs[688]),/* OBJ_set_rootKeyThumb 2 23 42 3 0 0 */
-&(nid_objs[689]),/* OBJ_set_addPolicy 2 23 42 3 0 1 */
-&(nid_objs[690]),/* OBJ_setAttr_Token_EMV 2 23 42 3 2 1 */
-&(nid_objs[691]),/* OBJ_setAttr_Token_B0Prime 2 23 42 3 2 2 */
-&(nid_objs[692]),/* OBJ_setAttr_IssCap_CVM 2 23 42 3 3 3 */
-&(nid_objs[693]),/* OBJ_setAttr_IssCap_T2 2 23 42 3 3 4 */
-&(nid_objs[694]),/* OBJ_setAttr_IssCap_Sig 2 23 42 3 3 5 */
-&(nid_objs[706]),/* OBJ_set_brand_Novus 2 23 42 8 6011 */
-&(nid_objs[564]),/* OBJ_wap_wsg_idm_ecid_wtls1 2 23 43 13 4 1 */
-&(nid_objs[709]),/* OBJ_wap_wsg_idm_ecid_wtls3 2 23 43 13 4 3 */
-&(nid_objs[710]),/* OBJ_wap_wsg_idm_ecid_wtls4 2 23 43 13 4 4 */
-&(nid_objs[711]),/* OBJ_wap_wsg_idm_ecid_wtls5 2 23 43 13 4 5 */
-&(nid_objs[565]),/* OBJ_wap_wsg_idm_ecid_wtls6 2 23 43 13 4 6 */
-&(nid_objs[712]),/* OBJ_wap_wsg_idm_ecid_wtls7 2 23 43 13 4 7 */
-&(nid_objs[566]),/* OBJ_wap_wsg_idm_ecid_wtls8 2 23 43 13 4 8 */
-&(nid_objs[567]),/* OBJ_wap_wsg_idm_ecid_wtls9 2 23 43 13 4 9 */
-&(nid_objs[713]),/* OBJ_wap_wsg_idm_ecid_wtls10 2 23 43 13 4 10 */
-&(nid_objs[714]),/* OBJ_wap_wsg_idm_ecid_wtls11 2 23 43 13 4 11 */
-&(nid_objs[715]),/* OBJ_wap_wsg_idm_ecid_wtls12 2 23 43 13 4 12 */
+&(nid_objs[707]),/* OBJ_sect163k1 1 3 132 0 1 */
+&(nid_objs[708]),/* OBJ_sect163r1 1 3 132 0 2 */
+&(nid_objs[714]),/* OBJ_sect239k1 1 3 132 0 3 */
+&(nid_objs[703]),/* OBJ_sect113r1 1 3 132 0 4 */
+&(nid_objs[704]),/* OBJ_sect113r2 1 3 132 0 5 */
+&(nid_objs[690]),/* OBJ_secp112r1 1 3 132 0 6 */
+&(nid_objs[691]),/* OBJ_secp112r2 1 3 132 0 7 */
+&(nid_objs[695]),/* OBJ_secp160r1 1 3 132 0 8 */
+&(nid_objs[694]),/* OBJ_secp160k1 1 3 132 0 9 */
+&(nid_objs[700]),/* OBJ_secp256k1 1 3 132 0 10 */
+&(nid_objs[709]),/* OBJ_sect163r2 1 3 132 0 15 */
+&(nid_objs[715]),/* OBJ_sect283k1 1 3 132 0 16 */
+&(nid_objs[716]),/* OBJ_sect283r1 1 3 132 0 17 */
+&(nid_objs[705]),/* OBJ_sect131r1 1 3 132 0 22 */
+&(nid_objs[706]),/* OBJ_sect131r2 1 3 132 0 23 */
+&(nid_objs[710]),/* OBJ_sect193r1 1 3 132 0 24 */
+&(nid_objs[711]),/* OBJ_sect193r2 1 3 132 0 25 */
+&(nid_objs[712]),/* OBJ_sect233k1 1 3 132 0 26 */
+&(nid_objs[713]),/* OBJ_sect233r1 1 3 132 0 27 */
+&(nid_objs[692]),/* OBJ_secp128r1 1 3 132 0 28 */
+&(nid_objs[693]),/* OBJ_secp128r2 1 3 132 0 29 */
+&(nid_objs[696]),/* OBJ_secp160r2 1 3 132 0 30 */
+&(nid_objs[697]),/* OBJ_secp192k1 1 3 132 0 31 */
+&(nid_objs[698]),/* OBJ_secp224k1 1 3 132 0 32 */
+&(nid_objs[699]),/* OBJ_secp224r1 1 3 132 0 33 */
+&(nid_objs[701]),/* OBJ_secp384r1 1 3 132 0 34 */
+&(nid_objs[702]),/* OBJ_secp521r1 1 3 132 0 35 */
+&(nid_objs[717]),/* OBJ_sect409k1 1 3 132 0 36 */
+&(nid_objs[718]),/* OBJ_sect409r1 1 3 132 0 37 */
+&(nid_objs[719]),/* OBJ_sect571k1 1 3 132 0 38 */
+&(nid_objs[720]),/* OBJ_sect571r1 1 3 132 0 39 */
+&(nid_objs[624]),/* OBJ_set_rootKeyThumb 2 23 42 3 0 0 */
+&(nid_objs[625]),/* OBJ_set_addPolicy 2 23 42 3 0 1 */
+&(nid_objs[626]),/* OBJ_setAttr_Token_EMV 2 23 42 3 2 1 */
+&(nid_objs[627]),/* OBJ_setAttr_Token_B0Prime 2 23 42 3 2 2 */
+&(nid_objs[628]),/* OBJ_setAttr_IssCap_CVM 2 23 42 3 3 3 */
+&(nid_objs[629]),/* OBJ_setAttr_IssCap_T2 2 23 42 3 3 4 */
+&(nid_objs[630]),/* OBJ_setAttr_IssCap_Sig 2 23 42 3 3 5 */
+&(nid_objs[642]),/* OBJ_set_brand_Novus 2 23 42 8 6011 */
+&(nid_objs[721]),/* OBJ_wap_wsg_idm_ecid_wtls1 2 23 43 13 4 1 */
+&(nid_objs[722]),/* OBJ_wap_wsg_idm_ecid_wtls3 2 23 43 13 4 3 */
+&(nid_objs[723]),/* OBJ_wap_wsg_idm_ecid_wtls4 2 23 43 13 4 4 */
+&(nid_objs[724]),/* OBJ_wap_wsg_idm_ecid_wtls5 2 23 43 13 4 5 */
+&(nid_objs[725]),/* OBJ_wap_wsg_idm_ecid_wtls6 2 23 43 13 4 6 */
+&(nid_objs[726]),/* OBJ_wap_wsg_idm_ecid_wtls7 2 23 43 13 4 7 */
+&(nid_objs[727]),/* OBJ_wap_wsg_idm_ecid_wtls8 2 23 43 13 4 8 */
+&(nid_objs[728]),/* OBJ_wap_wsg_idm_ecid_wtls9 2 23 43 13 4 9 */
+&(nid_objs[729]),/* OBJ_wap_wsg_idm_ecid_wtls10 2 23 43 13 4 10 */
+&(nid_objs[730]),/* OBJ_wap_wsg_idm_ecid_wtls11 2 23 43 13 4 11 */
+&(nid_objs[731]),/* OBJ_wap_wsg_idm_ecid_wtls12 2 23 43 13 4 12 */
&(nid_objs[124]),/* OBJ_rle_compression 1 1 1 1 666 1 */
&(nid_objs[125]),/* OBJ_zlib_compression 1 1 1 1 666 2 */
&(nid_objs[ 1]),/* OBJ_rsadsi 1 2 840 113549 */
&(nid_objs[185]),/* OBJ_X9cm 1 2 840 10040 4 */
&(nid_objs[127]),/* OBJ_id_pkix 1 3 6 1 5 5 7 */
-&(nid_objs[570]),/* OBJ_mime_mhs_headings 1 3 6 1 7 1 1 */
-&(nid_objs[571]),/* OBJ_mime_mhs_bodies 1 3 6 1 7 1 2 */
+&(nid_objs[505]),/* OBJ_mime_mhs_headings 1 3 6 1 7 1 1 */
+&(nid_objs[506]),/* OBJ_mime_mhs_bodies 1 3 6 1 7 1 2 */
&(nid_objs[119]),/* OBJ_ripemd160WithRSA 1 3 36 3 3 1 2 */
-&(nid_objs[695]),/* OBJ_setAttr_GenCryptgrm 2 23 42 3 3 3 1 */
-&(nid_objs[696]),/* OBJ_setAttr_T2Enc 2 23 42 3 3 4 1 */
-&(nid_objs[697]),/* OBJ_setAttr_T2cleartxt 2 23 42 3 3 4 2 */
-&(nid_objs[698]),/* OBJ_setAttr_TokICCsig 2 23 42 3 3 5 1 */
-&(nid_objs[699]),/* OBJ_setAttr_SecDevSig 2 23 42 3 3 5 2 */
+&(nid_objs[631]),/* OBJ_setAttr_GenCryptgrm 2 23 42 3 3 3 1 */
+&(nid_objs[632]),/* OBJ_setAttr_T2Enc 2 23 42 3 3 4 1 */
+&(nid_objs[633]),/* OBJ_setAttr_T2cleartxt 2 23 42 3 3 4 2 */
+&(nid_objs[634]),/* OBJ_setAttr_TokICCsig 2 23 42 3 3 5 1 */
+&(nid_objs[635]),/* OBJ_setAttr_SecDevSig 2 23 42 3 3 5 2 */
&(nid_objs[436]),/* OBJ_ucl 0 9 2342 19200300 */
&(nid_objs[ 2]),/* OBJ_pkcs 1 2 840 113549 1 */
&(nid_objs[431]),/* OBJ_hold_instruction_none 1 2 840 10040 2 1 */
@@ -3718,9 +3750,10 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[266]),/* OBJ_id_aca 1 3 6 1 5 5 7 10 */
&(nid_objs[267]),/* OBJ_id_qcs 1 3 6 1 5 5 7 11 */
&(nid_objs[268]),/* OBJ_id_cct 1 3 6 1 5 5 7 12 */
+&(nid_objs[746]),/* OBJ_id_ppl 1 3 6 1 5 5 7 21 */
&(nid_objs[176]),/* OBJ_id_ad 1 3 6 1 5 5 7 48 */
-&(nid_objs[572]),/* OBJ_id_hex_partial_message 1 3 6 1 7 1 1 1 */
-&(nid_objs[573]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */
+&(nid_objs[507]),/* OBJ_id_hex_partial_message 1 3 6 1 7 1 1 1 */
+&(nid_objs[508]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */
&(nid_objs[57]),/* OBJ_netscape 2 16 840 1 113730 */
&(nid_objs[437]),/* OBJ_pilot 0 9 2342 19200300 100 */
&(nid_objs[186]),/* OBJ_pkcs1 1 2 840 113549 1 1 */
@@ -3736,28 +3769,28 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[ 5]),/* OBJ_rc4 1 2 840 113549 3 4 */
&(nid_objs[44]),/* OBJ_des_ede3_cbc 1 2 840 113549 3 7 */
&(nid_objs[120]),/* OBJ_rc5_cbc 1 2 840 113549 3 8 */
-&(nid_objs[707]),/* OBJ_des_cdmf 1 2 840 113549 3 10 */
-&(nid_objs[503]),/* OBJ_X9_62_id_characteristic_two_basis 1 2 840 10045 1 2 3 */
-&(nid_objs[507]),/* OBJ_X9_62_c2pnb163v1 1 2 840 10045 3 0 1 */
-&(nid_objs[508]),/* OBJ_X9_62_c2pnb163v2 1 2 840 10045 3 0 2 */
-&(nid_objs[509]),/* OBJ_X9_62_c2pnb163v3 1 2 840 10045 3 0 3 */
-&(nid_objs[510]),/* OBJ_X9_62_c2pnb176v1 1 2 840 10045 3 0 4 */
-&(nid_objs[511]),/* OBJ_X9_62_c2tnb191v1 1 2 840 10045 3 0 5 */
-&(nid_objs[512]),/* OBJ_X9_62_c2tnb191v2 1 2 840 10045 3 0 6 */
-&(nid_objs[513]),/* OBJ_X9_62_c2tnb191v3 1 2 840 10045 3 0 7 */
-&(nid_objs[514]),/* OBJ_X9_62_c2onb191v4 1 2 840 10045 3 0 8 */
-&(nid_objs[515]),/* OBJ_X9_62_c2onb191v5 1 2 840 10045 3 0 9 */
-&(nid_objs[516]),/* OBJ_X9_62_c2pnb208w1 1 2 840 10045 3 0 10 */
-&(nid_objs[517]),/* OBJ_X9_62_c2tnb239v1 1 2 840 10045 3 0 11 */
-&(nid_objs[518]),/* OBJ_X9_62_c2tnb239v2 1 2 840 10045 3 0 12 */
-&(nid_objs[519]),/* OBJ_X9_62_c2tnb239v3 1 2 840 10045 3 0 13 */
-&(nid_objs[520]),/* OBJ_X9_62_c2onb239v4 1 2 840 10045 3 0 14 */
-&(nid_objs[521]),/* OBJ_X9_62_c2onb239v5 1 2 840 10045 3 0 15 */
-&(nid_objs[522]),/* OBJ_X9_62_c2pnb272w1 1 2 840 10045 3 0 16 */
-&(nid_objs[523]),/* OBJ_X9_62_c2pnb304w1 1 2 840 10045 3 0 17 */
-&(nid_objs[524]),/* OBJ_X9_62_c2tnb359v1 1 2 840 10045 3 0 18 */
-&(nid_objs[525]),/* OBJ_X9_62_c2pnb368w1 1 2 840 10045 3 0 19 */
-&(nid_objs[526]),/* OBJ_X9_62_c2tnb431r1 1 2 840 10045 3 0 20 */
+&(nid_objs[643]),/* OBJ_des_cdmf 1 2 840 113549 3 10 */
+&(nid_objs[666]),/* OBJ_X9_62_id_characteristic_two_basis 1 2 840 10045 1 2 3 */
+&(nid_objs[670]),/* OBJ_X9_62_c2pnb163v1 1 2 840 10045 3 0 1 */
+&(nid_objs[671]),/* OBJ_X9_62_c2pnb163v2 1 2 840 10045 3 0 2 */
+&(nid_objs[672]),/* OBJ_X9_62_c2pnb163v3 1 2 840 10045 3 0 3 */
+&(nid_objs[673]),/* OBJ_X9_62_c2pnb176v1 1 2 840 10045 3 0 4 */
+&(nid_objs[674]),/* OBJ_X9_62_c2tnb191v1 1 2 840 10045 3 0 5 */
+&(nid_objs[675]),/* OBJ_X9_62_c2tnb191v2 1 2 840 10045 3 0 6 */
+&(nid_objs[676]),/* OBJ_X9_62_c2tnb191v3 1 2 840 10045 3 0 7 */
+&(nid_objs[677]),/* OBJ_X9_62_c2onb191v4 1 2 840 10045 3 0 8 */
+&(nid_objs[678]),/* OBJ_X9_62_c2onb191v5 1 2 840 10045 3 0 9 */
+&(nid_objs[679]),/* OBJ_X9_62_c2pnb208w1 1 2 840 10045 3 0 10 */
+&(nid_objs[680]),/* OBJ_X9_62_c2tnb239v1 1 2 840 10045 3 0 11 */
+&(nid_objs[681]),/* OBJ_X9_62_c2tnb239v2 1 2 840 10045 3 0 12 */
+&(nid_objs[682]),/* OBJ_X9_62_c2tnb239v3 1 2 840 10045 3 0 13 */
+&(nid_objs[683]),/* OBJ_X9_62_c2onb239v4 1 2 840 10045 3 0 14 */
+&(nid_objs[684]),/* OBJ_X9_62_c2onb239v5 1 2 840 10045 3 0 15 */
+&(nid_objs[685]),/* OBJ_X9_62_c2pnb272w1 1 2 840 10045 3 0 16 */
+&(nid_objs[686]),/* OBJ_X9_62_c2pnb304w1 1 2 840 10045 3 0 17 */
+&(nid_objs[687]),/* OBJ_X9_62_c2tnb359v1 1 2 840 10045 3 0 18 */
+&(nid_objs[688]),/* OBJ_X9_62_c2pnb368w1 1 2 840 10045 3 0 19 */
+&(nid_objs[689]),/* OBJ_X9_62_c2tnb431r1 1 2 840 10045 3 0 20 */
&(nid_objs[409]),/* OBJ_X9_62_prime192v1 1 2 840 10045 3 1 1 */
&(nid_objs[410]),/* OBJ_X9_62_prime192v2 1 2 840 10045 3 1 2 */
&(nid_objs[411]),/* OBJ_X9_62_prime192v3 1 2 840 10045 3 1 3 */
@@ -3792,6 +3825,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[292]),/* OBJ_sbqp_routerIdentifier 1 3 6 1 5 5 7 1 9 */
&(nid_objs[397]),/* OBJ_ac_proxying 1 3 6 1 5 5 7 1 10 */
&(nid_objs[398]),/* OBJ_sinfo_access 1 3 6 1 5 5 7 1 11 */
+&(nid_objs[747]),/* OBJ_proxyCertInfo 1 3 6 1 5 5 7 1 14 */
&(nid_objs[164]),/* OBJ_id_qt_cps 1 3 6 1 5 5 7 2 1 */
&(nid_objs[165]),/* OBJ_id_qt_unotice 1 3 6 1 5 5 7 2 2 */
&(nid_objs[293]),/* OBJ_textNotice 1 3 6 1 5 5 7 2 3 */
@@ -3862,6 +3896,9 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[360]),/* OBJ_id_cct_crs 1 3 6 1 5 5 7 12 1 */
&(nid_objs[361]),/* OBJ_id_cct_PKIData 1 3 6 1 5 5 7 12 2 */
&(nid_objs[362]),/* OBJ_id_cct_PKIResponse 1 3 6 1 5 5 7 12 3 */
+&(nid_objs[748]),/* OBJ_id_ppl_anyLanguage 1 3 6 1 5 5 7 21 0 */
+&(nid_objs[749]),/* OBJ_id_ppl_inheritAll 1 3 6 1 5 5 7 21 1 */
+&(nid_objs[750]),/* OBJ_Independent 1 3 6 1 5 5 7 21 2 */
&(nid_objs[178]),/* OBJ_ad_OCSP 1 3 6 1 5 5 7 48 1 */
&(nid_objs[179]),/* OBJ_ad_ca_issuers 1 3 6 1 5 5 7 48 2 */
&(nid_objs[363]),/* OBJ_ad_timeStamping 1 3 6 1 5 5 7 48 3 */
@@ -3879,11 +3916,11 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[396]),/* OBJ_md4WithRSAEncryption 1 2 840 113549 1 1 3 */
&(nid_objs[ 8]),/* OBJ_md5WithRSAEncryption 1 2 840 113549 1 1 4 */
&(nid_objs[65]),/* OBJ_sha1WithRSAEncryption 1 2 840 113549 1 1 5 */
-&(nid_objs[708]),/* OBJ_rsaOAEPEncryptionSET 1 2 840 113549 1 1 6 */
-&(nid_objs[737]),/* OBJ_sha256WithRSAEncryption 1 2 840 113549 1 1 11 */
-&(nid_objs[738]),/* OBJ_sha384WithRSAEncryption 1 2 840 113549 1 1 12 */
-&(nid_objs[739]),/* OBJ_sha512WithRSAEncryption 1 2 840 113549 1 1 13 */
-&(nid_objs[740]),/* OBJ_sha224WithRSAEncryption 1 2 840 113549 1 1 14 */
+&(nid_objs[644]),/* OBJ_rsaOAEPEncryptionSET 1 2 840 113549 1 1 6 */
+&(nid_objs[732]),/* OBJ_sha256WithRSAEncryption 1 2 840 113549 1 1 11 */
+&(nid_objs[733]),/* OBJ_sha384WithRSAEncryption 1 2 840 113549 1 1 12 */
+&(nid_objs[734]),/* OBJ_sha512WithRSAEncryption 1 2 840 113549 1 1 13 */
+&(nid_objs[735]),/* OBJ_sha224WithRSAEncryption 1 2 840 113549 1 1 14 */
&(nid_objs[28]),/* OBJ_dhKeyAgreement 1 2 840 113549 1 3 1 */
&(nid_objs[ 9]),/* OBJ_pbeWithMD2AndDES_CBC 1 2 840 113549 1 5 1 */
&(nid_objs[10]),/* OBJ_pbeWithMD5AndDES_CBC 1 2 840 113549 1 5 3 */
@@ -3914,9 +3951,9 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[188]),/* OBJ_SMIME 1 2 840 113549 1 9 16 */
&(nid_objs[156]),/* OBJ_friendlyName 1 2 840 113549 1 9 20 */
&(nid_objs[157]),/* OBJ_localKeyID 1 2 840 113549 1 9 21 */
-&(nid_objs[504]),/* OBJ_X9_62_onBasis 1 2 840 10045 1 2 3 1 */
-&(nid_objs[505]),/* OBJ_X9_62_tpBasis 1 2 840 10045 1 2 3 2 */
-&(nid_objs[506]),/* OBJ_X9_62_ppBasis 1 2 840 10045 1 2 3 3 */
+&(nid_objs[667]),/* OBJ_X9_62_onBasis 1 2 840 10045 1 2 3 1 */
+&(nid_objs[668]),/* OBJ_X9_62_tpBasis 1 2 840 10045 1 2 3 2 */
+&(nid_objs[669]),/* OBJ_X9_62_ppBasis 1 2 840 10045 1 2 3 3 */
&(nid_objs[417]),/* OBJ_ms_csp_name 1 3 6 1 4 1 311 17 1 */
&(nid_objs[390]),/* OBJ_dcObject 1 3 6 1 4 1 1466 344 */
&(nid_objs[91]),/* OBJ_bf_cbc 1 3 6 1 4 1 3029 1 2 */
@@ -3951,10 +3988,10 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[427]),/* OBJ_aes_256_cbc 2 16 840 1 101 3 4 1 42 */
&(nid_objs[428]),/* OBJ_aes_256_ofb128 2 16 840 1 101 3 4 1 43 */
&(nid_objs[429]),/* OBJ_aes_256_cfb128 2 16 840 1 101 3 4 1 44 */
-&(nid_objs[741]),/* OBJ_sha256 2 16 840 1 101 3 4 2 1 */
-&(nid_objs[742]),/* OBJ_sha384 2 16 840 1 101 3 4 2 2 */
-&(nid_objs[743]),/* OBJ_sha512 2 16 840 1 101 3 4 2 3 */
-&(nid_objs[744]),/* OBJ_sha224 2 16 840 1 101 3 4 2 4 */
+&(nid_objs[740]),/* OBJ_sha256 2 16 840 1 101 3 4 2 1 */
+&(nid_objs[741]),/* OBJ_sha384 2 16 840 1 101 3 4 2 2 */
+&(nid_objs[742]),/* OBJ_sha512 2 16 840 1 101 3 4 2 3 */
+&(nid_objs[743]),/* OBJ_sha224 2 16 840 1 101 3 4 2 4 */
&(nid_objs[71]),/* OBJ_netscape_cert_type 2 16 840 1 113730 1 1 */
&(nid_objs[72]),/* OBJ_netscape_base_url 2 16 840 1 113730 1 2 */
&(nid_objs[73]),/* OBJ_netscape_revocation_url 2 16 840 1 113730 1 3 */
@@ -4050,8 +4087,8 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[136]),/* OBJ_ms_ctl_sign 1 3 6 1 4 1 311 10 3 1 */
&(nid_objs[137]),/* OBJ_ms_sgc 1 3 6 1 4 1 311 10 3 3 */
&(nid_objs[138]),/* OBJ_ms_efs 1 3 6 1 4 1 311 10 3 4 */
-&(nid_objs[716]),/* OBJ_ms_smartcard_login 1 3 6 1 4 1 311 20 2 2 */
-&(nid_objs[717]),/* OBJ_ms_upn 1 3 6 1 4 1 311 20 2 3 */
+&(nid_objs[648]),/* OBJ_ms_smartcard_login 1 3 6 1 4 1 311 20 2 2 */
+&(nid_objs[649]),/* OBJ_ms_upn 1 3 6 1 4 1 311 20 2 3 */
&(nid_objs[196]),/* OBJ_id_smime_mod_cms 1 2 840 113549 1 9 16 0 1 */
&(nid_objs[197]),/* OBJ_id_smime_mod_ess 1 2 840 113549 1 9 16 0 2 */
&(nid_objs[198]),/* OBJ_id_smime_mod_oid 1 2 840 113549 1 9 16 0 3 */
diff --git a/crypto/objects/obj_err.c b/crypto/objects/obj_err.c
index 80ab6855af..2b5f43e3cc 100644
--- a/crypto/objects/obj_err.c
+++ b/crypto/objects/obj_err.c
@@ -1,6 +1,6 @@
/* crypto/objects/obj_err.c */
/* ====================================================================
- * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -66,8 +66,10 @@
#ifndef OPENSSL_NO_ERR
static ERR_STRING_DATA OBJ_str_functs[]=
{
+{ERR_PACK(0,OBJ_F_OBJ_ADD_OBJECT,0), "OBJ_add_object"},
{ERR_PACK(0,OBJ_F_OBJ_CREATE,0), "OBJ_create"},
{ERR_PACK(0,OBJ_F_OBJ_DUP,0), "OBJ_dup"},
+{ERR_PACK(0,OBJ_F_OBJ_NAME_NEW_INDEX,0), "OBJ_NAME_new_index"},
{ERR_PACK(0,OBJ_F_OBJ_NID2LN,0), "OBJ_nid2ln"},
{ERR_PACK(0,OBJ_F_OBJ_NID2OBJ,0), "OBJ_nid2obj"},
{ERR_PACK(0,OBJ_F_OBJ_NID2SN,0), "OBJ_nid2sn"},
diff --git a/crypto/objects/obj_mac.h b/crypto/objects/obj_mac.h
index 66bdf65f2c..322577094a 100644
--- a/crypto/objects/obj_mac.h
+++ b/crypto/objects/obj_mac.h
@@ -69,7 +69,7 @@
#define SN_itu_t "ITU-T"
#define LN_itu_t "itu-t"
-#define NID_itu_t 721
+#define NID_itu_t 645
#define OBJ_itu_t 0L
#define NID_ccitt 404
@@ -82,7 +82,7 @@
#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T"
#define LN_joint_iso_itu_t "joint-iso-itu-t"
-#define NID_joint_iso_itu_t 722
+#define NID_joint_iso_itu_t 646
#define OBJ_joint_iso_itu_t 2L
#define NID_joint_iso_ccitt 393
@@ -94,24 +94,24 @@
#define OBJ_member_body OBJ_iso,2L
#define SN_identified_organization "identified-organization"
-#define NID_identified_organization 527
+#define NID_identified_organization 662
#define OBJ_identified_organization OBJ_iso,3L
#define SN_certicom_arc "certicom-arc"
-#define NID_certicom_arc 528
+#define NID_certicom_arc 663
#define OBJ_certicom_arc OBJ_identified_organization,132L
#define SN_international_organizations "international-organizations"
#define LN_international_organizations "International Organizations"
-#define NID_international_organizations 723
+#define NID_international_organizations 647
#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L
#define SN_wap "wap"
-#define NID_wap 562
+#define NID_wap 664
#define OBJ_wap OBJ_international_organizations,43L
#define SN_wap_wsg "wap-wsg"
-#define NID_wap_wsg 563
+#define NID_wap_wsg 665
#define OBJ_wap_wsg OBJ_wap,13L
#define SN_selected_attribute_types "selected-attribute-types"
@@ -164,19 +164,19 @@
#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L
#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis"
-#define NID_X9_62_id_characteristic_two_basis 503
+#define NID_X9_62_id_characteristic_two_basis 666
#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L
#define SN_X9_62_onBasis "onBasis"
-#define NID_X9_62_onBasis 504
+#define NID_X9_62_onBasis 667
#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L
#define SN_X9_62_tpBasis "tpBasis"
-#define NID_X9_62_tpBasis 505
+#define NID_X9_62_tpBasis 668
#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L
#define SN_X9_62_ppBasis "ppBasis"
-#define NID_X9_62_ppBasis 506
+#define NID_X9_62_ppBasis 669
#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L
#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L
@@ -190,83 +190,83 @@
#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L
#define SN_X9_62_c2pnb163v1 "c2pnb163v1"
-#define NID_X9_62_c2pnb163v1 507
+#define NID_X9_62_c2pnb163v1 670
#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L
#define SN_X9_62_c2pnb163v2 "c2pnb163v2"
-#define NID_X9_62_c2pnb163v2 508
+#define NID_X9_62_c2pnb163v2 671
#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L
#define SN_X9_62_c2pnb163v3 "c2pnb163v3"
-#define NID_X9_62_c2pnb163v3 509
+#define NID_X9_62_c2pnb163v3 672
#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L
#define SN_X9_62_c2pnb176v1 "c2pnb176v1"
-#define NID_X9_62_c2pnb176v1 510
+#define NID_X9_62_c2pnb176v1 673
#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L
#define SN_X9_62_c2tnb191v1 "c2tnb191v1"
-#define NID_X9_62_c2tnb191v1 511
+#define NID_X9_62_c2tnb191v1 674
#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L
#define SN_X9_62_c2tnb191v2 "c2tnb191v2"
-#define NID_X9_62_c2tnb191v2 512
+#define NID_X9_62_c2tnb191v2 675
#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L
#define SN_X9_62_c2tnb191v3 "c2tnb191v3"
-#define NID_X9_62_c2tnb191v3 513
+#define NID_X9_62_c2tnb191v3 676
#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L
#define SN_X9_62_c2onb191v4 "c2onb191v4"
-#define NID_X9_62_c2onb191v4 514
+#define NID_X9_62_c2onb191v4 677
#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L
#define SN_X9_62_c2onb191v5 "c2onb191v5"
-#define NID_X9_62_c2onb191v5 515
+#define NID_X9_62_c2onb191v5 678
#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L
#define SN_X9_62_c2pnb208w1 "c2pnb208w1"
-#define NID_X9_62_c2pnb208w1 516
+#define NID_X9_62_c2pnb208w1 679
#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L
#define SN_X9_62_c2tnb239v1 "c2tnb239v1"
-#define NID_X9_62_c2tnb239v1 517
+#define NID_X9_62_c2tnb239v1 680
#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L
#define SN_X9_62_c2tnb239v2 "c2tnb239v2"
-#define NID_X9_62_c2tnb239v2 518
+#define NID_X9_62_c2tnb239v2 681
#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L
#define SN_X9_62_c2tnb239v3 "c2tnb239v3"
-#define NID_X9_62_c2tnb239v3 519
+#define NID_X9_62_c2tnb239v3 682
#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L
#define SN_X9_62_c2onb239v4 "c2onb239v4"
-#define NID_X9_62_c2onb239v4 520
+#define NID_X9_62_c2onb239v4 683
#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L
#define SN_X9_62_c2onb239v5 "c2onb239v5"
-#define NID_X9_62_c2onb239v5 521
+#define NID_X9_62_c2onb239v5 684
#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L
#define SN_X9_62_c2pnb272w1 "c2pnb272w1"
-#define NID_X9_62_c2pnb272w1 522
+#define NID_X9_62_c2pnb272w1 685
#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L
#define SN_X9_62_c2pnb304w1 "c2pnb304w1"
-#define NID_X9_62_c2pnb304w1 523
+#define NID_X9_62_c2pnb304w1 686
#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L
#define SN_X9_62_c2tnb359v1 "c2tnb359v1"
-#define NID_X9_62_c2tnb359v1 524
+#define NID_X9_62_c2tnb359v1 687
#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L
#define SN_X9_62_c2pnb368w1 "c2pnb368w1"
-#define NID_X9_62_c2pnb368w1 525
+#define NID_X9_62_c2pnb368w1 688
#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L
#define SN_X9_62_c2tnb431r1 "c2tnb431r1"
-#define NID_X9_62_c2tnb431r1 526
+#define NID_X9_62_c2tnb431r1 689
#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L
#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L
@@ -308,173 +308,173 @@
#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L
#define SN_secp112r1 "secp112r1"
-#define NID_secp112r1 529
+#define NID_secp112r1 690
#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L
#define SN_secp112r2 "secp112r2"
-#define NID_secp112r2 530
+#define NID_secp112r2 691
#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L
#define SN_secp128r1 "secp128r1"
-#define NID_secp128r1 531
+#define NID_secp128r1 692
#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L
#define SN_secp128r2 "secp128r2"
-#define NID_secp128r2 532
+#define NID_secp128r2 693
#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L
#define SN_secp160k1 "secp160k1"
-#define NID_secp160k1 533
+#define NID_secp160k1 694
#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L
#define SN_secp160r1 "secp160r1"
-#define NID_secp160r1 534
+#define NID_secp160r1 695
#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L
#define SN_secp160r2 "secp160r2"
-#define NID_secp160r2 535
+#define NID_secp160r2 696
#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L
#define SN_secp192k1 "secp192k1"
-#define NID_secp192k1 536
+#define NID_secp192k1 697
#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L
#define SN_secp224k1 "secp224k1"
-#define NID_secp224k1 538
+#define NID_secp224k1 698
#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L
#define SN_secp224r1 "secp224r1"
-#define NID_secp224r1 539
+#define NID_secp224r1 699
#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L
#define SN_secp256k1 "secp256k1"
-#define NID_secp256k1 540
+#define NID_secp256k1 700
#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L
#define SN_secp384r1 "secp384r1"
-#define NID_secp384r1 542
+#define NID_secp384r1 701
#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L
#define SN_secp521r1 "secp521r1"
-#define NID_secp521r1 543
+#define NID_secp521r1 702
#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L
#define SN_sect113r1 "sect113r1"
-#define NID_sect113r1 544
+#define NID_sect113r1 703
#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L
#define SN_sect113r2 "sect113r2"
-#define NID_sect113r2 545
+#define NID_sect113r2 704
#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L
#define SN_sect131r1 "sect131r1"
-#define NID_sect131r1 546
+#define NID_sect131r1 705
#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L
#define SN_sect131r2 "sect131r2"
-#define NID_sect131r2 547
+#define NID_sect131r2 706
#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L
#define SN_sect163k1 "sect163k1"
-#define NID_sect163k1 548
+#define NID_sect163k1 707
#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L
#define SN_sect163r1 "sect163r1"
-#define NID_sect163r1 549
+#define NID_sect163r1 708
#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L
#define SN_sect163r2 "sect163r2"
-#define NID_sect163r2 550
+#define NID_sect163r2 709
#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L
#define SN_sect193r1 "sect193r1"
-#define NID_sect193r1 551
+#define NID_sect193r1 710
#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L
#define SN_sect193r2 "sect193r2"
-#define NID_sect193r2 552
+#define NID_sect193r2 711
#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L
#define SN_sect233k1 "sect233k1"
-#define NID_sect233k1 553
+#define NID_sect233k1 712
#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L
#define SN_sect233r1 "sect233r1"
-#define NID_sect233r1 554
+#define NID_sect233r1 713
#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L
#define SN_sect239k1 "sect239k1"
-#define NID_sect239k1 555
+#define NID_sect239k1 714
#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L
#define SN_sect283k1 "sect283k1"
-#define NID_sect283k1 556
+#define NID_sect283k1 715
#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L
#define SN_sect283r1 "sect283r1"
-#define NID_sect283r1 557
+#define NID_sect283r1 716
#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L
#define SN_sect409k1 "sect409k1"
-#define NID_sect409k1 558
+#define NID_sect409k1 717
#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L
#define SN_sect409r1 "sect409r1"
-#define NID_sect409r1 559
+#define NID_sect409r1 718
#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L
#define SN_sect571k1 "sect571k1"
-#define NID_sect571k1 560
+#define NID_sect571k1 719
#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L
#define SN_sect571r1 "sect571r1"
-#define NID_sect571r1 561
+#define NID_sect571r1 720
#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L
#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L
#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1"
-#define NID_wap_wsg_idm_ecid_wtls1 564
+#define NID_wap_wsg_idm_ecid_wtls1 721
#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L
#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3"
-#define NID_wap_wsg_idm_ecid_wtls3 709
+#define NID_wap_wsg_idm_ecid_wtls3 722
#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L
#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4"
-#define NID_wap_wsg_idm_ecid_wtls4 710
+#define NID_wap_wsg_idm_ecid_wtls4 723
#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L
#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5"
-#define NID_wap_wsg_idm_ecid_wtls5 711
+#define NID_wap_wsg_idm_ecid_wtls5 724
#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L
#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6"
-#define NID_wap_wsg_idm_ecid_wtls6 565
+#define NID_wap_wsg_idm_ecid_wtls6 725
#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L
#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7"
-#define NID_wap_wsg_idm_ecid_wtls7 712
+#define NID_wap_wsg_idm_ecid_wtls7 726
#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L
#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8"
-#define NID_wap_wsg_idm_ecid_wtls8 566
+#define NID_wap_wsg_idm_ecid_wtls8 727
#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L
#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9"
-#define NID_wap_wsg_idm_ecid_wtls9 567
+#define NID_wap_wsg_idm_ecid_wtls9 728
#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L
#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10"
-#define NID_wap_wsg_idm_ecid_wtls10 713
+#define NID_wap_wsg_idm_ecid_wtls10 729
#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L
#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11"
-#define NID_wap_wsg_idm_ecid_wtls11 714
+#define NID_wap_wsg_idm_ecid_wtls11 730
#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L
#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12"
-#define NID_wap_wsg_idm_ecid_wtls12 715
+#define NID_wap_wsg_idm_ecid_wtls12 731
#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L
#define SN_cast5_cbc "CAST5-CBC"
@@ -538,22 +538,22 @@
#define SN_sha256WithRSAEncryption "RSA-SHA256"
#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption"
-#define NID_sha256WithRSAEncryption 737
+#define NID_sha256WithRSAEncryption 732
#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L
#define SN_sha384WithRSAEncryption "RSA-SHA384"
#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption"
-#define NID_sha384WithRSAEncryption 738
+#define NID_sha384WithRSAEncryption 733
#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L
#define SN_sha512WithRSAEncryption "RSA-SHA512"
#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption"
-#define NID_sha512WithRSAEncryption 739
+#define NID_sha512WithRSAEncryption 734
#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L
#define SN_sha224WithRSAEncryption "RSA-SHA224"
#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption"
-#define NID_sha224WithRSAEncryption 740
+#define NID_sha224WithRSAEncryption 735
#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L
#define SN_pkcs3 "pkcs3"
@@ -1167,12 +1167,12 @@
#define SN_ms_smartcard_login "msSmartcardLogin"
#define LN_ms_smartcard_login "Microsoft Smartcardlogin"
-#define NID_ms_smartcard_login 716
+#define NID_ms_smartcard_login 648
#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L
#define SN_ms_upn "msUPN"
#define LN_ms_upn "Microsoft Universal Principal Name"
-#define NID_ms_upn 717
+#define NID_ms_upn 649
#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L
#define SN_idea_cbc "IDEA-CBC"
@@ -1265,6 +1265,10 @@
#define NID_id_cct 268
#define OBJ_id_cct OBJ_id_pkix,12L
+#define SN_id_ppl "id-ppl"
+#define NID_id_ppl 746
+#define OBJ_id_ppl OBJ_id_pkix,21L
+
#define SN_id_ad "id-ad"
#define NID_id_ad 176
#define OBJ_id_ad OBJ_id_pkix,48L
@@ -1380,6 +1384,11 @@
#define NID_sinfo_access 398
#define OBJ_sinfo_access OBJ_id_pe,11L
+#define SN_proxyCertInfo "proxyCertInfo"
+#define LN_proxyCertInfo "Proxy Certificate Information"
+#define NID_proxyCertInfo 747
+#define OBJ_proxyCertInfo OBJ_id_pe,14L
+
#define SN_id_qt_cps "id-qt-cps"
#define LN_id_qt_cps "Policy Qualifier CPS"
#define NID_id_qt_cps 164
@@ -1704,6 +1713,21 @@
#define NID_id_cct_PKIResponse 362
#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L
+#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage"
+#define LN_id_ppl_anyLanguage "Any language"
+#define NID_id_ppl_anyLanguage 748
+#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L
+
+#define SN_id_ppl_inheritAll "id-ppl-inheritAll"
+#define LN_id_ppl_inheritAll "Inherit all"
+#define NID_id_ppl_inheritAll 749
+#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L
+
+#define SN_Independent "id-ppl-independent"
+#define LN_Independent "Independent"
+#define NID_Independent 750
+#define OBJ_Independent OBJ_id_ppl,2L
+
#define SN_ad_OCSP "OCSP"
#define LN_ad_OCSP "OCSP"
#define NID_ad_OCSP 178
@@ -1934,6 +1958,10 @@
#define NID_stateOrProvinceName 16
#define OBJ_stateOrProvinceName OBJ_X509,8L
+#define LN_streetAddress "streetAddress"
+#define NID_streetAddress 660
+#define OBJ_streetAddress OBJ_X509,9L
+
#define SN_organizationName "O"
#define LN_organizationName "organizationName"
#define NID_organizationName 17
@@ -1952,6 +1980,10 @@
#define NID_description 107
#define OBJ_description OBJ_X509,13L
+#define LN_postalCode "postalCode"
+#define NID_postalCode 661
+#define OBJ_postalCode OBJ_X509,17L
+
#define SN_name "name"
#define LN_name "name"
#define NID_name 173
@@ -1967,11 +1999,11 @@
#define OBJ_initials OBJ_X509,43L
#define LN_generationQualifier "generationQualifier"
-#define NID_generationQualifier 574
+#define NID_generationQualifier 509
#define OBJ_generationQualifier OBJ_X509,44L
#define LN_x500UniqueIdentifier "x500UniqueIdentifier"
-#define NID_x500UniqueIdentifier 568
+#define NID_x500UniqueIdentifier 503
#define OBJ_x500UniqueIdentifier OBJ_X509,45L
#define SN_dnQualifier "dnQualifier"
@@ -1980,7 +2012,7 @@
#define OBJ_dnQualifier OBJ_X509,46L
#define LN_pseudonym "pseudonym"
-#define NID_pseudonym 575
+#define NID_pseudonym 510
#define OBJ_pseudonym OBJ_X509,65L
#define SN_role "role"
@@ -2064,7 +2096,7 @@
#define SN_name_constraints "nameConstraints"
#define LN_name_constraints "X509v3 Name Constraints"
-#define NID_name_constraints 720
+#define NID_name_constraints 736
#define OBJ_name_constraints OBJ_id_ce,30L
#define SN_crl_distribution_points "crlDistributionPoints"
@@ -2079,12 +2111,12 @@
#define SN_any_policy "anyPolicy"
#define LN_any_policy "X509v3 Any Policy"
-#define NID_any_policy 718
+#define NID_any_policy 737
#define OBJ_any_policy OBJ_certificate_policies,0L
#define SN_policy_mappings "policyMappings"
#define LN_policy_mappings "X509v3 Policy Mappings"
-#define NID_policy_mappings 719
+#define NID_policy_mappings 738
#define OBJ_policy_mappings OBJ_id_ce,33L
#define SN_authority_key_identifier "authorityKeyIdentifier"
@@ -2104,7 +2136,7 @@
#define SN_inhibit_any_policy "inhibitAnyPolicy"
#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy"
-#define NID_inhibit_any_policy 736
+#define NID_inhibit_any_policy 739
#define OBJ_inhibit_any_policy OBJ_id_ce,54L
#define SN_target_information "targetInformation"
@@ -2245,27 +2277,27 @@
#define SN_mime_mhs "mime-mhs"
#define LN_mime_mhs "MIME MHS"
-#define NID_mime_mhs 569
+#define NID_mime_mhs 504
#define OBJ_mime_mhs OBJ_Mail,1L
#define SN_mime_mhs_headings "mime-mhs-headings"
#define LN_mime_mhs_headings "mime-mhs-headings"
-#define NID_mime_mhs_headings 570
+#define NID_mime_mhs_headings 505
#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L
#define SN_mime_mhs_bodies "mime-mhs-bodies"
#define LN_mime_mhs_bodies "mime-mhs-bodies"
-#define NID_mime_mhs_bodies 571
+#define NID_mime_mhs_bodies 506
#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L
#define SN_id_hex_partial_message "id-hex-partial-message"
#define LN_id_hex_partial_message "id-hex-partial-message"
-#define NID_id_hex_partial_message 572
+#define NID_id_hex_partial_message 507
#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L
#define SN_id_hex_multipart_message "id-hex-multipart-message"
#define LN_id_hex_multipart_message "id-hex-multipart-message"
-#define NID_id_hex_multipart_message 573
+#define NID_id_hex_multipart_message 508
#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L
#define SN_rle_compression "RLE"
@@ -2346,64 +2378,64 @@
#define SN_aes_128_cfb1 "AES-128-CFB1"
#define LN_aes_128_cfb1 "aes-128-cfb1"
-#define NID_aes_128_cfb1 726
+#define NID_aes_128_cfb1 650
#define SN_aes_192_cfb1 "AES-192-CFB1"
#define LN_aes_192_cfb1 "aes-192-cfb1"
-#define NID_aes_192_cfb1 727
+#define NID_aes_192_cfb1 651
#define SN_aes_256_cfb1 "AES-256-CFB1"
#define LN_aes_256_cfb1 "aes-256-cfb1"
-#define NID_aes_256_cfb1 728
+#define NID_aes_256_cfb1 652
#define SN_aes_128_cfb8 "AES-128-CFB8"
#define LN_aes_128_cfb8 "aes-128-cfb8"
-#define NID_aes_128_cfb8 729
+#define NID_aes_128_cfb8 653
#define SN_aes_192_cfb8 "AES-192-CFB8"
#define LN_aes_192_cfb8 "aes-192-cfb8"
-#define NID_aes_192_cfb8 730
+#define NID_aes_192_cfb8 654
#define SN_aes_256_cfb8 "AES-256-CFB8"
#define LN_aes_256_cfb8 "aes-256-cfb8"
-#define NID_aes_256_cfb8 731
+#define NID_aes_256_cfb8 655
#define SN_des_cfb1 "DES-CFB1"
#define LN_des_cfb1 "des-cfb1"
-#define NID_des_cfb1 732
+#define NID_des_cfb1 656
#define SN_des_cfb8 "DES-CFB8"
#define LN_des_cfb8 "des-cfb8"
-#define NID_des_cfb8 733
+#define NID_des_cfb8 657
#define SN_des_ede3_cfb1 "DES-EDE3-CFB1"
#define LN_des_ede3_cfb1 "des-ede3-cfb1"
-#define NID_des_ede3_cfb1 734
+#define NID_des_ede3_cfb1 658
#define SN_des_ede3_cfb8 "DES-EDE3-CFB8"
#define LN_des_ede3_cfb8 "des-ede3-cfb8"
-#define NID_des_ede3_cfb8 735
+#define NID_des_ede3_cfb8 659
#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L
#define SN_sha256 "SHA256"
#define LN_sha256 "sha256"
-#define NID_sha256 741
+#define NID_sha256 740
#define OBJ_sha256 OBJ_nist_hashalgs,1L
#define SN_sha384 "SHA384"
#define LN_sha384 "sha384"
-#define NID_sha384 742
+#define NID_sha384 741
#define OBJ_sha384 OBJ_nist_hashalgs,2L
#define SN_sha512 "SHA512"
#define LN_sha512 "sha512"
-#define NID_sha512 743
+#define NID_sha512 742
#define OBJ_sha512 OBJ_nist_hashalgs,3L
#define SN_sha224 "SHA224"
#define LN_sha224 "sha224"
-#define NID_sha224 744
+#define NID_sha224 743
#define OBJ_sha224 OBJ_nist_hashalgs,4L
#define SN_hold_instruction_code "holdInstructionCode"
@@ -2718,556 +2750,556 @@
#define SN_id_set "id-set"
#define LN_id_set "Secure Electronic Transactions"
-#define NID_id_set 576
+#define NID_id_set 512
#define OBJ_id_set OBJ_international_organizations,42L
#define SN_set_ctype "set-ctype"
#define LN_set_ctype "content types"
-#define NID_set_ctype 577
+#define NID_set_ctype 513
#define OBJ_set_ctype OBJ_id_set,0L
#define SN_set_msgExt "set-msgExt"
#define LN_set_msgExt "message extensions"
-#define NID_set_msgExt 578
+#define NID_set_msgExt 514
#define OBJ_set_msgExt OBJ_id_set,1L
#define SN_set_attr "set-attr"
-#define NID_set_attr 579
+#define NID_set_attr 515
#define OBJ_set_attr OBJ_id_set,3L
#define SN_set_policy "set-policy"
-#define NID_set_policy 580
+#define NID_set_policy 516
#define OBJ_set_policy OBJ_id_set,5L
#define SN_set_certExt "set-certExt"
#define LN_set_certExt "certificate extensions"
-#define NID_set_certExt 581
+#define NID_set_certExt 517
#define OBJ_set_certExt OBJ_id_set,7L
#define SN_set_brand "set-brand"
-#define NID_set_brand 582
+#define NID_set_brand 518
#define OBJ_set_brand OBJ_id_set,8L
#define SN_setct_PANData "setct-PANData"
-#define NID_setct_PANData 583
+#define NID_setct_PANData 519
#define OBJ_setct_PANData OBJ_set_ctype,0L
#define SN_setct_PANToken "setct-PANToken"
-#define NID_setct_PANToken 584
+#define NID_setct_PANToken 520
#define OBJ_setct_PANToken OBJ_set_ctype,1L
#define SN_setct_PANOnly "setct-PANOnly"
-#define NID_setct_PANOnly 585
+#define NID_setct_PANOnly 521
#define OBJ_setct_PANOnly OBJ_set_ctype,2L
#define SN_setct_OIData "setct-OIData"
-#define NID_setct_OIData 586
+#define NID_setct_OIData 522
#define OBJ_setct_OIData OBJ_set_ctype,3L
#define SN_setct_PI "setct-PI"
-#define NID_setct_PI 587
+#define NID_setct_PI 523
#define OBJ_setct_PI OBJ_set_ctype,4L
#define SN_setct_PIData "setct-PIData"
-#define NID_setct_PIData 588
+#define NID_setct_PIData 524
#define OBJ_setct_PIData OBJ_set_ctype,5L
#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned"
-#define NID_setct_PIDataUnsigned 589
+#define NID_setct_PIDataUnsigned 525
#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L
#define SN_setct_HODInput "setct-HODInput"
-#define NID_setct_HODInput 590
+#define NID_setct_HODInput 526
#define OBJ_setct_HODInput OBJ_set_ctype,7L
#define SN_setct_AuthResBaggage "setct-AuthResBaggage"
-#define NID_setct_AuthResBaggage 591
+#define NID_setct_AuthResBaggage 527
#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L
#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage"
-#define NID_setct_AuthRevReqBaggage 592
+#define NID_setct_AuthRevReqBaggage 528
#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L
#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage"
-#define NID_setct_AuthRevResBaggage 593
+#define NID_setct_AuthRevResBaggage 529
#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L
#define SN_setct_CapTokenSeq "setct-CapTokenSeq"
-#define NID_setct_CapTokenSeq 594
+#define NID_setct_CapTokenSeq 530
#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L
#define SN_setct_PInitResData "setct-PInitResData"
-#define NID_setct_PInitResData 595
+#define NID_setct_PInitResData 531
#define OBJ_setct_PInitResData OBJ_set_ctype,12L
#define SN_setct_PI_TBS "setct-PI-TBS"
-#define NID_setct_PI_TBS 596
+#define NID_setct_PI_TBS 532
#define OBJ_setct_PI_TBS OBJ_set_ctype,13L
#define SN_setct_PResData "setct-PResData"
-#define NID_setct_PResData 597
+#define NID_setct_PResData 533
#define OBJ_setct_PResData OBJ_set_ctype,14L
#define SN_setct_AuthReqTBS "setct-AuthReqTBS"
-#define NID_setct_AuthReqTBS 598
+#define NID_setct_AuthReqTBS 534
#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L
#define SN_setct_AuthResTBS "setct-AuthResTBS"
-#define NID_setct_AuthResTBS 599
+#define NID_setct_AuthResTBS 535
#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L
#define SN_setct_AuthResTBSX "setct-AuthResTBSX"
-#define NID_setct_AuthResTBSX 600
+#define NID_setct_AuthResTBSX 536
#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L
#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS"
-#define NID_setct_AuthTokenTBS 601
+#define NID_setct_AuthTokenTBS 537
#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L
#define SN_setct_CapTokenData "setct-CapTokenData"
-#define NID_setct_CapTokenData 602
+#define NID_setct_CapTokenData 538
#define OBJ_setct_CapTokenData OBJ_set_ctype,20L
#define SN_setct_CapTokenTBS "setct-CapTokenTBS"
-#define NID_setct_CapTokenTBS 603
+#define NID_setct_CapTokenTBS 539
#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L
#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg"
-#define NID_setct_AcqCardCodeMsg 604
+#define NID_setct_AcqCardCodeMsg 540
#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L
#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS"
-#define NID_setct_AuthRevReqTBS 605
+#define NID_setct_AuthRevReqTBS 541
#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L
#define SN_setct_AuthRevResData "setct-AuthRevResData"
-#define NID_setct_AuthRevResData 606
+#define NID_setct_AuthRevResData 542
#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L
#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS"
-#define NID_setct_AuthRevResTBS 607
+#define NID_setct_AuthRevResTBS 543
#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L
#define SN_setct_CapReqTBS "setct-CapReqTBS"
-#define NID_setct_CapReqTBS 608
+#define NID_setct_CapReqTBS 544
#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L
#define SN_setct_CapReqTBSX "setct-CapReqTBSX"
-#define NID_setct_CapReqTBSX 609
+#define NID_setct_CapReqTBSX 545
#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L
#define SN_setct_CapResData "setct-CapResData"
-#define NID_setct_CapResData 610
+#define NID_setct_CapResData 546
#define OBJ_setct_CapResData OBJ_set_ctype,28L
#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS"
-#define NID_setct_CapRevReqTBS 611
+#define NID_setct_CapRevReqTBS 547
#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L
#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX"
-#define NID_setct_CapRevReqTBSX 612
+#define NID_setct_CapRevReqTBSX 548
#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L
#define SN_setct_CapRevResData "setct-CapRevResData"
-#define NID_setct_CapRevResData 613
+#define NID_setct_CapRevResData 549
#define OBJ_setct_CapRevResData OBJ_set_ctype,31L
#define SN_setct_CredReqTBS "setct-CredReqTBS"
-#define NID_setct_CredReqTBS 614
+#define NID_setct_CredReqTBS 550
#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L
#define SN_setct_CredReqTBSX "setct-CredReqTBSX"
-#define NID_setct_CredReqTBSX 615
+#define NID_setct_CredReqTBSX 551
#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L
#define SN_setct_CredResData "setct-CredResData"
-#define NID_setct_CredResData 616
+#define NID_setct_CredResData 552
#define OBJ_setct_CredResData OBJ_set_ctype,34L
#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS"
-#define NID_setct_CredRevReqTBS 617
+#define NID_setct_CredRevReqTBS 553
#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L
#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX"
-#define NID_setct_CredRevReqTBSX 618
+#define NID_setct_CredRevReqTBSX 554
#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L
#define SN_setct_CredRevResData "setct-CredRevResData"
-#define NID_setct_CredRevResData 619
+#define NID_setct_CredRevResData 555
#define OBJ_setct_CredRevResData OBJ_set_ctype,37L
#define SN_setct_PCertReqData "setct-PCertReqData"
-#define NID_setct_PCertReqData 620
+#define NID_setct_PCertReqData 556
#define OBJ_setct_PCertReqData OBJ_set_ctype,38L
#define SN_setct_PCertResTBS "setct-PCertResTBS"
-#define NID_setct_PCertResTBS 621
+#define NID_setct_PCertResTBS 557
#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L
#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData"
-#define NID_setct_BatchAdminReqData 622
+#define NID_setct_BatchAdminReqData 558
#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L
#define SN_setct_BatchAdminResData "setct-BatchAdminResData"
-#define NID_setct_BatchAdminResData 623
+#define NID_setct_BatchAdminResData 559
#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L
#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS"
-#define NID_setct_CardCInitResTBS 624
+#define NID_setct_CardCInitResTBS 560
#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L
#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS"
-#define NID_setct_MeAqCInitResTBS 625
+#define NID_setct_MeAqCInitResTBS 561
#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L
#define SN_setct_RegFormResTBS "setct-RegFormResTBS"
-#define NID_setct_RegFormResTBS 626
+#define NID_setct_RegFormResTBS 562
#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L
#define SN_setct_CertReqData "setct-CertReqData"
-#define NID_setct_CertReqData 627
+#define NID_setct_CertReqData 563
#define OBJ_setct_CertReqData OBJ_set_ctype,45L
#define SN_setct_CertReqTBS "setct-CertReqTBS"
-#define NID_setct_CertReqTBS 628
+#define NID_setct_CertReqTBS 564
#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L
#define SN_setct_CertResData "setct-CertResData"
-#define NID_setct_CertResData 629
+#define NID_setct_CertResData 565
#define OBJ_setct_CertResData OBJ_set_ctype,47L
#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS"
-#define NID_setct_CertInqReqTBS 630
+#define NID_setct_CertInqReqTBS 566
#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L
#define SN_setct_ErrorTBS "setct-ErrorTBS"
-#define NID_setct_ErrorTBS 631
+#define NID_setct_ErrorTBS 567
#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L
#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE"
-#define NID_setct_PIDualSignedTBE 632
+#define NID_setct_PIDualSignedTBE 568
#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L
#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE"
-#define NID_setct_PIUnsignedTBE 633
+#define NID_setct_PIUnsignedTBE 569
#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L
#define SN_setct_AuthReqTBE "setct-AuthReqTBE"
-#define NID_setct_AuthReqTBE 634
+#define NID_setct_AuthReqTBE 570
#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L
#define SN_setct_AuthResTBE "setct-AuthResTBE"
-#define NID_setct_AuthResTBE 635
+#define NID_setct_AuthResTBE 571
#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L
#define SN_setct_AuthResTBEX "setct-AuthResTBEX"
-#define NID_setct_AuthResTBEX 636
+#define NID_setct_AuthResTBEX 572
#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L
#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE"
-#define NID_setct_AuthTokenTBE 637
+#define NID_setct_AuthTokenTBE 573
#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L
#define SN_setct_CapTokenTBE "setct-CapTokenTBE"
-#define NID_setct_CapTokenTBE 638
+#define NID_setct_CapTokenTBE 574
#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L
#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX"
-#define NID_setct_CapTokenTBEX 639
+#define NID_setct_CapTokenTBEX 575
#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L
#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE"
-#define NID_setct_AcqCardCodeMsgTBE 640
+#define NID_setct_AcqCardCodeMsgTBE 576
#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L
#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE"
-#define NID_setct_AuthRevReqTBE 641
+#define NID_setct_AuthRevReqTBE 577
#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L
#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE"
-#define NID_setct_AuthRevResTBE 642
+#define NID_setct_AuthRevResTBE 578
#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L
#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB"
-#define NID_setct_AuthRevResTBEB 643
+#define NID_setct_AuthRevResTBEB 579
#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L
#define SN_setct_CapReqTBE "setct-CapReqTBE"
-#define NID_setct_CapReqTBE 644
+#define NID_setct_CapReqTBE 580
#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L
#define SN_setct_CapReqTBEX "setct-CapReqTBEX"
-#define NID_setct_CapReqTBEX 645
+#define NID_setct_CapReqTBEX 581
#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L
#define SN_setct_CapResTBE "setct-CapResTBE"
-#define NID_setct_CapResTBE 646
+#define NID_setct_CapResTBE 582
#define OBJ_setct_CapResTBE OBJ_set_ctype,64L
#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE"
-#define NID_setct_CapRevReqTBE 647
+#define NID_setct_CapRevReqTBE 583
#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L
#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX"
-#define NID_setct_CapRevReqTBEX 648
+#define NID_setct_CapRevReqTBEX 584
#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L
#define SN_setct_CapRevResTBE "setct-CapRevResTBE"
-#define NID_setct_CapRevResTBE 649
+#define NID_setct_CapRevResTBE 585
#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L
#define SN_setct_CredReqTBE "setct-CredReqTBE"
-#define NID_setct_CredReqTBE 650
+#define NID_setct_CredReqTBE 586
#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L
#define SN_setct_CredReqTBEX "setct-CredReqTBEX"
-#define NID_setct_CredReqTBEX 651
+#define NID_setct_CredReqTBEX 587
#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L
#define SN_setct_CredResTBE "setct-CredResTBE"
-#define NID_setct_CredResTBE 652
+#define NID_setct_CredResTBE 588
#define OBJ_setct_CredResTBE OBJ_set_ctype,70L
#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE"
-#define NID_setct_CredRevReqTBE 653
+#define NID_setct_CredRevReqTBE 589
#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L
#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX"
-#define NID_setct_CredRevReqTBEX 654
+#define NID_setct_CredRevReqTBEX 590
#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L
#define SN_setct_CredRevResTBE "setct-CredRevResTBE"
-#define NID_setct_CredRevResTBE 655
+#define NID_setct_CredRevResTBE 591
#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L
#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE"
-#define NID_setct_BatchAdminReqTBE 656
+#define NID_setct_BatchAdminReqTBE 592
#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L
#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE"
-#define NID_setct_BatchAdminResTBE 657
+#define NID_setct_BatchAdminResTBE 593
#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L
#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE"
-#define NID_setct_RegFormReqTBE 658
+#define NID_setct_RegFormReqTBE 594
#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L
#define SN_setct_CertReqTBE "setct-CertReqTBE"
-#define NID_setct_CertReqTBE 659
+#define NID_setct_CertReqTBE 595
#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L
#define SN_setct_CertReqTBEX "setct-CertReqTBEX"
-#define NID_setct_CertReqTBEX 660
+#define NID_setct_CertReqTBEX 596
#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L
#define SN_setct_CertResTBE "setct-CertResTBE"
-#define NID_setct_CertResTBE 661
+#define NID_setct_CertResTBE 597
#define OBJ_setct_CertResTBE OBJ_set_ctype,79L
#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS"
-#define NID_setct_CRLNotificationTBS 662
+#define NID_setct_CRLNotificationTBS 598
#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L
#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS"
-#define NID_setct_CRLNotificationResTBS 663
+#define NID_setct_CRLNotificationResTBS 599
#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L
#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS"
-#define NID_setct_BCIDistributionTBS 664
+#define NID_setct_BCIDistributionTBS 600
#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L
#define SN_setext_genCrypt "setext-genCrypt"
#define LN_setext_genCrypt "generic cryptogram"
-#define NID_setext_genCrypt 665
+#define NID_setext_genCrypt 601
#define OBJ_setext_genCrypt OBJ_set_msgExt,1L
#define SN_setext_miAuth "setext-miAuth"
#define LN_setext_miAuth "merchant initiated auth"
-#define NID_setext_miAuth 666
+#define NID_setext_miAuth 602
#define OBJ_setext_miAuth OBJ_set_msgExt,3L
#define SN_setext_pinSecure "setext-pinSecure"
-#define NID_setext_pinSecure 667
+#define NID_setext_pinSecure 603
#define OBJ_setext_pinSecure OBJ_set_msgExt,4L
#define SN_setext_pinAny "setext-pinAny"
-#define NID_setext_pinAny 668
+#define NID_setext_pinAny 604
#define OBJ_setext_pinAny OBJ_set_msgExt,5L
#define SN_setext_track2 "setext-track2"
-#define NID_setext_track2 669
+#define NID_setext_track2 605
#define OBJ_setext_track2 OBJ_set_msgExt,7L
#define SN_setext_cv "setext-cv"
#define LN_setext_cv "additional verification"
-#define NID_setext_cv 670
+#define NID_setext_cv 606
#define OBJ_setext_cv OBJ_set_msgExt,8L
#define SN_set_policy_root "set-policy-root"
-#define NID_set_policy_root 671
+#define NID_set_policy_root 607
#define OBJ_set_policy_root OBJ_set_policy,0L
#define SN_setCext_hashedRoot "setCext-hashedRoot"
-#define NID_setCext_hashedRoot 672
+#define NID_setCext_hashedRoot 608
#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L
#define SN_setCext_certType "setCext-certType"
-#define NID_setCext_certType 673
+#define NID_setCext_certType 609
#define OBJ_setCext_certType OBJ_set_certExt,1L
#define SN_setCext_merchData "setCext-merchData"
-#define NID_setCext_merchData 674
+#define NID_setCext_merchData 610
#define OBJ_setCext_merchData OBJ_set_certExt,2L
#define SN_setCext_cCertRequired "setCext-cCertRequired"
-#define NID_setCext_cCertRequired 675
+#define NID_setCext_cCertRequired 611
#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L
#define SN_setCext_tunneling "setCext-tunneling"
-#define NID_setCext_tunneling 676
+#define NID_setCext_tunneling 612
#define OBJ_setCext_tunneling OBJ_set_certExt,4L
#define SN_setCext_setExt "setCext-setExt"
-#define NID_setCext_setExt 677
+#define NID_setCext_setExt 613
#define OBJ_setCext_setExt OBJ_set_certExt,5L
#define SN_setCext_setQualf "setCext-setQualf"
-#define NID_setCext_setQualf 678
+#define NID_setCext_setQualf 614
#define OBJ_setCext_setQualf OBJ_set_certExt,6L
#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities"
-#define NID_setCext_PGWYcapabilities 679
+#define NID_setCext_PGWYcapabilities 615
#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L
#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier"
-#define NID_setCext_TokenIdentifier 680
+#define NID_setCext_TokenIdentifier 616
#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L
#define SN_setCext_Track2Data "setCext-Track2Data"
-#define NID_setCext_Track2Data 681
+#define NID_setCext_Track2Data 617
#define OBJ_setCext_Track2Data OBJ_set_certExt,9L
#define SN_setCext_TokenType "setCext-TokenType"
-#define NID_setCext_TokenType 682
+#define NID_setCext_TokenType 618
#define OBJ_setCext_TokenType OBJ_set_certExt,10L
#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities"
-#define NID_setCext_IssuerCapabilities 683
+#define NID_setCext_IssuerCapabilities 619
#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L
#define SN_setAttr_Cert "setAttr-Cert"
-#define NID_setAttr_Cert 684
+#define NID_setAttr_Cert 620
#define OBJ_setAttr_Cert OBJ_set_attr,0L
#define SN_setAttr_PGWYcap "setAttr-PGWYcap"
#define LN_setAttr_PGWYcap "payment gateway capabilities"
-#define NID_setAttr_PGWYcap 685
+#define NID_setAttr_PGWYcap 621
#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L
#define SN_setAttr_TokenType "setAttr-TokenType"
-#define NID_setAttr_TokenType 686
+#define NID_setAttr_TokenType 622
#define OBJ_setAttr_TokenType OBJ_set_attr,2L
#define SN_setAttr_IssCap "setAttr-IssCap"
#define LN_setAttr_IssCap "issuer capabilities"
-#define NID_setAttr_IssCap 687
+#define NID_setAttr_IssCap 623
#define OBJ_setAttr_IssCap OBJ_set_attr,3L
#define SN_set_rootKeyThumb "set-rootKeyThumb"
-#define NID_set_rootKeyThumb 688
+#define NID_set_rootKeyThumb 624
#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L
#define SN_set_addPolicy "set-addPolicy"
-#define NID_set_addPolicy 689
+#define NID_set_addPolicy 625
#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L
#define SN_setAttr_Token_EMV "setAttr-Token-EMV"
-#define NID_setAttr_Token_EMV 690
+#define NID_setAttr_Token_EMV 626
#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L
#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime"
-#define NID_setAttr_Token_B0Prime 691
+#define NID_setAttr_Token_B0Prime 627
#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L
#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM"
-#define NID_setAttr_IssCap_CVM 692
+#define NID_setAttr_IssCap_CVM 628
#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L
#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2"
-#define NID_setAttr_IssCap_T2 693
+#define NID_setAttr_IssCap_T2 629
#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L
#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig"
-#define NID_setAttr_IssCap_Sig 694
+#define NID_setAttr_IssCap_Sig 630
#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L
#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm"
#define LN_setAttr_GenCryptgrm "generate cryptogram"
-#define NID_setAttr_GenCryptgrm 695
+#define NID_setAttr_GenCryptgrm 631
#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L
#define SN_setAttr_T2Enc "setAttr-T2Enc"
#define LN_setAttr_T2Enc "encrypted track 2"
-#define NID_setAttr_T2Enc 696
+#define NID_setAttr_T2Enc 632
#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L
#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt"
#define LN_setAttr_T2cleartxt "cleartext track 2"
-#define NID_setAttr_T2cleartxt 697
+#define NID_setAttr_T2cleartxt 633
#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L
#define SN_setAttr_TokICCsig "setAttr-TokICCsig"
#define LN_setAttr_TokICCsig "ICC or token signature"
-#define NID_setAttr_TokICCsig 698
+#define NID_setAttr_TokICCsig 634
#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L
#define SN_setAttr_SecDevSig "setAttr-SecDevSig"
#define LN_setAttr_SecDevSig "secure device signature"
-#define NID_setAttr_SecDevSig 699
+#define NID_setAttr_SecDevSig 635
#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L
#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA"
-#define NID_set_brand_IATA_ATA 700
+#define NID_set_brand_IATA_ATA 636
#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L
#define SN_set_brand_Diners "set-brand-Diners"
-#define NID_set_brand_Diners 701
+#define NID_set_brand_Diners 637
#define OBJ_set_brand_Diners OBJ_set_brand,30L
#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress"
-#define NID_set_brand_AmericanExpress 702
+#define NID_set_brand_AmericanExpress 638
#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L
#define SN_set_brand_JCB "set-brand-JCB"
-#define NID_set_brand_JCB 703
+#define NID_set_brand_JCB 639
#define OBJ_set_brand_JCB OBJ_set_brand,35L
#define SN_set_brand_Visa "set-brand-Visa"
-#define NID_set_brand_Visa 704
+#define NID_set_brand_Visa 640
#define OBJ_set_brand_Visa OBJ_set_brand,4L
#define SN_set_brand_MasterCard "set-brand-MasterCard"
-#define NID_set_brand_MasterCard 705
+#define NID_set_brand_MasterCard 641
#define OBJ_set_brand_MasterCard OBJ_set_brand,5L
#define SN_set_brand_Novus "set-brand-Novus"
-#define NID_set_brand_Novus 706
+#define NID_set_brand_Novus 642
#define OBJ_set_brand_Novus OBJ_set_brand,6011L
#define SN_des_cdmf "DES-CDMF"
#define LN_des_cdmf "des-cdmf"
-#define NID_des_cdmf 707
+#define NID_des_cdmf 643
#define OBJ_des_cdmf OBJ_rsadsi,3L,10L
#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET"
-#define NID_rsaOAEPEncryptionSET 708
+#define NID_rsaOAEPEncryptionSET 644
#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L
#define SN_ipsec3 "Oakley-EC2N-3"
#define LN_ipsec3 "ipsec3"
-#define NID_ipsec3 724
+#define NID_ipsec3 744
#define SN_ipsec4 "Oakley-EC2N-4"
#define LN_ipsec4 "ipsec4"
-#define NID_ipsec4 725
+#define NID_ipsec4 745
diff --git a/crypto/objects/obj_mac.num b/crypto/objects/obj_mac.num
index 8481502556..180d20f1bc 100644
--- a/crypto/objects/obj_mac.num
+++ b/crypto/objects/obj_mac.num
@@ -500,245 +500,251 @@ personalSignature 499
dITRedirect 500
audio 501
documentPublisher 502
-X9_62_id_characteristic_two_basis 503
-X9_62_onBasis 504
-X9_62_tpBasis 505
-X9_62_ppBasis 506
-X9_62_c2pnb163v1 507
-X9_62_c2pnb163v2 508
-X9_62_c2pnb163v3 509
-X9_62_c2pnb176v1 510
-X9_62_c2tnb191v1 511
-X9_62_c2tnb191v2 512
-X9_62_c2tnb191v3 513
-X9_62_c2onb191v4 514
-X9_62_c2onb191v5 515
-X9_62_c2pnb208w1 516
-X9_62_c2tnb239v1 517
-X9_62_c2tnb239v2 518
-X9_62_c2tnb239v3 519
-X9_62_c2onb239v4 520
-X9_62_c2onb239v5 521
-X9_62_c2pnb272w1 522
-X9_62_c2pnb304w1 523
-X9_62_c2tnb359v1 524
-X9_62_c2pnb368w1 525
-X9_62_c2tnb431r1 526
-identified_organization 527
-certicom_arc 528
-secp112r1 529
-secp112r2 530
-secp128r1 531
-secp128r2 532
-secp160k1 533
-secp160r1 534
-secp160r2 535
-secp192k1 536
-secp192r1 537
-secp224k1 538
-secp224r1 539
-secp256k1 540
-secp256r1 541
-secp384r1 542
-secp521r1 543
-sect113r1 544
-sect113r2 545
-sect131r1 546
-sect131r2 547
-sect163k1 548
-sect163r1 549
-sect163r2 550
-sect193r1 551
-sect193r2 552
-sect233k1 553
-sect233r1 554
-sect239k1 555
-sect283k1 556
-sect283r1 557
-sect409k1 558
-sect409r1 559
-sect571k1 560
-sect571r1 561
-wap 562
-wap_wsg 563
-wap_wsg_idm_ecid_wtls1 564
-wap_wsg_idm_ecid_wtls6 565
-wap_wsg_idm_ecid_wtls8 566
-wap_wsg_idm_ecid_wtls9 567
-x500UniqueIdentifier 568
-mime_mhs 569
-mime_mhs_headings 570
-mime_mhs_bodies 571
-id_hex_partial_message 572
-id_hex_multipart_message 573
-generationQualifier 574
-pseudonym 575
-id_set 576
-set_ctype 577
-set_msgExt 578
-set_attr 579
-set_policy 580
-set_certExt 581
-set_brand 582
-setct_PANData 583
-setct_PANToken 584
-setct_PANOnly 585
-setct_OIData 586
-setct_PI 587
-setct_PIData 588
-setct_PIDataUnsigned 589
-setct_HODInput 590
-setct_AuthResBaggage 591
-setct_AuthRevReqBaggage 592
-setct_AuthRevResBaggage 593
-setct_CapTokenSeq 594
-setct_PInitResData 595
-setct_PI_TBS 596
-setct_PResData 597
-setct_AuthReqTBS 598
-setct_AuthResTBS 599
-setct_AuthResTBSX 600
-setct_AuthTokenTBS 601
-setct_CapTokenData 602
-setct_CapTokenTBS 603
-setct_AcqCardCodeMsg 604
-setct_AuthRevReqTBS 605
-setct_AuthRevResData 606
-setct_AuthRevResTBS 607
-setct_CapReqTBS 608
-setct_CapReqTBSX 609
-setct_CapResData 610
-setct_CapRevReqTBS 611
-setct_CapRevReqTBSX 612
-setct_CapRevResData 613
-setct_CredReqTBS 614
-setct_CredReqTBSX 615
-setct_CredResData 616
-setct_CredRevReqTBS 617
-setct_CredRevReqTBSX 618
-setct_CredRevResData 619
-setct_PCertReqData 620
-setct_PCertResTBS 621
-setct_BatchAdminReqData 622
-setct_BatchAdminResData 623
-setct_CardCInitResTBS 624
-setct_MeAqCInitResTBS 625
-setct_RegFormResTBS 626
-setct_CertReqData 627
-setct_CertReqTBS 628
-setct_CertResData 629
-setct_CertInqReqTBS 630
-setct_ErrorTBS 631
-setct_PIDualSignedTBE 632
-setct_PIUnsignedTBE 633
-setct_AuthReqTBE 634
-setct_AuthResTBE 635
-setct_AuthResTBEX 636
-setct_AuthTokenTBE 637
-setct_CapTokenTBE 638
-setct_CapTokenTBEX 639
-setct_AcqCardCodeMsgTBE 640
-setct_AuthRevReqTBE 641
-setct_AuthRevResTBE 642
-setct_AuthRevResTBEB 643
-setct_CapReqTBE 644
-setct_CapReqTBEX 645
-setct_CapResTBE 646
-setct_CapRevReqTBE 647
-setct_CapRevReqTBEX 648
-setct_CapRevResTBE 649
-setct_CredReqTBE 650
-setct_CredReqTBEX 651
-setct_CredResTBE 652
-setct_CredRevReqTBE 653
-setct_CredRevReqTBEX 654
-setct_CredRevResTBE 655
-setct_BatchAdminReqTBE 656
-setct_BatchAdminResTBE 657
-setct_RegFormReqTBE 658
-setct_CertReqTBE 659
-setct_CertReqTBEX 660
-setct_CertResTBE 661
-setct_CRLNotificationTBS 662
-setct_CRLNotificationResTBS 663
-setct_BCIDistributionTBS 664
-setext_genCrypt 665
-setext_miAuth 666
-setext_pinSecure 667
-setext_pinAny 668
-setext_track2 669
-setext_cv 670
-set_policy_root 671
-setCext_hashedRoot 672
-setCext_certType 673
-setCext_merchData 674
-setCext_cCertRequired 675
-setCext_tunneling 676
-setCext_setExt 677
-setCext_setQualf 678
-setCext_PGWYcapabilities 679
-setCext_TokenIdentifier 680
-setCext_Track2Data 681
-setCext_TokenType 682
-setCext_IssuerCapabilities 683
-setAttr_Cert 684
-setAttr_PGWYcap 685
-setAttr_TokenType 686
-setAttr_IssCap 687
-set_rootKeyThumb 688
-set_addPolicy 689
-setAttr_Token_EMV 690
-setAttr_Token_B0Prime 691
-setAttr_IssCap_CVM 692
-setAttr_IssCap_T2 693
-setAttr_IssCap_Sig 694
-setAttr_GenCryptgrm 695
-setAttr_T2Enc 696
-setAttr_T2cleartxt 697
-setAttr_TokICCsig 698
-setAttr_SecDevSig 699
-set_brand_IATA_ATA 700
-set_brand_Diners 701
-set_brand_AmericanExpress 702
-set_brand_JCB 703
-set_brand_Visa 704
-set_brand_MasterCard 705
-set_brand_Novus 706
-des_cdmf 707
-rsaOAEPEncryptionSET 708
-wap_wsg_idm_ecid_wtls3 709
-wap_wsg_idm_ecid_wtls4 710
-wap_wsg_idm_ecid_wtls5 711
-wap_wsg_idm_ecid_wtls7 712
-wap_wsg_idm_ecid_wtls10 713
-wap_wsg_idm_ecid_wtls11 714
-wap_wsg_idm_ecid_wtls12 715
-ms_smartcard_login 716
-ms_upn 717
-any_policy 718
-policy_mappings 719
-name_constraints 720
-itu_t 721
-joint_iso_itu_t 722
-international_organizations 723
-ipsec3 724
-ipsec4 725
-aes_128_cfb1 726
-aes_192_cfb1 727
-aes_256_cfb1 728
-aes_128_cfb8 729
-aes_192_cfb8 730
-aes_256_cfb8 731
-des_cfb1 732
-des_cfb8 733
-des_ede3_cfb1 734
-des_ede3_cfb8 735
-inhibit_any_policy 736
-sha256WithRSAEncryption 737
-sha384WithRSAEncryption 738
-sha512WithRSAEncryption 739
-sha224WithRSAEncryption 740
-sha256 741
-sha384 742
-sha512 743
-sha224 744
+x500UniqueIdentifier 503
+mime_mhs 504
+mime_mhs_headings 505
+mime_mhs_bodies 506
+id_hex_partial_message 507
+id_hex_multipart_message 508
+generationQualifier 509
+pseudonym 510
+InternationalRA 511
+id_set 512
+set_ctype 513
+set_msgExt 514
+set_attr 515
+set_policy 516
+set_certExt 517
+set_brand 518
+setct_PANData 519
+setct_PANToken 520
+setct_PANOnly 521
+setct_OIData 522
+setct_PI 523
+setct_PIData 524
+setct_PIDataUnsigned 525
+setct_HODInput 526
+setct_AuthResBaggage 527
+setct_AuthRevReqBaggage 528
+setct_AuthRevResBaggage 529
+setct_CapTokenSeq 530
+setct_PInitResData 531
+setct_PI_TBS 532
+setct_PResData 533
+setct_AuthReqTBS 534
+setct_AuthResTBS 535
+setct_AuthResTBSX 536
+setct_AuthTokenTBS 537
+setct_CapTokenData 538
+setct_CapTokenTBS 539
+setct_AcqCardCodeMsg 540
+setct_AuthRevReqTBS 541
+setct_AuthRevResData 542
+setct_AuthRevResTBS 543
+setct_CapReqTBS 544
+setct_CapReqTBSX 545
+setct_CapResData 546
+setct_CapRevReqTBS 547
+setct_CapRevReqTBSX 548
+setct_CapRevResData 549
+setct_CredReqTBS 550
+setct_CredReqTBSX 551
+setct_CredResData 552
+setct_CredRevReqTBS 553
+setct_CredRevReqTBSX 554
+setct_CredRevResData 555
+setct_PCertReqData 556
+setct_PCertResTBS 557
+setct_BatchAdminReqData 558
+setct_BatchAdminResData 559
+setct_CardCInitResTBS 560
+setct_MeAqCInitResTBS 561
+setct_RegFormResTBS 562
+setct_CertReqData 563
+setct_CertReqTBS 564
+setct_CertResData 565
+setct_CertInqReqTBS 566
+setct_ErrorTBS 567
+setct_PIDualSignedTBE 568
+setct_PIUnsignedTBE 569
+setct_AuthReqTBE 570
+setct_AuthResTBE 571
+setct_AuthResTBEX 572
+setct_AuthTokenTBE 573
+setct_CapTokenTBE 574
+setct_CapTokenTBEX 575
+setct_AcqCardCodeMsgTBE 576
+setct_AuthRevReqTBE 577
+setct_AuthRevResTBE 578
+setct_AuthRevResTBEB 579
+setct_CapReqTBE 580
+setct_CapReqTBEX 581
+setct_CapResTBE 582
+setct_CapRevReqTBE 583
+setct_CapRevReqTBEX 584
+setct_CapRevResTBE 585
+setct_CredReqTBE 586
+setct_CredReqTBEX 587
+setct_CredResTBE 588
+setct_CredRevReqTBE 589
+setct_CredRevReqTBEX 590
+setct_CredRevResTBE 591
+setct_BatchAdminReqTBE 592
+setct_BatchAdminResTBE 593
+setct_RegFormReqTBE 594
+setct_CertReqTBE 595
+setct_CertReqTBEX 596
+setct_CertResTBE 597
+setct_CRLNotificationTBS 598
+setct_CRLNotificationResTBS 599
+setct_BCIDistributionTBS 600
+setext_genCrypt 601
+setext_miAuth 602
+setext_pinSecure 603
+setext_pinAny 604
+setext_track2 605
+setext_cv 606
+set_policy_root 607
+setCext_hashedRoot 608
+setCext_certType 609
+setCext_merchData 610
+setCext_cCertRequired 611
+setCext_tunneling 612
+setCext_setExt 613
+setCext_setQualf 614
+setCext_PGWYcapabilities 615
+setCext_TokenIdentifier 616
+setCext_Track2Data 617
+setCext_TokenType 618
+setCext_IssuerCapabilities 619
+setAttr_Cert 620
+setAttr_PGWYcap 621
+setAttr_TokenType 622
+setAttr_IssCap 623
+set_rootKeyThumb 624
+set_addPolicy 625
+setAttr_Token_EMV 626
+setAttr_Token_B0Prime 627
+setAttr_IssCap_CVM 628
+setAttr_IssCap_T2 629
+setAttr_IssCap_Sig 630
+setAttr_GenCryptgrm 631
+setAttr_T2Enc 632
+setAttr_T2cleartxt 633
+setAttr_TokICCsig 634
+setAttr_SecDevSig 635
+set_brand_IATA_ATA 636
+set_brand_Diners 637
+set_brand_AmericanExpress 638
+set_brand_JCB 639
+set_brand_Visa 640
+set_brand_MasterCard 641
+set_brand_Novus 642
+des_cdmf 643
+rsaOAEPEncryptionSET 644
+itu_t 645
+joint_iso_itu_t 646
+international_organizations 647
+ms_smartcard_login 648
+ms_upn 649
+aes_128_cfb1 650
+aes_192_cfb1 651
+aes_256_cfb1 652
+aes_128_cfb8 653
+aes_192_cfb8 654
+aes_256_cfb8 655
+des_cfb1 656
+des_cfb8 657
+des_ede3_cfb1 658
+des_ede3_cfb8 659
+streetAddress 660
+postalCode 661
+identified_organization 662
+certicom_arc 663
+wap 664
+wap_wsg 665
+X9_62_id_characteristic_two_basis 666
+X9_62_onBasis 667
+X9_62_tpBasis 668
+X9_62_ppBasis 669
+X9_62_c2pnb163v1 670
+X9_62_c2pnb163v2 671
+X9_62_c2pnb163v3 672
+X9_62_c2pnb176v1 673
+X9_62_c2tnb191v1 674
+X9_62_c2tnb191v2 675
+X9_62_c2tnb191v3 676
+X9_62_c2onb191v4 677
+X9_62_c2onb191v5 678
+X9_62_c2pnb208w1 679
+X9_62_c2tnb239v1 680
+X9_62_c2tnb239v2 681
+X9_62_c2tnb239v3 682
+X9_62_c2onb239v4 683
+X9_62_c2onb239v5 684
+X9_62_c2pnb272w1 685
+X9_62_c2pnb304w1 686
+X9_62_c2tnb359v1 687
+X9_62_c2pnb368w1 688
+X9_62_c2tnb431r1 689
+secp112r1 690
+secp112r2 691
+secp128r1 692
+secp128r2 693
+secp160k1 694
+secp160r1 695
+secp160r2 696
+secp192k1 697
+secp224k1 698
+secp224r1 699
+secp256k1 700
+secp384r1 701
+secp521r1 702
+sect113r1 703
+sect113r2 704
+sect131r1 705
+sect131r2 706
+sect163k1 707
+sect163r1 708
+sect163r2 709
+sect193r1 710
+sect193r2 711
+sect233k1 712
+sect233r1 713
+sect239k1 714
+sect283k1 715
+sect283r1 716
+sect409k1 717
+sect409r1 718
+sect571k1 719
+sect571r1 720
+wap_wsg_idm_ecid_wtls1 721
+wap_wsg_idm_ecid_wtls3 722
+wap_wsg_idm_ecid_wtls4 723
+wap_wsg_idm_ecid_wtls5 724
+wap_wsg_idm_ecid_wtls6 725
+wap_wsg_idm_ecid_wtls7 726
+wap_wsg_idm_ecid_wtls8 727
+wap_wsg_idm_ecid_wtls9 728
+wap_wsg_idm_ecid_wtls10 729
+wap_wsg_idm_ecid_wtls11 730
+wap_wsg_idm_ecid_wtls12 731
+sha256WithRSAEncryption 732
+sha384WithRSAEncryption 733
+sha512WithRSAEncryption 734
+sha224WithRSAEncryption 735
+name_constraints 736
+any_policy 737
+policy_mappings 738
+inhibit_any_policy 739
+sha256 740
+sha384 741
+sha512 742
+sha224 743
+ipsec3 744
+ipsec4 745
+id_ppl 746
+proxyCertInfo 747
+id_ppl_anyLanguage 748
+id_ppl_inheritAll 749
+Independent 750
diff --git a/crypto/objects/objects.h b/crypto/objects/objects.h
index 8b509516fc..7242f76fb0 100644
--- a/crypto/objects/objects.h
+++ b/crypto/objects/objects.h
@@ -1031,8 +1031,10 @@ void ERR_load_OBJ_strings(void);
/* Error codes for the OBJ functions. */
/* Function codes. */
+#define OBJ_F_OBJ_ADD_OBJECT 105
#define OBJ_F_OBJ_CREATE 100
#define OBJ_F_OBJ_DUP 101
+#define OBJ_F_OBJ_NAME_NEW_INDEX 106
#define OBJ_F_OBJ_NID2LN 102
#define OBJ_F_OBJ_NID2OBJ 103
#define OBJ_F_OBJ_NID2SN 104
diff --git a/crypto/objects/objects.txt b/crypto/objects/objects.txt
index 613be3688c..46a405b3e6 100644
--- a/crypto/objects/objects.txt
+++ b/crypto/objects/objects.txt
@@ -405,6 +405,7 @@ id-pkix 9 : id-pda
id-pkix 10 : id-aca
id-pkix 11 : id-qcs
id-pkix 12 : id-cct
+id-pkix 21 : id-ppl
id-pkix 48 : id-ad
# PKIX Modules
@@ -439,6 +440,7 @@ id-pe 9 : sbqp-routerIdentifier
id-pe 10 : ac-proxying
!Cname sinfo-access
id-pe 11 : subjectInfoAccess : Subject Information Access
+id-pe 14 : proxyCertInfo : Proxy Certificate Information
# PKIX policyQualifiers for Internet policy qualifiers
id-qt 1 : id-qt-cps : Policy Qualifier CPS
@@ -554,6 +556,11 @@ id-cct 1 : id-cct-crs
id-cct 2 : id-cct-PKIData
id-cct 3 : id-cct-PKIResponse
+# Predefined Proxy Certificate policy languages
+id-ppl 0 : id-ppl-anyLanguage : Any language
+id-ppl 1 : id-ppl-inheritAll : Inherit all
+id-ppl 2 : id-ppl-independent : Independent
+
# access descriptors for authority info access extension
!Cname ad-OCSP
id-ad 1 : OCSP : OCSP
@@ -629,10 +636,12 @@ X509 5 : : serialNumber
X509 6 : C : countryName
X509 7 : L : localityName
X509 8 : ST : stateOrProvinceName
+X509 9 : : streetAddress
X509 10 : O : organizationName
X509 11 : OU : organizationalUnitName
X509 12 : : title
X509 13 : : description
+X509 17 : : postalCode
X509 41 : name : name
X509 42 : GN : givenName
X509 43 : : initials
diff --git a/crypto/ocsp/Makefile.ssl b/crypto/ocsp/Makefile.ssl
index 8a4fdc3e6b..c4f50af842 100644
--- a/crypto/ocsp/Makefile.ssl
+++ b/crypto/ocsp/Makefile.ssl
@@ -56,7 +56,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/pem/Makefile.ssl b/crypto/pem/Makefile.ssl
index ec77c5e26e..02156ef659 100644
--- a/crypto/pem/Makefile.ssl
+++ b/crypto/pem/Makefile.ssl
@@ -56,7 +56,7 @@ links: $(EXHEADER)
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/pem/pem_lib.c b/crypto/pem/pem_lib.c
index 7a383f3dff..81c4aba235 100644
--- a/crypto/pem/pem_lib.c
+++ b/crypto/pem/pem_lib.c
@@ -73,7 +73,7 @@ const char *PEM_version="PEM" OPENSSL_VERSION_PTEXT;
#define MIN_LENGTH 4
-static int load_iv(unsigned char **fromp,unsigned char *to, int num);
+static int load_iv(char **fromp,unsigned char *to, int num);
static int check_pem(const char *nm, const char *name);
int PEM_def_callback(char *buf, int num, int w, void *key)
@@ -303,7 +303,7 @@ int PEM_ASN1_write_bio(int (*i2d)(), const char *name, BIO *bp, char *x,
if ((dsize=i2d(x,NULL)) < 0)
{
- PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,ERR_R_MALLOC_FAILURE);
+ PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,ERR_R_ASN1_LIB);
dsize=0;
goto err;
}
@@ -434,6 +434,7 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
int o;
const EVP_CIPHER *enc=NULL;
char *p,c;
+ char **header_pp = &header;
cipher->cipher=NULL;
if ((header == NULL) || (*header == '\0') || (*header == '\n'))
@@ -480,15 +481,16 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO,PEM_R_UNSUPPORTED_ENCRYPTION);
return(0);
}
- if (!load_iv((unsigned char **)&header,&(cipher->iv[0]),enc->iv_len)) return(0);
+ if (!load_iv(header_pp,&(cipher->iv[0]),enc->iv_len))
+ return(0);
return(1);
}
-static int load_iv(unsigned char **fromp, unsigned char *to, int num)
+static int load_iv(char **fromp, unsigned char *to, int num)
{
int v,i;
- unsigned char *from;
+ char *from;
from= *fromp;
for (i=0; i<num; i++) to[i]=0;
diff --git a/crypto/perlasm/alpha.pl b/crypto/perlasm/alpha.pl
deleted file mode 100644
index 3dac571743..0000000000
--- a/crypto/perlasm/alpha.pl
+++ /dev/null
@@ -1,434 +0,0 @@
-#!/usr/local/bin/perl
-
-package alpha;
-use Carp qw(croak cluck);
-
-$label="100";
-
-$n_debug=0;
-$smear_regs=1;
-$reg_alloc=1;
-
-$align="3";
-$com_start="#";
-
-sub main'asm_init_output { @out=(); }
-sub main'asm_get_output { return(@out); }
-sub main'get_labels { return(@labels); }
-sub main'external_label { push(@labels,@_); }
-
-# General registers
-
-%regs=( 'r0', '$0',
- 'r1', '$1',
- 'r2', '$2',
- 'r3', '$3',
- 'r4', '$4',
- 'r5', '$5',
- 'r6', '$6',
- 'r7', '$7',
- 'r8', '$8',
- 'r9', '$22',
- 'r10', '$23',
- 'r11', '$24',
- 'r12', '$25',
- 'r13', '$27',
- 'r14', '$28',
- 'r15', '$21', # argc == 5
- 'r16', '$20', # argc == 4
- 'r17', '$19', # argc == 3
- 'r18', '$18', # argc == 2
- 'r19', '$17', # argc == 1
- 'r20', '$16', # argc == 0
- 'r21', '$9', # save 0
- 'r22', '$10', # save 1
- 'r23', '$11', # save 2
- 'r24', '$12', # save 3
- 'r25', '$13', # save 4
- 'r26', '$14', # save 5
-
- 'a0', '$16',
- 'a1', '$17',
- 'a2', '$18',
- 'a3', '$19',
- 'a4', '$20',
- 'a5', '$21',
-
- 's0', '$9',
- 's1', '$10',
- 's2', '$11',
- 's3', '$12',
- 's4', '$13',
- 's5', '$14',
- 'zero', '$31',
- 'sp', '$30',
- );
-
-$main'reg_s0="r21";
-$main'reg_s1="r22";
-$main'reg_s2="r23";
-$main'reg_s3="r24";
-$main'reg_s4="r25";
-$main'reg_s5="r26";
-
-@reg=( '$0', '$1' ,'$2' ,'$3' ,'$4' ,'$5' ,'$6' ,'$7' ,'$8',
- '$22','$23','$24','$25','$20','$21','$27','$28');
-
-
-sub main'sub { &out3("subq",@_); }
-sub main'add { &out3("addq",@_); }
-sub main'mov { &out3("bis",$_[0],$_[0],$_[1]); }
-sub main'or { &out3("bis",@_); }
-sub main'bis { &out3("bis",@_); }
-sub main'br { &out1("br",@_); }
-sub main'ld { &out2("ldq",@_); }
-sub main'st { &out2("stq",@_); }
-sub main'cmpult { &out3("cmpult",@_); }
-sub main'cmplt { &out3("cmplt",@_); }
-sub main'bgt { &out2("bgt",@_); }
-sub main'ble { &out2("ble",@_); }
-sub main'blt { &out2("blt",@_); }
-sub main'mul { &out3("mulq",@_); }
-sub main'muh { &out3("umulh",@_); }
-
-$main'QWS=8;
-
-sub main'asm_add
- {
- push(@out,@_);
- }
-
-sub main'asm_finish
- {
- &main'file_end();
- print &main'asm_get_output();
- }
-
-sub main'asm_init
- {
- ($type,$fn)=@_;
- $filename=$fn;
-
- &main'asm_init_output();
- &main'comment("Don't even think of reading this code");
- &main'comment("It was automatically generated by $filename");
- &main'comment("Which is a perl program used to generate the alpha assember.");
- &main'comment("eric <eay\@cryptsoft.com>");
- &main'comment("");
-
- $filename =~ s/\.pl$//;
- &main'file($filename);
- }
-
-sub conv
- {
- local($r)=@_;
- local($v);
-
- return($regs{$r}) if defined($regs{$r});
- return($r);
- }
-
-sub main'QWPw
- {
- local($off,$reg)=@_;
-
- return(&main'QWP($off*8,$reg));
- }
-
-sub main'QWP
- {
- local($off,$reg)=@_;
-
- $ret="$off(".&conv($reg).")";
- return($ret);
- }
-
-sub out3
- {
- local($name,$p1,$p2,$p3)=@_;
-
- $p1=&conv($p1);
- $p2=&conv($p2);
- $p3=&conv($p3);
- push(@out,"\t$name\t");
- $l=length($p1)+1;
- push(@out,$p1.",");
- $ll=3-($l+9)/8;
- $tmp1=sprintf("\t" x $ll);
- push(@out,$tmp1);
-
- $l=length($p2)+1;
- push(@out,$p2.",");
- $ll=3-($l+9)/8;
- $tmp1=sprintf("\t" x $ll);
- push(@out,$tmp1);
-
- push(@out,&conv($p3)."\n");
- }
-
-sub out2
- {
- local($name,$p1,$p2,$p3)=@_;
-
- $p1=&conv($p1);
- $p2=&conv($p2);
- push(@out,"\t$name\t");
- $l=length($p1)+1;
- push(@out,$p1.",");
- $ll=3-($l+9)/8;
- $tmp1=sprintf("\t" x $ll);
- push(@out,$tmp1);
-
- push(@out,&conv($p2)."\n");
- }
-
-sub out1
- {
- local($name,$p1)=@_;
-
- $p1=&conv($p1);
- push(@out,"\t$name\t".$p1."\n");
- }
-
-sub out0
- {
- push(@out,"\t$_[0]\n");
- }
-
-sub main'file
- {
- local($file)=@_;
-
- local($tmp)=<<"EOF";
- # DEC Alpha assember
- # Generated from perl scripts contains in SSLeay
- .file 1 "$file.s"
- .set noat
-EOF
- push(@out,$tmp);
- }
-
-sub main'function_begin
- {
- local($func)=@_;
-
-print STDERR "$func\n";
- local($tmp)=<<"EOF";
- .text
- .align $align
- .globl $func
- .ent $func
-${func}:
-${func}..ng:
- .frame \$30,0,\$26,0
- .prologue 0
-EOF
- push(@out,$tmp);
- $stack=0;
- }
-
-sub main'function_end
- {
- local($func)=@_;
-
- local($tmp)=<<"EOF";
- ret \$31,(\$26),1
- .end $func
-EOF
- push(@out,$tmp);
- $stack=0;
- %label=();
- }
-
-sub main'function_end_A
- {
- local($func)=@_;
-
- local($tmp)=<<"EOF";
- ret \$31,(\$26),1
-EOF
- push(@out,$tmp);
- }
-
-sub main'function_end_B
- {
- local($func)=@_;
-
- $func=$under.$func;
-
- push(@out,"\t.end $func\n");
- $stack=0;
- %label=();
- }
-
-sub main'wparam
- {
- local($num)=@_;
-
- if ($num < 6)
- {
- $num=20-$num;
- return("r$num");
- }
- else
- { return(&main'QWP($stack+$num*8,"sp")); }
- }
-
-sub main'stack_push
- {
- local($num)=@_;
- $stack+=$num*8;
- &main'sub("sp",$num*8,"sp");
- }
-
-sub main'stack_pop
- {
- local($num)=@_;
- $stack-=$num*8;
- &main'add("sp",$num*8,"sp");
- }
-
-sub main'swtmp
- {
- return(&main'QWP(($_[0])*8,"sp"));
- }
-
-# Should use swtmp, which is above sp. Linix can trash the stack above esp
-#sub main'wtmp
-# {
-# local($num)=@_;
-#
-# return(&main'QWP(-($num+1)*4,"esp","",0));
-# }
-
-sub main'comment
- {
- foreach (@_)
- {
- if (/^\s*$/)
- { push(@out,"\n"); }
- else
- { push(@out,"\t$com_start $_ $com_end\n"); }
- }
- }
-
-sub main'label
- {
- if (!defined($label{$_[0]}))
- {
- $label{$_[0]}=$label;
- $label++;
- }
- return('$'.$label{$_[0]});
- }
-
-sub main'set_label
- {
- if (!defined($label{$_[0]}))
- {
- $label{$_[0]}=$label;
- $label++;
- }
-# push(@out,".align $align\n") if ($_[1] != 0);
- push(@out,'$'."$label{$_[0]}:\n");
- }
-
-sub main'file_end
- {
- }
-
-sub main'data_word
- {
- push(@out,"\t.long $_[0]\n");
- }
-
-@pool_free=();
-@pool_taken=();
-$curr_num=0;
-$max=0;
-
-sub main'init_pool
- {
- local($args)=@_;
- local($i);
-
- @pool_free=();
- for ($i=(14+(6-$args)); $i >= 0; $i--)
- {
- push(@pool_free,"r$i");
- }
- print STDERR "START :register pool:@pool_free\n";
- $curr_num=$max=0;
- }
-
-sub main'fin_pool
- {
- printf STDERR "END %2d:register pool:@pool_free\n",$max;
- }
-
-sub main'GR
- {
- local($r)=@_;
- local($i,@n,$_);
-
- foreach (@pool_free)
- {
- if ($r ne $_)
- { push(@n,$_); }
- else
- {
- $curr_num++;
- $max=$curr_num if ($curr_num > $max);
- }
- }
- @pool_free=@n;
-print STDERR "GR:@pool_free\n" if $reg_alloc;
- return(@_);
- }
-
-sub main'NR
- {
- local($num)=@_;
- local(@ret);
-
- $num=1 if $num == 0;
- ($#pool_free >= ($num-1)) || croak "out of registers: want $num, have @pool_free";
- while ($num > 0)
- {
- push(@ret,pop @pool_free);
- $curr_num++;
- $max=$curr_num if ($curr_num > $max);
- $num--
- }
- print STDERR "nr @ret\n" if $n_debug;
-print STDERR "NR:@pool_free\n" if $reg_alloc;
- return(@ret);
-
- }
-
-sub main'FR
- {
- local(@r)=@_;
- local(@a,$v,$w);
-
- print STDERR "fr @r\n" if $n_debug;
-# cluck "fr @r";
- for $w (@pool_free)
- {
- foreach $v (@r)
- {
- croak "double register free of $v (@pool_free)" if $w eq $v;
- }
- }
- foreach $v (@r)
- {
- croak "bad argument to FR" if ($v !~ /^r\d+$/);
- if ($smear_regs)
- { unshift(@pool_free,$v); }
- else { push(@pool_free,$v); }
- $curr_num--;
- }
-print STDERR "FR:@pool_free\n" if $reg_alloc;
- }
-1;
diff --git a/crypto/perlasm/x86asm.pl b/crypto/perlasm/x86asm.pl
index f9c7c37aca..cf2aee40ec 100644
--- a/crypto/perlasm/x86asm.pl
+++ b/crypto/perlasm/x86asm.pl
@@ -18,15 +18,13 @@ sub main'asm_init
($type,$fn,$i386)=@_;
$filename=$fn;
- $elf=$cpp=$sol=$aout=$win32=$gaswin=$netware=0;
+ $elf=$cpp=$coff=$aout=$win32=$netware=$mwerks=0;
if ( ($type eq "elf"))
{ $elf=1; require "x86unix.pl"; }
elsif ( ($type eq "a.out"))
{ $aout=1; require "x86unix.pl"; }
- elsif ( ($type eq "gaswin"))
- { $gaswin=1; $aout=1; require "x86unix.pl"; }
- elsif ( ($type eq "sol"))
- { $sol=1; require "x86unix.pl"; }
+ elsif ( ($type eq "coff" or $type eq "gaswin"))
+ { $coff=1; require "x86unix.pl"; }
elsif ( ($type eq "cpp"))
{ $cpp=1; require "x86unix.pl"; }
elsif ( ($type eq "win32"))
@@ -34,17 +32,16 @@ sub main'asm_init
elsif ( ($type eq "win32n"))
{ $win32=1; require "x86nasm.pl"; }
elsif ( ($type eq "nw-nasm"))
- { $netware=1; require "x86nasm_nw.pl"; }
+ { $netware=1; require "x86nasm.pl"; }
elsif ( ($type eq "nw-mwasm"))
- { $netware=1; require "x86mwasm_nw.pl"; }
+ { $netware=1; $mwerks=1; require "x86nasm.pl"; }
else
{
print STDERR <<"EOF";
Pick one target type from
- elf - linux, FreeBSD etc
- a.out - old linux
- sol - x86 solaris
- cpp - format so x86unix.cpp can be used
+ elf - Linux, FreeBSD, Solaris x86, etc.
+ a.out - OpenBSD, DJGPP, etc.
+ coff - GAS/COFF such as Win32 targets
win32 - Windows 95/Windows NT
win32n - Windows 95/Windows NT NASM format
nw-nasm - NetWare NASM format
@@ -61,7 +58,7 @@ EOF
&comment("Don't even think of reading this code");
&comment("It was automatically generated by $filename");
&comment("Which is a perl program used to generate the x86 assember for");
-&comment("any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris");
+&comment("any of ELF, a.out, COFF, Win32, ...");
&comment("eric <eay\@cryptsoft.com>");
&comment("");
diff --git a/crypto/perlasm/x86ms.pl b/crypto/perlasm/x86ms.pl
index dd62348b6a..35ba300d04 100644
--- a/crypto/perlasm/x86ms.pl
+++ b/crypto/perlasm/x86ms.pl
@@ -92,7 +92,7 @@ sub get_mem
$reg2=&conv($1);
$addr="_$2";
}
- elsif ($addr =~ /^[_a-zA-Z]/)
+ elsif ($addr =~ /^[_a-z][_a-z0-9]*$/i)
{
$addr="_$addr";
}
@@ -133,6 +133,7 @@ sub main'xorb { &out2("xor",@_); }
sub main'add { &out2("add",@_); }
sub main'adc { &out2("adc",@_); }
sub main'sub { &out2("sub",@_); }
+sub main'sbb { &out2("sbb",@_); }
sub main'rotl { &out2("rol",@_); }
sub main'rotr { &out2("ror",@_); }
sub main'exch { &out2("xchg",@_); }
@@ -160,6 +161,8 @@ sub main'jne { &out1("jne",@_); }
sub main'jno { &out1("jno",@_); }
sub main'push { &out1("push",@_); $stack+=4; }
sub main'pop { &out1("pop",@_); $stack-=4; }
+sub main'pushf { &out0("pushfd"); $stack+=4; }
+sub main'popf { &out0("popfd"); $stack-=4; }
sub main'bswap { &out1("bswap",@_); &using486(); }
sub main'not { &out1("not",@_); }
sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
@@ -168,6 +171,11 @@ sub main'nop { &out0("nop"); }
sub main'test { &out2("test",@_); }
sub main'bt { &out2("bt",@_); }
sub main'leave { &out0("leave"); }
+sub main'cpuid { &out0("DW\t0A20Fh"); }
+sub main'rdtsc { &out0("DW\t0310Fh"); }
+sub main'halt { &out0("hlt"); }
+sub main'movz { &out2("movzx",@_); }
+sub main'neg { &out1("neg",@_); }
# SSE2
sub main'emms { &out0("emms"); }
@@ -249,7 +257,7 @@ sub main'function_begin
push(@labels,$func);
local($tmp)=<<"EOF";
-_TEXT SEGMENT
+_TEXT\$ SEGMENT PARA
PUBLIC _$func
$extra
_$func PROC NEAR
@@ -267,7 +275,7 @@ sub main'function_begin_B
local($func,$extra)=@_;
local($tmp)=<<"EOF";
-_TEXT SEGMENT
+_TEXT\$ SEGMENT PARA
PUBLIC _$func
$extra
_$func PROC NEAR
@@ -287,7 +295,7 @@ sub main'function_end
pop ebp
ret
_$func ENDP
-_TEXT ENDS
+_TEXT\$ ENDS
EOF
push(@out,$tmp);
$stack=0;
@@ -300,7 +308,7 @@ sub main'function_end_B
local($tmp)=<<"EOF";
_$func ENDP
-_TEXT ENDS
+_TEXT\$ ENDS
EOF
push(@out,$tmp);
$stack=0;
@@ -325,7 +333,7 @@ sub main'file_end
{
# try to detect if SSE2 or MMX extensions were used...
if (grep {/xmm[0-7]\s*,/i} @out) {
- grep {s/\.[3-7]86/\.786\n\t\.XMM/} @out;
+ grep {s/\.[3-7]86/\.686\n\t\.XMM/} @out;
}
elsif (grep {/mm[0-7]\s*,/i} @out) {
grep {s/\.[3-7]86/\.686\n\t\.MMX/} @out;
@@ -361,6 +369,12 @@ sub main'comment
}
}
+sub main'public_label
+ {
+ $label{$_[0]}="_$_[0]" if (!defined($label{$_[0]}));
+ push(@out,"PUBLIC\t$label{$_[0]}\n");
+ }
+
sub main'label
{
if (!defined($label{$_[0]}))
@@ -378,10 +392,18 @@ sub main'set_label
$label{$_[0]}="\$${label}${_[0]}";
$label++;
}
+ if ($_[1]!=0 && $_[1]>1)
+ {
+ main'align($_[1]);
+ }
if((defined $_[2]) && ($_[2] == 1))
{
push(@out,"$label{$_[0]}::\n");
}
+ elsif ($label{$_[0]} !~ /^\$/)
+ {
+ push(@out,"$label{$_[0]}\tLABEL PTR\n");
+ }
else
{
push(@out,"$label{$_[0]}:\n");
@@ -413,3 +435,18 @@ sub main'picmeup
}
sub main'blindpop { &out1("pop",@_); }
+
+sub main'initseg
+ {
+ local($f)=@_;
+ local($tmp)=<<___;
+OPTION DOTNAME
+.CRT\$XIU SEGMENT DWORD PUBLIC 'DATA'
+EXTRN _$f:NEAR
+DD _$f
+.CRT\$XIU ENDS
+___
+ push(@out,$tmp);
+ }
+
+1;
diff --git a/crypto/perlasm/x86mwasm_nw.pl b/crypto/perlasm/x86mwasm_nw.pl
deleted file mode 100644
index 7a691851c2..0000000000
--- a/crypto/perlasm/x86mwasm_nw.pl
+++ /dev/null
@@ -1,363 +0,0 @@
-#!/usr/local/bin/perl
-
-# x86 CodeWarrior assembler for NetWare
-
-# This file is a slightly modified version of x86nasm.pl. The Metrowerks
-# compiler for NetWare doesn't prefix symbols with an underscore.
-#
-
-$label="L000";
-
-%lb=( 'eax', 'al',
- 'ebx', 'bl',
- 'ecx', 'cl',
- 'edx', 'dl',
- 'ax', 'al',
- 'bx', 'bl',
- 'cx', 'cl',
- 'dx', 'dl',
- );
-
-%hb=( 'eax', 'ah',
- 'ebx', 'bh',
- 'ecx', 'ch',
- 'edx', 'dh',
- 'ax', 'ah',
- 'bx', 'bh',
- 'cx', 'ch',
- 'dx', 'dh',
- );
-
-sub main'asm_init_output
-{
- @out=();
- &comment("NetWare: assembly for CodeWarrior assembler (mwasmnlm)");
-}
-sub main'asm_get_output { return(@out); }
-sub main'get_labels { return(@labels); }
-
-sub main'external_label
-{
- push(@labels,@_);
- foreach (@_) {
- push(@out, ".extern\t$_\n");
- }
-}
-
-sub main'LB
- {
- (defined($lb{$_[0]})) || die "$_[0] does not have a 'low byte'\n";
- return($lb{$_[0]});
- }
-
-sub main'HB
- {
- (defined($hb{$_[0]})) || die "$_[0] does not have a 'high byte'\n";
- return($hb{$_[0]});
- }
-
-sub main'BP
- {
- &get_mem("BYTE",@_);
- }
-
-sub main'DWP
- {
- &get_mem("DWORD",@_);
- }
-
-sub main'BC
- {
- return "@_";
- }
-
-sub main'DWC
- {
- return "@_";
- }
-
-sub main'stack_push
- {
- my($num)=@_;
- $stack+=$num*4;
- &main'sub("esp",$num*4);
- }
-
-sub main'stack_pop
- {
- my($num)=@_;
- $stack-=$num*4;
- &main'add("esp",$num*4);
- }
-
-sub get_mem
- {
- my($size,$addr,$reg1,$reg2,$idx)=@_;
- my($t,$post);
- my($ret)="$size PTR [";
- $addr =~ s/^\s+//;
- if ($addr =~ /^(.+)\+(.+)$/)
- {
- $reg2=&conv($1);
- $addr="$2";
- }
- elsif ($addr =~ /^[_a-zA-Z]/)
- {
- $addr="$addr";
- }
-
- if ($addr =~ /^.+\-.+$/) { $addr="($addr)"; }
-
- $reg1="$regs{$reg1}" if defined($regs{$reg1});
- $reg2="$regs{$reg2}" if defined($regs{$reg2});
- if (($addr ne "") && ($addr ne 0))
- {
- if ($addr !~ /^-/)
- { $ret.="${addr}+"; }
- else { $post=$addr; }
- }
- if ($reg2 ne "")
- {
- $t="";
- $t="*$idx" if ($idx != 0);
- $reg1="+".$reg1 if ("$reg1$post" ne "");
- $ret.="$reg2$t$reg1$post]";
- }
- else
- {
- $ret.="$reg1$post]"
- }
- $ret =~ s/\+\]/]/; # in case $addr was the only argument
- return($ret);
- }
-
-sub main'mov { &out2("mov",@_); }
-sub main'movb { &out2("mov",@_); }
-sub main'and { &out2("and",@_); }
-sub main'or { &out2("or",@_); }
-sub main'shl { &out2("shl",@_); }
-sub main'shr { &out2("shr",@_); }
-sub main'xor { &out2("xor",@_); }
-sub main'xorb { &out2("xor",@_); }
-sub main'add { &out2("add",@_); }
-sub main'adc { &out2("adc",@_); }
-sub main'sub { &out2("sub",@_); }
-sub main'rotl { &out2("rol",@_); }
-sub main'rotr { &out2("ror",@_); }
-sub main'exch { &out2("xchg",@_); }
-sub main'cmp { &out2("cmp",@_); }
-sub main'lea { &out2("lea",@_); }
-sub main'mul { &out1("mul",@_); }
-sub main'div { &out1("div",@_); }
-sub main'dec { &out1("dec",@_); }
-sub main'inc { &out1("inc",@_); }
-sub main'jmp { &out1("jmp",@_); }
-sub main'jmp_ptr { &out1p("jmp",@_); }
-
-sub main'je { &out1("je ",@_); }
-sub main'jle { &out1("jle ",@_); }
-sub main'jz { &out1("jz ",@_); }
-sub main'jge { &out1("jge ",@_); }
-sub main'jl { &out1("jl ",@_); }
-sub main'ja { &out1("ja ",@_); }
-sub main'jae { &out1("jae ",@_); }
-sub main'jb { &out1("jb ",@_); }
-sub main'jbe { &out1("jbe ",@_); }
-sub main'jc { &out1("jc ",@_); }
-sub main'jnc { &out1("jnc ",@_); }
-sub main'jnz { &out1("jnz ",@_); }
-sub main'jne { &out1("jne ",@_); }
-sub main'jno { &out1("jno ",@_); }
-
-sub main'push { &out1("push",@_); $stack+=4; }
-sub main'pop { &out1("pop",@_); $stack-=4; }
-sub main'bswap { &out1("bswap",@_); &using486(); }
-sub main'not { &out1("not",@_); }
-sub main'call { &out1("call",$_[0]); }
-sub main'ret { &out0("ret"); }
-sub main'nop { &out0("nop"); }
-
-sub out2
- {
- my($name,$p1,$p2)=@_;
- my($l,$t);
-
- push(@out,"\t$name\t");
- $t=&conv($p1).",";
- $l=length($t);
- push(@out,$t);
- $l=4-($l+9)/8;
- push(@out,"\t" x $l);
- push(@out,&conv($p2));
- push(@out,"\n");
- }
-
-sub out0
- {
- my($name)=@_;
-
- push(@out,"\t$name\n");
- }
-
-sub out1
- {
- my($name,$p1)=@_;
- my($l,$t);
- push(@out,"\t$name\t".&conv($p1)."\n");
- }
-
-sub conv
- {
- my($p)=@_;
- $p =~ s/0x([0-9A-Fa-f]+)/0$1h/;
- return $p;
- }
-
-sub using486
- {
- return if $using486;
- $using486++;
- grep(s/\.386/\.486/,@out);
- }
-
-sub main'file
- {
- push(@out, ".section .text\n");
- }
-
-sub main'function_begin
- {
- my($func,$extra)=@_;
-
- push(@labels,$func);
- my($tmp)=<<"EOF";
-.global $func
-$func:
- push ebp
- push ebx
- push esi
- push edi
-EOF
- push(@out,$tmp);
- $stack=20;
- }
-
-sub main'function_begin_B
- {
- my($func,$extra)=@_;
- my($tmp)=<<"EOF";
-.global $func
-$func:
-EOF
- push(@out,$tmp);
- $stack=4;
- }
-
-sub main'function_end
- {
- my($func)=@_;
-
- my($tmp)=<<"EOF";
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-EOF
- push(@out,$tmp);
- $stack=0;
- %label=();
- }
-
-sub main'function_end_B
- {
- $stack=0;
- %label=();
- }
-
-sub main'function_end_A
- {
- my($func)=@_;
-
- my($tmp)=<<"EOF";
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-EOF
- push(@out,$tmp);
- }
-
-sub main'file_end
- {
- }
-
-sub main'wparam
- {
- my($num)=@_;
-
- return(&main'DWP($stack+$num*4,"esp","",0));
- }
-
-sub main'swtmp
- {
- return(&main'DWP($_[0]*4,"esp","",0));
- }
-
-# Should use swtmp, which is above esp. Linix can trash the stack above esp
-#sub main'wtmp
-# {
-# my($num)=@_;
-#
-# return(&main'DWP(-(($num+1)*4),"esp","",0));
-# }
-
-sub main'comment
- {
- foreach (@_)
- {
- push(@out,"\t; $_\n");
- }
- }
-
-sub main'label
- {
- if (!defined($label{$_[0]}))
- {
- $label{$_[0]}="${label}${_[0]}";
- $label++;
- }
- return($label{$_[0]});
- }
-
-sub main'set_label
- {
- if (!defined($label{$_[0]}))
- {
- $label{$_[0]}="${label}${_[0]}";
- $label++;
- }
- push(@out,"$label{$_[0]}:\n");
- }
-
-sub main'data_word
- {
- push(@out,"\t.long\t$_[0]\n");
- }
-
-sub out1p
- {
- my($name,$p1)=@_;
- my($l,$t);
-
- push(@out,"\t$name\t ".&conv($p1)."\n");
- }
-
-sub main'picmeup
- {
- local($dst,$sym)=@_;
- &main'lea($dst,&main'DWP($sym));
- }
-
-sub main'blindpop { &out1("pop",@_); }
diff --git a/crypto/perlasm/x86nasm.pl b/crypto/perlasm/x86nasm.pl
index da2a1d471b..b897ed0fda 100644
--- a/crypto/perlasm/x86nasm.pl
+++ b/crypto/perlasm/x86nasm.pl
@@ -3,6 +3,7 @@
package x86nasm;
$label="L000";
+$under=($main'netware)?'':'_';
%lb=( 'eax', 'al',
'ebx', 'bl',
@@ -32,7 +33,8 @@ sub main'external_label
{
push(@labels,@_);
foreach (@_) {
- push(@out, "extern\t_$_\n");
+ push(@out,".") if ($main'mwerks);
+ push(@out, "extern\t${under}$_\n");
}
}
@@ -60,17 +62,17 @@ sub main'DWP
sub main'QWP
{
- &get_mem("QWORD",@_);
+ &get_mem("",@_);
}
sub main'BC
{
- return "BYTE @_";
+ return (($main'mwerks)?"":"BYTE ")."@_";
}
sub main'DWC
{
- return "DWORD @_";
+ return (($main'mwerks)?"":"DWORD ")."@_";
}
sub main'stack_push
@@ -91,16 +93,22 @@ sub get_mem
{
my($size,$addr,$reg1,$reg2,$idx)=@_;
my($t,$post);
- my($ret)="[";
+ my($ret)=$size;
+ if ($ret ne "")
+ {
+ $ret .= " PTR" if ($main'mwerks);
+ $ret .= " ";
+ }
+ $ret .= "[";
$addr =~ s/^\s+//;
if ($addr =~ /^(.+)\+(.+)$/)
{
$reg2=&conv($1);
- $addr="_$2";
+ $addr="$under$2";
}
- elsif ($addr =~ /^[_a-zA-Z]/)
+ elsif ($addr =~ /^[_a-z][_a-z0-9]*$/i)
{
- $addr="_$addr";
+ $addr="$under$addr";
}
if ($addr =~ /^.+\-.+$/) { $addr="($addr)"; }
@@ -139,6 +147,7 @@ sub main'xorb { &out2("xor",@_); }
sub main'add { &out2("add",@_); }
sub main'adc { &out2("adc",@_); }
sub main'sub { &out2("sub",@_); }
+sub main'sbb { &out2("sbb",@_); }
sub main'rotl { &out2("rol",@_); }
sub main'rotr { &out2("ror",@_); }
sub main'exch { &out2("xchg",@_); }
@@ -152,31 +161,39 @@ sub main'jmp { &out1("jmp",@_); }
sub main'jmp_ptr { &out1p("jmp",@_); }
# This is a bit of a kludge: declare all branches as NEAR.
-sub main'je { &out1("je NEAR",@_); }
-sub main'jle { &out1("jle NEAR",@_); }
-sub main'jz { &out1("jz NEAR",@_); }
-sub main'jge { &out1("jge NEAR",@_); }
-sub main'jl { &out1("jl NEAR",@_); }
-sub main'ja { &out1("ja NEAR",@_); }
-sub main'jae { &out1("jae NEAR",@_); }
-sub main'jb { &out1("jb NEAR",@_); }
-sub main'jbe { &out1("jbe NEAR",@_); }
-sub main'jc { &out1("jc NEAR",@_); }
-sub main'jnc { &out1("jnc NEAR",@_); }
-sub main'jnz { &out1("jnz NEAR",@_); }
-sub main'jne { &out1("jne NEAR",@_); }
-sub main'jno { &out1("jno NEAR",@_); }
+$near=($main'mwerks)?'':'NEAR';
+sub main'je { &out1("je $near",@_); }
+sub main'jle { &out1("jle $near",@_); }
+sub main'jz { &out1("jz $near",@_); }
+sub main'jge { &out1("jge $near",@_); }
+sub main'jl { &out1("jl $near",@_); }
+sub main'ja { &out1("ja $near",@_); }
+sub main'jae { &out1("jae $near",@_); }
+sub main'jb { &out1("jb $near",@_); }
+sub main'jbe { &out1("jbe $near",@_); }
+sub main'jc { &out1("jc $near",@_); }
+sub main'jnc { &out1("jnc $near",@_); }
+sub main'jnz { &out1("jnz $near",@_); }
+sub main'jne { &out1("jne $near",@_); }
+sub main'jno { &out1("jno $near",@_); }
sub main'push { &out1("push",@_); $stack+=4; }
sub main'pop { &out1("pop",@_); $stack-=4; }
+sub main'pushf { &out0("pushfd"); $stack+=4; }
+sub main'popf { &out0("popfd"); $stack-=4; }
sub main'bswap { &out1("bswap",@_); &using486(); }
sub main'not { &out1("not",@_); }
-sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
+sub main'call { &out1("call",($_[0]=~/^\@L/?'':$under).$_[0]); }
sub main'ret { &out0("ret"); }
sub main'nop { &out0("nop"); }
sub main'test { &out2("test",@_); }
sub main'bt { &out2("bt",@_); }
sub main'leave { &out0("leave"); }
+sub main'cpuid { &out0("cpuid"); }
+sub main'rdtsc { &out0("rdtsc"); }
+sub main'halt { &out0("hlt"); }
+sub main'movz { &out2("movzx",@_); }
+sub main'neg { &out1("neg",@_); }
# SSE2
sub main'emms { &out0("emms"); }
@@ -200,6 +217,11 @@ sub out2
my($l,$t);
push(@out,"\t$name\t");
+ if (!$main'mwerks and $name eq "lea")
+ {
+ $p1 =~ s/^[^\[]*\[/\[/;
+ $p2 =~ s/^[^\[]*\[/\[/;
+ }
$t=&conv($p1).",";
$l=length($t);
push(@out,$t);
@@ -239,7 +261,8 @@ sub using486
sub main'file
{
- push(@out, "segment .text use32\n");
+ push(@out,".") if ($main'mwerks);
+ push(@out,"section\t.text\n");
}
sub main'function_begin
@@ -248,8 +271,8 @@ sub main'function_begin
push(@labels,$func);
my($tmp)=<<"EOF";
-global _$func
-_$func:
+global $under$func
+$under$func:
push ebp
push ebx
push esi
@@ -263,8 +286,8 @@ sub main'function_begin_B
{
my($func,$extra)=@_;
my($tmp)=<<"EOF";
-global _$func
-_$func:
+global $under$func
+$under$func:
EOF
push(@out,$tmp);
$stack=4;
@@ -338,11 +361,17 @@ sub main'comment
}
}
+sub main'public_label
+ {
+ $label{$_[0]}="${under}${_[0]}" if (!defined($label{$_[0]}));
+ push(@out,"global\t$label{$_[0]}\n");
+ }
+
sub main'label
{
if (!defined($label{$_[0]}))
{
- $label{$_[0]}="\$${label}${_[0]}";
+ $label{$_[0]}="\@${label}${_[0]}";
$label++;
}
return($label{$_[0]});
@@ -352,20 +381,25 @@ sub main'set_label
{
if (!defined($label{$_[0]}))
{
- $label{$_[0]}="\$${label}${_[0]}";
+ $label{$_[0]}="\@${label}${_[0]}";
$label++;
}
+ if ($_[1]!=0 && $_[1]>1)
+ {
+ main'align($_[1]);
+ }
push(@out,"$label{$_[0]}:\n");
}
sub main'data_word
{
- push(@out,"\tDD\t".join(',',@_)."\n");
+ push(@out,(($main'mwerks)?".long\t":"DD\t").join(',',@_)."\n");
}
sub main'align
{
- push(@out,"\tALIGN\t$_[0]\n");
+ push(@out,".") if ($main'mwerks);
+ push(@out,"align\t$_[0]\n");
}
sub out1p
@@ -383,3 +417,19 @@ sub main'picmeup
}
sub main'blindpop { &out1("pop",@_); }
+
+sub main'initseg
+ {
+ local($f)=@_;
+ if ($main'win32)
+ {
+ local($tmp)=<<___;
+segment .CRT\$XIU data
+extern $under$f
+DD $under$f
+___
+ push(@out,$tmp);
+ }
+ }
+
+1;
diff --git a/crypto/perlasm/x86nasm_nw.pl b/crypto/perlasm/x86nasm_nw.pl
deleted file mode 100644
index e64766cf03..0000000000
--- a/crypto/perlasm/x86nasm_nw.pl
+++ /dev/null
@@ -1,364 +0,0 @@
-#!/usr/local/bin/perl
-
-# x86 nasm assembler for NetWare
-
-# This file is a slightly modified version of x86nasm.pl. The Metrowerks
-# compiler for NetWare doesn't prefix symbols with an underscore.
-#
-
-$label="L000";
-
-%lb=( 'eax', 'al',
- 'ebx', 'bl',
- 'ecx', 'cl',
- 'edx', 'dl',
- 'ax', 'al',
- 'bx', 'bl',
- 'cx', 'cl',
- 'dx', 'dl',
- );
-
-%hb=( 'eax', 'ah',
- 'ebx', 'bh',
- 'ecx', 'ch',
- 'edx', 'dh',
- 'ax', 'ah',
- 'bx', 'bh',
- 'cx', 'ch',
- 'dx', 'dh',
- );
-
-sub main'asm_init_output
-{
- @out=();
- &comment("NetWare: assembly for NASM assembler (nasmw)");
-}
-sub main'asm_get_output { return(@out); }
-sub main'get_labels { return(@labels); }
-
-sub main'external_label
-{
- push(@labels,@_);
- foreach (@_) {
- push(@out, "extern\t$_\n");
- }
-}
-
-sub main'LB
- {
- (defined($lb{$_[0]})) || die "$_[0] does not have a 'low byte'\n";
- return($lb{$_[0]});
- }
-
-sub main'HB
- {
- (defined($hb{$_[0]})) || die "$_[0] does not have a 'high byte'\n";
- return($hb{$_[0]});
- }
-
-sub main'BP
- {
- &get_mem("BYTE",@_);
- }
-
-sub main'DWP
- {
- &get_mem("DWORD",@_);
- }
-
-sub main'BC
- {
- return "BYTE @_";
- }
-
-sub main'DWC
- {
- return "DWORD @_";
- }
-
-sub main'stack_push
- {
- my($num)=@_;
- $stack+=$num*4;
- &main'sub("esp",$num*4);
- }
-
-sub main'stack_pop
- {
- my($num)=@_;
- $stack-=$num*4;
- &main'add("esp",$num*4);
- }
-
-sub get_mem
- {
- my($size,$addr,$reg1,$reg2,$idx)=@_;
- my($t,$post);
- my($ret)="[";
- $addr =~ s/^\s+//;
- if ($addr =~ /^(.+)\+(.+)$/)
- {
- $reg2=&conv($1);
- $addr="$2";
- }
- elsif ($addr =~ /^[_a-zA-Z]/)
- {
- $addr="$addr";
- }
-
- if ($addr =~ /^.+\-.+$/) { $addr="($addr)"; }
-
- $reg1="$regs{$reg1}" if defined($regs{$reg1});
- $reg2="$regs{$reg2}" if defined($regs{$reg2});
- if (($addr ne "") && ($addr ne 0))
- {
- if ($addr !~ /^-/)
- { $ret.="${addr}+"; }
- else { $post=$addr; }
- }
- if ($reg2 ne "")
- {
- $t="";
- $t="*$idx" if ($idx != 0);
- $reg1="+".$reg1 if ("$reg1$post" ne "");
- $ret.="$reg2$t$reg1$post]";
- }
- else
- {
- $ret.="$reg1$post]"
- }
- $ret =~ s/\+\]/]/; # in case $addr was the only argument
- return($ret);
- }
-
-sub main'mov { &out2("mov",@_); }
-sub main'movb { &out2("mov",@_); }
-sub main'and { &out2("and",@_); }
-sub main'or { &out2("or",@_); }
-sub main'shl { &out2("shl",@_); }
-sub main'shr { &out2("shr",@_); }
-sub main'xor { &out2("xor",@_); }
-sub main'xorb { &out2("xor",@_); }
-sub main'add { &out2("add",@_); }
-sub main'adc { &out2("adc",@_); }
-sub main'sub { &out2("sub",@_); }
-sub main'rotl { &out2("rol",@_); }
-sub main'rotr { &out2("ror",@_); }
-sub main'exch { &out2("xchg",@_); }
-sub main'cmp { &out2("cmp",@_); }
-sub main'lea { &out2("lea",@_); }
-sub main'mul { &out1("mul",@_); }
-sub main'div { &out1("div",@_); }
-sub main'dec { &out1("dec",@_); }
-sub main'inc { &out1("inc",@_); }
-sub main'jmp { &out1("jmp",@_); }
-sub main'jmp_ptr { &out1p("jmp",@_); }
-
-# This is a bit of a kludge: declare all branches as NEAR.
-sub main'je { &out1("je NEAR",@_); }
-sub main'jle { &out1("jle NEAR",@_); }
-sub main'jz { &out1("jz NEAR",@_); }
-sub main'jge { &out1("jge NEAR",@_); }
-sub main'jl { &out1("jl NEAR",@_); }
-sub main'ja { &out1("ja NEAR",@_); }
-sub main'jae { &out1("jae NEAR",@_); }
-sub main'jb { &out1("jb NEAR",@_); }
-sub main'jbe { &out1("jbe NEAR",@_); }
-sub main'jc { &out1("jc NEAR",@_); }
-sub main'jnc { &out1("jnc NEAR",@_); }
-sub main'jnz { &out1("jnz NEAR",@_); }
-sub main'jne { &out1("jne NEAR",@_); }
-sub main'jno { &out1("jno NEAR",@_); }
-
-sub main'push { &out1("push",@_); $stack+=4; }
-sub main'pop { &out1("pop",@_); $stack-=4; }
-sub main'bswap { &out1("bswap",@_); &using486(); }
-sub main'not { &out1("not",@_); }
-sub main'call { &out1("call",$_[0]); }
-sub main'ret { &out0("ret"); }
-sub main'nop { &out0("nop"); }
-
-sub out2
- {
- my($name,$p1,$p2)=@_;
- my($l,$t);
-
- push(@out,"\t$name\t");
- $t=&conv($p1).",";
- $l=length($t);
- push(@out,$t);
- $l=4-($l+9)/8;
- push(@out,"\t" x $l);
- push(@out,&conv($p2));
- push(@out,"\n");
- }
-
-sub out0
- {
- my($name)=@_;
-
- push(@out,"\t$name\n");
- }
-
-sub out1
- {
- my($name,$p1)=@_;
- my($l,$t);
- push(@out,"\t$name\t".&conv($p1)."\n");
- }
-
-sub conv
- {
- my($p)=@_;
- $p =~ s/0x([0-9A-Fa-f]+)/0$1h/;
- return $p;
- }
-
-sub using486
- {
- return if $using486;
- $using486++;
- grep(s/\.386/\.486/,@out);
- }
-
-sub main'file
- {
- push(@out, "segment .text\n");
- }
-
-sub main'function_begin
- {
- my($func,$extra)=@_;
-
- push(@labels,$func);
- my($tmp)=<<"EOF";
-global $func
-$func:
- push ebp
- push ebx
- push esi
- push edi
-EOF
- push(@out,$tmp);
- $stack=20;
- }
-
-sub main'function_begin_B
- {
- my($func,$extra)=@_;
- my($tmp)=<<"EOF";
-global $func
-$func:
-EOF
- push(@out,$tmp);
- $stack=4;
- }
-
-sub main'function_end
- {
- my($func)=@_;
-
- my($tmp)=<<"EOF";
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-EOF
- push(@out,$tmp);
- $stack=0;
- %label=();
- }
-
-sub main'function_end_B
- {
- $stack=0;
- %label=();
- }
-
-sub main'function_end_A
- {
- my($func)=@_;
-
- my($tmp)=<<"EOF";
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-EOF
- push(@out,$tmp);
- }
-
-sub main'file_end
- {
- }
-
-sub main'wparam
- {
- my($num)=@_;
-
- return(&main'DWP($stack+$num*4,"esp","",0));
- }
-
-sub main'swtmp
- {
- return(&main'DWP($_[0]*4,"esp","",0));
- }
-
-# Should use swtmp, which is above esp. Linix can trash the stack above esp
-#sub main'wtmp
-# {
-# my($num)=@_;
-#
-# return(&main'DWP(-(($num+1)*4),"esp","",0));
-# }
-
-sub main'comment
- {
- foreach (@_)
- {
- push(@out,"\t; $_\n");
- }
- }
-
-sub main'label
- {
- if (!defined($label{$_[0]}))
- {
- $label{$_[0]}="\$${label}${_[0]}";
- $label++;
- }
- return($label{$_[0]});
- }
-
-sub main'set_label
- {
- if (!defined($label{$_[0]}))
- {
- $label{$_[0]}="${label}${_[0]}";
- $label++;
- }
- push(@out,"$label{$_[0]}:\n");
- }
-
-sub main'data_word
- {
- push(@out,"\tDD\t$_[0]\n");
- }
-
-sub out1p
- {
- my($name,$p1)=@_;
- my($l,$t);
-
- push(@out,"\t$name\t ".&conv($p1)."\n");
- }
-
-sub main'picmeup
- {
- local($dst,$sym)=@_;
- &main'lea($dst,&main'DWP($sym));
- }
-
-sub main'blindpop { &out1("pop",@_); }
diff --git a/crypto/perlasm/x86unix.pl b/crypto/perlasm/x86unix.pl
index 99e2865aa0..4381580be7 100644
--- a/crypto/perlasm/x86unix.pl
+++ b/crypto/perlasm/x86unix.pl
@@ -1,14 +1,15 @@
#!/usr/local/bin/perl
-package x86unix;
+package x86unix; # GAS actually...
$label="L000";
$const="";
$constl=0;
$align=($main'aout)?"4":"16";
-$under=($main'aout)?"_":"";
-$com_start=($main'sol)?"/":"#";
+$under=($main'aout or $main'coff)?"_":"";
+$dot=($main'aout)?"":".";
+$com_start="#" if ($main'aout or $main'coff);
sub main'asm_init_output { @out=(); }
sub main'asm_get_output { return(@out); }
@@ -160,12 +161,13 @@ sub main'shl { &out2("sall",@_); }
sub main'shr { &out2("shrl",@_); }
sub main'xor { &out2("xorl",@_); }
sub main'xorb { &out2("xorb",@_); }
-sub main'add { &out2("addl",@_); }
+sub main'add { &out2($_[0]=~/%[a-d][lh]/?"addb":"addl",@_); }
sub main'adc { &out2("adcl",@_); }
sub main'sub { &out2("subl",@_); }
+sub main'sbb { &out2("sbbl",@_); }
sub main'rotl { &out2("roll",@_); }
sub main'rotr { &out2("rorl",@_); }
-sub main'exch { &out2("xchg",@_); }
+sub main'exch { &out2($_[0]=~/%[a-d][lh]/?"xchgb":"xchgl",@_); }
sub main'cmp { &out2("cmpl",@_); }
sub main'lea { &out2("leal",@_); }
sub main'mul { &out1("mull",@_); }
@@ -187,18 +189,27 @@ sub main'jc { &out1("jc",@_); }
sub main'jnc { &out1("jnc",@_); }
sub main'jno { &out1("jno",@_); }
sub main'dec { &out1("decl",@_); }
-sub main'inc { &out1("incl",@_); }
+sub main'inc { &out1($_[0]=~/%[a-d][hl]/?"incb":"incl",@_); }
sub main'push { &out1("pushl",@_); $stack+=4; }
sub main'pop { &out1("popl",@_); $stack-=4; }
-sub main'pushf { &out0("pushf"); $stack+=4; }
-sub main'popf { &out0("popf"); $stack-=4; }
+sub main'pushf { &out0("pushfl"); $stack+=4; }
+sub main'popf { &out0("popfl"); $stack-=4; }
sub main'not { &out1("notl",@_); }
-sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); }
+sub main'call { my $pre=$under;
+ foreach $i (%label)
+ { if ($label{$i} eq $_[0]) { $pre=''; last; } }
+ &out1("call",$pre.$_[0]);
+ }
sub main'ret { &out0("ret"); }
sub main'nop { &out0("nop"); }
sub main'test { &out2("testl",@_); }
sub main'bt { &out2("btl",@_); }
sub main'leave { &out0("leave"); }
+sub main'cpuid { &out0(".byte\t0x0f,0xa2"); }
+sub main'rdtsc { &out0(".byte\t0x0f,0x31"); }
+sub main'halt { &out0("hlt"); }
+sub main'movz { &out2("movzbl",@_); }
+sub main'neg { &out1("negl",@_); }
# SSE2
sub main'emms { &out0("emms"); }
@@ -320,8 +331,6 @@ sub main'file
local($tmp)=<<"EOF";
.file "$file.s"
- .version "01.01"
-gcc2_compiled.:
EOF
push(@out,$tmp);
}
@@ -335,15 +344,17 @@ sub main'function_begin
local($tmp)=<<"EOF";
.text
- .align $align
-.globl $func
+.globl $func
EOF
push(@out,$tmp);
if ($main'cpp)
- { $tmp=push(@out,"\tTYPE($func,\@function)\n"); }
- elsif ($main'gaswin)
- { $tmp=push(@out,"\t.def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
- else { $tmp=push(@out,"\t.type\t$func,\@function\n"); }
+ { $tmp=push(@out,"TYPE($func,\@function)\n"); }
+ elsif ($main'coff)
+ { $tmp=push(@out,".def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
+ elsif ($main'aout and !$main'pic)
+ { }
+ else { $tmp=push(@out,".type\t$func,\@function\n"); }
+ push(@out,".align\t$align\n");
push(@out,"$func:\n");
$tmp=<<"EOF";
pushl %ebp
@@ -365,15 +376,17 @@ sub main'function_begin_B
local($tmp)=<<"EOF";
.text
- .align $align
-.globl $func
+.globl $func
EOF
push(@out,$tmp);
if ($main'cpp)
- { push(@out,"\tTYPE($func,\@function)\n"); }
- elsif ($main'gaswin)
- { $tmp=push(@out,"\t.def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
- else { push(@out,"\t.type $func,\@function\n"); }
+ { push(@out,"TYPE($func,\@function)\n"); }
+ elsif ($main'coff)
+ { $tmp=push(@out,".def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
+ elsif ($main'aout and !$main'pic)
+ { }
+ else { push(@out,".type $func,\@function\n"); }
+ push(@out,".align\t$align\n");
push(@out,"$func:\n");
$stack=4;
}
@@ -390,15 +403,15 @@ sub main'function_end
popl %ebx
popl %ebp
ret
-.L_${func}_end:
+${dot}L_${func}_end:
EOF
push(@out,$tmp);
if ($main'cpp)
- { push(@out,"\tSIZE($func,.L_${func}_end-$func)\n"); }
- elsif ($main'gaswin)
- { $tmp=push(@out,"\t.align 4\n"); }
- else { push(@out,"\t.size\t$func,.L_${func}_end-$func\n"); }
+ { push(@out,"SIZE($func,${dot}L_${func}_end-$func)\n"); }
+ elsif ($main'coff or $main'aout)
+ { }
+ else { push(@out,".size\t$func,${dot}L_${func}_end-$func\n"); }
push(@out,".ident \"$func\"\n");
$stack=0;
%label=();
@@ -424,12 +437,12 @@ sub main'function_end_B
$func=$under.$func;
- push(@out,".L_${func}_end:\n");
+ push(@out,"${dot}L_${func}_end:\n");
if ($main'cpp)
- { push(@out,"\tSIZE($func,.L_${func}_end-$func)\n"); }
- elsif ($main'gaswin)
- { push(@out,"\t.align 4\n"); }
- else { push(@out,"\t.size\t$func,.L_${func}_end-$func\n"); }
+ { push(@out,"SIZE($func,${dot}L_${func}_end-$func)\n"); }
+ elsif ($main'coff or $main'aout)
+ { }
+ else { push(@out,".size\t$func,${dot}L_${func}_end-$func\n"); }
push(@out,".ident \"$func\"\n");
$stack=0;
%label=();
@@ -471,9 +484,10 @@ sub main'swtmp
sub main'comment
{
- if ($main'elf) # GNU and SVR4 as'es use different comment delimiters,
- { # so we just skip comments...
- push(@out,"\n");
+ if (!defined($com_start) or $main'elf)
+ { # Regarding $main'elf above...
+ # GNU and SVR4 as'es use different comment delimiters,
+ push(@out,"\n"); # so we just skip ELF comments...
return;
}
foreach (@_)
@@ -485,11 +499,17 @@ sub main'comment
}
}
+sub main'public_label
+ {
+ $label{$_[0]}="${under}${_[0]}" if (!defined($label{$_[0]}));
+ push(@out,".globl\t$label{$_[0]}\n");
+ }
+
sub main'label
{
if (!defined($label{$_[0]}))
{
- $label{$_[0]}=".${label}${_[0]}";
+ $label{$_[0]}="${dot}${label}${_[0]}";
$label++;
}
return($label{$_[0]});
@@ -499,10 +519,14 @@ sub main'set_label
{
if (!defined($label{$_[0]}))
{
- $label{$_[0]}=".${label}${_[0]}";
+ $label{$_[0]}="${dot}${label}${_[0]}";
$label++;
}
- push(@out,".align $align\n") if ($_[1] != 0);
+ if ($_[1]!=0)
+ {
+ if ($_[1]>1) { main'align($_[1]); }
+ else { push(@out,".align $align\n"); }
+ }
push(@out,"$label{$_[0]}:\n");
}
@@ -512,18 +536,21 @@ sub main'file_end
if ($main'elf && grep {/%[x]*mm[0-7]/i} @out) {
local($tmp);
- push (@out,"\n.comm\t".$under."OPENSSL_ia32cap,8,4\n");
+ push (@out,"\n.comm\t${under}OPENSSL_ia32cap_P,4,4\n");
push (@out,".section\t.init\n");
# One can argue that it's wasteful to craft every
# SSE/MMX module with this snippet... Well, it's 72
# bytes long and for the moment we have two modules.
# Let's argue when we have 7 modules or so...
- &main'picmeup("edx","OPENSSL_ia32cap");
+ #
+ # $1<<10 sets a reserved bit to signal that variable
+ # was initialized already...
+ &main'picmeup("edx","OPENSSL_ia32cap_P");
$tmp=<<___;
cmpl \$0,(%edx)
jne 1f
- movl \$1,(%edx)
+ movl \$1<<10,(%edx)
pushf
popl %eax
movl %eax,%ecx
@@ -533,18 +560,18 @@ sub main'file_end
pushf
popl %eax
xorl %ecx,%eax
- bt \$21,%eax
+ btl \$21,%eax
jnc 1f
pushl %edi
pushl %ebx
movl %edx,%edi
movl \$1,%eax
- cpuid
- orl \$1,%edx
+ .byte 0x0f,0xa2
+ orl \$1<<10,%edx
movl %edx,0(%edi)
- movl %ecx,4(%edi)
popl %ebx
popl %edi
+ .align $align
1:
___
push (@out,$tmp);
@@ -565,7 +592,13 @@ sub main'data_word
sub main'align
{
- push(@out,".align $_[0]\n");
+ my $val=$_[0],$p2,$i;
+ if ($main'aout) {
+ for ($p2=0;$val!=0;$val>>=1) { $p2++; }
+ $val=$p2-1;
+ $val.=",0x90";
+ }
+ push(@out,".align\t$val\n");
}
# debug output functions: puts, putx, printf
@@ -647,7 +680,6 @@ sub main'picmeup
{
local($tmp)=<<___;
#if (defined(ELF) || defined(SOL)) && defined(PIC)
- .align 4
call 1f
1: popl $regs{$dst}
addl \$_GLOBAL_OFFSET_TABLE_+[.-1b],$regs{$dst}
@@ -660,13 +692,12 @@ ___
}
elsif ($main'pic && ($main'elf || $main'aout))
{
- push(@out,"\t.align\t4\n");
&main'call(&main'label("PIC_me_up"));
&main'set_label("PIC_me_up");
&main'blindpop($dst);
- &main'add($dst,"\$$under"."_GLOBAL_OFFSET_TABLE_+[.-".
+ &main'add($dst,"\$${under}_GLOBAL_OFFSET_TABLE_+[.-".
&main'label("PIC_me_up") . "]");
- &main'mov($dst,&main'DWP($sym."\@GOT",$dst));
+ &main'mov($dst,&main'DWP($under.$sym."\@GOT",$dst));
}
else
{
@@ -675,3 +706,39 @@ ___
}
sub main'blindpop { &out1("popl",@_); }
+
+sub main'initseg
+ {
+ local($f)=@_;
+ local($tmp);
+ if ($main'elf)
+ {
+ $tmp=<<___;
+.section .init
+ call $under$f
+ .align $align
+___
+ }
+ elsif ($main'coff)
+ {
+ $tmp=<<___; # applies to both Cygwin and Mingw
+.section .ctors
+.long $under$f
+___
+ }
+ elsif ($main'aout)
+ {
+ local($ctor)="${under}_GLOBAL_\$I\$$f";
+ $tmp=".text\n";
+ $tmp.=".type $ctor,\@function\n" if ($main'pic);
+ $tmp.=<<___; # OpenBSD way...
+.globl $ctor
+.align 2
+$ctor:
+ jmp $under$f
+___
+ }
+ push(@out,$tmp) if ($tmp);
+ }
+
+1;
diff --git a/crypto/pkcs12/Makefile.ssl b/crypto/pkcs12/Makefile.ssl
index 48004f2130..13860527ab 100644
--- a/crypto/pkcs12/Makefile.ssl
+++ b/crypto/pkcs12/Makefile.ssl
@@ -59,7 +59,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/pkcs12/p12_crpt.c b/crypto/pkcs12/p12_crpt.c
index 654d15c82b..d407be39ca 100644
--- a/crypto/pkcs12/p12_crpt.c
+++ b/crypto/pkcs12/p12_crpt.c
@@ -88,7 +88,7 @@ int PKCS12_PBE_keyivgen (EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md, int en_de)
{
PBEPARAM *pbe;
- int saltlen, iter;
+ int saltlen, iter, ret;
unsigned char *salt;
const unsigned char *pbuf;
unsigned char key[EVP_MAX_KEY_LENGTH], iv[EVP_MAX_IV_LENGTH];
@@ -118,8 +118,8 @@ int PKCS12_PBE_keyivgen (EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
return 0;
}
PBEPARAM_free(pbe);
- EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, en_de);
+ ret = EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, en_de);
OPENSSL_cleanse(key, EVP_MAX_KEY_LENGTH);
OPENSSL_cleanse(iv, EVP_MAX_IV_LENGTH);
- return 1;
+ return ret;
}
diff --git a/crypto/pkcs12/p12_init.c b/crypto/pkcs12/p12_init.c
index eb837a78cf..5276b12669 100644
--- a/crypto/pkcs12/p12_init.c
+++ b/crypto/pkcs12/p12_init.c
@@ -76,15 +76,17 @@ PKCS12 *PKCS12_init (int mode)
if (!(pkcs12->authsafes->d.data =
M_ASN1_OCTET_STRING_new())) {
PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
- return NULL;
+ goto err;
}
break;
default:
- PKCS12err(PKCS12_F_PKCS12_INIT,PKCS12_R_UNSUPPORTED_PKCS12_MODE);
- PKCS12_free(pkcs12);
- return NULL;
- break;
+ PKCS12err(PKCS12_F_PKCS12_INIT,
+ PKCS12_R_UNSUPPORTED_PKCS12_MODE);
+ goto err;
}
return pkcs12;
+err:
+ if (pkcs12 != NULL) PKCS12_free(pkcs12);
+ return NULL;
}
diff --git a/crypto/pkcs12/p12_kiss.c b/crypto/pkcs12/p12_kiss.c
index 885087ad00..2b31999e11 100644
--- a/crypto/pkcs12/p12_kiss.c
+++ b/crypto/pkcs12/p12_kiss.c
@@ -249,14 +249,26 @@ static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,
if (M_PKCS12_cert_bag_type(bag) != NID_x509Certificate )
return 1;
if (!(x509 = PKCS12_certbag2x509(bag))) return 0;
- if(ckid) X509_keyid_set1(x509, ckid->data, ckid->length);
+ if(ckid)
+ {
+ if (!X509_keyid_set1(x509, ckid->data, ckid->length))
+ {
+ X509_free(x509);
+ return 0;
+ }
+ }
if(fname) {
- int len;
+ int len, r;
unsigned char *data;
len = ASN1_STRING_to_UTF8(&data, fname);
if(len > 0) {
- X509_alias_set1(x509, data, len);
+ r = X509_alias_set1(x509, data, len);
OPENSSL_free(data);
+ if (!r)
+ {
+ X509_free(x509);
+ return 0;
+ }
}
}
diff --git a/crypto/pkcs12/p12_mutl.c b/crypto/pkcs12/p12_mutl.c
index 0fb67f74b8..4886b9b289 100644
--- a/crypto/pkcs12/p12_mutl.c
+++ b/crypto/pkcs12/p12_mutl.c
@@ -148,7 +148,10 @@ int PKCS12_setup_mac (PKCS12 *p12, int iter, unsigned char *salt, int saltlen,
PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);
return 0;
}
- ASN1_INTEGER_set(p12->mac->iter, iter);
+ if (!ASN1_INTEGER_set(p12->mac->iter, iter)) {
+ PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);
+ return 0;
+ }
}
if (!saltlen) saltlen = PKCS12_SALT_LEN;
p12->mac->salt->length = saltlen;
diff --git a/crypto/pkcs7/Makefile.ssl b/crypto/pkcs7/Makefile.ssl
index 965286e7d5..f8161ecb24 100644
--- a/crypto/pkcs7/Makefile.ssl
+++ b/crypto/pkcs7/Makefile.ssl
@@ -74,7 +74,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/pkcs7/pk7_attr.c b/crypto/pkcs7/pk7_attr.c
index 56ce000585..735c8800e1 100644
--- a/crypto/pkcs7/pk7_attr.c
+++ b/crypto/pkcs7/pk7_attr.c
@@ -3,7 +3,7 @@
* project 2001.
*/
/* ====================================================================
- * Copyright (c) 2001 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 2001-2004 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -94,18 +94,19 @@ int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, STACK_OF(X509_ALGOR) *cap)
}
STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si)
-{
+ {
ASN1_TYPE *cap;
const unsigned char *p;
cap = PKCS7_get_signed_attribute(si, NID_SMIMECapabilities);
- if (!cap) return NULL;
+ if (!cap || (cap->type != V_ASN1_SEQUENCE))
+ return NULL;
p = cap->value.sequence->data;
return d2i_ASN1_SET_OF_X509_ALGOR(NULL, &p,
cap->value.sequence->length,
d2i_X509_ALGOR, X509_ALGOR_free,
V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL);
-}
+ }
/* Basic smime-capabilities OID and optional integer arg */
int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg)
diff --git a/crypto/pkcs7/pk7_doit.c b/crypto/pkcs7/pk7_doit.c
index 25483bc156..8d98a85210 100644
--- a/crypto/pkcs7/pk7_doit.c
+++ b/crypto/pkcs7/pk7_doit.c
@@ -263,7 +263,13 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
OPENSSL_free(tmp);
goto err;
}
- M_ASN1_OCTET_STRING_set(ri->enc_key,tmp,jj);
+ if (!M_ASN1_OCTET_STRING_set(ri->enc_key,tmp,jj))
+ {
+ PKCS7err(PKCS7_F_PKCS7_DATAINIT,
+ ERR_R_MALLOC_FAILURE);
+ OPENSSL_free(tmp);
+ goto err;
+ }
}
OPENSSL_free(tmp);
OPENSSL_cleanse(key, keylen);
@@ -559,12 +565,20 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
case NID_pkcs7_signedAndEnveloped:
/* XXXXXXXXXXXXXXXX */
si_sk=p7->d.signed_and_enveloped->signer_info;
- os=M_ASN1_OCTET_STRING_new();
+ if (!(os=M_ASN1_OCTET_STRING_new()))
+ {
+ PKCS7err(PKCS7_F_PKCS7_DATASIGN,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
p7->d.signed_and_enveloped->enc_data->enc_data=os;
break;
case NID_pkcs7_enveloped:
/* XXXXXXXXXXXXXXXX */
- os=M_ASN1_OCTET_STRING_new();
+ if (!(os=M_ASN1_OCTET_STRING_new()))
+ {
+ PKCS7err(PKCS7_F_PKCS7_DATASIGN,ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
p7->d.enveloped->enc_data->enc_data=os;
break;
case NID_pkcs7_signed:
@@ -635,7 +649,12 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
if (!PKCS7_get_signed_attribute(si,
NID_pkcs9_signingTime))
{
- sign_time=X509_gmtime_adj(NULL,0);
+ if (!(sign_time=X509_gmtime_adj(NULL,0)))
+ {
+ PKCS7err(PKCS7_F_PKCS7_DATASIGN,
+ ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
PKCS7_add_signed_attribute(si,
NID_pkcs9_signingTime,
V_ASN1_UTCTIME,sign_time);
@@ -644,8 +663,19 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
/* Add digest */
md_tmp=EVP_MD_CTX_md(&ctx_tmp);
EVP_DigestFinal_ex(&ctx_tmp,md_data,&md_len);
- digest=M_ASN1_OCTET_STRING_new();
- M_ASN1_OCTET_STRING_set(digest,md_data,md_len);
+ if (!(digest=M_ASN1_OCTET_STRING_new()))
+ {
+ PKCS7err(PKCS7_F_PKCS7_DATASIGN,
+ ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
+ if (!M_ASN1_OCTET_STRING_set(digest,md_data,
+ md_len))
+ {
+ PKCS7err(PKCS7_F_PKCS7_DATASIGN,
+ ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
PKCS7_add_signed_attribute(si,
NID_pkcs9_messageDigest,
V_ASN1_OCTET_STRING,digest);
diff --git a/crypto/pkcs7/pk7_lib.c b/crypto/pkcs7/pk7_lib.c
index 70ee44be8f..a45a0f0640 100644
--- a/crypto/pkcs7/pk7_lib.c
+++ b/crypto/pkcs7/pk7_lib.c
@@ -168,7 +168,12 @@ int PKCS7_set_type(PKCS7 *p7, int type)
p7->type=obj;
if ((p7->d.sign=PKCS7_SIGNED_new()) == NULL)
goto err;
- ASN1_INTEGER_set(p7->d.sign->version,1);
+ if (!ASN1_INTEGER_set(p7->d.sign->version,1))
+ {
+ PKCS7_SIGNED_free(p7->d.sign);
+ p7->d.sign=NULL;
+ goto err;
+ }
break;
case NID_pkcs7_data:
p7->type=obj;
@@ -180,6 +185,9 @@ int PKCS7_set_type(PKCS7 *p7, int type)
if ((p7->d.signed_and_enveloped=PKCS7_SIGN_ENVELOPE_new())
== NULL) goto err;
ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1);
+ if (!ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1))
+ goto err;
+ break;
p7->d.signed_and_enveloped->enc_data->content_type
= OBJ_nid2obj(NID_pkcs7_data);
break;
@@ -187,7 +195,8 @@ int PKCS7_set_type(PKCS7 *p7, int type)
p7->type=obj;
if ((p7->d.enveloped=PKCS7_ENVELOPE_new())
== NULL) goto err;
- ASN1_INTEGER_set(p7->d.enveloped->version,0);
+ if (!ASN1_INTEGER_set(p7->d.enveloped->version,0))
+ goto err;
p7->d.enveloped->enc_data->content_type
= OBJ_nid2obj(NID_pkcs7_data);
break;
@@ -195,7 +204,8 @@ int PKCS7_set_type(PKCS7 *p7, int type)
p7->type=obj;
if ((p7->d.encrypted=PKCS7_ENCRYPT_new())
== NULL) goto err;
- ASN1_INTEGER_set(p7->d.encrypted->version,0);
+ if (!ASN1_INTEGER_set(p7->d.encrypted->version,0))
+ goto err;
p7->d.encrypted->enc_data->content_type
= OBJ_nid2obj(NID_pkcs7_data);
break;
@@ -204,7 +214,8 @@ int PKCS7_set_type(PKCS7 *p7, int type)
p7->type=obj;
if ((p7->d.digest=PKCS7_DIGEST_new())
== NULL) goto err;
- ASN1_INTEGER_set(p7->d.digest->version,0);
+ if (!ASN1_INTEGER_set(p7->d.digest->version,0))
+ goto err;
break;
default:
PKCS7err(PKCS7_F_PKCS7_SET_TYPE,PKCS7_R_UNSUPPORTED_CONTENT_TYPE);
@@ -338,15 +349,18 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
else
is_dsa = 0;
/* We now need to add another PKCS7_SIGNER_INFO entry */
- ASN1_INTEGER_set(p7i->version,1);
- X509_NAME_set(&p7i->issuer_and_serial->issuer,
- X509_get_issuer_name(x509));
+ if (!ASN1_INTEGER_set(p7i->version,1))
+ goto err;
+ if (!X509_NAME_set(&p7i->issuer_and_serial->issuer,
+ X509_get_issuer_name(x509)))
+ goto err;
/* because ASN1_INTEGER_set is used to set a 'long' we will do
* things the ugly way. */
M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
- p7i->issuer_and_serial->serial=
- M_ASN1_INTEGER_dup(X509_get_serialNumber(x509));
+ if (!(p7i->issuer_and_serial->serial=
+ M_ASN1_INTEGER_dup(X509_get_serialNumber(x509))))
+ goto err;
/* lets keep the pkey around for a while */
CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY);
@@ -483,16 +497,20 @@ int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509)
{
- ASN1_INTEGER_set(p7i->version,0);
- X509_NAME_set(&p7i->issuer_and_serial->issuer,
- X509_get_issuer_name(x509));
+ if (!ASN1_INTEGER_set(p7i->version,0))
+ return 0;
+ if (!X509_NAME_set(&p7i->issuer_and_serial->issuer,
+ X509_get_issuer_name(x509)))
+ return 0;
M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
- p7i->issuer_and_serial->serial=
- M_ASN1_INTEGER_dup(X509_get_serialNumber(x509));
+ if (!(p7i->issuer_and_serial->serial=
+ M_ASN1_INTEGER_dup(X509_get_serialNumber(x509))))
+ return 0;
X509_ALGOR_free(p7i->key_enc_algor);
- p7i->key_enc_algor= X509_ALGOR_dup(x509->cert_info->key->algor);
+ if (!(p7i->key_enc_algor= X509_ALGOR_dup(x509->cert_info->key->algor)))
+ return 0;
CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509);
p7i->cert=x509;
diff --git a/crypto/pkcs7/pk7_smime.c b/crypto/pkcs7/pk7_smime.c
index 6aca0222da..4607e5fd69 100644
--- a/crypto/pkcs7/pk7_smime.c
+++ b/crypto/pkcs7/pk7_smime.c
@@ -3,7 +3,7 @@
* project.
*/
/* ====================================================================
- * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -157,7 +157,7 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
char buf[4096];
int i, j=0, k, ret = 0;
BIO *p7bio;
- BIO *tmpout;
+ BIO *tmpin, *tmpout;
if(!p7) {
PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_INVALID_NULL_POINTER);
@@ -232,7 +232,30 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
/* Check for revocation status here */
}
- p7bio=PKCS7_dataInit(p7,indata);
+ /* Performance optimization: if the content is a memory BIO then
+ * store its contents in a temporary read only memory BIO. This
+ * avoids potentially large numbers of slow copies of data which will
+ * occur when reading from a read write memory BIO when signatures
+ * are calculated.
+ */
+
+ if (indata && (BIO_method_type(indata) == BIO_TYPE_MEM))
+ {
+ char *ptr;
+ long len;
+ len = BIO_get_mem_data(indata, &ptr);
+ tmpin = BIO_new_mem_buf(ptr, len);
+ if (tmpin == NULL)
+ {
+ PKCS7err(PKCS7_F_PKCS7_VERIFY,ERR_R_MALLOC_FAILURE);
+ return 0;
+ }
+ }
+ else
+ tmpin = indata;
+
+
+ p7bio=PKCS7_dataInit(p7,tmpin);
if(flags & PKCS7_TEXT) {
if(!(tmpout = BIO_new(BIO_s_mem()))) {
@@ -274,9 +297,15 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
ret = 1;
err:
+
+ if (tmpin == indata)
+ {
+ if(indata) BIO_pop(p7bio);
+ BIO_free_all(p7bio);
+ }
+ else
+ BIO_free_all(tmpin);
- if(indata) BIO_pop(p7bio);
- BIO_free_all(p7bio);
sk_X509_free(signers);
return ret;
@@ -300,10 +329,6 @@ STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags)
PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,PKCS7_R_WRONG_CONTENT_TYPE);
return NULL;
}
- if(!(signers = sk_X509_new_null())) {
- PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,ERR_R_MALLOC_FAILURE);
- return NULL;
- }
/* Collect all the signers together */
@@ -314,6 +339,11 @@ STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags)
return 0;
}
+ if(!(signers = sk_X509_new_null())) {
+ PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,ERR_R_MALLOC_FAILURE);
+ return NULL;
+ }
+
for (i = 0; i < sk_PKCS7_SIGNER_INFO_num(sinfos); i++)
{
si = sk_PKCS7_SIGNER_INFO_value(sinfos, i);
diff --git a/crypto/rand/Makefile.ssl b/crypto/rand/Makefile.ssl
index ec043cf4fe..e5da96e865 100644
--- a/crypto/rand/Makefile.ssl
+++ b/crypto/rand/Makefile.ssl
@@ -55,7 +55,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/rand/rand_egd.c b/crypto/rand/rand_egd.c
index e34f07c5e8..50bce6caba 100644
--- a/crypto/rand/rand_egd.c
+++ b/crypto/rand/rand_egd.c
@@ -216,7 +216,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
while (numbytes != 1)
{
num = read(fd, egdbuf, 1);
- if (num >= 0)
+ if (num == 0)
+ goto err; /* descriptor closed */
+ else if (num > 0)
numbytes += num;
else
{
@@ -246,7 +248,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
while (numbytes != egdbuf[0])
{
num = read(fd, retrievebuf + numbytes, egdbuf[0] - numbytes);
- if (num >= 0)
+ if (num == 0)
+ goto err; /* descriptor closed */
+ else if (num > 0)
numbytes += num;
else
{
diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c
index d2fdb35b56..14837a7a7d 100644
--- a/crypto/rand/rand_unix.c
+++ b/crypto/rand/rand_unix.c
@@ -121,6 +121,7 @@
#include <sys/types.h>
#include <sys/time.h>
#include <sys/times.h>
+#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
@@ -152,9 +153,9 @@ int RAND_poll(void)
int n = 0;
#endif
#ifdef DEVRANDOM
- static const char *randomfiles[] = { DEVRANDOM, NULL };
- const char **randomfile = NULL;
- int fd;
+ static const char *randomfiles[] = { DEVRANDOM };
+ struct stat randomstats[sizeof(randomfiles)/sizeof(randomfiles[0])];
+ int fd,i;
#endif
#ifdef DEVRANDOM_EGD
static const char *egdsockets[] = { DEVRANDOM_EGD, NULL };
@@ -162,26 +163,42 @@ int RAND_poll(void)
#endif
#ifdef DEVRANDOM
+ memset(randomstats,0,sizeof(randomstats));
/* Use a random entropy pool device. Linux, FreeBSD and OpenBSD
* have this. Use /dev/urandom if you can as /dev/random may block
* if it runs out of random entries. */
- for (randomfile = randomfiles; *randomfile && n < ENTROPY_NEEDED; randomfile++)
+ for (i=0; i<sizeof(randomfiles)/sizeof(randomfiles[0]) && n < ENTROPY_NEEDED; i++)
{
- if ((fd = open(*randomfile, O_RDONLY|O_NONBLOCK
+ if ((fd = open(randomfiles[i], O_RDONLY
+#ifdef O_NONBLOCK
+ |O_NONBLOCK
+#endif
+#ifdef O_BINARY
+ |O_BINARY
+#endif
#ifdef O_NOCTTY /* If it happens to be a TTY (god forbid), do not make it
our controlling tty */
|O_NOCTTY
#endif
-#ifdef O_NOFOLLOW /* Fail if the file is a symbolic link */
- |O_NOFOLLOW
-#endif
)) >= 0)
{
struct timeval t = { 0, 10*1000 }; /* Spend 10ms on
each file. */
- int r;
+ int r,j;
fd_set fset;
+ struct stat *st=&randomstats[i];
+
+ /* Avoid using same input... Used to be O_NOFOLLOW
+ * above, but it's not universally appropriate... */
+ if (fstat(fd,st) != 0) { close(fd); continue; }
+ for (j=0;j<i;j++)
+ {
+ if (randomstats[j].st_ino==st->st_ino &&
+ randomstats[j].st_dev==st->st_dev)
+ break;
+ }
+ if (j<i) { close(fd); continue; }
do
{
diff --git a/crypto/rand/rand_vms.c b/crypto/rand/rand_vms.c
index 00cf6bb29d..3274ea79da 100644
--- a/crypto/rand/rand_vms.c
+++ b/crypto/rand/rand_vms.c
@@ -171,7 +171,8 @@ int RAND_poll(void)
pitem = item;
/* Setup */
- while (pitems_data->length)
+ while (pitems_data->length
+ && (total_length + pitems_data->length <= 256))
{
#if __INITIAL_POINTER_SIZE == 64
@@ -179,14 +180,14 @@ int RAND_poll(void)
pitem->ileb_64$w_code = pitems_data->code;
pitem->ileb_64$l_mbmo = -1;
pitem->ileb_64$q_length = pitems_data->length;
- pitem->ileb_64$pq_bufaddr = &data_buffer[total_length];
+ pitem->ileb_64$pq_bufaddr = (long *)&data_buffer[total_length];
pitem->ileb_64$pq_retlen_addr = 0;
total_length += pitems_data->length/4;
#else
- pitem->ile3$w_length = (short)pitems_data->length;
- pitem->ile3$w_code = (short)pitems_data->code;
- pitem->ile3$ps_bufaddr = &data_buffer[total_length];
+ pitem->ile3$w_length = pitems_data->length;
+ pitem->ile3$w_code = pitems_data->code;
+ pitem->ile3$ps_bufaddr = (long *)&data_buffer[total_length];
pitem->ile3$ps_retlen_addr = 0;
total_length += pitems_data->length/4;
diff --git a/crypto/rand/rand_win.c b/crypto/rand/rand_win.c
index 3584842224..aaea92c8fd 100644
--- a/crypto/rand/rand_win.c
+++ b/crypto/rand/rand_win.c
@@ -125,7 +125,7 @@
* http://developer.intel.com/design/security/rng/redist_license.htm
*/
#define PROV_INTEL_SEC 22
-#define INTEL_DEF_PROV TEXT("Intel Hardware Cryptographic Service Provider")
+#define INTEL_DEF_PROV L"Intel Hardware Cryptographic Service Provider"
static void readtimer(void);
static void readscreen(void);
@@ -152,7 +152,7 @@ typedef struct tagCURSORINFO
#define CURSOR_SHOWING 0x00000001
#endif /* CURSOR_SHOWING */
-typedef BOOL (WINAPI *CRYPTACQUIRECONTEXT)(HCRYPTPROV *, LPCTSTR, LPCTSTR,
+typedef BOOL (WINAPI *CRYPTACQUIRECONTEXTW)(HCRYPTPROV *, LPCWSTR, LPCWSTR,
DWORD, DWORD);
typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV, DWORD, BYTE *);
typedef BOOL (WINAPI *CRYPTRELEASECONTEXT)(HCRYPTPROV, DWORD);
@@ -194,7 +194,7 @@ int RAND_poll(void)
HWND h;
HMODULE advapi, kernel, user, netapi;
- CRYPTACQUIRECONTEXT acquire = 0;
+ CRYPTACQUIRECONTEXTW acquire = 0;
CRYPTGENRANDOM gen = 0;
CRYPTRELEASECONTEXT release = 0;
#if 1 /* There was previously a problem with NETSTATGET. Currently, this
@@ -213,6 +213,9 @@ int RAND_poll(void)
GetVersionEx( &osverinfo ) ;
#if defined(OPENSSL_SYS_WINCE) && WCEPLATFORM!=MS_HPC_PRO
+#ifndef CryptAcquireContext
+#define CryptAcquireContext CryptAcquireContextW
+#endif
/* poll the CryptoAPI PRNG */
/* The CryptoAPI returns sizeof(buf) bytes of randomness */
if (CryptAcquireContext(&hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
@@ -223,21 +226,35 @@ int RAND_poll(void)
}
#endif
+#ifndef OPENSSL_SYS_WINCE
+ /*
+ * None of below libraries are present on Windows CE, which is
+ * why we #ifndef the whole section. This also excuses us from
+ * handling the GetProcAddress issue. The trouble is that in
+ * real Win32 API GetProcAddress is available in ANSI flavor
+ * only. In WinCE on the other hand GetProcAddress is a macro
+ * most commonly defined as GetProcAddressW, which accepts
+ * Unicode argument. If we were to call GetProcAddress under
+ * WinCE, I'd recommend to either redefine GetProcAddress as
+ * GetProcAddressA (there seem to be one in common CE spec) or
+ * implement own shim routine, which would accept ANSI argument
+ * and expand it to Unicode.
+ */
+
/* load functions dynamically - not available on all systems */
advapi = LoadLibrary(TEXT("ADVAPI32.DLL"));
kernel = LoadLibrary(TEXT("KERNEL32.DLL"));
user = LoadLibrary(TEXT("USER32.DLL"));
netapi = LoadLibrary(TEXT("NETAPI32.DLL"));
-#ifndef OPENSSL_SYS_WINCE
#if 1 /* There was previously a problem with NETSTATGET. Currently, this
* section is still experimental, but if all goes well, this conditional
* will be removed
*/
if (netapi)
{
- netstatget = (NETSTATGET) GetProcAddress(netapi,TEXT("NetStatisticsGet"));
- netfree = (NETFREE) GetProcAddress(netapi,TEXT("NetApiBufferFree"));
+ netstatget = (NETSTATGET) GetProcAddress(netapi,"NetStatisticsGet");
+ netfree = (NETFREE) GetProcAddress(netapi,"NetApiBufferFree");
}
if (netstatget && netfree)
@@ -264,9 +281,7 @@ int RAND_poll(void)
if (netapi)
FreeLibrary(netapi);
#endif /* 1 */
-#endif /* !OPENSSL_SYS_WINCE */
-
-#ifndef OPENSSL_SYS_WINCE
+
/* It appears like this can cause an exception deep within ADVAPI32.DLL
* at random times on Windows 2000. Reported by Jeffrey Altman.
* Only use it on NT.
@@ -321,16 +336,20 @@ int RAND_poll(void)
free(buf);
}
#endif
-#endif /* !OPENSSL_SYS_WINCE */
if (advapi)
{
- acquire = (CRYPTACQUIRECONTEXT) GetProcAddress(advapi,
- TEXT("CryptAcquireContextA"));
+ /*
+ * If it's available, then it's available in both ANSI
+ * and UNICODE flavors even in Win9x, documentation says.
+ * We favor Unicode...
+ */
+ acquire = (CRYPTACQUIRECONTEXTW) GetProcAddress(advapi,
+ "CryptAcquireContextW");
gen = (CRYPTGENRANDOM) GetProcAddress(advapi,
- TEXT("CryptGenRandom"));
+ "CryptGenRandom");
release = (CRYPTRELEASECONTEXT) GetProcAddress(advapi,
- TEXT("CryptReleaseContext"));
+ "CryptReleaseContext");
}
if (acquire && gen && release)
@@ -367,26 +386,15 @@ int RAND_poll(void)
if (advapi)
FreeLibrary(advapi);
- /* timer data */
- readtimer();
-
- /* memory usage statistics */
- GlobalMemoryStatus(&m);
- RAND_add(&m, sizeof(m), 1);
-
- /* process ID */
- w = GetCurrentProcessId();
- RAND_add(&w, sizeof(w), 1);
-
if (user)
{
GETCURSORINFO cursor;
GETFOREGROUNDWINDOW win;
GETQUEUESTATUS queue;
- win = (GETFOREGROUNDWINDOW) GetProcAddress(user, TEXT("GetForegroundWindow"));
- cursor = (GETCURSORINFO) GetProcAddress(user, TEXT("GetCursorInfo"));
- queue = (GETQUEUESTATUS) GetProcAddress(user, TEXT("GetQueueStatus"));
+ win = (GETFOREGROUNDWINDOW) GetProcAddress(user, "GetForegroundWindow");
+ cursor = (GETCURSORINFO) GetProcAddress(user, "GetCursorInfo");
+ queue = (GETQUEUESTATUS) GetProcAddress(user, "GetQueueStatus");
if (win)
{
@@ -458,19 +466,19 @@ int RAND_poll(void)
MODULEENTRY32 m;
snap = (CREATETOOLHELP32SNAPSHOT)
- GetProcAddress(kernel, TEXT("CreateToolhelp32Snapshot"));
+ GetProcAddress(kernel, "CreateToolhelp32Snapshot");
close_snap = (CLOSETOOLHELP32SNAPSHOT)
- GetProcAddress(kernel, TEXT("CloseToolhelp32Snapshot"));
- heap_first = (HEAP32FIRST) GetProcAddress(kernel, TEXT("Heap32First"));
- heap_next = (HEAP32NEXT) GetProcAddress(kernel, TEXT("Heap32Next"));
- heaplist_first = (HEAP32LIST) GetProcAddress(kernel, TEXT("Heap32ListFirst"));
- heaplist_next = (HEAP32LIST) GetProcAddress(kernel, TEXT("Heap32ListNext"));
- process_first = (PROCESS32) GetProcAddress(kernel, TEXT("Process32First"));
- process_next = (PROCESS32) GetProcAddress(kernel, TEXT("Process32Next"));
- thread_first = (THREAD32) GetProcAddress(kernel, TEXT("Thread32First"));
- thread_next = (THREAD32) GetProcAddress(kernel, TEXT("Thread32Next"));
- module_first = (MODULE32) GetProcAddress(kernel, TEXT("Module32First"));
- module_next = (MODULE32) GetProcAddress(kernel, TEXT("Module32Next"));
+ GetProcAddress(kernel, "CloseToolhelp32Snapshot");
+ heap_first = (HEAP32FIRST) GetProcAddress(kernel, "Heap32First");
+ heap_next = (HEAP32NEXT) GetProcAddress(kernel, "Heap32Next");
+ heaplist_first = (HEAP32LIST) GetProcAddress(kernel, "Heap32ListFirst");
+ heaplist_next = (HEAP32LIST) GetProcAddress(kernel, "Heap32ListNext");
+ process_first = (PROCESS32) GetProcAddress(kernel, "Process32First");
+ process_next = (PROCESS32) GetProcAddress(kernel, "Process32Next");
+ thread_first = (THREAD32) GetProcAddress(kernel, "Thread32First");
+ thread_next = (THREAD32) GetProcAddress(kernel, "Thread32Next");
+ module_first = (MODULE32) GetProcAddress(kernel, "Module32First");
+ module_next = (MODULE32) GetProcAddress(kernel, "Module32Next");
if (snap && heap_first && heap_next && heaplist_first &&
heaplist_next && process_first && process_next &&
@@ -546,6 +554,18 @@ int RAND_poll(void)
FreeLibrary(kernel);
}
+#endif /* !OPENSSL_SYS_WINCE */
+
+ /* timer data */
+ readtimer();
+
+ /* memory usage statistics */
+ GlobalMemoryStatus(&m);
+ RAND_add(&m, sizeof(m), 1);
+
+ /* process ID */
+ w = GetCurrentProcessId();
+ RAND_add(&w, sizeof(w), 1);
#if 0
printf("Exiting RAND_poll\n");
@@ -607,7 +627,7 @@ static void readtimer(void)
DWORD w;
LARGE_INTEGER l;
static int have_perfc = 1;
-#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE)
+#if defined(_MSC_VER) && defined(_M_X86)
static int have_tsc = 1;
DWORD cyclecount;
diff --git a/crypto/rc2/Makefile.ssl b/crypto/rc2/Makefile.ssl
index 98d5960d5d..2a036d3037 100644
--- a/crypto/rc2/Makefile.ssl
+++ b/crypto/rc2/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/rc4/Makefile.ssl b/crypto/rc4/Makefile.ssl
index a965c02d94..7e98de885a 100644
--- a/crypto/rc4/Makefile.ssl
+++ b/crypto/rc4/Makefile.ssl
@@ -18,14 +18,10 @@ MAKEFILE= Makefile.ssl
AR= ar r
RC4_ENC=rc4_enc.o
-# or use
-#RC4_ENC=asm/rx86-elf.o
-#RC4_ENC=asm/rx86-out.o
-#RC4_ENC=asm/rx86-sol.o
-#RC4_ENC=asm/rx86bdsi.o
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=rc4test.c
@@ -52,22 +48,20 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/rx86-elf.s: asm/rc4-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) rc4-586.pl elf $(CFLAGS) > rx86-elf.s)
-
+# ELF
+rx86-elf.s: asm/rc4-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) rc4-586.pl elf $(CFLAGS) > ../$@)
+# COFF
+rx86-cof.s: asm/rc4-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) rc4-586.pl coff $(CFLAGS) > ../$@)
# a.out
-asm/rx86-out.o: asm/rx86unix.cpp
- $(CPP) -DOUT asm/rx86unix.cpp | as -o asm/rx86-out.o
-
-# bsdi
-asm/rx86bsdi.o: asm/rx86unix.cpp
- $(CPP) -DBSDI asm/rx86unix.cpp | sed 's/ :/:/' | as -o asm/rx86bsdi.o
+rx86-out.s: asm/rc4-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) rc4-586.pl a.out $(CFLAGS) > ../$@)
-asm/rx86unix.cpp: asm/rc4-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) rc4-586.pl cpp >rx86unix.cpp)
+rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) $< $@
-asm/rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) $< $@
+rc4-ia64.s: asm/rc4-ia64.S
+ $(CC) $(CFLAGS) -E asm/rc4-ia64.S > $@
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -79,7 +73,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -101,12 +95,23 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/rx86unix.cpp asm/*-elf.* *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o
+ 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: ../../include/openssl/opensslconf.h ../../include/openssl/rc4.h
-rc4_enc.o: rc4_enc.c rc4_locl.h
-rc4_skey.o: ../../include/openssl/opensslconf.h
-rc4_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc4.h
-rc4_skey.o: rc4_locl.h rc4_skey.c
+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
diff --git a/crypto/rc4/asm/rc4-586.pl b/crypto/rc4/asm/rc4-586.pl
index 7ef889e5a1..d6e98f0811 100644
--- a/crypto/rc4/asm/rc4-586.pl
+++ b/crypto/rc4/asm/rc4-586.pl
@@ -1,16 +1,37 @@
#!/usr/local/bin/perl
-# define for pentium pro friendly version
+# At some point it became apparent that the original SSLeay RC4
+# assembler implementation performs suboptimaly on latest IA-32
+# microarchitectures. After re-tuning performance has changed as
+# following:
+#
+# Pentium +0%
+# Pentium III +17%
+# AMD +52%(*)
+# P4 +180%(**)
+#
+# (*) This number is actually a trade-off:-) It's possible to
+# achieve +72%, but at the cost of -48% off PIII performance.
+# In other words code performing further 13% faster on AMD
+# would perform almost 2 times slower on Intel PIII...
+# For reference! This code delivers ~80% of rc4-amd64.pl
+# performance on the same Opteron machine.
+# (**) This number requires compressed key schedule set up by
+# RC4_set_key and therefore doesn't apply to 0.9.7 [option for
+# compressed key schedule is implemented in 0.9.8 and later,
+# see commentary section in rc4_skey.c for further details].
+#
+# <appro@fy.chalmers.se>
push(@INC,"perlasm","../../perlasm");
require "x86asm.pl";
&asm_init($ARGV[0],"rc4-586.pl");
-$tx="eax";
-$ty="ebx";
-$x="ecx";
-$y="edx";
+$x="eax";
+$y="ebx";
+$tx="ecx";
+$ty="edx";
$in="esi";
$out="edi";
$d="ebp";
@@ -31,7 +52,7 @@ sub RC4_loop
{
&mov($ty, &swtmp(2));
&cmp($ty, $in);
- &jle(&label("finished"));
+ &jbe(&label("finished"));
&inc($in);
}
else
@@ -39,27 +60,23 @@ sub RC4_loop
&add($ty, 8);
&inc($in);
&cmp($ty, $in);
- &jl(&label("finished"));
+ &jb(&label("finished"));
&mov(&swtmp(2), $ty);
}
}
# Moved out
# &mov( $tx, &DWP(0,$d,$x,4)) if $p < 0;
- &add( $y, $tx);
- &and( $y, 0xff);
- &inc( $x); # NEXT ROUND
+ &add( &LB($y), &LB($tx));
&mov( $ty, &DWP(0,$d,$y,4));
# XXX
- &mov( &DWP(-4,$d,$x,4),$ty); # AGI
+ &mov( &DWP(0,$d,$x,4),$ty);
&add( $ty, $tx);
- &and( $x, 0xff); # NEXT ROUND
- &and( $ty, 0xff);
&mov( &DWP(0,$d,$y,4),$tx);
- &nop();
- &mov( $ty, &DWP(0,$d,$ty,4));
- &mov( $tx, &DWP(0,$d,$x,4)) if $p < 1; # NEXT ROUND
- # XXX
+ &and( $ty, 0xff);
+ &inc( &LB($x)); # NEXT ROUND
+ &mov( $tx, &DWP(0,$d,$x,4)) if $p < 1; # NEXT ROUND
+ &mov( $ty, &DWP(0,$d,$ty,4));
if (!$char)
{
@@ -88,35 +105,47 @@ sub RC4
&function_begin_B($name,"");
+ &mov($ty,&wparam(1)); # len
+ &cmp($ty,0);
+ &jne(&label("proceed"));
+ &ret();
+ &set_label("proceed");
+
&comment("");
&push("ebp");
&push("ebx");
- &mov( $d, &wparam(0)); # key
- &mov( $ty, &wparam(1)); # num
&push("esi");
- &push("edi");
+ &xor( $x, $x); # avoid partial register stalls
+ &push("edi");
+ &xor( $y, $y); # avoid partial register stalls
+ &mov( $d, &wparam(0)); # key
+ &mov( $in, &wparam(2));
- &mov( $x, &DWP(0,$d,"",1));
- &mov( $y, &DWP(4,$d,"",1));
+ &movb( &LB($x), &BP(0,$d,"",1));
+ &movb( &LB($y), &BP(4,$d,"",1));
- &mov( $in, &wparam(2));
- &inc( $x);
+ &mov( $out, &wparam(3));
+ &inc( &LB($x));
&stack_push(3); # 3 temp variables
&add( $d, 8);
- &and( $x, 0xff);
+
+ # detect compressed schedule, see commentary section in rc4_skey.c...
+ # in 0.9.7 context ~50 bytes below RC4_CHAR label remain redundant,
+ # as compressed key schedule is set up in 0.9.8 and later.
+ &cmp(&DWP(256,$d),-1);
+ &je(&label("RC4_CHAR"));
&lea( $ty, &DWP(-8,$ty,$in));
# check for 0 length input
- &mov( $out, &wparam(3));
&mov( &swtmp(2), $ty); # this is now address to exit at
&mov( $tx, &DWP(0,$d,$x,4));
&cmp( $ty, $in);
- &jl( &label("end")); # less than 8 bytes
+ &jb( &label("end")); # less than 8 bytes
&set_label("start");
@@ -148,7 +177,7 @@ sub RC4
&mov( &DWP(-4,$out,"",0), $tx);
&mov( $tx, &DWP(0,$d,$x,4));
&cmp($in, $ty);
- &jle(&label("start"));
+ &jbe(&label("start"));
&set_label("end");
@@ -162,10 +191,37 @@ sub RC4
&RC4_loop(5,0,1);
&RC4_loop(6,1,1);
+ &jmp(&label("finished"));
+
+ &align(16);
+ # this is essentially Intel P4 specific codepath, see rc4_skey.c,
+ # and is engaged in 0.9.8 and later context...
+ &set_label("RC4_CHAR");
+
+ &lea ($ty,&DWP(0,$in,$ty));
+ &mov (&swtmp(2),$ty);
+
+ # strangely enough unrolled loop performs over 20% slower...
+ &set_label("RC4_CHAR_loop");
+ &movz ($tx,&BP(0,$d,$x));
+ &add (&LB($y),&LB($tx));
+ &movz ($ty,&BP(0,$d,$y));
+ &movb (&BP(0,$d,$y),&LB($tx));
+ &movb (&BP(0,$d,$x),&LB($ty));
+ &add (&LB($ty),&LB($tx));
+ &movz ($ty,&BP(0,$d,$ty));
+ &xorb (&LB($ty),&BP(0,$in));
+ &movb (&BP(0,$out),&LB($ty));
+ &inc (&LB($x));
+ &inc ($in);
+ &inc ($out);
+ &cmp ($in,&swtmp(2));
+ &jb (&label("RC4_CHAR_loop"));
+
&set_label("finished");
&dec( $x);
&stack_pop(3);
- &mov( &DWP(-4,$d,"",0),$y);
+ &movb( &BP(-4,$d,"",0),&LB($y));
&movb( &BP(-8,$d,"",0),&LB($x));
&function_end($name);
diff --git a/crypto/rc4/asm/rc4-amd64.pl b/crypto/rc4/asm/rc4-amd64.pl
index 767a4018fc..9e0da8af99 100755
--- a/crypto/rc4/asm/rc4-amd64.pl
+++ b/crypto/rc4/asm/rc4-amd64.pl
@@ -13,18 +13,34 @@
# Presumably it has everything to do with AMD cache architecture and
# RAW or whatever penalties. Once again! The module *requires* config
# line *without* RC4_CHAR! As for coding "secret," I bet on partial
-# register arithmetics. For example instead 'inc %r8; and $255,%r8'
+# register arithmetics. For example instead of 'inc %r8; and $255,%r8'
# I simply 'inc %r8b'. Even though optimization manual discourages
# to operate on partial registers, it turned out to be the best bet.
# At least for AMD... How IA32E would perform remains to be seen...
+# As was shown by Marc Bevand reordering of couple of load operations
+# results in even higher performance gain of 3.3x:-) At least on
+# Opteron... For reference, 1x in this case is RC4_CHAR C-code
+# compiled with gcc 3.3.2, which performs at ~54MBps per 1GHz clock.
+# Latter means that if you want to *estimate* what to expect from
+# *your* CPU, then multiply 54 by 3.3 and clock frequency in GHz.
+
+# Intel P4 EM64T core was found to run the AMD64 code really slow...
+# The only way to achieve comparable performance on P4 is to keep
+# RC4_CHAR. Kind of ironic, huh? As it's apparently impossible to
+# compose blended code, which would perform even within 30% marginal
+# on either AMD and Intel platforms, I implement both cases. See
+# rc4_skey.c for further details... This applies to 0.9.8 and later.
+# In 0.9.7 context RC4_CHAR codepath is never engaged and ~70 bytes
+# of code remain redundant.
+
$output=shift;
-$win64=1 if ($output =~ /win64.[s|asm]/);
+$win64a=1 if ($output =~ /win64a.[s|asm]/);
open STDOUT,">$output" || die "can't open $output: $!";
-if (defined($win64)) {
+if (defined($win64a)) {
$dat="%rcx"; # arg1
$len="%rdx"; # arg2
$inp="%rsi"; # r8, arg3 moves here
@@ -43,8 +59,9 @@ $TY="%r9";
sub PTR() {
my $ret=shift;
- if (defined($win64)) {
- $ret =~ s/\[([\S]+)\+([\S]+)\]/[$2+$1]/g; # [%rN+%rM*4]->[%rM*4+%rN]
+ if (defined($win64a)) {
+ $ret =~ s/\[([\S]+)\+([\S]+)\]/[$2+$1]/g; # [%rN+%rM*4]->[%rM*4+%rN]
+ $ret =~ s/:([^\[]+)\[([^\]]+)\]/:[$2+$1]/g; # :off[ea]->:[ea+off]
} else {
$ret =~ s/[\+\*]/,/g; # [%rN+%rM*4]->[%rN,%rM,4]
$ret =~ s/\[([^\]]+)\]/($1)/g; # [%rN]->(%rN)
@@ -52,7 +69,7 @@ sub PTR() {
$ret;
}
-$code=<<___ if (!defined($win64));
+$code=<<___ if (!defined($win64a));
.text
.globl RC4
@@ -60,130 +77,151 @@ $code=<<___ if (!defined($win64));
.align 16
RC4: or $len,$len
jne .Lentry
- .byte 0xF3,0xC3 # repz ret, 2-byte ret
+ repret
.Lentry:
___
-$code=<<___ if (defined($win64));
-TEXT SEGMENT
+$code=<<___ if (defined($win64a));
+_TEXT SEGMENT
PUBLIC RC4
ALIGN 16
-RC4 PROC NEAR
+RC4 PROC
or $len,$len
jne .Lentry
- DB F3h,C3h ; repz ret, 2-byte ret
+ repret
.Lentry:
- push %edi
- push %esi
- sub \$40,%esp
+ push %rdi
+ push %rsi
+ sub \$40,%rsp
mov %r8,$inp
mov %r9,$out
___
$code.=<<___;
add \$8,$dat
- movl `&PTR("DWORD-8[$dat]")`,$XX#d
- movl `&PTR("DWORD-4[$dat]")`,$YY#d
+ movl `&PTR("DWORD:-8[$dat]")`,$XX#d
+ movl `&PTR("DWORD:-4[$dat]")`,$YY#d
+ cmpl \$-1,`&PTR("DWORD:256[$dat]")`
+ je .LRC4_CHAR
test \$-8,$len
jz .Lloop1
.align 16
.Lloop8:
- movq `&PTR("QWORD[$inp]")`,%rax
-
inc $XX#b
- movl `&PTR("DWORD[$dat+$XX*4]")`,$TX#d
+ movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
add $TX#b,$YY#b
- movl `&PTR("DWORD[$dat+$YY*4]")`,$TY#d
- movl $TX#d,`&PTR("DWORD[$dat+$YY*4]")`
- movl $TY#d,`&PTR("DWORD[$dat+$XX*4]")`
- add $TY#b,$TX#b
+ movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
+ movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
+ movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
+ add $TX#b,$TY#b
inc $XX#b
- movl `&PTR("DWORD[$dat+$TX*4]")`,$TY#d
- xor $TY,%rax
+ movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
+ movb `&PTR("BYTE:[$dat+$TY*4]")`,%al
___
for ($i=1;$i<=6;$i++) {
$code.=<<___;
- movl `&PTR("DWORD[$dat+$XX*4]")`,$TX#d
add $TX#b,$YY#b
- movl `&PTR("DWORD[$dat+$YY*4]")`,$TY#d
- movl $TX#d,`&PTR("DWORD[$dat+$YY*4]")`
- movl $TY#d,`&PTR("DWORD[$dat+$XX*4]")`
- add $TY#b,$TX#b
- movl `&PTR("DWORD[$dat+$TX*4]")`,$TY#d
- shl \$`8*$i`,$TY
+ ror \$8,%rax
+ movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
+ movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
+ movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
+ add $TX#b,$TY#b
inc $XX#b
- xor $TY,%rax
+ movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
+ movb `&PTR("BYTE:[$dat+$TY*4]")`,%al
___
}
$code.=<<___;
- movl `&PTR("DWORD[$dat+$XX*4]")`,$TX#d
add $TX#b,$YY#b
- movl `&PTR("DWORD[$dat+$YY*4]")`,$TY#d
- movl $TX#d,`&PTR("DWORD[$dat+$YY*4]")`
- movl $TY#d,`&PTR("DWORD[$dat+$XX*4]")`
+ ror \$8,%rax
+ movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
+ movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
+ movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
sub \$8,$len
add $TY#b,$TX#b
- add \$8,$out
- movl `&PTR("DWORD[$dat+$TX*4]")`,$TY#d
- shl \$56,$TY
+ movb `&PTR("BYTE:[$dat+$TX*4]")`,%al
+ ror \$8,%rax
add \$8,$inp
- xor $TY,%rax
+ add \$8,$out
- mov %rax,`&PTR("QWORD-8[$out]")`
+ xor `&PTR("QWORD:-8[$inp]")`,%rax
+ mov %rax,`&PTR("QWORD:-8[$out]")`
test \$-8,$len
jnz .Lloop8
cmp \$0,$len
jne .Lloop1
.Lexit:
- movl $XX#d,`&PTR("DWORD-8[$dat]")`
- movl $YY#d,`&PTR("DWORD-4[$dat]")`
-___
-$code.=<<___ if (defined($win64));
- add \$40,%esp
- pop %esi
- pop %edi
- DB F3h,C3h ; retz ret, 2-byte ret
+ movl $XX#d,`&PTR("DWORD:-8[$dat]")`
+ movl $YY#d,`&PTR("DWORD:-4[$dat]")`
___
-$code.=<<___ if (!defined($win64));
- .byte 0xF3,0xC3 # repz ret, 2-byte ret
+$code.=<<___ if (defined($win64a));
+ add \$40,%rsp
+ pop %rsi
+ pop %rdi
___
$code.=<<___;
+ repret
.align 16
.Lloop1:
- movzb `&PTR("BYTE[$inp]")`,%rax
+ movzb `&PTR("BYTE:[$inp]")`,%eax
inc $XX#b
- nop
- movl `&PTR("DWORD[$dat+$XX*4]")`,$TX#d
+ movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
add $TX#b,$YY#b
- movl `&PTR("DWORD[$dat+$YY*4]")`,$TY#d
- movl $TX#d,`&PTR("DWORD[$dat+$YY*4]")`
- movl $TY#d,`&PTR("DWORD[$dat+$XX*4]")`
+ movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
+ movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
+ movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
add $TY#b,$TX#b
- movl `&PTR("DWORD[$dat+$TX*4]")`,$TY#d
+ movl `&PTR("DWORD:[$dat+$TX*4]")`,$TY#d
xor $TY,%rax
inc $inp
- movb %al,`&PTR("BYTE[$out]")`
+ movb %al,`&PTR("BYTE:[$out]")`
inc $out
dec $len
jnz .Lloop1
jmp .Lexit
+
+.align 16
+.LRC4_CHAR:
+ inc $XX#b
+ movzb `&PTR("BYTE:[$dat+$XX]")`,$TX#d
+ add $TX#b,$YY#b
+ movzb `&PTR("BYTE:[$dat+$YY]")`,$TY#d
+ movb $TX#b,`&PTR("BYTE:[$dat+$YY]")`
+ movb $TY#b,`&PTR("BYTE:[$dat+$XX]")`
+ add $TX#b,$TY#b
+ movzb `&PTR("BYTE:[$dat+$TY]")`,$TY#d
+ xorb `&PTR("BYTE:[$inp]")`,$TY#b
+ movb $TY#b,`&PTR("BYTE:[$out]")`
+ inc $inp
+ inc $out
+ dec $len
+ jnz .LRC4_CHAR
+ jmp .Lexit
+___
+$code.=<<___ if (defined($win64a));
+RC4 ENDP
+_TEXT ENDS
+END
+___
+$code.=<<___ if (!defined($win64a));
+.size RC4,.-RC4
___
-if (defined($win64)) {
- $code.="RC4 ENDP\n";
-} else {
- $code.=".size RC4,.-RC4\n"
-}
$code =~ s/#([bwd])/$1/gm;
$code =~ s/\`([^\`]*)\`/eval $1/gem;
-if (defined($win64)) {
+if (defined($win64a)) {
$code =~ s/\.align/ALIGN/gm;
$code =~ s/[\$%]//gm;
$code =~ s/\.L/\$L/gm;
$code =~ s/([\w]+)([\s]+)([\S]+),([\S]+)/$1$2$4,$3/gm;
- $code =~ s/([QD]*WORD|BYTE)/$1 PTR /gm;
- $code =~ s/(mov[z]*)[bwlq]/$1/gm;
+ $code =~ s/([QD]*WORD|BYTE):/$1 PTR/gm;
+ $code =~ s/mov[bwlq]/mov/gm;
+ $code =~ s/movzb/movzx/gm;
+ $code =~ s/repret/DB\t0F3h,0C3h/gm;
+ $code =~ s/cmpl/cmp/gm;
+ $code =~ s/xorb/xor/gm;
} else {
- $code =~ s/[QD]*WORD|BYTE//gm;
+ $code =~ s/([QD]*WORD|BYTE)://gm;
+ $code =~ s/repret/.byte\t0xF3,0xC3/gm;
}
print $code;
diff --git a/crypto/rc4/rc4.c b/crypto/rc4/rc4.c
index b39c070292..c900b26055 100644
--- a/crypto/rc4/rc4.c
+++ b/crypto/rc4/rc4.c
@@ -60,6 +60,7 @@
#include <stdlib.h>
#include <string.h>
#include <openssl/rc4.h>
+#include <openssl/evp.h>
char *usage[]={
"usage: rc4 args\n",
@@ -162,7 +163,7 @@ bad:
keystr=buf;
}
- EVP_Digest((unsigned char *)keystr,(unsigned long)strlen(keystr),md,NULL,EVP_md5());
+ EVP_Digest((unsigned char *)keystr,strlen(keystr),md,NULL,EVP_md5(),NULL);
OPENSSL_cleanse(keystr,strlen(keystr));
RC4_set_key(&key,MD5_DIGEST_LENGTH,md);
diff --git a/crypto/rc4/rc4.h b/crypto/rc4/rc4.h
index 7aec04fe93..c24a5b1281 100644
--- a/crypto/rc4/rc4.h
+++ b/crypto/rc4/rc4.h
@@ -72,6 +72,10 @@ typedef struct rc4_key_st
{
RC4_INT x,y;
RC4_INT data[256];
+#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+ /* see crypto/rc4/asm/rc4-ia64.S for further details... */
+ RC4_INT pad[512-256-2];
+#endif
} RC4_KEY;
diff --git a/crypto/rc4/rc4_enc.c b/crypto/rc4/rc4_enc.c
index a0f71d004a..7d0bf92f03 100644
--- a/crypto/rc4/rc4_enc.c
+++ b/crypto/rc4/rc4_enc.c
@@ -77,6 +77,10 @@ void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata,
x=key->x;
y=key->y;
d=key->data;
+#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+ /* see crypto/rc4/asm/rc4-ia64.S for further details... */
+ d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));
+#endif
#if defined(RC4_CHUNK)
/*
diff --git a/crypto/rc4/rc4_locl.h b/crypto/rc4/rc4_locl.h
index 3bb80b6ce9..c712e1632e 100644
--- a/crypto/rc4/rc4_locl.h
+++ b/crypto/rc4/rc4_locl.h
@@ -1,4 +1,5 @@
#ifndef HEADER_RC4_LOCL_H
#define HEADER_RC4_LOCL_H
#include <openssl/opensslconf.h>
+#include <cryptlib.h>
#endif
diff --git a/crypto/rc4/rc4_skey.c b/crypto/rc4/rc4_skey.c
index bb10c1ebe2..083b53dfb8 100644
--- a/crypto/rc4/rc4_skey.c
+++ b/crypto/rc4/rc4_skey.c
@@ -93,25 +93,62 @@ void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data)
unsigned int i;
d= &(key->data[0]);
- for (i=0; i<256; i++)
- d[i]=i;
+#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+ /* see crypto/rc4/asm/rc4-ia64.S for further details... */
+ d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));
+#endif
key->x = 0;
key->y = 0;
id1=id2=0;
-#define SK_LOOP(n) { \
+#define SK_LOOP(d,n) { \
tmp=d[(n)]; \
id2 = (data[id1] + tmp + id2) & 0xff; \
if (++id1 == len) id1=0; \
d[(n)]=d[id2]; \
d[id2]=tmp; }
+#if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM)
+# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
+ defined(__INTEL__) || \
+ defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64)
+ if (sizeof(RC4_INT) > 1) {
+ /*
+ * Unlike all other x86 [and x86_64] implementations,
+ * Intel P4 core [including EM64T] was found to perform
+ * poorly with wider RC4_INT. Performance improvement
+ * for IA-32 hand-coded assembler turned out to be 2.8x
+ * if re-coded for RC4_CHAR! It's however inappropriate
+ * to just switch to RC4_CHAR for x86[_64], as non-P4
+ * implementations suffer from significant performance
+ * losses then, e.g. PIII exhibits >2x deterioration,
+ * and so does Opteron. In order to assure optimal
+ * all-round performance, let us [try to] detect P4 at
+ * run-time by checking upon HTT bit in CPU capability
+ * vector and set up compressed key schedule, which is
+ * recognized by correspondingly updated assembler
+ * module...
+ * <appro@fy.chalmers.se>
+ */
+ if (OPENSSL_ia32cap_P & (1<<28)) {
+ unsigned char *cp=(unsigned char *)d;
+
+ for (i=0;i<256;i++) cp[i]=i;
+ for (i=0;i<256;i++) SK_LOOP(cp,i);
+ /* mark schedule as compressed! */
+ d[256/sizeof(RC4_INT)]=-1;
+ return;
+ }
+ }
+# endif
+#endif
+ for (i=0; i < 256; i++) d[i]=i;
for (i=0; i < 256; i+=4)
{
- SK_LOOP(i+0);
- SK_LOOP(i+1);
- SK_LOOP(i+2);
- SK_LOOP(i+3);
+ SK_LOOP(d,i+0);
+ SK_LOOP(d,i+1);
+ SK_LOOP(d,i+2);
+ SK_LOOP(d,i+3);
}
}
diff --git a/crypto/rc4/rc4test.c b/crypto/rc4/rc4test.c
index 18154025eb..49afa5c1db 100644
--- a/crypto/rc4/rc4test.c
+++ b/crypto/rc4/rc4test.c
@@ -70,6 +70,7 @@ int main(int argc, char *argv[])
}
#else
#include <openssl/rc4.h>
+#include <openssl/sha.h>
static unsigned char keys[7][30]={
{8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
@@ -117,9 +118,7 @@ int main(int argc, char *argv[])
int j;
unsigned char *p;
RC4_KEY key;
- unsigned char buf[512],obuf[512];
-
- for (i=0; i<512; i++) buf[i]=0x01;
+ unsigned char obuf[512];
for (i=0; i<6; i++)
{
@@ -197,6 +196,37 @@ int main(int argc, char *argv[])
}
}
printf("done\n");
+ printf("bulk test ");
+ { unsigned char buf[513];
+ SHA_CTX c;
+ unsigned char md[SHA_DIGEST_LENGTH];
+ static unsigned char expected[]={
+ 0xa4,0x7b,0xcc,0x00,0x3d,0xd0,0xbd,0xe1,0xac,0x5f,
+ 0x12,0x1e,0x45,0xbc,0xfb,0x1a,0xa1,0xf2,0x7f,0xc5 };
+
+ RC4_set_key(&key,keys[0][0],&(keys[3][1]));
+ memset(buf,'\0',sizeof(buf));
+ SHA1_Init(&c);
+ for (i=0;i<2571;i++) {
+ RC4(&key,sizeof(buf),buf,buf);
+ SHA1_Update(&c,buf,sizeof(buf));
+ }
+ SHA1_Final(md,&c);
+
+ if (memcmp(md,expected,sizeof(md))) {
+ printf("error in RC4 bulk test\n");
+ printf("output:");
+ for (j=0; j<sizeof(md); j++)
+ printf(" %02x",md[j]);
+ printf("\n");
+ printf("expect:");
+ for (j=0; j<sizeof(md); j++)
+ printf(" %02x",expected[j]);
+ printf("\n");
+ err++;
+ }
+ else printf("ok\n");
+ }
#ifdef OPENSSL_SYS_NETWARE
if (err) printf("ERROR: %d\n", err);
#endif
diff --git a/crypto/rc5/Makefile.ssl b/crypto/rc5/Makefile.ssl
index 70d01f3761..e5d2b2b462 100644
--- a/crypto/rc5/Makefile.ssl
+++ b/crypto/rc5/Makefile.ssl
@@ -23,6 +23,7 @@ RC5_ENC= rc5_enc.o
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=rc5test.c
@@ -49,20 +50,15 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/r586-elf.s: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) rc5-586.pl elf $(CFLAGS) > r586-elf.s)
-
+# ELF
+r586-elf.s: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) rc5-586.pl elf $(CFLAGS) > ../$@)
+# COFF
+r586-cof.s: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) rc5-586.pl coff $(CFLAGS) > ../$@)
# a.out
-asm/r586-out.o: asm/r586unix.cpp
- $(CPP) -DOUT asm/r586unix.cpp | as -o asm/r586-out.o
-
-# bsdi
-asm/r586bsdi.o: asm/r586unix.cpp
- $(CPP) -DBSDI asm/r586unix.cpp | sed 's/ :/:/' | as -o asm/r586bsdi.o
-
-asm/r586unix.cpp: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
- (cd asm; $(PERL) rc5-586.pl cpp >r586unix.cpp)
+r586-out.s: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
+ (cd asm; $(PERL) rc5-586.pl a.out $(CFLAGS) > ../$@)
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -74,7 +70,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -96,7 +92,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/r586unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/crypto/ripemd/Makefile.ssl b/crypto/ripemd/Makefile.ssl
index c25ee637c9..051695cd19 100644
--- a/crypto/ripemd/Makefile.ssl
+++ b/crypto/ripemd/Makefile.ssl
@@ -21,6 +21,7 @@ RIP_ASM_OBJ=
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=rmdtest.c
@@ -47,20 +48,15 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/rm86-elf.s: asm/rmd-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) rmd-586.pl elf $(CFLAGS) > rm86-elf.s)
-
+# ELF
+rm86-elf.s: asm/rmd-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) rmd-586.pl elf $(CFLAGS) > ../$@)
+# COFF
+rm86-cof.s: asm/rmd-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) rmd-586.pl coff $(CFLAGS) > ../$@)
# a.out
-asm/rm86-out.o: asm/rm86unix.cpp
- $(CPP) -DOUT asm/rm86unix.cpp | as -o asm/rm86-out.o
-
-# bsdi
-asm/rm86bsdi.o: asm/rm86unix.cpp
- $(CPP) -DBSDI asm/rm86unix.cpp | sed 's/ :/:/' | as -o asm/rm86bsdi.o
-
-asm/rm86unix.cpp: asm/rmd-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) rmd-586.pl cpp >rm86unix.cpp)
+rm86-out.s: asm/rmd-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) rmd-586.pl a.out $(CFLAGS) > ../$@)
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -72,7 +68,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -94,7 +90,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/rm86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/crypto/ripemd/ripemd.h b/crypto/ripemd/ripemd.h
index a664e742af..06bd67183b 100644
--- a/crypto/ripemd/ripemd.h
+++ b/crypto/ripemd/ripemd.h
@@ -87,7 +87,7 @@ typedef struct RIPEMD160state_st
RIPEMD160_LONG A,B,C,D,E;
RIPEMD160_LONG Nl,Nh;
RIPEMD160_LONG data[RIPEMD160_LBLOCK];
- int num;
+ unsigned int num;
} RIPEMD160_CTX;
int RIPEMD160_Init(RIPEMD160_CTX *c);
diff --git a/crypto/ripemd/rmdtest.c b/crypto/ripemd/rmdtest.c
index d4c709e646..cbfdf2ae6f 100644
--- a/crypto/ripemd/rmdtest.c
+++ b/crypto/ripemd/rmdtest.c
@@ -115,7 +115,7 @@ int main(int argc, char *argv[])
#ifdef CHARSET_EBCDIC
ebcdic2ascii((char *)*P, (char *)*P, strlen((char *)*P));
#endif
- EVP_Digest(&(P[0][0]),(unsigned long)strlen((char *)*P),md,NULL,EVP_ripemd160(), NULL);
+ EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_ripemd160(), NULL);
p=pt(md);
if (strcmp(p,(char *)*R) != 0)
{
diff --git a/crypto/rsa/Makefile.ssl b/crypto/rsa/Makefile.ssl
index a55617c786..3619331644 100644
--- a/crypto/rsa/Makefile.ssl
+++ b/crypto/rsa/Makefile.ssl
@@ -57,7 +57,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/rsa/rsa_gen.c b/crypto/rsa/rsa_gen.c
index 839a3eeb8f..8e3a5821d6 100644
--- a/crypto/rsa/rsa_gen.c
+++ b/crypto/rsa/rsa_gen.c
@@ -165,22 +165,6 @@ static int rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
if (!BN_sub(r1,rsa->p,BN_value_one())) goto err; /* p-1 */
if (!BN_sub(r2,rsa->q,BN_value_one())) goto err; /* q-1 */
if (!BN_mul(r0,r1,r2,ctx)) goto err; /* (p-1)(q-1) */
-
-/* should not be needed, since gcd(p-1,e) == 1 and gcd(q-1,e) == 1 */
-/* for (;;)
- {
- if (!BN_gcd(r3,r0,rsa->e,ctx)) goto err;
- if (BN_is_one(r3)) break;
-
- if (1)
- {
- if (!BN_add_word(rsa->e,2L)) goto err;
- continue;
- }
- RSAerr(RSA_F_RSA_GENERATE_KEY,RSA_R_BAD_E_VALUE);
- goto err;
- }
-*/
if (!BN_mod_inverse(rsa->d,rsa->e,r0,ctx)) goto err; /* d */
/* calculate d mod (p-1) */
diff --git a/crypto/rsa/rsa_saos.c b/crypto/rsa/rsa_saos.c
index 1e9339367f..f98e0a80a6 100644
--- a/crypto/rsa/rsa_saos.c
+++ b/crypto/rsa/rsa_saos.c
@@ -140,8 +140,11 @@ int RSA_verify_ASN1_OCTET_STRING(int dtype,
ret=1;
err:
if (sig != NULL) M_ASN1_OCTET_STRING_free(sig);
- OPENSSL_cleanse(s,(unsigned int)siglen);
- OPENSSL_free(s);
+ if (s != NULL)
+ {
+ OPENSSL_cleanse(s,(unsigned int)siglen);
+ OPENSSL_free(s);
+ }
return(ret);
}
diff --git a/crypto/rsa/rsa_sign.c b/crypto/rsa/rsa_sign.c
index e50c839279..9e7dfd1927 100644
--- a/crypto/rsa/rsa_sign.c
+++ b/crypto/rsa/rsa_sign.c
@@ -169,7 +169,7 @@ int RSA_verify(int dtype, const unsigned char *m, unsigned int m_len,
}
if((dtype == NID_md5_sha1) && (m_len != SSL_SIG_LENGTH) ) {
RSAerr(RSA_F_RSA_VERIFY,RSA_R_INVALID_MESSAGE_LENGTH);
- return(0);
+ goto err;
}
i=RSA_public_decrypt((int)siglen,sigbuf,s,rsa,RSA_PKCS1_PADDING);
@@ -222,8 +222,11 @@ int RSA_verify(int dtype, const unsigned char *m, unsigned int m_len,
}
err:
if (sig != NULL) X509_SIG_free(sig);
- OPENSSL_cleanse(s,(unsigned int)siglen);
- OPENSSL_free(s);
+ if (s != NULL)
+ {
+ OPENSSL_cleanse(s,(unsigned int)siglen);
+ OPENSSL_free(s);
+ }
return(ret);
}
diff --git a/crypto/sha/Makefile.ssl b/crypto/sha/Makefile.ssl
index 21bbf96e9f..71adb3c38c 100644
--- a/crypto/sha/Makefile.ssl
+++ b/crypto/sha/Makefile.ssl
@@ -21,6 +21,7 @@ SHA1_ASM_OBJ=
CFLAGS= $(INCLUDES) $(CFLAG)
ASFLAGS= $(INCLUDES) $(ASFLAG)
+AFLAGS= $(ASFLAGS)
GENERAL=Makefile
TEST=shatest.c sha1test.c sha256t.c sha512t.c
@@ -47,22 +48,28 @@ lib: $(LIBOBJ)
$(RANLIB) $(LIB) || echo Never mind.
@touch lib
-# elf
-asm/sx86-elf.s: asm/sha1-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) sha1-586.pl elf $(CFLAGS) $(PROCESSOR) > sx86-elf.s)
-asm/sse2-elf.s: asm/sha512-sse2.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) sha512-sse2.pl elf $(CFLAGS) $(PROCESSOR) > sse2-elf.s)
-
+# ELF
+sx86-elf.s: asm/sha1-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) sha1-586.pl elf $(CFLAGS) $(PROCESSOR) > ../$@)
+s512sse2-elf.s: asm/sha512-sse2.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) sha512-sse2.pl elf $(CFLAGS) $(PROCESSOR) > ../$@)
+# COFF
+sx86-cof.s: asm/sha1-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) sha1-586.pl coff $(CFLAGS) $(PROCESSOR) > ../$@)
+s512sse2-cof.s: asm/sha512-sse2.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) sha512-sse2.pl coff $(CFLAGS) $(PROCESSOR) > ../$@)
# a.out
-asm/sx86-out.o: asm/sx86unix.cpp
- $(CPP) -DOUT asm/sx86unix.cpp | as -o asm/sx86-out.o
-
-# bsdi
-asm/sx86bsdi.o: asm/sx86unix.cpp
- $(CPP) -DBSDI asm/sx86unix.cpp | sed 's/ :/:/' | as -o asm/sx86bsdi.o
-
-asm/sx86unix.cpp: asm/sha1-586.pl ../perlasm/x86asm.pl
- (cd asm; $(PERL) sha1-586.pl cpp $(PROCESSOR) >sx86unix.cpp)
+sx86-out.s: asm/sha1-586.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) sha1-586.pl a.out $(CFLAGS) $(PROCESSOR) > ../$@)
+s512sse2-out.s: asm/sha512-sse2.pl ../perlasm/x86asm.pl
+ (cd asm; $(PERL) sha512-sse2.pl a.out $(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))
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -74,7 +81,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -96,7 +103,7 @@ dclean:
mv -f Makefile.new $(MAKEFILE)
clean:
- rm -f asm/sx86unix.cpp asm/*-elf.* *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o
+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
# DO NOT DELETE THIS LINE -- make depend depends on it.
@@ -114,11 +121,14 @@ 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: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-sha512.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-sha512.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
-sha512.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
-sha512.o: ../../include/openssl/symhacks.h sha512.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/e_os2.h ../../include/openssl/opensslconf.h
sha_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/sha.h
sha_dgst.o: ../md32_common.h sha_dgst.c sha_locl.h
diff --git a/crypto/sha/asm/sha1-586.pl b/crypto/sha/asm/sha1-586.pl
index e00f709553..4f8521f1e2 100644
--- a/crypto/sha/asm/sha1-586.pl
+++ b/crypto/sha/asm/sha1-586.pl
@@ -9,7 +9,7 @@
#
# compared with original compared with Intel cc
# assembler impl. generated code
-# Pentium -25% +37%
+# Pentium -16% +48%
# PIII/AMD +8% +16%
# P4 +85%(!) +45%
#
@@ -104,19 +104,21 @@ sub BODY_00_15
&comment("00_15 $n");
- &mov($tmp1,$a);
- &mov($f,$c); # f to hold F_00_19(b,c,d)
+ &mov($f,$c); # f to hold F_00_19(b,c,d)
+ if ($n==0) { &mov($tmp1,$a); }
+ else { &mov($a,$tmp1); }
&rotl($tmp1,5); # tmp1=ROTATE(a,5)
&xor($f,$d);
&and($f,$b);
- &rotr($b,2); # b=ROTATE(b,30)
- &add($tmp1,$e); # tmp1+=e;
- &mov($e,&swtmp($n)); # e becomes volatile and
+ &add($tmp1,$e); # tmp1+=e;
+ &mov($e,&swtmp($n)); # e becomes volatile and
# is loaded with xi
- &xor($f,$d); # f holds F_00_19(b,c,d)
+ &xor($f,$d); # f holds F_00_19(b,c,d)
+ &rotr($b,2); # b=ROTATE(b,30)
&lea($tmp1,&DWP($K,$tmp1,$e,1));# tmp1+=K_00_19+xi
-
- &add($f,$tmp1); # f+=tmp1
+
+ if ($n==15) { &add($f,$tmp1); } # f+=tmp1
+ else { &add($tmp1,$f); }
}
sub BODY_16_19
@@ -132,15 +134,15 @@ sub BODY_16_19
&xor($tmp1,$d);
&xor($f,&swtmp($n2));
&and($tmp1,$b); # tmp1 holds F_00_19(b,c,d)
- &xor($f,&swtmp($n3)); # f holds xa^xb^xc^xd
- &rotr($b,2); # b=ROTATE(b,30)
- &xor($tmp1,$d); # tmp1=F_00_19(b,c,d)
- &rotl($f,1); # f=ROATE(f,1)
+ &rotr($b,2); # b=ROTATE(b,30)
+ &xor($f,&swtmp($n3)); # f holds xa^xb^xc^xd
+ &rotl($f,1); # f=ROATE(f,1)
+ &xor($tmp1,$d); # tmp1=F_00_19(b,c,d)
&mov(&swtmp($n0),$f); # xi=f
&lea($f,&DWP($K,$f,$e,1)); # f+=K_00_19+e
&mov($e,$a); # e becomes volatile
- &add($f,$tmp1); # f+=F_00_19(b,c,d)
- &rotl($e,5); # e=ROTATE(a,5)
+ &rotl($e,5); # e=ROTATE(a,5)
+ &add($f,$tmp1); # f+=F_00_19(b,c,d)
&add($f,$e); # f+=ROTATE(a,5)
}
@@ -151,20 +153,20 @@ sub BODY_20_39
&comment("20_39 $n");
local($n0,$n1,$n2,$n3,$np)=&Na($n);
- &mov($f,&swtmp($n0)); # f to hold Xupdate(xi,xa,xb,xc,xd)
- &mov($tmp1,$b); # tmp1 to hold F_20_39(b,c,d)
- &xor($f,&swtmp($n1));
- &rotr($b,2); # b=ROTATE(b,30)
- &xor($f,&swtmp($n2));
- &xor($tmp1,$c);
- &xor($f,&swtmp($n3)); # f holds xa^xb^xc^xd
- &xor($tmp1,$d); # tmp1 holds F_20_39(b,c,d)
+ &mov($tmp1,$b); # tmp1 to hold F_20_39(b,c,d)
+ &mov($f,&swtmp($n0)); # f to hold Xupdate(xi,xa,xb,xc,xd)
+ &rotr($b,2); # b=ROTATE(b,30)
+ &xor($f,&swtmp($n1));
+ &xor($tmp1,$c);
+ &xor($f,&swtmp($n2));
+ &xor($tmp1,$d); # tmp1 holds F_20_39(b,c,d)
+ &xor($f,&swtmp($n3)); # f holds xa^xb^xc^xd
&rotl($f,1); # f=ROTATE(f,1)
+ &add($tmp1,$e);
&mov(&swtmp($n0),$f); # xi=f
- &lea($f,&DWP($K,$f,$e,1)); # f+=K_20_39+e
&mov($e,$a); # e becomes volatile
&rotl($e,5); # e=ROTATE(a,5)
- &add($f,$tmp1); # f+=F_20_39(b,c,d)
+ &lea($f,&DWP($K,$f,$tmp1,1)); # f+=K_20_39+e
&add($f,$e); # f+=ROTATE(a,5)
}
@@ -176,14 +178,17 @@ sub BODY_40_59
local($n0,$n1,$n2,$n3,$np)=&Na($n);
&mov($f,&swtmp($n0)); # f to hold Xupdate(xi,xa,xb,xc,xd)
+ &mov($tmp1,&swtmp($n1));
+ &xor($f,$tmp1);
+ &mov($tmp1,&swtmp($n2));
+ &xor($f,$tmp1);
+ &mov($tmp1,&swtmp($n3));
+ &xor($f,$tmp1); # f holds xa^xb^xc^xd
&mov($tmp1,$b); # tmp1 to hold F_40_59(b,c,d)
- &xor($f,&swtmp($n1));
- &or($tmp1,$c);
- &xor($f,&swtmp($n2));
- &and($tmp1,$d);
- &xor($f,&swtmp($n3)); # f holds xa^xb^xc^xd
&rotl($f,1); # f=ROTATE(f,1)
+ &or($tmp1,$c);
&mov(&swtmp($n0),$f); # xi=f
+ &and($tmp1,$d);
&lea($f,&DWP($K,$f,$e,1)); # f+=K_40_59+e
&mov($e,$b); # e becomes volatile and is used
# to calculate F_40_59(b,c,d)
@@ -192,8 +197,8 @@ sub BODY_40_59
&or($tmp1,$e); # tmp1 holds F_40_59(b,c,d)
&mov($e,$a);
&rotl($e,5); # e=ROTATE(a,5)
- &add($tmp1,$e); # tmp1+=ROTATE(a,5)
- &add($f,$tmp1); # f+=tmp1;
+ &add($f,$tmp1); # f+=tmp1;
+ &add($f,$e); # f+=ROTATE(a,5)
}
sub BODY_60_79
@@ -405,7 +410,7 @@ sub sha1_block_data
&mov(&DWP(16,$tmp1,"",0),$E);
&cmp("esi","eax");
&mov(&DWP( 4,$tmp1,"",0),$B);
- &jl(&label("start"));
+ &jb(&label("start"));
&stack_pop(18+9);
&pop("edi");
diff --git a/crypto/sha/asm/sha512-ia64.pl b/crypto/sha/asm/sha512-ia64.pl
index d47e2b2856..0aea02399a 100755
--- a/crypto/sha/asm/sha512-ia64.pl
+++ b/crypto/sha/asm/sha512-ia64.pl
@@ -98,7 +98,7 @@ open STDOUT,">$output" || die "can't open $output: $!";
if ($^O eq "hpux") {
$ADDP="addp4";
for (@ARGV) { $ADDP="add" if (/[\+DD|\-mlp]64/); }
-}
+} else { $ADDP="add"; }
for (@ARGV) { $big_endian=1 if (/\-DB_ENDIAN/);
$big_endian=0 if (/\-DL_ENDIAN/); }
if (!defined($big_endian))
diff --git a/crypto/sha/sha.h b/crypto/sha/sha.h
index f25512e5e6..a900ad3e95 100644
--- a/crypto/sha/sha.h
+++ b/crypto/sha/sha.h
@@ -101,7 +101,7 @@ typedef struct SHAstate_st
SHA_LONG h0,h1,h2,h3,h4;
SHA_LONG Nl,Nh;
SHA_LONG data[SHA_LBLOCK];
- int num;
+ unsigned int num;
} SHA_CTX;
#ifndef OPENSSL_NO_SHA0
@@ -159,6 +159,9 @@ void SHA256_Transform(SHA256_CTX *c, const unsigned char *data);
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
#define SHA_LONG64 unsigned __int64
#define U64(C) C##UI64
+#elif defined(__arch64__)
+#define SHA_LONG64 unsigned long
+#define U64(C) C##UL
#else
#define SHA_LONG64 unsigned long long
#define U64(C) C##ULL
diff --git a/crypto/sha/sha1test.c b/crypto/sha/sha1test.c
index cddd598f22..b0650c7254 100644
--- a/crypto/sha/sha1test.c
+++ b/crypto/sha/sha1test.c
@@ -123,7 +123,7 @@ int main(int argc, char *argv[])
i=1;
while (*P != NULL)
{
- EVP_Digest(*P,(unsigned long)strlen((char *)*P),md,NULL,EVP_sha1(), NULL);
+ EVP_Digest(*P,strlen((char *)*P),md,NULL,EVP_sha1(), NULL);
p=pt(md);
if (strcmp(p,(char *)*R) != 0)
{
diff --git a/crypto/sha/sha256.c b/crypto/sha/sha256.c
index 2f4078f444..5f3845f55c 100644
--- a/crypto/sha/sha256.c
+++ b/crypto/sha/sha256.c
@@ -4,6 +4,8 @@
* according to the OpenSSL license [found in ../../LICENSE].
* ====================================================================
*/
+#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA256)
+
#include <stdlib.h>
#include <string.h>
@@ -117,6 +119,9 @@ void sha256_block_data_order (SHA256_CTX *ctx, const void *in, size_t num);
#include "md32_common.h"
+#ifdef SHA256_ASM
+void sha256_block (SHA256_CTX *ctx, const void *in, size_t num, int host);
+#else
static const SHA_LONG K256[64] = {
0x428a2f98UL,0x71374491UL,0xb5c0fbcfUL,0xe9b5dba5UL,
0x3956c25bUL,0x59f111f1UL,0x923f82a4UL,0xab1c5ed5UL,
@@ -174,6 +179,8 @@ static void sha256_block (SHA256_CTX *ctx, const void *in, size_t num, int host)
h = g; g = f; f = e; e = d + T1;
d = c; c = b; b = a; a = T1 + T2;
}
+
+ data += SHA256_CBLOCK;
}
else
{
@@ -204,7 +211,6 @@ static void sha256_block (SHA256_CTX *ctx, const void *in, size_t num, int host)
ctx->h[0] += a; ctx->h[1] += b; ctx->h[2] += c; ctx->h[3] += d;
ctx->h[4] += e; ctx->h[5] += f; ctx->h[6] += g; ctx->h[7] += h;
- data += SHA256_CBLOCK;
}
}
@@ -253,6 +259,8 @@ static void sha256_block (SHA256_CTX *ctx, const void *in, size_t num, int host)
T1 = X[13] = W[13]; ROUND_00_15(13,d,e,f,g,h,a,b,c);
T1 = X[14] = W[14]; ROUND_00_15(14,c,d,e,f,g,h,a,b);
T1 = X[15] = W[15]; ROUND_00_15(15,b,c,d,e,f,g,h,a);
+
+ data += SHA256_CBLOCK;
}
else
{
@@ -291,11 +299,11 @@ static void sha256_block (SHA256_CTX *ctx, const void *in, size_t num, int host)
ctx->h[0] += a; ctx->h[1] += b; ctx->h[2] += c; ctx->h[3] += d;
ctx->h[4] += e; ctx->h[5] += f; ctx->h[6] += g; ctx->h[7] += h;
- data += SHA256_CBLOCK;
}
}
#endif
+#endif /* SHA256_ASM */
/*
* Idea is to trade couple of cycles for some space. On IA-32 we save
@@ -307,3 +315,5 @@ void HASH_BLOCK_HOST_ORDER (SHA256_CTX *ctx, const void *in, size_t num)
void HASH_BLOCK_DATA_ORDER (SHA256_CTX *ctx, const void *in, size_t num)
{ sha256_block (ctx,in,num,0); }
+
+#endif /* OPENSSL_NO_SHA256 */
diff --git a/crypto/sha/sha256t.c b/crypto/sha/sha256t.c
index e211c9c24f..5c26ec86ef 100644
--- a/crypto/sha/sha256t.c
+++ b/crypto/sha/sha256t.c
@@ -8,6 +8,7 @@
#include <stdlib.h>
#include <openssl/sha.h>
+#include <openssl/evp.h>
unsigned char app_b1[SHA256_DIGEST_LENGTH] = {
0xba,0x78,0x16,0xbf,0x8f,0x01,0xcf,0xea,
@@ -48,11 +49,11 @@ unsigned char addenum_3[SHA224_DIGEST_LENGTH] = {
int main ()
{ unsigned char md[SHA256_DIGEST_LENGTH];
int i;
- SHA256_CTX ctx;
+ EVP_MD_CTX evp;
fprintf(stdout,"Testing SHA-256 ");
- SHA256((unsigned char *)"abc",3,md);
+ EVP_Digest ("abc",3,md,NULL,EVP_sha256(),NULL);
if (memcmp(md,app_b1,sizeof(app_b1)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 1 of 3 failed.\n");
@@ -61,8 +62,8 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA256((unsigned char *)"abcdbcde""cdefdefg""efghfghi""ghijhijk"
- "ijkljklm""klmnlmno""mnopnopq",56,md);
+ EVP_Digest ("abcdbcde""cdefdefg""efghfghi""ghijhijk"
+ "ijkljklm""klmnlmno""mnopnopq",56,md,NULL,EVP_sha256(),NULL);
if (memcmp(md,app_b2,sizeof(app_b2)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 2 of 3 failed.\n");
@@ -71,12 +72,17 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA256_Init(&ctx);
- for (i=0;i<1000000;i+=64)
- SHA256_Update(&ctx, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
- (1000000-i)<64?1000000-i:64);
- SHA256_Final(md,&ctx);
+ EVP_MD_CTX_init (&evp);
+ EVP_DigestInit_ex (&evp,EVP_sha256(),NULL);
+ for (i=0;i<1000000;i+=160)
+ EVP_DigestUpdate (&evp, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
+ (1000000-i)<160?1000000-i:160);
+ EVP_DigestFinal_ex (&evp,md,NULL);
+ EVP_MD_CTX_cleanup (&evp);
if (memcmp(md,app_b3,sizeof(app_b3)))
{ fflush(stdout);
@@ -90,7 +96,7 @@ int main ()
fprintf(stdout,"Testing SHA-224 ");
- SHA224((unsigned char *)"abc",3,md);
+ EVP_Digest ("abc",3,md,NULL,EVP_sha224(),NULL);
if (memcmp(md,addenum_1,sizeof(addenum_1)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 1 of 3 failed.\n");
@@ -99,8 +105,8 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA224((unsigned char *)"abcdbcde""cdefdefg""efghfghi""ghijhijk"
- "ijkljklm""klmnlmno""mnopnopq",56,md);
+ EVP_Digest ("abcdbcde""cdefdefg""efghfghi""ghijhijk"
+ "ijkljklm""klmnlmno""mnopnopq",56,md,NULL,EVP_sha224(),NULL);
if (memcmp(md,addenum_2,sizeof(addenum_2)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 2 of 3 failed.\n");
@@ -109,12 +115,14 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA224_Init(&ctx);
+ EVP_MD_CTX_init (&evp);
+ EVP_DigestInit_ex (&evp,EVP_sha224(),NULL);
for (i=0;i<1000000;i+=64)
- SHA256_Update(&ctx, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
- (1000000-i)<64?1000000-i:64);
- SHA256_Final(md,&ctx);
+ EVP_DigestUpdate (&evp, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
+ (1000000-i)<64?1000000-i:64);
+ EVP_DigestFinal_ex (&evp,md,NULL);
+ EVP_MD_CTX_cleanup (&evp);
if (memcmp(md,addenum_3,sizeof(addenum_3)))
{ fflush(stdout);
diff --git a/crypto/sha/sha512.c b/crypto/sha/sha512.c
index dc1047d59e..c84bd5addf 100644
--- a/crypto/sha/sha512.c
+++ b/crypto/sha/sha512.c
@@ -4,6 +4,7 @@
* according to the OpenSSL license [found in ../../LICENSE].
* ====================================================================
*/
+#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA512)
/*
* IMPLEMENTATION NOTES.
*
@@ -47,6 +48,8 @@
#include <openssl/sha.h>
#include <openssl/opensslv.h>
+#include "cryptlib.h"
+
const char *SHA512_version="SHA-512" OPENSSL_VERSION_PTEXT;
#if defined(_M_IX86) || defined(_M_AMD64) || defined(__i386) || defined(__x86_64)
@@ -83,7 +86,10 @@ int SHA512_Init (SHA512_CTX *c)
return 1;
}
-static void sha512_block (SHA512_CTX *ctx, const void *in, size_t num);
+#ifndef SHA512_ASM
+static
+#endif
+void sha512_block (SHA512_CTX *ctx, const void *in, size_t num);
int SHA512_Final (unsigned char *md, SHA512_CTX *c)
{
@@ -101,22 +107,22 @@ int SHA512_Final (unsigned char *md, SHA512_CTX *c)
c->u.d[SHA_LBLOCK-2] = c->Nh;
c->u.d[SHA_LBLOCK-1] = c->Nl;
#else
- p[sizeof(c->u)-1] = (c->Nl)&0xFF;
- p[sizeof(c->u)-2] = (c->Nl>>8)&0xFF;
- p[sizeof(c->u)-3] = (c->Nl>>16)&0xFF;
- p[sizeof(c->u)-4] = (c->Nl>>24)&0xFF;
- p[sizeof(c->u)-5] = (c->Nl>>32)&0xFF;
- p[sizeof(c->u)-6] = (c->Nl>>40)&0xFF;
- p[sizeof(c->u)-7] = (c->Nl>>48)&0xFF;
- p[sizeof(c->u)-8] = (c->Nl>>56)&0xFF;
- p[sizeof(c->u)-9] = (c->Nh)&0xFF;
- p[sizeof(c->u)-10] = (c->Nh>>8)&0xFF;
- p[sizeof(c->u)-11] = (c->Nh>>16)&0xFF;
- p[sizeof(c->u)-12] = (c->Nh>>24)&0xFF;
- p[sizeof(c->u)-13] = (c->Nh>>32)&0xFF;
- p[sizeof(c->u)-14] = (c->Nh>>40)&0xFF;
- p[sizeof(c->u)-15] = (c->Nh>>48)&0xFF;
- p[sizeof(c->u)-16] = (c->Nh>>56)&0xFF;
+ p[sizeof(c->u)-1] = (unsigned char)(c->Nl);
+ p[sizeof(c->u)-2] = (unsigned char)(c->Nl>>8);
+ p[sizeof(c->u)-3] = (unsigned char)(c->Nl>>16);
+ p[sizeof(c->u)-4] = (unsigned char)(c->Nl>>24);
+ p[sizeof(c->u)-5] = (unsigned char)(c->Nl>>32);
+ p[sizeof(c->u)-6] = (unsigned char)(c->Nl>>40);
+ p[sizeof(c->u)-7] = (unsigned char)(c->Nl>>48);
+ p[sizeof(c->u)-8] = (unsigned char)(c->Nl>>56);
+ p[sizeof(c->u)-9] = (unsigned char)(c->Nh);
+ p[sizeof(c->u)-10] = (unsigned char)(c->Nh>>8);
+ p[sizeof(c->u)-11] = (unsigned char)(c->Nh>>16);
+ p[sizeof(c->u)-12] = (unsigned char)(c->Nh>>24);
+ p[sizeof(c->u)-13] = (unsigned char)(c->Nh>>32);
+ p[sizeof(c->u)-14] = (unsigned char)(c->Nh>>40);
+ p[sizeof(c->u)-15] = (unsigned char)(c->Nh>>48);
+ p[sizeof(c->u)-16] = (unsigned char)(c->Nh>>56);
#endif
sha512_block (c,p,1);
@@ -131,10 +137,14 @@ int SHA512_Final (unsigned char *md, SHA512_CTX *c)
{
SHA_LONG64 t = c->h[n];
- *(md++) = (t>>56)&0xFF; *(md++) = (t>>48)&0xFF;
- *(md++) = (t>>40)&0xFF; *(md++) = (t>>32)&0xFF;
- *(md++) = (t>>24)&0xFF; *(md++) = (t>>16)&0xFF;
- *(md++) = (t>>8)&0xFF; *(md++) = (t)&0xFF;
+ *(md++) = (unsigned char)(t>>56);
+ *(md++) = (unsigned char)(t>>48);
+ *(md++) = (unsigned char)(t>>40);
+ *(md++) = (unsigned char)(t>>32);
+ *(md++) = (unsigned char)(t>>24);
+ *(md++) = (unsigned char)(t>>16);
+ *(md++) = (unsigned char)(t>>8);
+ *(md++) = (unsigned char)(t);
}
break;
case SHA512_DIGEST_LENGTH:
@@ -142,10 +152,14 @@ int SHA512_Final (unsigned char *md, SHA512_CTX *c)
{
SHA_LONG64 t = c->h[n];
- *(md++) = (t>>56)&0xFF; *(md++) = (t>>48)&0xFF;
- *(md++) = (t>>40)&0xFF; *(md++) = (t>>32)&0xFF;
- *(md++) = (t>>24)&0xFF; *(md++) = (t>>16)&0xFF;
- *(md++) = (t>>8)&0xFF; *(md++) = (t)&0xFF;
+ *(md++) = (unsigned char)(t>>56);
+ *(md++) = (unsigned char)(t>>48);
+ *(md++) = (unsigned char)(t>>40);
+ *(md++) = (unsigned char)(t>>32);
+ *(md++) = (unsigned char)(t>>24);
+ *(md++) = (unsigned char)(t>>16);
+ *(md++) = (unsigned char)(t>>8);
+ *(md++) = (unsigned char)(t);
}
break;
/* ... as well as make sure md_len is not abused. */
@@ -241,6 +255,7 @@ unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md)
return(md);
}
+#ifndef SHA512_ASM
static const SHA_LONG64 K512[80] = {
U64(0x428a2f98d728ae22),U64(0x7137449123ef65cd),
U64(0xb5c0fbcfec4d3b2f),U64(0xe9b5dba58189dbbc),
@@ -332,11 +347,10 @@ static const SHA_LONG64 K512[80] = {
#define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z)))
#define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
-#if defined(OPENSSL_IA32_SSE2) && !defined(OPENSSL_NO_ASM)
+#if defined(OPENSSL_IA32_SSE2) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY)
#define GO_FOR_SSE2(ctx,in,num) do { \
- extern int OPENSSL_ia32cap; \
- void sha512_block_sse2(void *,const void *,size_t); \
- if (!(OPENSSL_ia32cap & (1<<26))) break; \
+ void sha512_block_sse2(void *,const void *,size_t); \
+ if (!(OPENSSL_ia32cap_P & (1<<26))) break; \
sha512_block_sse2(ctx->h,in,num); return; \
} while (0)
#endif
@@ -476,3 +490,7 @@ static void sha512_block (SHA512_CTX *ctx, const void *in, size_t num)
}
#endif
+
+#endif /* SHA512_ASM */
+
+#endif /* OPENSSL_NO_SHA512 */
diff --git a/crypto/sha/sha512t.c b/crypto/sha/sha512t.c
index bb93070e11..7385469bee 100644
--- a/crypto/sha/sha512t.c
+++ b/crypto/sha/sha512t.c
@@ -8,6 +8,8 @@
#include <stdlib.h>
#include <openssl/sha.h>
+#include <openssl/evp.h>
+#include <openssl/crypto.h>
unsigned char app_c1[SHA512_DIGEST_LENGTH] = {
0xdd,0xaf,0x35,0xa1,0x93,0x61,0x7a,0xba,
@@ -66,20 +68,21 @@ unsigned char app_d3[SHA384_DIGEST_LENGTH] = {
int main ()
{ unsigned char md[SHA512_DIGEST_LENGTH];
int i;
- SHA512_CTX ctx;
+ EVP_MD_CTX evp;
#ifdef OPENSSL_IA32_SSE2
- { extern int OPENSSL_ia32cap;
- char *env;
+ /* Alternative to this is to call OpenSSL_add_all_algorithms...
+ * The below code is retained exclusively for debugging purposes. */
+ { char *env;
- if (env=getenv("OPENSSL_ia32cap"))
- OPENSSL_ia32cap = strtol (env,NULL,0);
+ if ((env=getenv("OPENSSL_ia32cap")))
+ OPENSSL_ia32cap = strtoul (env,NULL,0);
}
#endif
fprintf(stdout,"Testing SHA-512 ");
- SHA512((unsigned char *)"abc",3,md);
+ EVP_Digest ("abc",3,md,NULL,EVP_sha512(),NULL);
if (memcmp(md,app_c1,sizeof(app_c1)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 1 of 3 failed.\n");
@@ -88,10 +91,10 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA512((unsigned char *)"abcdefgh""bcdefghi""cdefghij""defghijk"
- "efghijkl""fghijklm""ghijklmn""hijklmno"
- "ijklmnop""jklmnopq""klmnopqr""lmnopqrs"
- "mnopqrst""nopqrstu",112,md);
+ EVP_Digest ("abcdefgh""bcdefghi""cdefghij""defghijk"
+ "efghijkl""fghijklm""ghijklmn""hijklmno"
+ "ijklmnop""jklmnopq""klmnopqr""lmnopqrs"
+ "mnopqrst""nopqrstu",112,md,NULL,EVP_sha512(),NULL);
if (memcmp(md,app_c2,sizeof(app_c2)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 2 of 3 failed.\n");
@@ -100,19 +103,21 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA512_Init(&ctx);
+ EVP_MD_CTX_init (&evp);
+ EVP_DigestInit_ex (&evp,EVP_sha512(),NULL);
for (i=0;i<1000000;i+=288)
- SHA512_Update(&ctx, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
- (1000000-i)<288?1000000-i:288);
- SHA512_Final(md,&ctx);
+ EVP_DigestUpdate (&evp, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
+ (1000000-i)<288?1000000-i:288);
+ EVP_DigestFinal_ex (&evp,md,NULL);
+ EVP_MD_CTX_cleanup (&evp);
if (memcmp(md,app_c3,sizeof(app_c3)))
{ fflush(stdout);
@@ -126,7 +131,7 @@ int main ()
fprintf(stdout,"Testing SHA-384 ");
- SHA384((unsigned char *)"abc",3,md);
+ EVP_Digest ("abc",3,md,NULL,EVP_sha384(),NULL);
if (memcmp(md,app_d1,sizeof(app_d1)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 1 of 3 failed.\n");
@@ -135,10 +140,10 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA384((unsigned char *)"abcdefgh""bcdefghi""cdefghij""defghijk"
- "efghijkl""fghijklm""ghijklmn""hijklmno"
- "ijklmnop""jklmnopq""klmnopqr""lmnopqrs"
- "mnopqrst""nopqrstu",112,md);
+ EVP_Digest ("abcdefgh""bcdefghi""cdefghij""defghijk"
+ "efghijkl""fghijklm""ghijklmn""hijklmno"
+ "ijklmnop""jklmnopq""klmnopqr""lmnopqrs"
+ "mnopqrst""nopqrstu",112,md,NULL,EVP_sha384(),NULL);
if (memcmp(md,app_d2,sizeof(app_d2)))
{ fflush(stdout);
fprintf(stderr,"\nTEST 2 of 3 failed.\n");
@@ -147,12 +152,14 @@ int main ()
else
fprintf(stdout,"."); fflush(stdout);
- SHA384_Init(&ctx);
+ EVP_MD_CTX_init (&evp);
+ EVP_DigestInit_ex (&evp,EVP_sha384(),NULL);
for (i=0;i<1000000;i+=64)
- SHA512_Update(&ctx, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
- "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
- (1000000-i)<64?1000000-i:64);
- SHA384_Final(md,&ctx);
+ EVP_DigestUpdate (&evp, "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
+ "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
+ (1000000-i)<64?1000000-i:64);
+ EVP_DigestFinal_ex (&evp,md,NULL);
+ EVP_MD_CTX_cleanup (&evp);
if (memcmp(md,app_d3,sizeof(app_d3)))
{ fflush(stdout);
diff --git a/crypto/sha/sha_locl.h b/crypto/sha/sha_locl.h
index 210f22f7a6..d1f64c5fd0 100644
--- a/crypto/sha/sha_locl.h
+++ b/crypto/sha/sha_locl.h
@@ -121,6 +121,11 @@
# define sha1_block_data_order sha1_block_asm_data_order
# define DONT_IMPLEMENT_BLOCK_DATA_ORDER
# define HASH_BLOCK_DATA_ORDER_ALIGNED sha1_block_asm_data_order
+# elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+# define sha1_block_host_order sha1_block_asm_host_order
+# define DONT_IMPLEMENT_BLOCK_HOST_ORDER
+# define sha1_block_data_order sha1_block_asm_data_order
+# define DONT_IMPLEMENT_BLOCK_DATA_ORDER
# endif
# endif
void sha1_block_host_order (SHA_CTX *c, const void *p,size_t num);
diff --git a/crypto/sha/shatest.c b/crypto/sha/shatest.c
index ddb388b670..d007cf13ed 100644
--- a/crypto/sha/shatest.c
+++ b/crypto/sha/shatest.c
@@ -123,7 +123,7 @@ int main(int argc, char *argv[])
i=1;
while (*P != NULL)
{
- EVP_Digest(*P,(unsigned long)strlen((char *)*P),md,NULL,EVP_sha(), NULL);
+ EVP_Digest(*P,strlen((char *)*P),md,NULL,EVP_sha(), NULL);
p=pt(md);
if (strcmp(p,(char *)*R) != 0)
{
diff --git a/crypto/stack/Makefile.ssl b/crypto/stack/Makefile.ssl
index 092f52ec0b..abf384a39d 100644
--- a/crypto/stack/Makefile.ssl
+++ b/crypto/stack/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/stack/safestack.h b/crypto/stack/safestack.h
index e52a859eb3..6d6739eae1 100644
--- a/crypto/stack/safestack.h
+++ b/crypto/stack/safestack.h
@@ -113,6 +113,8 @@ STACK_OF(type) \
((type * (*)(STACK_OF(type) *))sk_pop)(st)
#define SKM_sk_sort(type, st) \
((void (*)(STACK_OF(type) *))sk_sort)(st)
+#define SKM_sk_is_sorted(type, st) \
+ ((int (*)(const STACK_OF(type) *))sk_is_sorted)(st)
#define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
((STACK_OF(type) * (*) (STACK_OF(type) **,const unsigned char **, long , \
@@ -188,6 +190,8 @@ STACK_OF(type) \
((type *)sk_pop(st))
#define SKM_sk_sort(type, st) \
sk_sort(st)
+#define SKM_sk_is_sorted(type, st) \
+ sk_is_sorted(st)
#define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
d2i_ASN1_SET(st,pp,length, (char *(*)())d2i_func, (void (*)(void *))free_func, ex_tag,ex_class)
@@ -225,6 +229,7 @@ STACK_OF(type) \
#define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st))
#define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st))
#define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st))
+#define sk_ACCESS_DESCRIPTION_is_sorted(st) SKM_sk_is_sorted(ACCESS_DESCRIPTION, (st))
#define sk_ASN1_GENERALSTRING_new(st) SKM_sk_new(ASN1_GENERALSTRING, (st))
#define sk_ASN1_GENERALSTRING_new_null() SKM_sk_new_null(ASN1_GENERALSTRING)
@@ -246,6 +251,7 @@ STACK_OF(type) \
#define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st))
#define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st))
#define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st))
+#define sk_ASN1_GENERALSTRING_is_sorted(st) SKM_sk_is_sorted(ASN1_GENERALSTRING, (st))
#define sk_ASN1_INTEGER_new(st) SKM_sk_new(ASN1_INTEGER, (st))
#define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER)
@@ -267,6 +273,7 @@ STACK_OF(type) \
#define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st))
#define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st))
#define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st))
+#define sk_ASN1_INTEGER_is_sorted(st) SKM_sk_is_sorted(ASN1_INTEGER, (st))
#define sk_ASN1_OBJECT_new(st) SKM_sk_new(ASN1_OBJECT, (st))
#define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT)
@@ -288,6 +295,7 @@ STACK_OF(type) \
#define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st))
#define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st))
#define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st))
+#define sk_ASN1_OBJECT_is_sorted(st) SKM_sk_is_sorted(ASN1_OBJECT, (st))
#define sk_ASN1_STRING_TABLE_new(st) SKM_sk_new(ASN1_STRING_TABLE, (st))
#define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE)
@@ -309,6 +317,7 @@ STACK_OF(type) \
#define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st))
#define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st))
#define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st))
+#define sk_ASN1_STRING_TABLE_is_sorted(st) SKM_sk_is_sorted(ASN1_STRING_TABLE, (st))
#define sk_ASN1_TYPE_new(st) SKM_sk_new(ASN1_TYPE, (st))
#define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE)
@@ -330,6 +339,7 @@ STACK_OF(type) \
#define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st))
#define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st))
#define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st))
+#define sk_ASN1_TYPE_is_sorted(st) SKM_sk_is_sorted(ASN1_TYPE, (st))
#define sk_ASN1_VALUE_new(st) SKM_sk_new(ASN1_VALUE, (st))
#define sk_ASN1_VALUE_new_null() SKM_sk_new_null(ASN1_VALUE)
@@ -351,6 +361,7 @@ STACK_OF(type) \
#define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st))
#define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st))
#define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st))
+#define sk_ASN1_VALUE_is_sorted(st) SKM_sk_is_sorted(ASN1_VALUE, (st))
#define sk_BIO_new(st) SKM_sk_new(BIO, (st))
#define sk_BIO_new_null() SKM_sk_new_null(BIO)
@@ -372,6 +383,7 @@ STACK_OF(type) \
#define sk_BIO_shift(st) SKM_sk_shift(BIO, (st))
#define sk_BIO_pop(st) SKM_sk_pop(BIO, (st))
#define sk_BIO_sort(st) SKM_sk_sort(BIO, (st))
+#define sk_BIO_is_sorted(st) SKM_sk_is_sorted(BIO, (st))
#define sk_CONF_IMODULE_new(st) SKM_sk_new(CONF_IMODULE, (st))
#define sk_CONF_IMODULE_new_null() SKM_sk_new_null(CONF_IMODULE)
@@ -393,6 +405,7 @@ STACK_OF(type) \
#define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st))
#define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st))
#define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st))
+#define sk_CONF_IMODULE_is_sorted(st) SKM_sk_is_sorted(CONF_IMODULE, (st))
#define sk_CONF_MODULE_new(st) SKM_sk_new(CONF_MODULE, (st))
#define sk_CONF_MODULE_new_null() SKM_sk_new_null(CONF_MODULE)
@@ -414,6 +427,7 @@ STACK_OF(type) \
#define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st))
#define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st))
#define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st))
+#define sk_CONF_MODULE_is_sorted(st) SKM_sk_is_sorted(CONF_MODULE, (st))
#define sk_CONF_VALUE_new(st) SKM_sk_new(CONF_VALUE, (st))
#define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE)
@@ -435,6 +449,7 @@ STACK_OF(type) \
#define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st))
#define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st))
#define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st))
+#define sk_CONF_VALUE_is_sorted(st) SKM_sk_is_sorted(CONF_VALUE, (st))
#define sk_CRYPTO_EX_DATA_FUNCS_new(st) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (st))
#define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS)
@@ -456,6 +471,7 @@ STACK_OF(type) \
#define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st))
#define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st))
#define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st))
+#define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(st) SKM_sk_is_sorted(CRYPTO_EX_DATA_FUNCS, (st))
#define sk_CRYPTO_dynlock_new(st) SKM_sk_new(CRYPTO_dynlock, (st))
#define sk_CRYPTO_dynlock_new_null() SKM_sk_new_null(CRYPTO_dynlock)
@@ -477,6 +493,7 @@ STACK_OF(type) \
#define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st))
#define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st))
#define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st))
+#define sk_CRYPTO_dynlock_is_sorted(st) SKM_sk_is_sorted(CRYPTO_dynlock, (st))
#define sk_DIST_POINT_new(st) SKM_sk_new(DIST_POINT, (st))
#define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT)
@@ -498,6 +515,7 @@ STACK_OF(type) \
#define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st))
#define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st))
#define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st))
+#define sk_DIST_POINT_is_sorted(st) SKM_sk_is_sorted(DIST_POINT, (st))
#define sk_ENGINE_new(st) SKM_sk_new(ENGINE, (st))
#define sk_ENGINE_new_null() SKM_sk_new_null(ENGINE)
@@ -519,6 +537,7 @@ STACK_OF(type) \
#define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st))
#define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st))
#define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st))
+#define sk_ENGINE_is_sorted(st) SKM_sk_is_sorted(ENGINE, (st))
#define sk_ENGINE_CLEANUP_ITEM_new(st) SKM_sk_new(ENGINE_CLEANUP_ITEM, (st))
#define sk_ENGINE_CLEANUP_ITEM_new_null() SKM_sk_new_null(ENGINE_CLEANUP_ITEM)
@@ -540,6 +559,7 @@ STACK_OF(type) \
#define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st))
#define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st))
#define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st))
+#define sk_ENGINE_CLEANUP_ITEM_is_sorted(st) SKM_sk_is_sorted(ENGINE_CLEANUP_ITEM, (st))
#define sk_GENERAL_NAME_new(st) SKM_sk_new(GENERAL_NAME, (st))
#define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME)
@@ -561,6 +581,7 @@ STACK_OF(type) \
#define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st))
#define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st))
#define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st))
+#define sk_GENERAL_NAME_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAME, (st))
#define sk_GENERAL_SUBTREE_new(st) SKM_sk_new(GENERAL_SUBTREE, (st))
#define sk_GENERAL_SUBTREE_new_null() SKM_sk_new_null(GENERAL_SUBTREE)
@@ -582,6 +603,7 @@ STACK_OF(type) \
#define sk_GENERAL_SUBTREE_shift(st) SKM_sk_shift(GENERAL_SUBTREE, (st))
#define sk_GENERAL_SUBTREE_pop(st) SKM_sk_pop(GENERAL_SUBTREE, (st))
#define sk_GENERAL_SUBTREE_sort(st) SKM_sk_sort(GENERAL_SUBTREE, (st))
+#define sk_GENERAL_SUBTREE_is_sorted(st) SKM_sk_is_sorted(GENERAL_SUBTREE, (st))
#define sk_KRB5_APREQBODY_new(st) SKM_sk_new(KRB5_APREQBODY, (st))
#define sk_KRB5_APREQBODY_new_null() SKM_sk_new_null(KRB5_APREQBODY)
@@ -603,6 +625,7 @@ STACK_OF(type) \
#define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st))
#define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st))
#define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st))
+#define sk_KRB5_APREQBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_APREQBODY, (st))
#define sk_KRB5_AUTHDATA_new(st) SKM_sk_new(KRB5_AUTHDATA, (st))
#define sk_KRB5_AUTHDATA_new_null() SKM_sk_new_null(KRB5_AUTHDATA)
@@ -624,6 +647,7 @@ STACK_OF(type) \
#define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st))
#define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st))
#define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st))
+#define sk_KRB5_AUTHDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHDATA, (st))
#define sk_KRB5_AUTHENTBODY_new(st) SKM_sk_new(KRB5_AUTHENTBODY, (st))
#define sk_KRB5_AUTHENTBODY_new_null() SKM_sk_new_null(KRB5_AUTHENTBODY)
@@ -645,6 +669,7 @@ STACK_OF(type) \
#define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st))
#define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st))
#define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st))
+#define sk_KRB5_AUTHENTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHENTBODY, (st))
#define sk_KRB5_CHECKSUM_new(st) SKM_sk_new(KRB5_CHECKSUM, (st))
#define sk_KRB5_CHECKSUM_new_null() SKM_sk_new_null(KRB5_CHECKSUM)
@@ -666,6 +691,7 @@ STACK_OF(type) \
#define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st))
#define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st))
#define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st))
+#define sk_KRB5_CHECKSUM_is_sorted(st) SKM_sk_is_sorted(KRB5_CHECKSUM, (st))
#define sk_KRB5_ENCDATA_new(st) SKM_sk_new(KRB5_ENCDATA, (st))
#define sk_KRB5_ENCDATA_new_null() SKM_sk_new_null(KRB5_ENCDATA)
@@ -687,6 +713,7 @@ STACK_OF(type) \
#define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st))
#define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st))
#define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st))
+#define sk_KRB5_ENCDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCDATA, (st))
#define sk_KRB5_ENCKEY_new(st) SKM_sk_new(KRB5_ENCKEY, (st))
#define sk_KRB5_ENCKEY_new_null() SKM_sk_new_null(KRB5_ENCKEY)
@@ -708,6 +735,7 @@ STACK_OF(type) \
#define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st))
#define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st))
#define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st))
+#define sk_KRB5_ENCKEY_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCKEY, (st))
#define sk_KRB5_PRINCNAME_new(st) SKM_sk_new(KRB5_PRINCNAME, (st))
#define sk_KRB5_PRINCNAME_new_null() SKM_sk_new_null(KRB5_PRINCNAME)
@@ -729,6 +757,7 @@ STACK_OF(type) \
#define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st))
#define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st))
#define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st))
+#define sk_KRB5_PRINCNAME_is_sorted(st) SKM_sk_is_sorted(KRB5_PRINCNAME, (st))
#define sk_KRB5_TKTBODY_new(st) SKM_sk_new(KRB5_TKTBODY, (st))
#define sk_KRB5_TKTBODY_new_null() SKM_sk_new_null(KRB5_TKTBODY)
@@ -750,6 +779,7 @@ STACK_OF(type) \
#define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st))
#define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st))
#define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st))
+#define sk_KRB5_TKTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_TKTBODY, (st))
#define sk_MIME_HEADER_new(st) SKM_sk_new(MIME_HEADER, (st))
#define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER)
@@ -771,6 +801,7 @@ STACK_OF(type) \
#define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st))
#define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st))
#define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st))
+#define sk_MIME_HEADER_is_sorted(st) SKM_sk_is_sorted(MIME_HEADER, (st))
#define sk_MIME_PARAM_new(st) SKM_sk_new(MIME_PARAM, (st))
#define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM)
@@ -792,6 +823,7 @@ STACK_OF(type) \
#define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st))
#define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st))
#define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st))
+#define sk_MIME_PARAM_is_sorted(st) SKM_sk_is_sorted(MIME_PARAM, (st))
#define sk_NAME_FUNCS_new(st) SKM_sk_new(NAME_FUNCS, (st))
#define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS)
@@ -813,6 +845,7 @@ STACK_OF(type) \
#define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st))
#define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st))
#define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st))
+#define sk_NAME_FUNCS_is_sorted(st) SKM_sk_is_sorted(NAME_FUNCS, (st))
#define sk_OCSP_CERTID_new(st) SKM_sk_new(OCSP_CERTID, (st))
#define sk_OCSP_CERTID_new_null() SKM_sk_new_null(OCSP_CERTID)
@@ -834,6 +867,7 @@ STACK_OF(type) \
#define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st))
#define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st))
#define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st))
+#define sk_OCSP_CERTID_is_sorted(st) SKM_sk_is_sorted(OCSP_CERTID, (st))
#define sk_OCSP_ONEREQ_new(st) SKM_sk_new(OCSP_ONEREQ, (st))
#define sk_OCSP_ONEREQ_new_null() SKM_sk_new_null(OCSP_ONEREQ)
@@ -855,6 +889,7 @@ STACK_OF(type) \
#define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st))
#define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st))
#define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st))
+#define sk_OCSP_ONEREQ_is_sorted(st) SKM_sk_is_sorted(OCSP_ONEREQ, (st))
#define sk_OCSP_SINGLERESP_new(st) SKM_sk_new(OCSP_SINGLERESP, (st))
#define sk_OCSP_SINGLERESP_new_null() SKM_sk_new_null(OCSP_SINGLERESP)
@@ -876,6 +911,7 @@ STACK_OF(type) \
#define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st))
#define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st))
#define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st))
+#define sk_OCSP_SINGLERESP_is_sorted(st) SKM_sk_is_sorted(OCSP_SINGLERESP, (st))
#define sk_PKCS12_SAFEBAG_new(st) SKM_sk_new(PKCS12_SAFEBAG, (st))
#define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG)
@@ -897,6 +933,7 @@ STACK_OF(type) \
#define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st))
#define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st))
#define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st))
+#define sk_PKCS12_SAFEBAG_is_sorted(st) SKM_sk_is_sorted(PKCS12_SAFEBAG, (st))
#define sk_PKCS7_new(st) SKM_sk_new(PKCS7, (st))
#define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7)
@@ -918,6 +955,7 @@ STACK_OF(type) \
#define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st))
#define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st))
#define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st))
+#define sk_PKCS7_is_sorted(st) SKM_sk_is_sorted(PKCS7, (st))
#define sk_PKCS7_RECIP_INFO_new(st) SKM_sk_new(PKCS7_RECIP_INFO, (st))
#define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO)
@@ -939,6 +977,7 @@ STACK_OF(type) \
#define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st))
#define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st))
#define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st))
+#define sk_PKCS7_RECIP_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_RECIP_INFO, (st))
#define sk_PKCS7_SIGNER_INFO_new(st) SKM_sk_new(PKCS7_SIGNER_INFO, (st))
#define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO)
@@ -960,6 +999,7 @@ STACK_OF(type) \
#define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st))
#define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st))
#define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st))
+#define sk_PKCS7_SIGNER_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_SIGNER_INFO, (st))
#define sk_POLICYINFO_new(st) SKM_sk_new(POLICYINFO, (st))
#define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO)
@@ -981,6 +1021,7 @@ STACK_OF(type) \
#define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st))
#define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st))
#define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st))
+#define sk_POLICYINFO_is_sorted(st) SKM_sk_is_sorted(POLICYINFO, (st))
#define sk_POLICYQUALINFO_new(st) SKM_sk_new(POLICYQUALINFO, (st))
#define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO)
@@ -1002,6 +1043,7 @@ STACK_OF(type) \
#define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st))
#define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st))
#define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st))
+#define sk_POLICYQUALINFO_is_sorted(st) SKM_sk_is_sorted(POLICYQUALINFO, (st))
#define sk_POLICY_MAPPING_new(st) SKM_sk_new(POLICY_MAPPING, (st))
#define sk_POLICY_MAPPING_new_null() SKM_sk_new_null(POLICY_MAPPING)
@@ -1023,6 +1065,7 @@ STACK_OF(type) \
#define sk_POLICY_MAPPING_shift(st) SKM_sk_shift(POLICY_MAPPING, (st))
#define sk_POLICY_MAPPING_pop(st) SKM_sk_pop(POLICY_MAPPING, (st))
#define sk_POLICY_MAPPING_sort(st) SKM_sk_sort(POLICY_MAPPING, (st))
+#define sk_POLICY_MAPPING_is_sorted(st) SKM_sk_is_sorted(POLICY_MAPPING, (st))
#define sk_SSL_CIPHER_new(st) SKM_sk_new(SSL_CIPHER, (st))
#define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER)
@@ -1044,6 +1087,7 @@ STACK_OF(type) \
#define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st))
#define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st))
#define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st))
+#define sk_SSL_CIPHER_is_sorted(st) SKM_sk_is_sorted(SSL_CIPHER, (st))
#define sk_SSL_COMP_new(st) SKM_sk_new(SSL_COMP, (st))
#define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP)
@@ -1065,6 +1109,7 @@ STACK_OF(type) \
#define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st))
#define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st))
#define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st))
+#define sk_SSL_COMP_is_sorted(st) SKM_sk_is_sorted(SSL_COMP, (st))
#define sk_STORE_OBJECT_new(st) SKM_sk_new(STORE_OBJECT, (st))
#define sk_STORE_OBJECT_new_null() SKM_sk_new_null(STORE_OBJECT)
@@ -1086,6 +1131,7 @@ STACK_OF(type) \
#define sk_STORE_OBJECT_shift(st) SKM_sk_shift(STORE_OBJECT, (st))
#define sk_STORE_OBJECT_pop(st) SKM_sk_pop(STORE_OBJECT, (st))
#define sk_STORE_OBJECT_sort(st) SKM_sk_sort(STORE_OBJECT, (st))
+#define sk_STORE_OBJECT_is_sorted(st) SKM_sk_is_sorted(STORE_OBJECT, (st))
#define sk_SXNETID_new(st) SKM_sk_new(SXNETID, (st))
#define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID)
@@ -1107,6 +1153,7 @@ STACK_OF(type) \
#define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st))
#define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st))
#define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st))
+#define sk_SXNETID_is_sorted(st) SKM_sk_is_sorted(SXNETID, (st))
#define sk_UI_STRING_new(st) SKM_sk_new(UI_STRING, (st))
#define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING)
@@ -1128,6 +1175,7 @@ STACK_OF(type) \
#define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st))
#define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st))
#define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st))
+#define sk_UI_STRING_is_sorted(st) SKM_sk_is_sorted(UI_STRING, (st))
#define sk_X509_new(st) SKM_sk_new(X509, (st))
#define sk_X509_new_null() SKM_sk_new_null(X509)
@@ -1149,6 +1197,7 @@ STACK_OF(type) \
#define sk_X509_shift(st) SKM_sk_shift(X509, (st))
#define sk_X509_pop(st) SKM_sk_pop(X509, (st))
#define sk_X509_sort(st) SKM_sk_sort(X509, (st))
+#define sk_X509_is_sorted(st) SKM_sk_is_sorted(X509, (st))
#define sk_X509V3_EXT_METHOD_new(st) SKM_sk_new(X509V3_EXT_METHOD, (st))
#define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD)
@@ -1170,6 +1219,7 @@ STACK_OF(type) \
#define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st))
#define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st))
#define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st))
+#define sk_X509V3_EXT_METHOD_is_sorted(st) SKM_sk_is_sorted(X509V3_EXT_METHOD, (st))
#define sk_X509_ALGOR_new(st) SKM_sk_new(X509_ALGOR, (st))
#define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR)
@@ -1191,6 +1241,7 @@ STACK_OF(type) \
#define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st))
#define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st))
#define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st))
+#define sk_X509_ALGOR_is_sorted(st) SKM_sk_is_sorted(X509_ALGOR, (st))
#define sk_X509_ATTRIBUTE_new(st) SKM_sk_new(X509_ATTRIBUTE, (st))
#define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE)
@@ -1212,6 +1263,7 @@ STACK_OF(type) \
#define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st))
#define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st))
#define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st))
+#define sk_X509_ATTRIBUTE_is_sorted(st) SKM_sk_is_sorted(X509_ATTRIBUTE, (st))
#define sk_X509_CRL_new(st) SKM_sk_new(X509_CRL, (st))
#define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL)
@@ -1233,6 +1285,7 @@ STACK_OF(type) \
#define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st))
#define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st))
#define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st))
+#define sk_X509_CRL_is_sorted(st) SKM_sk_is_sorted(X509_CRL, (st))
#define sk_X509_EXTENSION_new(st) SKM_sk_new(X509_EXTENSION, (st))
#define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION)
@@ -1254,6 +1307,7 @@ STACK_OF(type) \
#define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st))
#define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st))
#define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st))
+#define sk_X509_EXTENSION_is_sorted(st) SKM_sk_is_sorted(X509_EXTENSION, (st))
#define sk_X509_INFO_new(st) SKM_sk_new(X509_INFO, (st))
#define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO)
@@ -1275,6 +1329,7 @@ STACK_OF(type) \
#define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st))
#define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st))
#define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st))
+#define sk_X509_INFO_is_sorted(st) SKM_sk_is_sorted(X509_INFO, (st))
#define sk_X509_LOOKUP_new(st) SKM_sk_new(X509_LOOKUP, (st))
#define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP)
@@ -1296,6 +1351,7 @@ STACK_OF(type) \
#define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st))
#define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st))
#define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st))
+#define sk_X509_LOOKUP_is_sorted(st) SKM_sk_is_sorted(X509_LOOKUP, (st))
#define sk_X509_NAME_new(st) SKM_sk_new(X509_NAME, (st))
#define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME)
@@ -1317,6 +1373,7 @@ STACK_OF(type) \
#define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st))
#define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st))
#define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st))
+#define sk_X509_NAME_is_sorted(st) SKM_sk_is_sorted(X509_NAME, (st))
#define sk_X509_NAME_ENTRY_new(st) SKM_sk_new(X509_NAME_ENTRY, (st))
#define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY)
@@ -1338,6 +1395,7 @@ STACK_OF(type) \
#define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st))
#define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st))
#define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st))
+#define sk_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(X509_NAME_ENTRY, (st))
#define sk_X509_OBJECT_new(st) SKM_sk_new(X509_OBJECT, (st))
#define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT)
@@ -1359,6 +1417,7 @@ STACK_OF(type) \
#define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st))
#define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st))
#define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st))
+#define sk_X509_OBJECT_is_sorted(st) SKM_sk_is_sorted(X509_OBJECT, (st))
#define sk_X509_POLICY_DATA_new(st) SKM_sk_new(X509_POLICY_DATA, (st))
#define sk_X509_POLICY_DATA_new_null() SKM_sk_new_null(X509_POLICY_DATA)
@@ -1380,6 +1439,7 @@ STACK_OF(type) \
#define sk_X509_POLICY_DATA_shift(st) SKM_sk_shift(X509_POLICY_DATA, (st))
#define sk_X509_POLICY_DATA_pop(st) SKM_sk_pop(X509_POLICY_DATA, (st))
#define sk_X509_POLICY_DATA_sort(st) SKM_sk_sort(X509_POLICY_DATA, (st))
+#define sk_X509_POLICY_DATA_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_DATA, (st))
#define sk_X509_POLICY_NODE_new(st) SKM_sk_new(X509_POLICY_NODE, (st))
#define sk_X509_POLICY_NODE_new_null() SKM_sk_new_null(X509_POLICY_NODE)
@@ -1401,6 +1461,7 @@ STACK_OF(type) \
#define sk_X509_POLICY_NODE_shift(st) SKM_sk_shift(X509_POLICY_NODE, (st))
#define sk_X509_POLICY_NODE_pop(st) SKM_sk_pop(X509_POLICY_NODE, (st))
#define sk_X509_POLICY_NODE_sort(st) SKM_sk_sort(X509_POLICY_NODE, (st))
+#define sk_X509_POLICY_NODE_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_NODE, (st))
#define sk_X509_POLICY_REF_new(st) SKM_sk_new(X509_POLICY_REF, (st))
#define sk_X509_POLICY_REF_new_null() SKM_sk_new_null(X509_POLICY_REF)
@@ -1422,6 +1483,7 @@ STACK_OF(type) \
#define sk_X509_POLICY_REF_shift(st) SKM_sk_shift(X509_POLICY_REF, (st))
#define sk_X509_POLICY_REF_pop(st) SKM_sk_pop(X509_POLICY_REF, (st))
#define sk_X509_POLICY_REF_sort(st) SKM_sk_sort(X509_POLICY_REF, (st))
+#define sk_X509_POLICY_REF_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_REF, (st))
#define sk_X509_PURPOSE_new(st) SKM_sk_new(X509_PURPOSE, (st))
#define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE)
@@ -1443,6 +1505,7 @@ STACK_OF(type) \
#define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st))
#define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st))
#define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st))
+#define sk_X509_PURPOSE_is_sorted(st) SKM_sk_is_sorted(X509_PURPOSE, (st))
#define sk_X509_REVOKED_new(st) SKM_sk_new(X509_REVOKED, (st))
#define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED)
@@ -1464,6 +1527,7 @@ STACK_OF(type) \
#define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st))
#define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st))
#define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st))
+#define sk_X509_REVOKED_is_sorted(st) SKM_sk_is_sorted(X509_REVOKED, (st))
#define sk_X509_TRUST_new(st) SKM_sk_new(X509_TRUST, (st))
#define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST)
@@ -1485,6 +1549,29 @@ STACK_OF(type) \
#define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st))
#define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st))
#define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st))
+#define sk_X509_TRUST_is_sorted(st) SKM_sk_is_sorted(X509_TRUST, (st))
+
+#define sk_X509_VERIFY_PARAM_new(st) SKM_sk_new(X509_VERIFY_PARAM, (st))
+#define sk_X509_VERIFY_PARAM_new_null() SKM_sk_new_null(X509_VERIFY_PARAM)
+#define sk_X509_VERIFY_PARAM_free(st) SKM_sk_free(X509_VERIFY_PARAM, (st))
+#define sk_X509_VERIFY_PARAM_num(st) SKM_sk_num(X509_VERIFY_PARAM, (st))
+#define sk_X509_VERIFY_PARAM_value(st, i) SKM_sk_value(X509_VERIFY_PARAM, (st), (i))
+#define sk_X509_VERIFY_PARAM_set(st, i, val) SKM_sk_set(X509_VERIFY_PARAM, (st), (i), (val))
+#define sk_X509_VERIFY_PARAM_zero(st) SKM_sk_zero(X509_VERIFY_PARAM, (st))
+#define sk_X509_VERIFY_PARAM_push(st, val) SKM_sk_push(X509_VERIFY_PARAM, (st), (val))
+#define sk_X509_VERIFY_PARAM_unshift(st, val) SKM_sk_unshift(X509_VERIFY_PARAM, (st), (val))
+#define sk_X509_VERIFY_PARAM_find(st, val) SKM_sk_find(X509_VERIFY_PARAM, (st), (val))
+#define sk_X509_VERIFY_PARAM_find_ex(st, val) SKM_sk_find_ex(X509_VERIFY_PARAM, (st), (val))
+#define sk_X509_VERIFY_PARAM_delete(st, i) SKM_sk_delete(X509_VERIFY_PARAM, (st), (i))
+#define sk_X509_VERIFY_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_VERIFY_PARAM, (st), (ptr))
+#define sk_X509_VERIFY_PARAM_insert(st, val, i) SKM_sk_insert(X509_VERIFY_PARAM, (st), (val), (i))
+#define sk_X509_VERIFY_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_VERIFY_PARAM, (st), (cmp))
+#define sk_X509_VERIFY_PARAM_dup(st) SKM_sk_dup(X509_VERIFY_PARAM, st)
+#define sk_X509_VERIFY_PARAM_pop_free(st, free_func) SKM_sk_pop_free(X509_VERIFY_PARAM, (st), (free_func))
+#define sk_X509_VERIFY_PARAM_shift(st) SKM_sk_shift(X509_VERIFY_PARAM, (st))
+#define sk_X509_VERIFY_PARAM_pop(st) SKM_sk_pop(X509_VERIFY_PARAM, (st))
+#define sk_X509_VERIFY_PARAM_sort(st) SKM_sk_sort(X509_VERIFY_PARAM, (st))
+#define sk_X509_VERIFY_PARAM_is_sorted(st) SKM_sk_is_sorted(X509_VERIFY_PARAM, (st))
#define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class))
diff --git a/crypto/stack/stack.c b/crypto/stack/stack.c
index 9cc0a82962..5967a2c735 100644
--- a/crypto/stack/stack.c
+++ b/crypto/stack/stack.c
@@ -332,3 +332,10 @@ void sk_sort(STACK *st)
st->sorted=1;
}
}
+
+int sk_is_sorted(const STACK *st)
+ {
+ if (!st)
+ return 1;
+ return st->sorted;
+ }
diff --git a/crypto/stack/stack.h b/crypto/stack/stack.h
index 0058d50f12..5cbb116a8b 100644
--- a/crypto/stack/stack.h
+++ b/crypto/stack/stack.h
@@ -100,6 +100,7 @@ int (*sk_set_cmp_func(STACK *sk, int (*c)(const char * const *,
(const char * const *, const char * const *);
STACK *sk_dup(STACK *st);
void sk_sort(STACK *st);
+int sk_is_sorted(const STACK *st);
#ifdef __cplusplus
}
diff --git a/crypto/store/Makefile.ssl b/crypto/store/Makefile.ssl
index 3650e193e6..29900878c2 100644
--- a/crypto/store/Makefile.ssl
+++ b/crypto/store/Makefile.ssl
@@ -55,7 +55,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/symhacks.h b/crypto/symhacks.h
index 40237178d9..7e3602d2ea 100644
--- a/crypto/symhacks.h
+++ b/crypto/symhacks.h
@@ -131,6 +131,8 @@
#define X509_policy_tree_get0_user_policies X509_pcy_tree_get0_usr_policies
#undef X509_policy_node_get0_qualifiers
#define X509_policy_node_get0_qualifiers X509_pcy_node_get0_qualifiers
+#undef X509_STORE_CTX_get_explicit_policy
+#define X509_STORE_CTX_get_explicit_policy X509_STORE_CTX_get_expl_policy
/* Hack some long CRYPTO names */
#undef CRYPTO_set_dynlock_destroy_callback
diff --git a/crypto/txt_db/Makefile.ssl b/crypto/txt_db/Makefile.ssl
index 3e2aea103b..57b5dea702 100644
--- a/crypto/txt_db/Makefile.ssl
+++ b/crypto/txt_db/Makefile.ssl
@@ -53,7 +53,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/ui/Makefile.ssl b/crypto/ui/Makefile.ssl
index 4cd90eb761..9906d721b3 100644
--- a/crypto/ui/Makefile.ssl
+++ b/crypto/ui/Makefile.ssl
@@ -57,7 +57,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/crypto/x509/Makefile.ssl b/crypto/x509/Makefile.ssl
index 031b0a1230..e9293a8484 100644
--- a/crypto/x509/Makefile.ssl
+++ b/crypto/x509/Makefile.ssl
@@ -28,13 +28,13 @@ LIBSRC= x509_def.c x509_d2.c x509_r2x.c x509_cmp.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_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_trs.o by_file.o by_dir.o x509_vpm.o
SRC= $(LIBSRC)
@@ -63,7 +63,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -317,6 +317,20 @@ 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
diff --git a/crypto/x509/by_file.c b/crypto/x509/by_file.c
index b4b04183d0..a5e0d4aefa 100644
--- a/crypto/x509/by_file.c
+++ b/crypto/x509/by_file.c
@@ -150,7 +150,7 @@ int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type)
x=PEM_read_bio_X509_AUX(in,NULL,NULL,NULL);
if (x == NULL)
{
- if ((ERR_GET_REASON(ERR_peek_error()) ==
+ if ((ERR_GET_REASON(ERR_peek_last_error()) ==
PEM_R_NO_START_LINE) && (count > 0))
{
ERR_clear_error();
@@ -217,7 +217,7 @@ int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type)
x=PEM_read_bio_X509_CRL(in,NULL,NULL,NULL);
if (x == NULL)
{
- if ((ERR_GET_REASON(ERR_peek_error()) ==
+ if ((ERR_GET_REASON(ERR_peek_last_error()) ==
PEM_R_NO_START_LINE) && (count > 0))
{
ERR_clear_error();
diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h
index edf1cd4939..46673fddd1 100644
--- a/crypto/x509/x509.h
+++ b/crypto/x509/x509.h
@@ -280,6 +280,7 @@ struct x509_st
CRYPTO_EX_DATA ex_data;
/* These contain copies of various extension values */
long ex_pathlen;
+ long ex_pcpathlen;
unsigned long ex_flags;
unsigned long ex_kusage;
unsigned long ex_xkusage;
@@ -435,6 +436,7 @@ typedef struct X509_crl_info_st
ASN1_TIME *nextUpdate;
STACK_OF(X509_REVOKED) *revoked;
STACK_OF(X509_EXTENSION) /* [0] */ *extensions;
+ ASN1_ENCODING enc;
} X509_CRL_INFO;
struct X509_crl_st
diff --git a/crypto/x509/x509_cmp.c b/crypto/x509/x509_cmp.c
index 5dfdcd41cb..0d6bc653b2 100644
--- a/crypto/x509/x509_cmp.c
+++ b/crypto/x509/x509_cmp.c
@@ -254,33 +254,49 @@ static int nocase_spacenorm_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
return 0;
}
+static int asn1_string_memcmp(ASN1_STRING *a, ASN1_STRING *b)
+ {
+ int j;
+ j = a->length - b->length;
+ if (j)
+ return j;
+ return memcmp(a->data, b->data, a->length);
+ }
+
+#define STR_TYPE_CMP (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_UTF8STRING)
+
int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b)
{
int i,j;
X509_NAME_ENTRY *na,*nb;
- if (sk_X509_NAME_ENTRY_num(a->entries)
- != sk_X509_NAME_ENTRY_num(b->entries))
- return sk_X509_NAME_ENTRY_num(a->entries)
- -sk_X509_NAME_ENTRY_num(b->entries);
+ unsigned long nabit, nbbit;
+
+ j = sk_X509_NAME_ENTRY_num(a->entries)
+ - sk_X509_NAME_ENTRY_num(b->entries);
+ if (j)
+ return j;
for (i=sk_X509_NAME_ENTRY_num(a->entries)-1; i>=0; i--)
{
na=sk_X509_NAME_ENTRY_value(a->entries,i);
nb=sk_X509_NAME_ENTRY_value(b->entries,i);
j=na->value->type-nb->value->type;
- if (j) return(j);
- if (na->value->type == V_ASN1_PRINTABLESTRING)
+ if (j)
+ {
+ nabit = ASN1_tag2bit(na->value->type);
+ nbbit = ASN1_tag2bit(nb->value->type);
+ if (!(nabit & STR_TYPE_CMP) ||
+ !(nbbit & STR_TYPE_CMP))
+ return j;
+ j = asn1_string_memcmp(na->value, nb->value);
+ }
+ else if (na->value->type == V_ASN1_PRINTABLESTRING)
j=nocase_spacenorm_cmp(na->value, nb->value);
else if (na->value->type == V_ASN1_IA5STRING
&& OBJ_obj2nid(na->object) == NID_pkcs9_emailAddress)
j=nocase_cmp(na->value, nb->value);
else
- {
- j=na->value->length-nb->value->length;
- if (j) return(j);
- j=memcmp(na->value->data,nb->value->data,
- na->value->length);
- }
+ j = asn1_string_memcmp(na->value, nb->value);
if (j) return(j);
j=na->set-nb->set;
if (j) return(j);
diff --git a/crypto/x509/x509_lu.c b/crypto/x509/x509_lu.c
index b780dae5e2..8c7f22b0d9 100644
--- a/crypto/x509/x509_lu.c
+++ b/crypto/x509/x509_lu.c
@@ -187,10 +187,8 @@ X509_STORE *X509_STORE_new(void)
ret->verify=0;
ret->verify_cb=0;
- ret->purpose = 0;
- ret->trust = 0;
-
- ret->flags = 0;
+ if ((ret->param = X509_VERIFY_PARAM_new()) == NULL)
+ return NULL;
ret->get_issuer = 0;
ret->check_issued = 0;
@@ -202,7 +200,6 @@ X509_STORE *X509_STORE_new(void)
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE, ret, &ret->ex_data);
ret->references=1;
- ret->depth=0;
return ret;
}
@@ -244,6 +241,8 @@ void X509_STORE_free(X509_STORE *vfy)
sk_X509_OBJECT_pop_free(vfy->objs, cleanup);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data);
+ if (vfy->param)
+ X509_VERIFY_PARAM_free(vfy->param);
OPENSSL_free(vfy);
}
@@ -538,19 +537,30 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
return 0;
}
-void X509_STORE_set_flags(X509_STORE *ctx, long flags)
+int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
{
- ctx->flags |= flags;
+ return X509_VERIFY_PARAM_set_flags(ctx->param, flags);
+ }
+
+int X509_STORE_set_depth(X509_STORE *ctx, int depth)
+ {
+ X509_VERIFY_PARAM_set_depth(ctx->param, depth);
+ return 1;
}
int X509_STORE_set_purpose(X509_STORE *ctx, int purpose)
{
- return X509_PURPOSE_set(&ctx->purpose, purpose);
+ return X509_VERIFY_PARAM_set_purpose(ctx->param, purpose);
}
int X509_STORE_set_trust(X509_STORE *ctx, int trust)
{
- return X509_TRUST_set(&ctx->trust, trust);
+ return X509_VERIFY_PARAM_set_trust(ctx->param, trust);
+ }
+
+int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param)
+ {
+ return X509_VERIFY_PARAM_set1(ctx->param, param);
}
IMPLEMENT_STACK_OF(X509_LOOKUP)
diff --git a/crypto/x509/x509_r2x.c b/crypto/x509/x509_r2x.c
index db051033d9..fb8a78dabe 100644
--- a/crypto/x509/x509_r2x.c
+++ b/crypto/x509/x509_r2x.c
@@ -92,8 +92,10 @@ X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
X509_set_subject_name(ret,X509_NAME_dup(xn));
X509_set_issuer_name(ret,X509_NAME_dup(xn));
- X509_gmtime_adj(xi->validity->notBefore,0);
- X509_gmtime_adj(xi->validity->notAfter,(long)60*60*24*days);
+ if (X509_gmtime_adj(xi->validity->notBefore,0) == NULL)
+ goto err;
+ if (X509_gmtime_adj(xi->validity->notAfter,(long)60*60*24*days) == NULL)
+ goto err;
X509_set_pubkey(ret,X509_REQ_get_pubkey(r));
diff --git a/crypto/x509/x509_req.c b/crypto/x509/x509_req.c
index f70c6ab075..ab13bcfc06 100644
--- a/crypto/x509/x509_req.c
+++ b/crypto/x509/x509_req.c
@@ -158,7 +158,7 @@ int X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k)
* used and there may be more: so the list is configurable.
*/
-static int ext_nid_list[] = { NID_ms_ext_req, NID_ext_req, NID_undef};
+static int ext_nid_list[] = { NID_ext_req, NID_ms_ext_req, NID_undef};
static int *ext_nids = ext_nid_list;
@@ -183,27 +183,27 @@ void X509_REQ_set_extension_nids(int *nids)
}
STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req)
-{
+ {
X509_ATTRIBUTE *attr;
- STACK_OF(X509_ATTRIBUTE) *sk;
ASN1_TYPE *ext = NULL;
- int i;
+ int idx, *pnid;
const unsigned char *p;
- if ((req == NULL) || (req->req_info == NULL))
+ if ((req == NULL) || (req->req_info == NULL) || !ext_nids)
return(NULL);
- sk=req->req_info->attributes;
- if (!sk) return NULL;
- for(i = 0; i < sk_X509_ATTRIBUTE_num(sk); i++) {
- attr = sk_X509_ATTRIBUTE_value(sk, i);
- if(X509_REQ_extension_nid(OBJ_obj2nid(attr->object))) {
- if(attr->single) ext = attr->value.single;
- else if(sk_ASN1_TYPE_num(attr->value.set))
- ext = sk_ASN1_TYPE_value(attr->value.set, 0);
- break;
+ for (pnid = ext_nids; *pnid != NID_undef; pnid++)
+ {
+ idx = X509_REQ_get_attr_by_NID(req, *pnid, -1);
+ if (idx == -1)
+ continue;
+ attr = X509_REQ_get_attr(req, idx);
+ if(attr->single) ext = attr->value.single;
+ else if(sk_ASN1_TYPE_num(attr->value.set))
+ ext = sk_ASN1_TYPE_value(attr->value.set, 0);
+ break;
}
- }
- if(!ext || (ext->type != V_ASN1_SEQUENCE)) return NULL;
+ if(!ext || (ext->type != V_ASN1_SEQUENCE))
+ return NULL;
p = ext->value.sequence->data;
return d2i_ASN1_SET_OF_X509_EXTENSION(NULL, &p,
ext->value.sequence->length,
diff --git a/crypto/x509/x509_txt.c b/crypto/x509/x509_txt.c
index e31ebc6741..247e7e178a 100644
--- a/crypto/x509/x509_txt.c
+++ b/crypto/x509/x509_txt.c
@@ -122,8 +122,12 @@ const char *X509_verify_cert_error_string(long n)
return("certificate revoked");
case X509_V_ERR_INVALID_CA:
return ("invalid CA certificate");
+ case X509_V_ERR_INVALID_NON_CA:
+ return ("invalid non-CA certificate (has CA markings)");
case X509_V_ERR_PATH_LENGTH_EXCEEDED:
return ("path length constraint exceeded");
+ case X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED:
+ return("proxy path length constraint exceeded");
case X509_V_ERR_INVALID_PURPOSE:
return ("unsupported certificate purpose");
case X509_V_ERR_CERT_UNTRUSTED:
@@ -140,19 +144,22 @@ const char *X509_verify_cert_error_string(long n)
return("authority and issuer serial number mismatch");
case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
return("key usage does not include certificate signing");
-
case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:
return("unable to get CRL issuer certificate");
-
case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:
return("unhandled critical extension");
-
case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:
return("key usage does not include CRL signing");
-
+ case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:
+ return("key usage does not include digital signature");
case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:
return("unhandled critical CRL extension");
-
+ case X509_V_ERR_INVALID_EXTENSION:
+ return("invalid or inconsistent certificate extension");
+ case X509_V_ERR_INVALID_POLICY_EXTENSION:
+ return("invalid or inconsistent certificate policy extension");
+ case X509_V_ERR_NO_EXPLICIT_POLICY:
+ return("no explicit policy");
default:
BIO_snprintf(buf,sizeof buf,"error number %ld",n);
return(buf);
diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c
index 3e82f95486..ffc07cce6f 100644
--- a/crypto/x509/x509_vfy.c
+++ b/crypto/x509/x509_vfy.c
@@ -73,10 +73,11 @@
static int null_callback(int ok,X509_STORE_CTX *e);
static int check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer);
static X509 *find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x);
-static int check_chain_purpose(X509_STORE_CTX *ctx);
+static int check_chain_extensions(X509_STORE_CTX *ctx);
static int check_trust(X509_STORE_CTX *ctx);
static int check_revocation(X509_STORE_CTX *ctx);
static int check_cert(X509_STORE_CTX *ctx);
+static int check_policy(X509_STORE_CTX *ctx);
static int internal_verify(X509_STORE_CTX *ctx);
const char *X509_version="X.509" OPENSSL_VERSION_PTEXT;
@@ -97,11 +98,12 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
{
X509 *x,*xtmp,*chain_ss=NULL;
X509_NAME *xn;
+ int bad_chain = 0;
+ X509_VERIFY_PARAM *param = ctx->param;
int depth,i,ok=0;
int num;
int (*cb)();
STACK_OF(X509) *sktmp=NULL;
-
if (ctx->cert == NULL)
{
X509err(X509_F_X509_VERIFY_CERT,X509_R_NO_CERT_SET_FOR_US_TO_VERIFY);
@@ -134,7 +136,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
num=sk_X509_num(ctx->chain);
x=sk_X509_value(ctx->chain,num-1);
- depth=ctx->depth;
+ depth=param->depth;
for (;;)
@@ -201,6 +203,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
ctx->current_cert=x;
ctx->error_depth=i-1;
if (ok == 1) X509_free(xtmp);
+ bad_chain = 1;
ok=cb(0,ctx);
if (!ok) goto end;
}
@@ -276,18 +279,19 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
}
ctx->error_depth=num-1;
+ bad_chain = 1;
ok=cb(0,ctx);
if (!ok) goto end;
}
/* We have the chain complete: now we need to check its purpose */
- if (ctx->purpose > 0) ok = check_chain_purpose(ctx);
+ ok = check_chain_extensions(ctx);
if (!ok) goto end;
/* The chain extensions are OK: check trust */
- if (ctx->trust > 0) ok = check_trust(ctx);
+ if (param->trust > 0) ok = check_trust(ctx);
if (!ok) goto end;
@@ -301,11 +305,17 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
ok = ctx->check_revocation(ctx);
if(!ok) goto end;
- /* At this point, we have a chain and just need to verify it */
+ /* At this point, we have a chain and need to verify it */
if (ctx->verify != NULL)
ok=ctx->verify(ctx);
else
ok=internal_verify(ctx);
+ if(!ok) goto end;
+
+ /* If we get this far evaluate policies */
+ if (!bad_chain && (ctx->param->flags & X509_V_FLAG_POLICY_CHECK))
+ ok = ctx->check_policy(ctx);
+ if(!ok) goto end;
if (0)
{
end:
@@ -342,7 +352,7 @@ static int check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer)
if (ret == X509_V_OK)
return 1;
/* If we haven't asked for issuer errors don't set ctx */
- if (!(ctx->flags & X509_V_FLAG_CB_ISSUER_CHECK))
+ if (!(ctx->param->flags & X509_V_FLAG_CB_ISSUER_CHECK))
return 0;
ctx->error = ret;
@@ -371,21 +381,32 @@ static int get_issuer_sk(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
* with the supplied purpose
*/
-static int check_chain_purpose(X509_STORE_CTX *ctx)
+static int check_chain_extensions(X509_STORE_CTX *ctx)
{
#ifdef OPENSSL_NO_CHAIN_VERIFY
return 1;
#else
- int i, ok=0;
+ int i, ok=0, must_be_ca;
X509 *x;
int (*cb)();
+ int proxy_path_length = 0;
cb=ctx->verify_cb;
+
+ /* must_be_ca can have 1 of 3 values:
+ -1: we accept both CA and non-CA certificates, to allow direct
+ use of self-signed certificates (which are marked as CA).
+ 0: we only accept non-CA certificates. This is currently not
+ used, but the possibility is present for future extensions.
+ 1: we only accept CA certificates. This is currently used for
+ all certificates in the chain except the leaf certificate.
+ */
+ must_be_ca = -1;
/* Check all untrusted certificates */
for (i = 0; i < ctx->last_untrusted; i++)
{
int ret;
x = sk_X509_value(ctx->chain, i);
- if (!(ctx->flags & X509_V_FLAG_IGNORE_CRITICAL)
+ if (!(ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL)
&& (x->ex_flags & EXFLAG_CRITICAL))
{
ctx->error = X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION;
@@ -394,23 +415,65 @@ static int check_chain_purpose(X509_STORE_CTX *ctx)
ok=cb(0,ctx);
if (!ok) goto end;
}
- ret = X509_check_purpose(x, ctx->purpose, i);
- if ((ret == 0)
- || ((ctx->flags & X509_V_FLAG_X509_STRICT)
- && (ret != 1)))
+ ret = X509_check_ca(x);
+ switch(must_be_ca)
{
- if (i)
+ case -1:
+ if ((ctx->param->flags & X509_V_FLAG_X509_STRICT)
+ && (ret != 1) && (ret != 0))
+ {
+ ret = 0;
ctx->error = X509_V_ERR_INVALID_CA;
+ }
else
- ctx->error = X509_V_ERR_INVALID_PURPOSE;
+ ret = 1;
+ break;
+ case 0:
+ if (ret != 0)
+ {
+ ret = 0;
+ ctx->error = X509_V_ERR_INVALID_NON_CA;
+ }
+ else
+ ret = 1;
+ break;
+ default:
+ if ((ret == 0)
+ || ((ctx->param->flags & X509_V_FLAG_X509_STRICT)
+ && (ret != 1)))
+ {
+ ret = 0;
+ ctx->error = X509_V_ERR_INVALID_CA;
+ }
+ else
+ ret = 1;
+ break;
+ }
+ if (ret == 0)
+ {
ctx->error_depth = i;
ctx->current_cert = x;
ok=cb(0,ctx);
if (!ok) goto end;
}
+ if (ctx->param->purpose > 0)
+ {
+ ret = X509_check_purpose(x, ctx->param->purpose,
+ must_be_ca > 0);
+ if ((ret == 0)
+ || ((ctx->param->flags & X509_V_FLAG_X509_STRICT)
+ && (ret != 1)))
+ {
+ ctx->error = X509_V_ERR_INVALID_PURPOSE;
+ ctx->error_depth = i;
+ ctx->current_cert = x;
+ ok=cb(0,ctx);
+ if (!ok) goto end;
+ }
+ }
/* Check pathlen */
if ((i > 1) && (x->ex_pathlen != -1)
- && (i > (x->ex_pathlen + 1)))
+ && (i > (x->ex_pathlen + proxy_path_length + 1)))
{
ctx->error = X509_V_ERR_PATH_LENGTH_EXCEEDED;
ctx->error_depth = i;
@@ -418,6 +481,26 @@ static int check_chain_purpose(X509_STORE_CTX *ctx)
ok=cb(0,ctx);
if (!ok) goto end;
}
+ /* If this certificate is a proxy certificate, the next
+ certificate must be another proxy certificate or a EE
+ certificate. If not, the next certificate must be a
+ CA certificate. */
+ if (x->ex_flags & EXFLAG_PROXY)
+ {
+ if (x->ex_pcpathlen != -1 && i > x->ex_pcpathlen)
+ {
+ ctx->error =
+ X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED;
+ ctx->error_depth = i;
+ ctx->current_cert = x;
+ ok=cb(0,ctx);
+ if (!ok) goto end;
+ }
+ proxy_path_length++;
+ must_be_ca = 0;
+ }
+ else
+ must_be_ca = 1;
}
ok = 1;
end:
@@ -437,7 +520,7 @@ static int check_trust(X509_STORE_CTX *ctx)
/* For now just check the last certificate in the chain */
i = sk_X509_num(ctx->chain) - 1;
x = sk_X509_value(ctx->chain, i);
- ok = X509_check_trust(x, ctx->trust, 0);
+ ok = X509_check_trust(x, ctx->param->trust, 0);
if (ok == X509_TRUST_TRUSTED)
return 1;
ctx->error_depth = i;
@@ -454,9 +537,9 @@ static int check_trust(X509_STORE_CTX *ctx)
static int check_revocation(X509_STORE_CTX *ctx)
{
int i, last, ok;
- if (!(ctx->flags & X509_V_FLAG_CRL_CHECK))
+ if (!(ctx->param->flags & X509_V_FLAG_CRL_CHECK))
return 1;
- if (ctx->flags & X509_V_FLAG_CRL_CHECK_ALL)
+ if (ctx->param->flags & X509_V_FLAG_CRL_CHECK_ALL)
last = sk_X509_num(ctx->chain) - 1;
else
last = 0;
@@ -506,8 +589,8 @@ static int check_crl_time(X509_STORE_CTX *ctx, X509_CRL *crl, int notify)
time_t *ptime;
int i;
ctx->current_crl = crl;
- if (ctx->flags & X509_V_FLAG_USE_CHECK_TIME)
- ptime = &ctx->check_time;
+ if (ctx->param->flags & X509_V_FLAG_USE_CHECK_TIME)
+ ptime = &ctx->param->check_time;
else
ptime = NULL;
@@ -696,6 +779,15 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
X509_EXTENSION *ext;
/* Look for serial number of certificate in CRL */
rtmp.serialNumber = X509_get_serialNumber(x);
+ /* Sort revoked into serial number order if not already sorted.
+ * Do this under a lock to avoid race condition.
+ */
+ if (!sk_X509_REVOKED_is_sorted(crl->crl->revoked))
+ {
+ CRYPTO_w_lock(CRYPTO_LOCK_X509_CRL);
+ sk_X509_REVOKED_sort(crl->crl->revoked);
+ CRYPTO_w_unlock(CRYPTO_LOCK_X509_CRL);
+ }
idx = sk_X509_REVOKED_find(crl->crl->revoked, &rtmp);
/* If found assume revoked: want something cleverer than
* this to handle entry extensions in V2 CRLs.
@@ -707,7 +799,7 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
if (!ok) return 0;
}
- if (ctx->flags & X509_V_FLAG_IGNORE_CRITICAL)
+ if (ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL)
return 1;
/* See if we have any critical CRL extensions: since we
@@ -734,13 +826,60 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
return 1;
}
+static int check_policy(X509_STORE_CTX *ctx)
+ {
+ int ret;
+ ret = X509_policy_check(&ctx->tree, &ctx->explicit_policy, ctx->chain,
+ ctx->param->policies, ctx->param->flags);
+ if (ret == 0)
+ {
+ X509err(X509_F_X509_VERIFY_CERT,ERR_R_MALLOC_FAILURE);
+ return 0;
+ }
+ /* Invalid or inconsistent extensions */
+ if (ret == -1)
+ {
+ /* Locate certificates with bad extensions and notify
+ * callback.
+ */
+ X509 *x;
+ int i;
+ for (i = 1; i < sk_X509_num(ctx->chain); i++)
+ {
+ x = sk_X509_value(ctx->chain, i);
+ if (!(x->ex_flags & EXFLAG_INVALID_POLICY))
+ continue;
+ ctx->current_cert = x;
+ ctx->error = X509_V_ERR_INVALID_POLICY_EXTENSION;
+ ret = ctx->verify_cb(0, ctx);
+ }
+ return 1;
+ }
+ if (ret == -2)
+ {
+ ctx->current_cert = NULL;
+ ctx->error = X509_V_ERR_NO_EXPLICIT_POLICY;
+ return ctx->verify_cb(0, ctx);
+ }
+
+ if (ctx->param->flags & X509_V_FLAG_NOTIFY_POLICY)
+ {
+ ctx->current_cert = NULL;
+ ctx->error = X509_V_OK;
+ if (!ctx->verify_cb(2, ctx))
+ return 0;
+ }
+
+ return 1;
+ }
+
static int check_cert_time(X509_STORE_CTX *ctx, X509 *x)
{
time_t *ptime;
int i;
- if (ctx->flags & X509_V_FLAG_USE_CHECK_TIME)
- ptime = &ctx->check_time;
+ if (ctx->param->flags & X509_V_FLAG_USE_CHECK_TIME)
+ ptime = &ctx->param->check_time;
else
ptime = NULL;
@@ -855,6 +994,7 @@ static int internal_verify(X509_STORE_CTX *ctx)
goto end;
/* The last error (if any) is still in the error value */
+ ctx->current_issuer=xi;
ctx->current_cert=xs;
ok=(*cb)(1,ctx);
if (!ok) goto end;
@@ -934,7 +1074,8 @@ int X509_cmp_time(ASN1_TIME *ctm, time_t *cmp_time)
atm.length=sizeof(buff2);
atm.data=(unsigned char *)buff2;
- X509_time_adj(&atm,-offset*60, cmp_time);
+ if (X509_time_adj(&atm,-offset*60, cmp_time) == NULL)
+ return 0;
if (ctm->type == V_ASN1_UTCTIME)
{
@@ -1151,8 +1292,8 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,
}
}
- if (purpose && !ctx->purpose) ctx->purpose = purpose;
- if (trust && !ctx->trust) ctx->trust = trust;
+ if (purpose && !ctx->param->purpose) ctx->param->purpose = purpose;
+ if (trust && !ctx->param->trust) ctx->param->trust = trust;
return 1;
}
@@ -1178,20 +1319,30 @@ void X509_STORE_CTX_free(X509_STORE_CTX *ctx)
int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
STACK_OF(X509) *chain)
{
+ int ret = 1;
ctx->ctx=store;
ctx->current_method=0;
ctx->cert=x509;
ctx->untrusted=chain;
+ ctx->crls = NULL;
ctx->last_untrusted=0;
- ctx->check_time=0;
ctx->other_ctx=NULL;
ctx->valid=0;
ctx->chain=NULL;
- ctx->depth=9;
ctx->error=0;
+ ctx->explicit_policy=0;
ctx->error_depth=0;
ctx->current_cert=NULL;
ctx->current_issuer=NULL;
+ ctx->tree = NULL;
+
+ ctx->param = X509_VERIFY_PARAM_new();
+
+ if (!ctx->param)
+ {
+ X509err(X509_F_X509_STORE_CTX_INIT,ERR_R_MALLOC_FAILURE);
+ return 0;
+ }
/* Inherit callbacks and flags from X509_STORE if not set
* use defaults.
@@ -1199,18 +1350,26 @@ int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
if (store)
+ ret = X509_VERIFY_PARAM_inherit(ctx->param, store->param);
+ else
+ ctx->param->flags |= X509_VP_FLAG_DEFAULT|X509_VP_FLAG_ONCE;
+
+ if (store)
{
- ctx->purpose=store->purpose;
- ctx->trust=store->trust;
- ctx->flags = store->flags;
+ ctx->verify_cb = store->verify_cb;
ctx->cleanup = store->cleanup;
}
else
- {
- ctx->purpose = 0;
- ctx->trust = 0;
- ctx->flags = 0;
ctx->cleanup = 0;
+
+ if (ret)
+ ret = X509_VERIFY_PARAM_inherit(ctx->param,
+ X509_VERIFY_PARAM_lookup("default"));
+
+ if (ret == 0)
+ {
+ X509err(X509_F_X509_STORE_CTX_INIT,ERR_R_MALLOC_FAILURE);
+ return 0;
}
if (store && store->check_issued)
@@ -1253,6 +1412,8 @@ int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
else
ctx->cert_crl = cert_crl;
+ ctx->check_policy = check_policy;
+
/* This memset() can't make any sense anyway, so it's removed. As
* X509_STORE_CTX_cleanup does a proper "free" on the ex_data, we put a
@@ -1281,6 +1442,9 @@ void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
{
if (ctx->cleanup) ctx->cleanup(ctx);
+ X509_VERIFY_PARAM_free(ctx->param);
+ if (ctx->tree)
+ X509_policy_tree_free(ctx->tree);
if (ctx->chain != NULL)
{
sk_X509_pop_free(ctx->chain,X509_free);
@@ -1290,15 +1454,19 @@ void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
memset(&ctx->ex_data,0,sizeof(CRYPTO_EX_DATA));
}
-void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, long flags)
+void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth)
+ {
+ X509_VERIFY_PARAM_set_depth(ctx->param, depth);
+ }
+
+void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags)
{
- ctx->flags |= flags;
+ X509_VERIFY_PARAM_set_flags(ctx->param, flags);
}
-void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, long flags, time_t t)
+void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t)
{
- ctx->check_time = t;
- ctx->flags |= X509_V_FLAG_USE_CHECK_TIME;
+ X509_VERIFY_PARAM_set_time(ctx->param, t);
}
void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
@@ -1307,6 +1475,37 @@ void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
ctx->verify_cb=verify_cb;
}
+X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx)
+ {
+ return ctx->tree;
+ }
+
+int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx)
+ {
+ return ctx->explicit_policy;
+ }
+
+int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name)
+ {
+ const X509_VERIFY_PARAM *param;
+ param = X509_VERIFY_PARAM_lookup(name);
+ if (!param)
+ return 0;
+ return X509_VERIFY_PARAM_inherit(ctx->param, param);
+ }
+
+X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx)
+ {
+ return ctx->param;
+ }
+
+void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param)
+ {
+ if (ctx->param)
+ X509_VERIFY_PARAM_free(ctx->param);
+ ctx->param = param;
+ }
+
IMPLEMENT_STACK_OF(X509)
IMPLEMENT_ASN1_SET_OF(X509)
diff --git a/crypto/x509/x509_vfy.h b/crypto/x509/x509_vfy.h
index 5a5741df08..33ace72671 100644
--- a/crypto/x509/x509_vfy.h
+++ b/crypto/x509/x509_vfy.h
@@ -156,6 +156,25 @@ typedef struct x509_lookup_method_st
X509_OBJECT *ret);
} X509_LOOKUP_METHOD;
+/* This structure hold all parameters associated with a verify operation
+ * by including an X509_VERIFY_PARAM structure in related structures the
+ * parameters used can be customized
+ */
+
+typedef struct X509_VERIFY_PARAM_st
+ {
+ char *name;
+ time_t check_time; /* Time to use */
+ unsigned long inh_flags; /* Inheritance flags */
+ unsigned long flags; /* Various verify flags */
+ int purpose; /* purpose to check untrusted certificates */
+ int trust; /* trust setting to check */
+ int depth; /* Verify depth */
+ STACK_OF(ASN1_OBJECT) *policies; /* Permissible policies */
+ } X509_VERIFY_PARAM;
+
+DECLARE_STACK_OF(X509_VERIFY_PARAM)
+
/* This is used to hold everything. It is used for all certificate
* validation. Once we have a certificate chain, the 'verify'
* function is then called to actually check the cert chain. */
@@ -168,13 +187,8 @@ struct x509_store_st
/* These are external lookup methods */
STACK_OF(X509_LOOKUP) *get_cert_methods;
- /* The following fields are not used by X509_STORE but are
- * inherited by X509_STORE_CTX when it is initialised.
- */
+ X509_VERIFY_PARAM *param;
- unsigned long flags; /* Various verify flags */
- int purpose;
- int trust;
/* Callbacks for various operations */
int (*verify)(X509_STORE_CTX *ctx); /* called to verify a certificate */
int (*verify_cb)(int ok,X509_STORE_CTX *ctx); /* error callback */
@@ -188,10 +202,9 @@ struct x509_store_st
CRYPTO_EX_DATA ex_data;
int references;
- int depth; /* how deep to look (still unused -- X509_STORE_CTX's depth is used) */
} /* X509_STORE */;
-#define X509_STORE_set_depth(ctx,d) ((ctx)->depth=(d))
+int X509_STORE_set_depth(X509_STORE *store, int depth);
#define X509_STORE_set_verify_cb_func(ctx,func) ((ctx)->verify_cb=(func))
#define X509_STORE_set_verify_func(ctx,func) ((ctx)->verify=(func))
@@ -218,11 +231,9 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
/* The following are set by the caller */
X509 *cert; /* The cert to check */
STACK_OF(X509) *untrusted; /* chain of X509s - untrusted - passed in */
- STACK_OF(X509_CRL) *crls; /* CRLs */
- int purpose; /* purpose to check untrusted certificates */
- int trust; /* trust setting to check */
- time_t check_time; /* time to make verify at */
- unsigned long flags; /* Various verify flags */
+ STACK_OF(X509_CRL) *crls; /* set of CRLs passed in */
+
+ X509_VERIFY_PARAM *param;
void *other_ctx; /* Other info for use with get_issuer() */
/* Callbacks for various operations */
@@ -234,13 +245,16 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); /* retrieve CRL */
int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); /* Check CRL validity */
int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); /* Check certificate against CRL */
+ int (*check_policy)(X509_STORE_CTX *ctx);
int (*cleanup)(X509_STORE_CTX *ctx);
/* The following is built up */
- int depth; /* how far to go looking up certs */
int valid; /* if 0, rebuild chain */
int last_untrusted; /* index of last untrusted cert */
STACK_OF(X509) *chain; /* chain of X509s - built up and trusted */
+ X509_POLICY_TREE *tree; /* Valid policy tree */
+
+ int explicit_policy; /* Require explicit policy value */
/* When something goes wrong, this is why */
int error_depth;
@@ -252,7 +266,7 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
CRYPTO_EX_DATA ex_data;
} /* X509_STORE_CTX */;
-#define X509_STORE_CTX_set_depth(ctx,d) ((ctx)->depth=(d))
+void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
#define X509_STORE_CTX_set_app_data(ctx,data) \
X509_STORE_CTX_set_ex_data(ctx,0,data)
@@ -308,6 +322,14 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
#define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34
#define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35
#define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
+#define X509_V_ERR_INVALID_NON_CA 37
+#define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38
+#define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
+
+#define X509_V_ERR_INVALID_EXTENSION 40
+#define X509_V_ERR_INVALID_POLICY_EXTENSION 41
+#define X509_V_ERR_NO_EXPLICIT_POLICY 42
+
/* The application is not happy */
#define X509_V_ERR_APPLICATION_VERIFICATION 50
@@ -330,10 +352,24 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
#define X509_V_FLAG_POLICY_CHECK 0x40
/* Policy variable require-explicit-policy */
#define X509_V_FLAG_EXPLICIT_POLICY 0x80
-/* Policy variable inhibit-policy-mapping */
-#define X509_V_FLAG_INHIBIT_ANY 0x100
/* Policy variable inhibit-any-policy */
+#define X509_V_FLAG_INHIBIT_ANY 0x100
+/* Policy variable inhibit-policy-mapping */
#define X509_V_FLAG_INHIBIT_MAP 0x200
+/* Notify callback that policy is OK */
+#define X509_V_FLAG_NOTIFY_POLICY 0x800
+
+#define X509_VP_FLAG_DEFAULT 0x1
+#define X509_VP_FLAG_OVERWRITE 0x2
+#define X509_VP_FLAG_RESET_FLAGS 0x4
+#define X509_VP_FLAG_LOCKED 0x8
+#define X509_VP_FLAG_ONCE 0x10
+
+/* Internal use: mask of policy related options */
+#define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \
+ | X509_V_FLAG_EXPLICIT_POLICY \
+ | X509_V_FLAG_INHIBIT_ANY \
+ | X509_V_FLAG_INHIBIT_MAP)
int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type,
X509_NAME *name);
@@ -344,9 +380,10 @@ void X509_OBJECT_free_contents(X509_OBJECT *a);
X509_STORE *X509_STORE_new(void );
void X509_STORE_free(X509_STORE *v);
-void X509_STORE_set_flags(X509_STORE *ctx, long flags);
+int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
int X509_STORE_set_trust(X509_STORE *ctx, int trust);
+int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm);
X509_STORE_CTX *X509_STORE_CTX_new(void);
@@ -415,10 +452,42 @@ int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);
int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,
int purpose, int trust);
-void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, long flags);
-void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, long flags, time_t t);
+void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags);
+void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,
+ time_t t);
void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
int (*verify_cb)(int, X509_STORE_CTX *));
+
+X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx);
+int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);
+
+X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx);
+void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param);
+int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name);
+
+/* X509_VERIFY_PARAM functions */
+
+X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void);
+void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param);
+int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to,
+ const X509_VERIFY_PARAM *from);
+int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
+ const X509_VERIFY_PARAM *from);
+int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name);
+int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags);
+int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose);
+int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust);
+void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth);
+void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t);
+int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
+ ASN1_OBJECT *policy);
+int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param,
+ STACK_OF(ASN1_OBJECT) *policies);
+int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
+
+int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
+const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name);
+void X509_VERIFY_PARAM_table_cleanup(void);
int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
STACK_OF(X509) *certs,
diff --git a/crypto/x509/x509cset.c b/crypto/x509/x509cset.c
index 6cac440ea9..9d1646d5c8 100644
--- a/crypto/x509/x509cset.c
+++ b/crypto/x509/x509cset.c
@@ -129,6 +129,7 @@ int X509_CRL_sort(X509_CRL *c)
r=sk_X509_REVOKED_value(c->crl->revoked,i);
r->sequence=i;
}
+ c->crl->enc.modified = 1;
return 1;
}
diff --git a/crypto/x509/x_all.c b/crypto/x509/x_all.c
index eb33e0f6e6..4701959b1e 100644
--- a/crypto/x509/x_all.c
+++ b/crypto/x509/x_all.c
@@ -105,6 +105,7 @@ int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md)
int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
{
+ x->crl->enc.modified = 1;
return(ASN1_item_sign(ASN1_ITEM_rptr(X509_CRL_INFO),x->crl->sig_alg,
x->sig_alg, x->signature, x->crl,pkey,md));
}
diff --git a/crypto/x509v3/Makefile.ssl b/crypto/x509v3/Makefile.ssl
index eb7c2a2a75..f91301188c 100644
--- a/crypto/x509v3/Makefile.ssl
+++ b/crypto/x509v3/Makefile.ssl
@@ -26,13 +26,13 @@ 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 pcy_cache.c pcy_node.c \
-pcy_data.c pcy_map.c pcy_tree.c pcy_lib.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
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 pcy_cache.o pcy_node.o \
-pcy_data.o pcy_map.o pcy_tree.o pcy_lib.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
SRC= $(LIBSRC)
@@ -61,7 +61,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -410,6 +410,32 @@ 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
diff --git a/crypto/x509v3/ext_dat.h b/crypto/x509v3/ext_dat.h
index 7be8565189..3ee4bffe39 100644
--- a/crypto/x509v3/ext_dat.h
+++ b/crypto/x509v3/ext_dat.h
@@ -64,7 +64,7 @@ extern X509V3_EXT_METHOD v3_crl_num, v3_crl_reason, v3_crl_invdate;
extern X509V3_EXT_METHOD v3_delta_crl, v3_cpols, v3_crld;
extern X509V3_EXT_METHOD v3_ocsp_nonce, v3_ocsp_accresp, v3_ocsp_acutoff;
extern X509V3_EXT_METHOD v3_ocsp_crlid, v3_ocsp_nocheck, v3_ocsp_serviceloc;
-extern X509V3_EXT_METHOD v3_crl_hold;
+extern X509V3_EXT_METHOD v3_crl_hold, v3_pci;
extern X509V3_EXT_METHOD v3_policy_mappings, v3_policy_constraints;
extern X509V3_EXT_METHOD v3_name_constraints, v3_inhibit_anyp;
@@ -112,6 +112,7 @@ static X509V3_EXT_METHOD *standard_exts[] = {
#ifndef OPENSSL_NO_OCSP
&v3_crl_hold,
#endif
+&v3_pci,
&v3_policy_mappings,
&v3_name_constraints,
&v3_inhibit_anyp
diff --git a/crypto/x509v3/v3_bitst.c b/crypto/x509v3/v3_bitst.c
index 42d5f8beff..170c8d280b 100644
--- a/crypto/x509v3/v3_bitst.c
+++ b/crypto/x509v3/v3_bitst.c
@@ -118,7 +118,12 @@ ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
for(bnam = method->usr_data; bnam->lname; bnam++) {
if(!strcmp(bnam->sname, val->name) ||
!strcmp(bnam->lname, val->name) ) {
- ASN1_BIT_STRING_set_bit(bs, bnam->bitnum, 1);
+ if(!ASN1_BIT_STRING_set_bit(bs, bnam->bitnum, 1)) {
+ X509V3err(X509V3_F_V2I_ASN1_BIT_STRING,
+ ERR_R_MALLOC_FAILURE);
+ M_ASN1_BIT_STRING_free(bs);
+ return NULL;
+ }
break;
}
}
diff --git a/crypto/x509v3/v3_ia5.c b/crypto/x509v3/v3_ia5.c
index f9414456de..9683afa47c 100644
--- a/crypto/x509v3/v3_ia5.c
+++ b/crypto/x509v3/v3_ia5.c
@@ -82,7 +82,10 @@ static char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method,
{
char *tmp;
if(!ia5 || !ia5->length) return NULL;
- if (!(tmp = OPENSSL_malloc(ia5->length + 1))) return NULL;
+ if(!(tmp = OPENSSL_malloc(ia5->length + 1))) {
+ X509V3err(X509V3_F_I2S_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE);
+ return NULL;
+ }
memcpy(tmp, ia5->data, ia5->length);
tmp[ia5->length] = 0;
return tmp;
diff --git a/crypto/x509v3/v3_purp.c b/crypto/x509v3/v3_purp.c
index 67596862ab..9f992c9087 100644
--- a/crypto/x509v3/v3_purp.c
+++ b/crypto/x509v3/v3_purp.c
@@ -63,7 +63,6 @@
static void x509v3_cache_extensions(X509 *x);
-static int ca_check(const X509 *x);
static int check_ssl_ca(const X509 *x);
static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x, int ca);
static int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x, int ca);
@@ -286,7 +285,8 @@ int X509_supported_extension(X509_EXTENSION *ex)
NID_key_usage, /* 83 */
NID_subject_alt_name, /* 85 */
NID_basic_constraints, /* 87 */
- NID_ext_key_usage /* 126 */
+ NID_ext_key_usage, /* 126 */
+ NID_proxyCertInfo /* 661 */
};
int ex_nid;
@@ -307,6 +307,7 @@ int X509_supported_extension(X509_EXTENSION *ex)
static void x509v3_cache_extensions(X509 *x)
{
BASIC_CONSTRAINTS *bs;
+ PROXY_CERT_INFO_EXTENSION *pci;
ASN1_BIT_STRING *usage;
ASN1_BIT_STRING *ns;
EXTENDED_KEY_USAGE *extusage;
@@ -335,6 +336,18 @@ static void x509v3_cache_extensions(X509 *x)
BASIC_CONSTRAINTS_free(bs);
x->ex_flags |= EXFLAG_BCONS;
}
+ /* Handle proxy certificates */
+ if((pci=X509_get_ext_d2i(x, NID_proxyCertInfo, NULL, NULL))) {
+ if (x->ex_flags & EXFLAG_CA) {
+ x->ex_flags |= EXFLAG_INVALID;
+ }
+ if (pci->pcPathLengthConstraint) {
+ x->ex_pcpathlen =
+ ASN1_INTEGER_get(pci->pcPathLengthConstraint);
+ } else x->ex_pcpathlen = -1;
+ PROXY_CERT_INFO_EXTENSION_free(pci);
+ x->ex_flags |= EXFLAG_PROXY;
+ }
/* Handle key usage */
if((usage=X509_get_ext_d2i(x, NID_key_usage, NULL, NULL))) {
if(usage->length > 0) {
@@ -426,7 +439,7 @@ static void x509v3_cache_extensions(X509 *x)
#define ns_reject(x, usage) \
(((x)->ex_flags & EXFLAG_NSCERT) && !((x)->ex_nscert & (usage)))
-static int ca_check(const X509 *x)
+static int check_ca(const X509 *x)
{
/* keyUsage if present should allow cert signing */
if(ku_reject(x, KU_KEY_CERT_SIGN)) return 0;
@@ -435,25 +448,37 @@ static int ca_check(const X509 *x)
/* If basicConstraints says not a CA then say so */
else return 0;
} else {
+ /* we support V1 roots for... uh, I don't really know why. */
if((x->ex_flags & V1_ROOT) == V1_ROOT) return 3;
/* If key usage present it must have certSign so tolerate it */
else if (x->ex_flags & EXFLAG_KUSAGE) return 4;
- else return 2;
+ /* Older certificates could have Netscape-specific CA types */
+ else if (x->ex_flags & EXFLAG_NSCERT
+ && x->ex_nscert & NS_ANY_CA) return 5;
+ /* can this still be regarded a CA certificate? I doubt it */
+ return 0;
}
}
+int X509_check_ca(X509 *x)
+{
+ if(!(x->ex_flags & EXFLAG_SET)) {
+ CRYPTO_w_lock(CRYPTO_LOCK_X509);
+ x509v3_cache_extensions(x);
+ CRYPTO_w_unlock(CRYPTO_LOCK_X509);
+ }
+
+ return check_ca(x);
+}
+
/* Check SSL CA: common checks for SSL client and server */
static int check_ssl_ca(const X509 *x)
{
int ca_ret;
- ca_ret = ca_check(x);
+ ca_ret = check_ca(x);
if(!ca_ret) return 0;
/* check nsCertType if present */
- if(x->ex_flags & EXFLAG_NSCERT) {
- if(x->ex_nscert & NS_SSL_CA) return ca_ret;
- return 0;
- }
- if(ca_ret != 2) return ca_ret;
+ if(ca_ret != 5 || x->ex_nscert & NS_SSL_CA) return ca_ret;
else return 0;
}
@@ -498,14 +523,10 @@ static int purpose_smime(const X509 *x, int ca)
if(xku_reject(x,XKU_SMIME)) return 0;
if(ca) {
int ca_ret;
- ca_ret = ca_check(x);
+ ca_ret = check_ca(x);
if(!ca_ret) return 0;
/* check nsCertType if present */
- if(x->ex_flags & EXFLAG_NSCERT) {
- if(x->ex_nscert & NS_SMIME_CA) return ca_ret;
- return 0;
- }
- if(ca_ret != 2) return ca_ret;
+ if(ca_ret != 5 || x->ex_nscert & NS_SMIME_CA) return ca_ret;
else return 0;
}
if(x->ex_flags & EXFLAG_NSCERT) {
@@ -539,7 +560,7 @@ static int check_purpose_crl_sign(const X509_PURPOSE *xp, const X509 *x, int ca)
{
if(ca) {
int ca_ret;
- if((ca_ret = ca_check(x)) != 2) return ca_ret;
+ if((ca_ret = check_ca(x)) != 2) return ca_ret;
else return 0;
}
if(ku_reject(x, KU_CRL_SIGN)) return 0;
@@ -552,17 +573,9 @@ static int check_purpose_crl_sign(const X509_PURPOSE *xp, const X509 *x, int ca)
static int ocsp_helper(const X509_PURPOSE *xp, const X509 *x, int ca)
{
- /* Must be a valid CA */
- if(ca) {
- int ca_ret;
- ca_ret = ca_check(x);
- if(ca_ret != 2) return ca_ret;
- if(x->ex_flags & EXFLAG_NSCERT) {
- if(x->ex_nscert & NS_ANY_CA) return ca_ret;
- return 0;
- }
- return 0;
- }
+ /* Must be a valid CA. Should we really support the "I don't know"
+ value (2)? */
+ if(ca) return check_ca(x);
/* leaf certificate is checked in OCSP_verify() */
return 1;
}
@@ -624,7 +637,13 @@ int X509_check_issued(X509 *issuer, X509 *subject)
return X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH;
}
}
- if(ku_reject(issuer, KU_KEY_CERT_SIGN)) return X509_V_ERR_KEYUSAGE_NO_CERTSIGN;
+ if(subject->ex_flags & EXFLAG_PROXY)
+ {
+ if(ku_reject(issuer, KU_DIGITAL_SIGNATURE))
+ return X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE;
+ }
+ else if(ku_reject(issuer, KU_KEY_CERT_SIGN))
+ return X509_V_ERR_KEYUSAGE_NO_CERTSIGN;
return X509_V_OK;
}
diff --git a/crypto/x509v3/v3err.c b/crypto/x509v3/v3err.c
index 648ed3562c..e93f50da14 100644
--- a/crypto/x509v3/v3err.c
+++ b/crypto/x509v3/v3err.c
@@ -1,6 +1,6 @@
/* crypto/x509v3/v3err.c */
/* ====================================================================
- * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -74,12 +74,14 @@ static ERR_STRING_DATA X509V3_str_functs[]=
{ERR_PACK(0,X509V3_F_DO_I2V_NAME_CONSTRAINTS,0), "DO_I2V_NAME_CONSTRAINTS"},
{ERR_PACK(0,X509V3_F_HEX_TO_STRING,0), "hex_to_string"},
{ERR_PACK(0,X509V3_F_I2S_ASN1_ENUMERATED,0), "i2s_ASN1_ENUMERATED"},
+{ERR_PACK(0,X509V3_F_I2S_ASN1_IA5STRING,0), "I2S_ASN1_IA5STRING"},
{ERR_PACK(0,X509V3_F_I2S_ASN1_INTEGER,0), "i2s_ASN1_INTEGER"},
{ERR_PACK(0,X509V3_F_I2V_AUTHORITY_INFO_ACCESS,0), "I2V_AUTHORITY_INFO_ACCESS"},
{ERR_PACK(0,X509V3_F_NOTICE_SECTION,0), "NOTICE_SECTION"},
{ERR_PACK(0,X509V3_F_NREF_NOS,0), "NREF_NOS"},
{ERR_PACK(0,X509V3_F_POLICY_SECTION,0), "POLICY_SECTION"},
{ERR_PACK(0,X509V3_F_R2I_CERTPOL,0), "R2I_CERTPOL"},
+{ERR_PACK(0,X509V3_F_R2I_PCI,0), "R2I_PCI"},
{ERR_PACK(0,X509V3_F_S2I_ASN1_IA5STRING,0), "S2I_ASN1_IA5STRING"},
{ERR_PACK(0,X509V3_F_S2I_ASN1_INTEGER,0), "s2i_ASN1_INTEGER"},
{ERR_PACK(0,X509V3_F_S2I_ASN1_OCTET_STRING,0), "s2i_ASN1_OCTET_STRING"},
@@ -92,7 +94,7 @@ static ERR_STRING_DATA X509V3_str_functs[]=
{ERR_PACK(0,X509V3_F_SXNET_GET_ID_ASC,0), "SXNET_get_id_asc"},
{ERR_PACK(0,X509V3_F_SXNET_GET_ID_ULONG,0), "SXNET_get_id_ulong"},
{ERR_PACK(0,X509V3_F_V2I_ACCESS_DESCRIPTION,0), "V2I_ACCESS_DESCRIPTION"},
-{ERR_PACK(0,X509V3_F_V2I_ASN1_BIT_STRING,0), "V2I_ASN1_BIT_STRING"},
+{ERR_PACK(0,X509V3_F_V2I_ASN1_BIT_STRING,0), "v2i_ASN1_BIT_STRING"},
{ERR_PACK(0,X509V3_F_V2I_AUTHORITY_KEYID,0), "V2I_AUTHORITY_KEYID"},
{ERR_PACK(0,X509V3_F_V2I_BASIC_CONSTRAINTS,0), "V2I_BASIC_CONSTRAINTS"},
{ERR_PACK(0,X509V3_F_V2I_CRLD,0), "V2I_CRLD"},
@@ -137,6 +139,7 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
{X509V3_R_EXTENSION_VALUE_ERROR ,"extension value error"},
{X509V3_R_ILLEGAL_EMPTY_EXTENSION ,"illegal empty extension"},
{X509V3_R_ILLEGAL_HEX_DIGIT ,"illegal hex digit"},
+{X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ,"incorrect policy syntax tag"},
{X509V3_R_INVALID_BOOLEAN_STRING ,"invalid boolean string"},
{X509V3_R_INVALID_EXTENSION_STRING ,"invalid extension string"},
{X509V3_R_INVALID_NAME ,"invalid name"},
@@ -148,6 +151,7 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
{X509V3_R_INVALID_OBJECT_IDENTIFIER ,"invalid object identifier"},
{X509V3_R_INVALID_OPTION ,"invalid option"},
{X509V3_R_INVALID_POLICY_IDENTIFIER ,"invalid policy identifier"},
+{X509V3_R_INVALID_PROXY_POLICY_SETTING ,"invalid proxy policy setting"},
{X509V3_R_INVALID_PURPOSE ,"invalid purpose"},
{X509V3_R_INVALID_SECTION ,"invalid section"},
{X509V3_R_INVALID_SYNTAX ,"invalid syntax"},
@@ -158,11 +162,17 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
{X509V3_R_NO_ISSUER_CERTIFICATE ,"no issuer certificate"},
{X509V3_R_NO_ISSUER_DETAILS ,"no issuer details"},
{X509V3_R_NO_POLICY_IDENTIFIER ,"no policy identifier"},
+{X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED,"no proxy cert policy language defined"},
{X509V3_R_NO_PUBLIC_KEY ,"no public key"},
{X509V3_R_NO_SUBJECT_DETAILS ,"no subject details"},
{X509V3_R_ODD_NUMBER_OF_DIGITS ,"odd number of digits"},
{X509V3_R_OPERATION_NOT_DEFINED ,"operation not defined"},
{X509V3_R_OTHERNAME_ERROR ,"othername error"},
+{X509V3_R_POLICY_LANGUAGE_ALREADTY_DEFINED,"policy language alreadty defined"},
+{X509V3_R_POLICY_PATH_LENGTH ,"policy path length"},
+{X509V3_R_POLICY_PATH_LENGTH_ALREADTY_DEFINED,"policy path length alreadty defined"},
+{X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED,"policy syntax not currently supported"},
+{X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY,"policy when proxy language requires no policy"},
{X509V3_R_SECTION_NOT_FOUND ,"section not found"},
{X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ,"unable to get issuer details"},
{X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ,"unable to get issuer keyid"},
diff --git a/crypto/x509v3/x509v3.h b/crypto/x509v3/x509v3.h
index 677a930f77..1f801eb25a 100644
--- a/crypto/x509v3/x509v3.h
+++ b/crypto/x509v3/x509v3.h
@@ -313,6 +313,23 @@ typedef struct POLICY_CONSTRAINTS_st {
ASN1_INTEGER *inhibitPolicyMapping;
} POLICY_CONSTRAINTS;
+/* Proxy certificate structures, see RFC 3820 */
+typedef struct PROXY_POLICY_st
+ {
+ ASN1_OBJECT *policyLanguage;
+ ASN1_OCTET_STRING *policy;
+ } PROXY_POLICY;
+
+typedef struct PROXY_CERT_INFO_EXTENSION_st
+ {
+ ASN1_INTEGER *pcPathLengthConstraint;
+ PROXY_POLICY *proxyPolicy;
+ } PROXY_CERT_INFO_EXTENSION;
+
+DECLARE_ASN1_FUNCTIONS(PROXY_POLICY)
+DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
+
+
#define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \
",name:", val->name, ",value:", val->value);
@@ -351,6 +368,7 @@ typedef struct POLICY_CONSTRAINTS_st {
#define EXFLAG_INVALID 0x80
#define EXFLAG_SET 0x100
#define EXFLAG_CRITICAL 0x200
+#define EXFLAG_PROXY 0x400
#define EXFLAG_INVALID_POLICY 0x400
@@ -578,6 +596,7 @@ int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
int X509V3_extensions_print(BIO *out, char *title, STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent);
+int X509_check_ca(X509 *x);
int X509_check_purpose(X509 *x, int id, int ca);
int X509_supported_extension(X509_EXTENSION *ex);
int X509_PURPOSE_set(int *p, int purpose);
@@ -623,12 +642,14 @@ void ERR_load_X509V3_strings(void);
#define X509V3_F_DO_I2V_NAME_CONSTRAINTS 148
#define X509V3_F_HEX_TO_STRING 111
#define X509V3_F_I2S_ASN1_ENUMERATED 121
+#define X509V3_F_I2S_ASN1_IA5STRING 149
#define X509V3_F_I2S_ASN1_INTEGER 120
#define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138
#define X509V3_F_NOTICE_SECTION 132
#define X509V3_F_NREF_NOS 133
#define X509V3_F_POLICY_SECTION 131
#define X509V3_F_R2I_CERTPOL 130
+#define X509V3_F_R2I_PCI 149
#define X509V3_F_S2I_ASN1_IA5STRING 100
#define X509V3_F_S2I_ASN1_INTEGER 108
#define X509V3_F_S2I_ASN1_OCTET_STRING 112
@@ -683,6 +704,7 @@ void ERR_load_X509V3_strings(void);
#define X509V3_R_EXTENSION_VALUE_ERROR 116
#define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151
#define X509V3_R_ILLEGAL_HEX_DIGIT 113
+#define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152
#define X509V3_R_INVALID_BOOLEAN_STRING 104
#define X509V3_R_INVALID_EXTENSION_STRING 105
#define X509V3_R_INVALID_NAME 106
@@ -694,6 +716,7 @@ void ERR_load_X509V3_strings(void);
#define X509V3_R_INVALID_OBJECT_IDENTIFIER 110
#define X509V3_R_INVALID_OPTION 138
#define X509V3_R_INVALID_POLICY_IDENTIFIER 134
+#define X509V3_R_INVALID_PROXY_POLICY_SETTING 153
#define X509V3_R_INVALID_PURPOSE 146
#define X509V3_R_INVALID_SECTION 135
#define X509V3_R_INVALID_SYNTAX 143
@@ -704,11 +727,17 @@ void ERR_load_X509V3_strings(void);
#define X509V3_R_NO_ISSUER_CERTIFICATE 121
#define X509V3_R_NO_ISSUER_DETAILS 127
#define X509V3_R_NO_POLICY_IDENTIFIER 139
+#define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154
#define X509V3_R_NO_PUBLIC_KEY 114
#define X509V3_R_NO_SUBJECT_DETAILS 125
#define X509V3_R_ODD_NUMBER_OF_DIGITS 112
#define X509V3_R_OPERATION_NOT_DEFINED 148
#define X509V3_R_OTHERNAME_ERROR 147
+#define X509V3_R_POLICY_LANGUAGE_ALREADTY_DEFINED 155
+#define X509V3_R_POLICY_PATH_LENGTH 156
+#define X509V3_R_POLICY_PATH_LENGTH_ALREADTY_DEFINED 157
+#define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED 158
+#define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159
#define X509V3_R_SECTION_NOT_FOUND 150
#define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122
#define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123
diff --git a/demos/engines/rsaref/rsaref.c b/demos/engines/rsaref/rsaref.c
index 872811b8f7..f97974fc49 100644
--- a/demos/engines/rsaref/rsaref.c
+++ b/demos/engines/rsaref/rsaref.c
@@ -426,7 +426,7 @@ static int rsaref_private_encrypt(int len, const unsigned char *from, unsigned c
}
if (!RSAref_Private_eay2ref(rsa,&RSAkey))
goto err;
- if ((i=RSAPrivateEncrypt(to,(unsigned int)&outlen,(unsigned char *)from,len,&RSAkey)) != 0)
+ if ((i=RSAPrivateEncrypt(to,(unsigned int *)&outlen,(unsigned char *)from,len,&RSAkey)) != 0)
{
RSAREFerr(RSAREF_F_RSAREF_PRIVATE_ENCRYPT,i);
outlen= -1;
@@ -444,7 +444,7 @@ static int rsaref_public_decrypt(int len, const unsigned char *from, unsigned ch
if (!RSAref_Public_eay2ref(rsa,&RSAkey))
goto err;
- if ((i=RSAPublicDecrypt(to,(unsigned int)&outlen,(unsigned char *)from,len,&RSAkey)) != 0)
+ if ((i=RSAPublicDecrypt(to,(unsigned int *)&outlen,(unsigned char *)from,len,&RSAkey)) != 0)
{
RSAREFerr(RSAREF_F_RSAREF_PUBLIC_DECRYPT,i);
outlen= -1;
@@ -481,7 +481,7 @@ static int rsaref_public_encrypt(int len, const unsigned char *from, unsigned ch
if (!RSAref_Public_eay2ref(rsa,&RSAkey))
goto err;
- if ((i=RSAPublicEncrypt(to,(unsigned int)&outlen,(unsigned char *)from,len,&RSAkey,&rnd)) != 0)
+ if ((i=RSAPublicEncrypt(to,(unsigned int *)&outlen,(unsigned char *)from,len,&RSAkey,&rnd)) != 0)
{
RSAREFerr(RSAREF_F_RSAREF_PUBLIC_ENCRYPT,i);
outlen= -1;
diff --git a/doc/apps/asn1parse.pod b/doc/apps/asn1parse.pod
index e3462aabf1..542d969066 100644
--- a/doc/apps/asn1parse.pod
+++ b/doc/apps/asn1parse.pod
@@ -165,7 +165,7 @@ Example config file:
=head1 BUGS
-There should be options to change the format of input lines. The output of some
+There should be options to change the format of output lines. The output of some
ASN.1 types is not well handled (if at all).
=cut
diff --git a/doc/apps/ca.pod b/doc/apps/ca.pod
index d0a7703e61..5db7d9441c 100644
--- a/doc/apps/ca.pod
+++ b/doc/apps/ca.pod
@@ -585,8 +585,7 @@ if corrupted it can be difficult to fix. It is theoretically possible
to rebuild the index file from all the issued certificates and a current
CRL: however there is no option to do this.
-V2 CRL features like delta CRL support and CRL numbers are not currently
-supported.
+V2 CRL features like delta CRLs are not currently supported.
Although several requests can be input and handled at once it is only
possible to include one SPKAC or self signed certificate.
@@ -597,12 +596,6 @@ The use of an in memory text database can cause problems when large
numbers of certificates are present because, as the name implies
the database has to be kept in memory.
-It is not possible to certify two certificates with the same DN: this
-is a side effect of how the text database is indexed and it cannot easily
-be fixed without introducing other problems. Some S/MIME clients can use
-two certificates with the same DN for separate signing and encryption
-keys.
-
The B<ca> command really needs rewriting or the required functionality
exposed at either a command or interface level so a more friendly utility
(perl script or GUI) can handle things properly. The scripts B<CA.sh> and
diff --git a/doc/apps/config.pod b/doc/apps/config.pod
index 2158cf4253..ace34b62bd 100644
--- a/doc/apps/config.pod
+++ b/doc/apps/config.pod
@@ -1,6 +1,8 @@
=pod
+=for comment openssl_manual_section:5
+
=head1 NAME
config - OpenSSL CONF library configuration files
diff --git a/doc/apps/dgst.pod b/doc/apps/dgst.pod
index 1648742bcf..b0d198724c 100644
--- a/doc/apps/dgst.pod
+++ b/doc/apps/dgst.pod
@@ -14,6 +14,7 @@ B<openssl> B<dgst>
[B<-binary>]
[B<-out filename>]
[B<-sign filename>]
+[B<-passin arg>]
[B<-verify filename>]
[B<-prverify filename>]
[B<-signature filename>]
@@ -59,6 +60,11 @@ filename to output to, or standard output by default.
digitally sign the digest using the private key in "filename".
+=item B<-passin arg>
+
+the private key password source. For more information about the format of B<arg>
+see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
+
=item B<-verify filename>
verify the signature using the the public key in "filename".
diff --git a/doc/apps/ecparam.pod b/doc/apps/ecparam.pod
index 2523a9b103..1a12105da7 100644
--- a/doc/apps/ecparam.pod
+++ b/doc/apps/ecparam.pod
@@ -142,27 +142,27 @@ B<ecparam> can only create EC parameters from known (named) curves.
To create EC parameters with the group 'prime192v1':
- openssl ec -out ec_param.pem -name prime192v1
+ openssl ecparam -out ec_param.pem -name prime192v1
To create EC parameters with explicit parameters:
- openssl ec -out ec_param.pem -name prime192v1 -param_enc explicit
+ openssl ecparam -out ec_param.pem -name prime192v1 -param_enc explicit
To validate given EC parameters:
- openssl ec -in ec_param.pem -check
+ openssl ecparam -in ec_param.pem -check
To create EC parameters and a private key:
- openssl ec -out ec_key.pem -name prime192v1 -genkey
+ openssl ecparam -out ec_key.pem -name prime192v1 -genkey
To change the point encoding to 'compressed':
- openssl ec -in ec_in.pem -out ec_out.pem -conv_form compressed
+ openssl ecparam -in ec_in.pem -out ec_out.pem -conv_form compressed
To print out the EC parameters to standard output:
- openssl ec -in ec_param.pem -noout -text
+ openssl ecparam -in ec_param.pem -noout -text
=head1 SEE ALSO
diff --git a/doc/apps/enc.pod b/doc/apps/enc.pod
index ddf081617f..18fe7c81c7 100644
--- a/doc/apps/enc.pod
+++ b/doc/apps/enc.pod
@@ -86,7 +86,7 @@ versions of OpenSSL. Superseded by the B<-pass> argument.
=item B<-kfile filename>
read the password to derive the key from the first line of B<filename>.
-This is for computability with previous versions of OpenSSL. Superseded by
+This is for compatibility with previous versions of OpenSSL. Superseded by
the B<-pass> argument.
=item B<-S salt>
diff --git a/doc/apps/s_client.pod b/doc/apps/s_client.pod
index 8d19079973..e1e1ba9865 100644
--- a/doc/apps/s_client.pod
+++ b/doc/apps/s_client.pod
@@ -11,7 +11,10 @@ B<openssl> B<s_client>
[B<-connect host:port>]
[B<-verify depth>]
[B<-cert filename>]
+[B<-certform DER|PEM>]
[B<-key filename>]
+[B<-keyform DER|PEM>]
+[B<-pass arg>]
[B<-CApath directory>]
[B<-CAfile filename>]
[B<-reconnect>]
@@ -57,11 +60,24 @@ then an attempt is made to connect to the local host on port 4433.
The certificate to use, if one is requested by the server. The default is
not to use a certificate.
+=item B<-certform format>
+
+The certificate format to use: DER or PEM. PEM is the default.
+
=item B<-key keyfile>
The private key to use. If not specified then the certificate file will
be used.
+=item B<-keyform format>
+
+The private format to use: DER or PEM. PEM is the default.
+
+=item B<-pass arg>
+
+the private key password source. For more information about the format of B<arg>
+see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
+
=item B<-verify depth>
The verify depth to use. This specifies the maximum length of the
diff --git a/doc/apps/s_server.pod b/doc/apps/s_server.pod
index 1d21921e47..7c1a9581d9 100644
--- a/doc/apps/s_server.pod
+++ b/doc/apps/s_server.pod
@@ -13,9 +13,15 @@ B<openssl> B<s_server>
[B<-verify depth>]
[B<-Verify depth>]
[B<-cert filename>]
+[B<-certform DER|PEM>]
[B<-key keyfile>]
+[B<-keyform DER|PEM>]
+[B<-pass arg>]
[B<-dcert filename>]
+[B<-dcertform DER|PEM>]
[B<-dkey keyfile>]
+[B<-dkeyform DER|PEM>]
+[B<-dpass arg>]
[B<-dhparam filename>]
[B<-nbio>]
[B<-nbio_test>]
@@ -70,11 +76,24 @@ certificate and some require a certificate with a certain public key type:
for example the DSS cipher suites require a certificate containing a DSS
(DSA) key. If not specified then the filename "server.pem" will be used.
+=item B<-certform format>
+
+The certificate format to use: DER or PEM. PEM is the default.
+
=item B<-key keyfile>
The private key to use. If not specified then the certificate file will
be used.
+=item B<-keyform format>
+
+The private format to use: DER or PEM. PEM is the default.
+
+=item B<-pass arg>
+
+the private key password source. For more information about the format of B<arg>
+see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
+
=item B<-dcert filename>, B<-dkey keyname>
specify an additional certificate and private key, these behave in the
@@ -86,6 +105,10 @@ and some a DSS (DSA) key. By using RSA and DSS certificates and keys
a server can support clients which only support RSA or DSS cipher suites
by using an appropriate certificate.
+=item B<-dcertform format>, B<-dkeyform format>, B<-dpass arg>
+
+addtional certificate and private key format and passphrase respectively.
+
=item B<-nocert>
if this option is set then no certificate is used. This restricts the
diff --git a/doc/crypto/ASN1_STRING_print_ex.pod b/doc/crypto/ASN1_STRING_print_ex.pod
index fbf9a1f141..d662225b87 100644
--- a/doc/crypto/ASN1_STRING_print_ex.pod
+++ b/doc/crypto/ASN1_STRING_print_ex.pod
@@ -30,8 +30,8 @@ with '.'.
ASN1_STRING_print() is a legacy function which should be avoided in new applications.
-Although there are a large number of options frequently B<ASN1_STRFLAGS_RFC2253> is
-suitable, or on UTF8 terminals B<ASN1_STRFLAGS_RFC2253 & ~ASN1_STRFLAGS_ESC_MSB>.
+Although there are a large number of options frequently B<ASN1_STRFLGS_RFC2253> is
+suitable, or on UTF8 terminals B<ASN1_STRFLGS_RFC2253 & ~ASN1_STRFLGS_ESC_MSB>.
The complete set of supported options for B<flags> is listed below.
@@ -72,7 +72,7 @@ octet.
If B<ASN1_STRFLGS_DUMP_ALL> is set then any type is dumped.
Normally non character string types (such as OCTET STRING) are assumed to be
-one byte per character, if B<ASN1_STRFLAGS_DUMP_UNKNOWN> is set then they will
+one byte per character, if B<ASN1_STRFLGS_DUMP_UNKNOWN> is set then they will
be dumped instead.
When a type is dumped normally just the content octets are printed, if
diff --git a/doc/crypto/ERR_error_string.pod b/doc/crypto/ERR_error_string.pod
index e01beb817a..cdfa7fe1fe 100644
--- a/doc/crypto/ERR_error_string.pod
+++ b/doc/crypto/ERR_error_string.pod
@@ -11,7 +11,7 @@ error message
#include <openssl/err.h>
char *ERR_error_string(unsigned long e, char *buf);
- char *ERR_error_string_n(unsigned long e, char *buf, size_t len);
+ void ERR_error_string_n(unsigned long e, char *buf, size_t len);
const char *ERR_lib_error_string(unsigned long e);
const char *ERR_func_error_string(unsigned long e);
diff --git a/doc/crypto/EVP_BytesToKey.pod b/doc/crypto/EVP_BytesToKey.pod
index 016381f3e9..d375c46e03 100644
--- a/doc/crypto/EVP_BytesToKey.pod
+++ b/doc/crypto/EVP_BytesToKey.pod
@@ -60,7 +60,7 @@ EVP_BytesToKey() returns the size of the derived key in bytes.
=head1 SEE ALSO
L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
-L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>
=head1 HISTORY
diff --git a/doc/crypto/X509_NAME_print_ex.pod b/doc/crypto/X509_NAME_print_ex.pod
index 907c04f684..919b908919 100644
--- a/doc/crypto/X509_NAME_print_ex.pod
+++ b/doc/crypto/X509_NAME_print_ex.pod
@@ -41,8 +41,8 @@ applications.
Although there are a large number of possible flags for most purposes
B<XN_FLAG_ONELINE>, B<XN_FLAG_MULTILINE> or B<XN_FLAG_RFC2253> will suffice.
As noted on the L<ASN1_STRING_print_ex(3)|ASN1_STRING_print_ex(3)> manual page
-for UTF8 terminals the B<ASN1_STRFLAGS_ESC_MSB> should be unset: so for example
-B<XN_FLAG_ONELINE & ~ASN1_STRFLAGS_ESC_MSB> would be used.
+for UTF8 terminals the B<ASN1_STRFLGS_ESC_MSB> should be unset: so for example
+B<XN_FLAG_ONELINE & ~ASN1_STRFLGS_ESC_MSB> would be used.
The complete set of the flags supported by X509_NAME_print_ex() is listed below.
diff --git a/doc/crypto/blowfish.pod b/doc/crypto/blowfish.pod
index ed71334f56..5b2d274c15 100644
--- a/doc/crypto/blowfish.pod
+++ b/doc/crypto/blowfish.pod
@@ -32,7 +32,7 @@ by Counterpane (see http://www.counterpane.com/blowfish.html ).
Blowfish is a block cipher that operates on 64 bit (8 byte) blocks of data.
It uses a variable size key, but typically, 128 bit (16 byte) keys are
-a considered good for strong encryption. Blowfish can be used in the same
+considered good for strong encryption. Blowfish can be used in the same
modes as DES (see L<des_modes(7)|des_modes(7)>). Blowfish is currently one
of the faster block ciphers. It is quite a bit faster than DES, and much
faster than IDEA or RC2.
diff --git a/doc/crypto/des_modes.pod b/doc/crypto/des_modes.pod
index da75e8007d..02664036fc 100644
--- a/doc/crypto/des_modes.pod
+++ b/doc/crypto/des_modes.pod
@@ -1,5 +1,7 @@
=pod
+=for comment openssl_manual_section:7
+
=head1 NAME
Modes of DES - the variants of DES and other crypto algorithms of OpenSSL
diff --git a/doc/ssl/SSL_shutdown.pod b/doc/ssl/SSL_shutdown.pod
index 6b5012be7a..89911acbca 100644
--- a/doc/ssl/SSL_shutdown.pod
+++ b/doc/ssl/SSL_shutdown.pod
@@ -38,7 +38,7 @@ behaviour.
=over 4
=item When the application is the first party to send the "close notify"
-alert, SSL_shutdown() will only send the alert and the set the
+alert, SSL_shutdown() will only send the alert and then set the
SSL_SENT_SHUTDOWN flag (so that the session is considered good and will
be kept in cache). SSL_shutdown() will then return with 0. If a unidirectional
shutdown is enough (the underlying connection shall be closed anyway), this
diff --git a/e_os.h b/e_os.h
index 79f76ca109..3ff9f3cd1c 100644
--- a/e_os.h
+++ b/e_os.h
@@ -556,6 +556,7 @@ extern char *sys_errlist[]; extern int sys_nerr;
# include "o_str.h"
# define strcasecmp OPENSSL_strcasecmp
# define strncasecmp OPENSSL_strncasecmp
+# define OPENSSL_IMPLEMENTS_strncasecmp
#elif defined(OPENSSL_SYS_OS2) && defined(__EMX__)
# define strcasecmp stricmp
# define strncasecmp strnicmp
diff --git a/e_os2.h b/e_os2.h
index 04d00ec78d..60f9b5c9c7 100644
--- a/e_os2.h
+++ b/e_os2.h
@@ -267,9 +267,10 @@ extern "C" {
#define foobar OPENSSL_GLOBAL_REF(foobar)
*/
#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION
-# define OPENSSL_IMPLEMENT_GLOBAL(type,name) static type _hide_##name; \
- type *_shadow_##name(void) { return &_hide_##name; } \
- static type _hide_##name
+# define OPENSSL_IMPLEMENT_GLOBAL(type,name) \
+ extern type _hide_##name; \
+ type *_shadow_##name(void) { return &_hide_##name; } \
+ static type _hide_##name
# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void)
# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))
#else
diff --git a/ms/test.bat b/ms/test.bat
index c3a1b0c28d..7fb0442147 100755
--- a/ms/test.bat
+++ b/ms/test.bat
@@ -87,20 +87,22 @@ echo testss
call %test%\testss openssl
if errorlevel 1 goto done
+set SSL_TEST=ssltest -key keyU.ss -cert certU.ss -c_key keyU.ss -c_cert certU.ss -CAfile certCA.ss
+
echo test sslv2
ssltest -ssl2
if errorlevel 1 goto done
echo test sslv2 with server authentication
-ssltest -ssl2 -server_auth -CAfile cert.tmp
+%SSL_TEST% -ssl2 -server_auth
if errorlevel 1 goto done
echo test sslv2 with client authentication
-ssltest -ssl2 -client_auth -CAfile cert.tmp
+%SSL_TEST% -ssl2 -client_auth
if errorlevel 1 goto done
echo test sslv2 with both client and server authentication
-ssltest -ssl2 -server_auth -client_auth -CAfile cert.tmp
+%SSL_TEST% -ssl2 -server_auth -client_auth
if errorlevel 1 goto done
echo test sslv3
@@ -108,15 +110,15 @@ ssltest -ssl3
if errorlevel 1 goto done
echo test sslv3 with server authentication
-ssltest -ssl3 -server_auth -CAfile cert.tmp
+%SSL_TEST% -ssl3 -server_auth
if errorlevel 1 goto done
echo test sslv3 with client authentication
-ssltest -ssl3 -client_auth -CAfile cert.tmp
+%SSL_TEST% -ssl3 -client_auth
if errorlevel 1 goto done
echo test sslv3 with both client and server authentication
-ssltest -ssl3 -server_auth -client_auth -CAfile cert.tmp
+%SSL_TEST% -ssl3 -server_auth -client_auth
if errorlevel 1 goto done
echo test sslv2/sslv3
@@ -124,15 +126,15 @@ ssltest
if errorlevel 1 goto done
echo test sslv2/sslv3 with server authentication
-ssltest -server_auth -CAfile cert.tmp
+%SSL_TEST% -server_auth
if errorlevel 1 goto done
echo test sslv2/sslv3 with client authentication
-ssltest -client_auth -CAfile cert.tmp
+%SSL_TEST% -client_auth
if errorlevel 1 goto done
echo test sslv2/sslv3 with both client and server authentication
-ssltest -server_auth -client_auth -CAfile cert.tmp
+%SSL_TEST% -server_auth -client_auth
if errorlevel 1 goto done
echo test sslv2 via BIO pair
@@ -144,15 +146,15 @@ ssltest -bio_pair -dhe1024dsa -v
if errorlevel 1 goto done
echo test sslv2 with server authentication via BIO pair
-ssltest -bio_pair -ssl2 -server_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -ssl2 -server_auth
if errorlevel 1 goto done
echo test sslv2 with client authentication via BIO pair
-ssltest -bio_pair -ssl2 -client_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -ssl2 -client_auth
if errorlevel 1 goto done
echo test sslv2 with both client and server authentication via BIO pair
-ssltest -bio_pair -ssl2 -server_auth -client_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -ssl2 -server_auth -client_auth
if errorlevel 1 goto done
echo test sslv3 via BIO pair
@@ -160,31 +162,31 @@ ssltest -bio_pair -ssl3
if errorlevel 1 goto done
echo test sslv3 with server authentication via BIO pair
-ssltest -bio_pair -ssl3 -server_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -ssl3 -server_auth
if errorlevel 1 goto done
echo test sslv3 with client authentication via BIO pair
-ssltest -bio_pair -ssl3 -client_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -ssl3 -client_auth
if errorlevel 1 goto done
echo test sslv3 with both client and server authentication via BIO pair
-ssltest -bio_pair -ssl3 -server_auth -client_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -ssl3 -server_auth -client_auth
if errorlevel 1 goto done
echo test sslv2/sslv3 via BIO pair
-ssltest
+ssltest -bio_pair
if errorlevel 1 goto done
echo test sslv2/sslv3 with server authentication
-ssltest -bio_pair -server_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -server_auth
if errorlevel 1 goto done
echo test sslv2/sslv3 with client authentication via BIO pair
-ssltest -bio_pair -client_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -client_auth
if errorlevel 1 goto done
echo test sslv2/sslv3 with both client and server authentication via BIO pair
-ssltest -bio_pair -server_auth -client_auth -CAfile cert.tmp
+%SSL_TEST% -bio_pair -server_auth -client_auth
if errorlevel 1 goto done
del cert.tmp
diff --git a/ms/testss.bat b/ms/testss.bat
index f7e58e2756..b4aaf3c601 100755
--- a/ms/testss.bat
+++ b/ms/testss.bat
@@ -4,7 +4,7 @@ rem set ssleay=..\out\ssleay
set ssleay=%1
set reqcmd=%ssleay% req
-set x509cmd=%ssleay% x509
+set x509cmd=%ssleay% x509 -sha1
set verifycmd=%ssleay% verify
set CAkey=keyCA.ss
diff --git a/ssl/Makefile.ssl b/ssl/Makefile.ssl
index d82699d18f..c0f7e347a9 100644
--- a/ssl/Makefile.ssl
+++ b/ssl/Makefile.ssl
@@ -77,7 +77,7 @@ links:
@$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
install:
- @for i in $(EXHEADER) ; \
+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
do \
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
diff --git a/ssl/ssl.h b/ssl/ssl.h
index 8ff9ab3304..579b9ef1b2 100644
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -711,7 +711,6 @@ struct ssl_ctx_st
void *msg_callback_arg;
int verify_mode;
- int verify_depth;
unsigned int sid_ctx_length;
unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH];
int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); /* called 'verify_callback' in the SSL */
@@ -719,8 +718,12 @@ struct ssl_ctx_st
/* Default generate session ID callback. */
GEN_SESSION_CB generate_session_id;
+ X509_VERIFY_PARAM *param;
+
+#if 0
int purpose; /* Purpose setting */
int trust; /* Trust setting */
+#endif
int quiet_shutdown;
};
@@ -861,8 +864,12 @@ struct ssl_st
int hit; /* reusing a previous session */
+ X509_VERIFY_PARAM *param;
+
+#if 0
int purpose; /* Purpose setting */
int trust; /* Trust setting */
+#endif
/* crypto */
STACK_OF(SSL_CIPHER) *cipher_list;
@@ -907,7 +914,6 @@ struct ssl_st
/* Used in SSL2 and SSL3 */
int verify_mode; /* 0 don't care about verify failure.
* 1 fail if verify fails */
- int verify_depth;
int (*verify_callback)(int ok,X509_STORE_CTX *ctx); /* fail if callback returns 0 */
void (*info_callback)(const SSL *ssl,int type,int val); /* optional informational callback */
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index 4cab28a200..b515c064a8 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -483,20 +483,22 @@ int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk)
SSLerr(SSL_F_SSL_VERIFY_CERT_CHAIN,ERR_R_X509_LIB);
return(0);
}
+ if (s->param)
+ X509_VERIFY_PARAM_inherit(X509_STORE_CTX_get0_param(&ctx),
+ s->param);
+#if 0
if (SSL_get_verify_depth(s) >= 0)
X509_STORE_CTX_set_depth(&ctx, SSL_get_verify_depth(s));
+#endif
X509_STORE_CTX_set_ex_data(&ctx,SSL_get_ex_data_X509_STORE_CTX_idx(),s);
- /* We need to set the verify purpose. The purpose can be determined by
+ /* We need to inherit the verify parameters. These can be determined by
* the context: if its a server it will verify SSL client certificates
* or vice versa.
*/
- if (s->server)
- i = X509_PURPOSE_SSL_CLIENT;
- else
- i = X509_PURPOSE_SSL_SERVER;
- X509_STORE_CTX_purpose_inherit(&ctx, i, s->purpose, s->trust);
+ X509_STORE_CTX_set_default(&ctx,
+ s->server ? "ssl_client" : "ssl_server");
if (s->verify_callback)
X509_STORE_CTX_set_verify_cb(&ctx, s->verify_callback);
diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
index c31927706a..da231de213 100644
--- a/ssl/ssl_ciph.c
+++ b/ssl/ssl_ciph.c
@@ -169,7 +169,6 @@ static int init_ciphers=1;
static void load_ciphers(void)
{
- init_ciphers=0;
ssl_cipher_methods[SSL_ENC_DES_IDX]=
EVP_get_cipherbyname(SN_des_cbc);
ssl_cipher_methods[SSL_ENC_3DES_IDX]=
@@ -193,6 +192,7 @@ static void load_ciphers(void)
EVP_get_digestbyname(SN_md5);
ssl_digest_methods[SSL_MD_SHA1_IDX]=
EVP_get_digestbyname(SN_sha1);
+ init_ciphers=0;
}
static int sk_comp_cmp(const SSL_COMP * const *a,
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 7da3dda900..c3bf50987c 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -276,14 +276,23 @@ SSL *SSL_new(SSL_CTX *ctx)
s->msg_callback=ctx->msg_callback;
s->msg_callback_arg=ctx->msg_callback_arg;
s->verify_mode=ctx->verify_mode;
+#if 0
s->verify_depth=ctx->verify_depth;
+#endif
s->sid_ctx_length=ctx->sid_ctx_length;
OPENSSL_assert(s->sid_ctx_length <= sizeof s->sid_ctx);
memcpy(&s->sid_ctx,&ctx->sid_ctx,sizeof(s->sid_ctx));
s->verify_callback=ctx->default_verify_callback;
s->generate_session_id=ctx->generate_session_id;
+
+ s->param = X509_VERIFY_PARAM_new();
+ if (!s->param)
+ goto err;
+ X509_VERIFY_PARAM_inherit(s->param, ctx->param);
+#if 0
s->purpose = ctx->purpose;
s->trust = ctx->trust;
+#endif
s->quiet_shutdown=ctx->quiet_shutdown;
CRYPTO_add(&ctx->references,1,CRYPTO_LOCK_SSL_CTX);
@@ -397,22 +406,22 @@ int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,
int SSL_CTX_set_purpose(SSL_CTX *s, int purpose)
{
- return X509_PURPOSE_set(&s->purpose, purpose);
+ return X509_VERIFY_PARAM_set_purpose(s->param, purpose);
}
int SSL_set_purpose(SSL *s, int purpose)
{
- return X509_PURPOSE_set(&s->purpose, purpose);
+ return X509_VERIFY_PARAM_set_purpose(s->param, purpose);
}
int SSL_CTX_set_trust(SSL_CTX *s, int trust)
{
- return X509_TRUST_set(&s->trust, trust);
+ return X509_VERIFY_PARAM_set_trust(s->param, trust);
}
int SSL_set_trust(SSL *s, int trust)
{
- return X509_TRUST_set(&s->trust, trust);
+ return X509_VERIFY_PARAM_set_trust(s->param, trust);
}
void SSL_free(SSL *s)
@@ -435,6 +444,9 @@ void SSL_free(SSL *s)
}
#endif
+ if (s->param)
+ X509_VERIFY_PARAM_free(s->param);
+
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL, s, &s->ex_data);
if (s->bbio != NULL)
@@ -647,7 +659,7 @@ int SSL_get_verify_mode(SSL *s)
int SSL_get_verify_depth(SSL *s)
{
- return(s->verify_depth);
+ return X509_VERIFY_PARAM_get_depth(s->param);
}
int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *)
@@ -662,7 +674,7 @@ int SSL_CTX_get_verify_mode(SSL_CTX *ctx)
int SSL_CTX_get_verify_depth(SSL_CTX *ctx)
{
- return(ctx->verify_depth);
+ return X509_VERIFY_PARAM_get_depth(ctx->param);
}
int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *)
@@ -680,7 +692,7 @@ void SSL_set_verify(SSL *s,int mode,
void SSL_set_verify_depth(SSL *s,int depth)
{
- s->verify_depth=depth;
+ X509_VERIFY_PARAM_set_depth(s->param, depth);
}
void SSL_set_read_ahead(SSL *s,int yes)
@@ -1345,7 +1357,9 @@ SSL_CTX *SSL_CTX_new(SSL_METHOD *meth)
ret->msg_callback=0;
ret->msg_callback_arg=NULL;
ret->verify_mode=SSL_VERIFY_NONE;
+#if 0
ret->verify_depth=-1; /* Don't impose a limit (but x509_lu.c does) */
+#endif
ret->sid_ctx_length=0;
ret->default_verify_callback=NULL;
if ((ret->cert=ssl_cert_new()) == NULL)
@@ -1371,6 +1385,10 @@ SSL_CTX *SSL_CTX_new(SSL_METHOD *meth)
goto err2;
}
+ ret->param = X509_VERIFY_PARAM_new();
+ if (!ret->param)
+ goto err;
+
if ((ret->rsa_md5=EVP_get_digestbyname("ssl2-md5")) == NULL)
{
SSLerr(SSL_F_SSL_CTX_NEW,SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES);
@@ -1427,6 +1445,9 @@ void SSL_CTX_free(SSL_CTX *a)
}
#endif
+ if (a->param)
+ X509_VERIFY_PARAM_free(a->param);
+
/*
* Free internal session cache. However: the remove_cb() may reference
* the ex_data of SSL_CTX, thus the ex_data store can only be removed
@@ -1489,7 +1510,7 @@ void SSL_CTX_set_verify(SSL_CTX *ctx,int mode,int (*cb)(int, X509_STORE_CTX *))
void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth)
{
- ctx->verify_depth=depth;
+ X509_VERIFY_PARAM_set_depth(ctx->param, depth);
}
void ssl_set_cert_masks(CERT *c, SSL_CIPHER *cipher)
@@ -1581,7 +1602,7 @@ void ssl_set_cert_masks(CERT *c, SSL_CIPHER *cipher)
if (rsa_enc || rsa_sign)
{
mask|=SSL_aRSA;
- mask|=SSL_aRSA;
+ emask|=SSL_aRSA;
}
if (dsa_sign)
@@ -2117,8 +2138,8 @@ SSL *SSL_dup(SSL *s)
ret->rstate=s->rstate;
ret->init_num = 0; /* would have to copy ret->init_buf, ret->init_msg, ret->init_num, ret->init_off */
ret->hit=s->hit;
- ret->purpose=s->purpose;
- ret->trust=s->trust;
+
+ X509_VERIFY_PARAM_inherit(ret->param, s->param);
/* dup the cipher_list and cipher_list_by_id stacks */
if (s->cipher_list != NULL)
diff --git a/ssl/ssltest.c b/ssl/ssltest.c
index f0b3c93ba5..e57a8e7540 100644
--- a/ssl/ssltest.c
+++ b/ssl/ssltest.c
@@ -128,10 +128,15 @@
#define USE_SOCKETS
#include "e_os.h"
+#define _XOPEN_SOURCE 1 /* Or isascii won't be declared properly on
+ VMS (at least with DECompHP C). */
+#include <ctype.h>
+
#include <openssl/bio.h>
#include <openssl/crypto.h>
#include <openssl/evp.h>
#include <openssl/x509.h>
+#include <openssl/x509v3.h>
#include <openssl/ssl.h>
#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
@@ -180,8 +185,14 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export,int keylength);
static void free_tmp_rsa(void);
#endif
static int MS_CALLBACK app_verify_callback(X509_STORE_CTX *ctx, void *arg);
-#define APP_CALLBACK "Test Callback Argument"
-static char *app_verify_arg = APP_CALLBACK;
+#define APP_CALLBACK_STRING "Test Callback Argument"
+struct app_verify_arg
+ {
+ char *string;
+ int app_verify;
+ char *proxy_auth;
+ char *proxy_cond;
+ };
#ifndef OPENSSL_NO_DH
static DH *get_dh512(void);
@@ -212,6 +223,8 @@ static void sv_usage(void)
fprintf(stderr,"\n");
fprintf(stderr," -server_auth - check server certificate\n");
fprintf(stderr," -client_auth - do client authentication\n");
+ fprintf(stderr," -proxy_auth <val> - set proxy policy rights\n");
+ fprintf(stderr," -proxy_cond <val> - experssion to test proxy policy rights\n");
fprintf(stderr," -v - more output\n");
fprintf(stderr," -d - debug output\n");
fprintf(stderr," -reuse - use session-id reuse\n");
@@ -369,7 +382,8 @@ int main(int argc, char *argv[])
int tls1=0,ssl2=0,ssl3=0,ret=1;
int client_auth=0;
int server_auth=0,i;
- int app_verify=0;
+ struct app_verify_arg app_verify_arg =
+ { APP_CALLBACK_STRING, 0, NULL, NULL };
char *server_cert=TEST_SERVER_CERT;
char *server_key=NULL;
char *client_cert=TEST_CLIENT_CERT;
@@ -430,6 +444,16 @@ int main(int argc, char *argv[])
server_auth=1;
else if (strcmp(*argv,"-client_auth") == 0)
client_auth=1;
+ else if (strcmp(*argv,"-proxy_auth") == 0)
+ {
+ if (--argc < 1) goto bad;
+ app_verify_arg.proxy_auth= *(++argv);
+ }
+ else if (strcmp(*argv,"-proxy_cond") == 0)
+ {
+ if (--argc < 1) goto bad;
+ app_verify_arg.proxy_cond= *(++argv);
+ }
else if (strcmp(*argv,"-v") == 0)
verbose=1;
else if (strcmp(*argv,"-d") == 0)
@@ -554,7 +578,7 @@ int main(int argc, char *argv[])
}
else if (strcmp(*argv,"-app_verify") == 0)
{
- app_verify = 1;
+ app_verify_arg.app_verify = 1;
}
else
{
@@ -765,20 +789,14 @@ bad:
SSL_CTX_set_verify(s_ctx,
SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
verify_callback);
- if (app_verify)
- {
- SSL_CTX_set_cert_verify_callback(s_ctx, app_verify_callback, app_verify_arg);
- }
+ SSL_CTX_set_cert_verify_callback(s_ctx, app_verify_callback, &app_verify_arg);
}
if (server_auth)
{
BIO_printf(bio_err,"server authentication\n");
SSL_CTX_set_verify(c_ctx,SSL_VERIFY_PEER,
verify_callback);
- if (app_verify)
- {
- SSL_CTX_set_cert_verify_callback(s_ctx, app_verify_callback, app_verify_arg);
- }
+ SSL_CTX_set_cert_verify_callback(c_ctx, app_verify_callback, &app_verify_arg);
}
{
@@ -1560,6 +1578,22 @@ err:
return(ret);
}
+static int get_proxy_auth_ex_data_idx(void)
+ {
+ static volatile int idx = -1;
+ if (idx < 0)
+ {
+ CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX);
+ if (idx < 0)
+ {
+ idx = X509_STORE_CTX_get_ex_new_index(0,
+ "SSLtest for verify callback", NULL,NULL,NULL);
+ }
+ CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX);
+ }
+ return idx;
+ }
+
static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
{
char *s,buf[256];
@@ -1569,7 +1603,8 @@ static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
if (s != NULL)
{
if (ok)
- fprintf(stderr,"depth=%d %s\n",ctx->error_depth,buf);
+ fprintf(stderr,"depth=%d %s\n",
+ ctx->error_depth,buf);
else
fprintf(stderr,"depth=%d error=%d %s\n",
ctx->error_depth,ctx->error,buf);
@@ -1586,25 +1621,440 @@ static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
}
}
+ if (ok == 1)
+ {
+ X509 *xs = ctx->current_cert;
+#if 0
+ X509 *xi = ctx->current_issuer;
+#endif
+
+ if (xs->ex_flags & EXFLAG_PROXY)
+ {
+ unsigned int *letters =
+ X509_STORE_CTX_get_ex_data(ctx,
+ get_proxy_auth_ex_data_idx());
+
+ if (letters)
+ {
+ int found_any = 0;
+ int i;
+ PROXY_CERT_INFO_EXTENSION *pci =
+ X509_get_ext_d2i(xs, NID_proxyCertInfo,
+ NULL, NULL);
+
+ switch (OBJ_obj2nid(pci->proxyPolicy->policyLanguage))
+ {
+ case NID_Independent:
+ /* Completely meaningless in this
+ program, as there's no way to
+ grant explicit rights to a
+ specific PrC. Basically, using
+ id-ppl-Independent is the perfect
+ way to grant no rights at all. */
+ fprintf(stderr, " Independent proxy certificate");
+ for (i = 0; i < 26; i++)
+ letters[i] = 0;
+ break;
+ case NID_id_ppl_inheritAll:
+ /* This is basically a NOP, we
+ simply let the current rights
+ stand as they are. */
+ fprintf(stderr, " Proxy certificate inherits all");
+ break;
+ default:
+ s = (char *)
+ pci->proxyPolicy->policy->data;
+ i = pci->proxyPolicy->policy->length;
+
+ /* The algorithm works as follows:
+ it is assumed that previous
+ iterations or the initial granted
+ rights has already set some elements
+ of `letters'. What we need to do is
+ to clear those that weren't granted
+ by the current PrC as well. The
+ easiest way to do this is to add 1
+ to all the elements whose letters
+ are given with the current policy.
+ That way, all elements that are set
+ by the current policy and were
+ already set by earlier policies and
+ through the original grant of rights
+ will get the value 2 or higher.
+ The last thing to do is to sweep
+ through `letters' and keep the
+ elements having the value 2 as set,
+ and clear all the others. */
+
+ fprintf(stderr, " Certificate proxy rights = %*.*s", i, i, s);
+ while(i-- > 0)
+ {
+ char c = *s++;
+ if (isascii(c) && isalpha(c))
+ {
+ if (islower(c))
+ c = toupper(c);
+ letters[c - 'A']++;
+ }
+ }
+ for (i = 0; i < 26; i++)
+ if (letters[i] < 2)
+ letters[i] = 0;
+ else
+ letters[i] = 1;
+ }
+
+ found_any = 0;
+ fprintf(stderr,
+ ", resulting proxy rights = ");
+ for(i = 0; i < 26; i++)
+ if (letters[i])
+ {
+ fprintf(stderr, "%c", i + 'A');
+ found_any = 1;
+ }
+ if (!found_any)
+ fprintf(stderr, "none");
+ fprintf(stderr, "\n");
+
+ PROXY_CERT_INFO_EXTENSION_free(pci);
+ }
+ }
+ }
+
return(ok);
}
+static void process_proxy_debug(int indent, const char *format, ...)
+ {
+ static const char indentation[] =
+ ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+ ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"; /* That's 80 > */
+ char my_format[256];
+ va_list args;
+
+ BIO_snprintf(my_format, sizeof(my_format), "%*.*s %s",
+ indent, indent, indentation, format);
+
+ va_start(args, format);
+ vfprintf(stderr, my_format, args);
+ va_end(args);
+ }
+/* Priority levels:
+ 0 [!]var, ()
+ 1 & ^
+ 2 |
+*/
+static int process_proxy_cond_adders(unsigned int letters[26],
+ const char *cond, const char **cond_end, int *pos, int indent);
+static int process_proxy_cond_val(unsigned int letters[26],
+ const char *cond, const char **cond_end, int *pos, int indent)
+ {
+ char c;
+ int ok = 1;
+ int negate = 0;
+
+ while(isspace(*cond))
+ {
+ cond++; (*pos)++;
+ }
+ c = *cond;
+
+ if (debug)
+ process_proxy_debug(indent,
+ "Start process_proxy_cond_val at position %d: %s\n",
+ *pos, cond);
+
+ while(c == '!')
+ {
+ negate = !negate;
+ cond++; (*pos)++;
+ while(isspace(*cond))
+ {
+ cond++; (*pos)++;
+ }
+ c = *cond;
+ }
+
+ if (c == '(')
+ {
+ cond++; (*pos)++;
+ ok = process_proxy_cond_adders(letters, cond, cond_end, pos,
+ indent + 1);
+ cond = *cond_end;
+ if (ok < 0)
+ goto end;
+ while(isspace(*cond))
+ {
+ cond++; (*pos)++;
+ }
+ c = *cond;
+ if (c != ')')
+ {
+ fprintf(stderr,
+ "Weird condition character in position %d: "
+ "%c\n", *pos, c);
+ ok = -1;
+ goto end;
+ }
+ cond++; (*pos)++;
+ }
+ else if (isascii(c) && isalpha(c))
+ {
+ if (islower(c))
+ c = toupper(c);
+ ok = letters[c - 'A'];
+ cond++; (*pos)++;
+ }
+ else
+ {
+ fprintf(stderr,
+ "Weird condition character in position %d: "
+ "%c\n", *pos, c);
+ ok = -1;
+ goto end;
+ }
+ end:
+ *cond_end = cond;
+ if (ok >= 0 && negate)
+ ok = !ok;
+
+ if (debug)
+ process_proxy_debug(indent,
+ "End process_proxy_cond_val at position %d: %s, returning %d\n",
+ *pos, cond, ok);
+
+ return ok;
+ }
+static int process_proxy_cond_multipliers(unsigned int letters[26],
+ const char *cond, const char **cond_end, int *pos, int indent)
+ {
+ int ok;
+ char c;
+
+ if (debug)
+ process_proxy_debug(indent,
+ "Start process_proxy_cond_multipliers at position %d: %s\n",
+ *pos, cond);
+
+ ok = process_proxy_cond_val(letters, cond, cond_end, pos, indent + 1);
+ cond = *cond_end;
+ if (ok < 0)
+ goto end;
+
+ while(ok >= 0)
+ {
+ while(isspace(*cond))
+ {
+ cond++; (*pos)++;
+ }
+ c = *cond;
+
+ switch(c)
+ {
+ case '&':
+ case '^':
+ {
+ int save_ok = ok;
+
+ cond++; (*pos)++;
+ ok = process_proxy_cond_val(letters,
+ cond, cond_end, pos, indent + 1);
+ cond = *cond_end;
+ if (ok < 0)
+ break;
+
+ switch(c)
+ {
+ case '&':
+ ok &= save_ok;
+ break;
+ case '^':
+ ok ^= save_ok;
+ break;
+ default:
+ fprintf(stderr, "SOMETHING IS SERIOUSLY WRONG!"
+ " STOPPING\n");
+ EXIT(1);
+ }
+ }
+ break;
+ default:
+ goto end;
+ }
+ }
+ end:
+ if (debug)
+ process_proxy_debug(indent,
+ "End process_proxy_cond_multipliers at position %d: %s, returning %d\n",
+ *pos, cond, ok);
+
+ *cond_end = cond;
+ return ok;
+ }
+static int process_proxy_cond_adders(unsigned int letters[26],
+ const char *cond, const char **cond_end, int *pos, int indent)
+ {
+ int ok;
+ char c;
+
+ if (debug)
+ process_proxy_debug(indent,
+ "Start process_proxy_cond_adders at position %d: %s\n",
+ *pos, cond);
+
+ ok = process_proxy_cond_multipliers(letters, cond, cond_end, pos,
+ indent + 1);
+ cond = *cond_end;
+ if (ok < 0)
+ goto end;
+
+ while(ok >= 0)
+ {
+ while(isspace(*cond))
+ {
+ cond++; (*pos)++;
+ }
+ c = *cond;
+
+ switch(c)
+ {
+ case '|':
+ {
+ int save_ok = ok;
+
+ cond++; (*pos)++;
+ ok = process_proxy_cond_multipliers(letters,
+ cond, cond_end, pos, indent + 1);
+ cond = *cond_end;
+ if (ok < 0)
+ break;
+
+ switch(c)
+ {
+ case '|':
+ ok |= save_ok;
+ break;
+ default:
+ fprintf(stderr, "SOMETHING IS SERIOUSLY WRONG!"
+ " STOPPING\n");
+ EXIT(1);
+ }
+ }
+ break;
+ default:
+ goto end;
+ }
+ }
+ end:
+ if (debug)
+ process_proxy_debug(indent,
+ "End process_proxy_cond_adders at position %d: %s, returning %d\n",
+ *pos, cond, ok);
+
+ *cond_end = cond;
+ return ok;
+ }
+
+static int process_proxy_cond(unsigned int letters[26],
+ const char *cond, const char **cond_end)
+ {
+ int pos = 1;
+ return process_proxy_cond_adders(letters, cond, cond_end, &pos, 1);
+ }
+
static int MS_CALLBACK app_verify_callback(X509_STORE_CTX *ctx, void *arg)
{
- char *s = NULL,buf[256];
int ok=1;
+ struct app_verify_arg *cb_arg = arg;
+ unsigned int letters[26]; /* only used with proxy_auth */
- fprintf(stderr, "In app_verify_callback, allowing cert. ");
- fprintf(stderr, "Arg is: %s\n", (char *)arg);
- fprintf(stderr, "Finished printing do we have a context? 0x%x a cert? 0x%x\n",
- (unsigned int)ctx, (unsigned int)ctx->cert);
- if (ctx->cert)
- s=X509_NAME_oneline(X509_get_subject_name(ctx->cert),buf,256);
- if (s != NULL)
+ if (cb_arg->app_verify)
{
+ char *s = NULL,buf[256];
+
+ fprintf(stderr, "In app_verify_callback, allowing cert. ");
+ fprintf(stderr, "Arg is: %s\n", cb_arg->string);
+ fprintf(stderr, "Finished printing do we have a context? 0x%x a cert? 0x%x\n",
+ (unsigned int)ctx, (unsigned int)ctx->cert);
+ if (ctx->cert)
+ s=X509_NAME_oneline(X509_get_subject_name(ctx->cert),buf,256);
+ if (s != NULL)
+ {
fprintf(stderr,"cert depth=%d %s\n",ctx->error_depth,buf);
+ }
+ return(1);
+ }
+ if (cb_arg->proxy_auth)
+ {
+ int found_any = 0, i;
+ char *sp;
+
+ for(i = 0; i < 26; i++)
+ letters[i] = 0;
+ for(sp = cb_arg->proxy_auth; *sp; sp++)
+ {
+ char c = *sp;
+ if (isascii(c) && isalpha(c))
+ {
+ if (islower(c))
+ c = toupper(c);
+ letters[c - 'A'] = 1;
+ }
+ }
+
+ fprintf(stderr,
+ " Initial proxy rights = ");
+ for(i = 0; i < 26; i++)
+ if (letters[i])
+ {
+ fprintf(stderr, "%c", i + 'A');
+ found_any = 1;
+ }
+ if (!found_any)
+ fprintf(stderr, "none");
+ fprintf(stderr, "\n");
+
+ X509_STORE_CTX_set_ex_data(ctx,
+ get_proxy_auth_ex_data_idx(),letters);
}
+#ifndef OPENSSL_NO_X509_VERIFY
+# ifdef OPENSSL_FIPS
+ if(s->version == TLS1_VERSION)
+ FIPS_allow_md5(1);
+# endif
+ ok = X509_verify_cert(ctx);
+# ifdef OPENSSL_FIPS
+ if(s->version == TLS1_VERSION)
+ FIPS_allow_md5(0);
+# endif
+#endif
+
+ if (cb_arg->proxy_auth)
+ {
+ if (ok)
+ {
+ const char *cond_end = NULL;
+
+ ok = process_proxy_cond(letters,
+ cb_arg->proxy_cond, &cond_end);
+
+ if (ok < 0)
+ EXIT(3);
+ if (*cond_end)
+ {
+ fprintf(stderr, "Stopped processing condition before it's end.\n");
+ ok = 0;
+ }
+ if (!ok)
+ fprintf(stderr, "Proxy rights check with condition '%s' proved invalid\n",
+ cb_arg->proxy_cond);
+ else
+ fprintf(stderr, "Proxy rights check with condition '%s' proved valid\n",
+ cb_arg->proxy_cond);
+ }
+ }
return(ok);
}
diff --git a/test/CAss.cnf b/test/CAss.cnf
index 0884fee361..20f8f05e3d 100644
--- a/test/CAss.cnf
+++ b/test/CAss.cnf
@@ -71,4 +71,6 @@ emailAddress = optional
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
-basicConstraints = CA:true
+basicConstraints = CA:true,pathlen:1
+keyUsage = cRLSign, keyCertSign
+issuerAltName=issuer:copy
diff --git a/test/Makefile.ssl b/test/Makefile.ssl
index b5c23a639f..1e733b3a1a 100644
--- a/test/Makefile.ssl
+++ b/test/Makefile.ssl
@@ -131,14 +131,6 @@ tests: exe apps $(TESTS)
apps:
@(cd ..; $(MAKE) DIRS=apps all)
-SET_SO_PATHS=OSSL_LIBPATH="`cd ..; pwd`"; \
- LD_LIBRARY_PATH="$$OSSL_LIBPATH:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="$$OSSL_LIBPATH:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="$$OSSL_LIBPATH:$$SHLIB_PATH"; \
- LIBPATH="$$OSSL_LIBPATH:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="$${LIBPATH}:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH
-
alltests: \
test_des test_idea test_sha test_md4 test_md5 test_hmac \
test_md2 test_mdc2 \
@@ -149,138 +141,144 @@ alltests: \
test_ss test_ca test_engine test_evp test_ssl
test_evp:
- $(SET_SO_PATHS); ./$(EVPTEST) evptests.txt
+ ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt
test_des:
- $(SET_SO_PATHS); ./$(DESTEST)
+ ../util/shlib_wrap.sh ./$(DESTEST)
test_idea:
- $(SET_SO_PATHS); ./$(IDEATEST)
+ ../util/shlib_wrap.sh ./$(IDEATEST)
test_sha:
- $(SET_SO_PATHS); ./$(SHATEST)
- $(SET_SO_PATHS); ./$(SHA1TEST)
- $(SET_SO_PATHS); ./$(SHA256TEST)
- $(SET_SO_PATHS); ./$(SHA512TEST)
+ ../util/shlib_wrap.sh ./$(SHATEST)
+ ../util/shlib_wrap.sh ./$(SHA1TEST)
+ ../util/shlib_wrap.sh ./$(SHA256TEST)
+ ../util/shlib_wrap.sh ./$(SHA512TEST)
test_mdc2:
- $(SET_SO_PATHS); ./$(MDC2TEST)
+ ../util/shlib_wrap.sh ./$(MDC2TEST)
test_md5:
- $(SET_SO_PATHS); ./$(MD5TEST)
+ ../util/shlib_wrap.sh ./$(MD5TEST)
test_md4:
- $(SET_SO_PATHS); ./$(MD4TEST)
+ ../util/shlib_wrap.sh ./$(MD4TEST)
test_hmac:
- $(SET_SO_PATHS); ./$(HMACTEST)
+ ../util/shlib_wrap.sh ./$(HMACTEST)
test_md2:
- $(SET_SO_PATHS); ./$(MD2TEST)
+ ../util/shlib_wrap.sh ./$(MD2TEST)
test_rmd:
- $(SET_SO_PATHS); ./$(RMDTEST)
+ ../util/shlib_wrap.sh ./$(RMDTEST)
test_bf:
- $(SET_SO_PATHS); ./$(BFTEST)
+ ../util/shlib_wrap.sh ./$(BFTEST)
test_cast:
- $(SET_SO_PATHS); ./$(CASTTEST)
+ ../util/shlib_wrap.sh ./$(CASTTEST)
test_rc2:
- $(SET_SO_PATHS); ./$(RC2TEST)
+ ../util/shlib_wrap.sh ./$(RC2TEST)
test_rc4:
- $(SET_SO_PATHS); ./$(RC4TEST)
+ ../util/shlib_wrap.sh ./$(RC4TEST)
test_rc5:
- $(SET_SO_PATHS); ./$(RC5TEST)
+ ../util/shlib_wrap.sh ./$(RC5TEST)
test_rand:
- $(SET_SO_PATHS); ./$(RANDTEST)
+ ../util/shlib_wrap.sh ./$(RANDTEST)
test_enc:
- @$(SET_SO_PATHS); sh ./testenc
+ @sh ./testenc
test_x509:
echo test normal x509v1 certificate
- $(SET_SO_PATHS); sh ./tx509 2>/dev/null
+ sh ./tx509 2>/dev/null
echo test first x509v3 certificate
- $(SET_SO_PATHS); sh ./tx509 v3-cert1.pem 2>/dev/null
+ sh ./tx509 v3-cert1.pem 2>/dev/null
echo test second x509v3 certificate
- $(SET_SO_PATHS); sh ./tx509 v3-cert2.pem 2>/dev/null
+ sh ./tx509 v3-cert2.pem 2>/dev/null
test_rsa:
- @$(SET_SO_PATHS); sh ./trsa 2>/dev/null
- $(SET_SO_PATHS); ./$(RSATEST)
+ @sh ./trsa 2>/dev/null
+ ../util/shlib_wrap.sh ./$(RSATEST)
test_crl:
- @$(SET_SO_PATHS); sh ./tcrl 2>/dev/null
+ @sh ./tcrl 2>/dev/null
test_sid:
- @$(SET_SO_PATHS); sh ./tsid 2>/dev/null
+ @sh ./tsid 2>/dev/null
test_req:
- @$(SET_SO_PATHS); sh ./treq 2>/dev/null
- @$(SET_SO_PATHS); sh ./treq testreq2.pem 2>/dev/null
+ @sh ./treq 2>/dev/null
+ @sh ./treq testreq2.pem 2>/dev/null
test_pkcs7:
- @$(SET_SO_PATHS); sh ./tpkcs7 2>/dev/null
- @$(SET_SO_PATHS); sh ./tpkcs7d 2>/dev/null
+ @sh ./tpkcs7 2>/dev/null
+ @sh ./tpkcs7d 2>/dev/null
test_bn:
@echo starting big number library test, could take a while...
- @$(SET_SO_PATHS); ./$(BNTEST) >tmp.bntest
+ @../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'
- $(SET_SO_PATHS); ./$(EXPTEST)
+ ../util/shlib_wrap.sh ./$(EXPTEST)
test_ec:
@echo 'test elliptic curves'
- $(SET_SO_PATHS); ./$(ECTEST)
+ ../util/shlib_wrap.sh ./$(ECTEST)
test_ecdsa:
@echo 'test ecdsa'
- $(SET_SO_PATHS); ./$(ECDSATEST)
+ ../util/shlib_wrap.sh ./$(ECDSATEST)
test_ecdh:
@echo 'test ecdh'
- $(SET_SO_PATHS); ./$(ECDHTEST)
+ ../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"
- $(SET_SO_PATHS); ../apps/openssl verify -CApath ../certs ../certs/*.pem
+ ../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs ../certs/*.pem
test_dh:
@echo "Generate a set of DH parameters"
- $(SET_SO_PATHS); ./$(DHTEST)
+ ../util/shlib_wrap.sh ./$(DHTEST)
test_dsa:
@echo "Generate a set of DSA parameters"
- $(SET_SO_PATHS); ./$(DSATEST)
- $(SET_SO_PATHS); ./$(DSATEST) -app2_1
+ ../util/shlib_wrap.sh ./$(DSATEST)
+ ../util/shlib_wrap.sh ./$(DSATEST) -app2_1
test_gen:
@echo "Generate and verify a certificate request"
- @$(SET_SO_PATHS); sh ./testgen
+ @sh ./testgen
-test_ss keyU.ss certU.ss certCA.ss: testss
+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"
- @$(SET_SO_PATHS); sh ./testss
+ @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"
- $(SET_SO_PATHS); ./$(ENGINETEST)
+ ../util/shlib_wrap.sh ./$(ENGINETEST)
-test_ssl: keyU.ss certU.ss certCA.ss
+test_ssl: keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
+ intP1.ss intP2.ss
@echo "test SSL protocol"
- @$(SET_SO_PATHS); sh ./testssl keyU.ss certU.ss certCA.ss
+ @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:
- @$(SET_SO_PATHS); if ../apps/openssl no-rsa; then \
+ @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"; \
@@ -289,7 +287,7 @@ test_ca:
test_aes: #$(AESTEST)
# @echo "test Rijndael"
-# $(SET_SO_PATHS); ./$(AESTEST)
+# ../util/shlib_wrap.sh ./$(AESTEST)
lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
@@ -320,7 +318,8 @@ $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RSATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RSATEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(RSATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -336,7 +335,8 @@ $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(BNTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(BNTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(BNTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -352,7 +352,8 @@ $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ECTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ECTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(ECTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -368,7 +369,8 @@ $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(EXPTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(EXPTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(EXPTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -384,7 +386,8 @@ $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(IDEATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(IDEATEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(IDEATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -400,7 +403,8 @@ $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MD2TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MD2TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(MD2TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -416,7 +420,8 @@ $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHATEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(SHATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -432,7 +437,8 @@ $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHA1TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHA1TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(SHA1TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -448,7 +454,8 @@ $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHA256TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHA256TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(SHA256TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -464,7 +471,8 @@ $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHA512TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHA512TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(SHA512TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -480,7 +488,8 @@ $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RMDTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RMDTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(RMDTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -496,7 +505,8 @@ $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MDC2TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MDC2TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(MDC2TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -512,7 +522,8 @@ $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MD4TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MD4TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(MD4TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -528,7 +539,8 @@ $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MD5TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MD5TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(MD5TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -544,7 +556,8 @@ $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(HMACTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(HMACTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(HMACTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -560,7 +573,8 @@ $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RC2TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RC2TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(RC2TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -576,7 +590,8 @@ $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(BFTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(BFTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(BFTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -592,7 +607,8 @@ $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(CASTTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(CASTTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(CASTTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -608,7 +624,8 @@ $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RC4TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RC4TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(RC4TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -624,7 +641,8 @@ $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RC5TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RC5TEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(RC5TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -640,7 +658,8 @@ $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(DESTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(DESTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(DESTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -656,7 +675,8 @@ $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RANDTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RANDTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(RANDTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -672,7 +692,8 @@ $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(DHTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(DHTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(DHTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -688,7 +709,8 @@ $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(DSATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(DSATEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(DSATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -704,7 +726,8 @@ $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(METHTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(METHTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(METHTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -720,7 +743,8 @@ $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
LIBRARIES="$(LIBSSL) $(LIBKRB5) $(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SSLTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SSLTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(SSLTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -736,7 +760,8 @@ $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ENGINETEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ENGINETEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(ENGINETEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -752,7 +777,8 @@ $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(EVPTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(EVPTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(EVPTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -768,7 +794,8 @@ $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ECDSATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ECDSATEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(ECDSATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -784,7 +811,8 @@ $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ECDHTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ECDHTEST)$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="$(ECDHTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -810,11 +838,13 @@ dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=dummytest$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
+ APPNAME=dummytest$(EXE_EXT) CC="$(CC)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
OBJECTS="dummytest.o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
+ @case "../*.dll" in *\**) ;; *) cp -p ../*.dll .;; esac
# DO NOT DELETE THIS LINE -- make depend depends on it.
@@ -960,7 +990,8 @@ 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.c
+rc4test.o: ../include/openssl/opensslconf.h ../include/openssl/rc4.h
+rc4test.o: ../include/openssl/sha.h rc4test.c
rc5test.o: ../e_os.h ../include/openssl/e_os2.h
rc5test.o: ../include/openssl/opensslconf.h ../include/openssl/rc5.h rc5test.c
rmdtest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
@@ -994,20 +1025,21 @@ shatest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
shatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h shatest.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/crypto.h
-ssltest.o: ../include/openssl/dh.h ../include/openssl/dsa.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/kssl.h
-ssltest.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
-ssltest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
-ssltest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
-ssltest.o: ../include/openssl/pem.h ../include/openssl/pem2.h
-ssltest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
-ssltest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
-ssltest.o: ../include/openssl/sha.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.c
+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/e_os2.h
+ssltest.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+ssltest.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+ssltest.o: ../include/openssl/err.h ../include/openssl/evp.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/rand.h ../include/openssl/rsa.h
+ssltest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+ssltest.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+ssltest.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+ssltest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ssltest.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+ssltest.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h ssltest.c
diff --git a/test/Uss.cnf b/test/Uss.cnf
index c89692d519..0c0ebb5f67 100644
--- a/test/Uss.cnf
+++ b/test/Uss.cnf
@@ -26,3 +26,11 @@ organizationName_value = Dodgy Brothers
1.commonName = Common Name (eg, YOUR name)
1.commonName_value = Brother 2
+
+[ v3_ee ]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+basicConstraints = CA:false
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+issuerAltName=issuer:copy
+
diff --git a/test/tcrl b/test/tcrl
index f71ef7a863..055269eab8 100644
--- a/test/tcrl
+++ b/test/tcrl
@@ -1,13 +1,6 @@
#!/bin/sh
-if test "$OSTYPE" = msdosdjgpp; then
- PATH=../apps\;$PATH
-else
- PATH=../apps:$PATH
-fi
-export PATH
-
-cmd='../apps/openssl crl'
+cmd='../util/shlib_wrap.sh ../apps/openssl crl'
if [ "$1"x != "x" ]; then
t=$1
diff --git a/test/testca b/test/testca
index 8215ebb5d1..b109cfe271 100644
--- a/test/testca
+++ b/test/testca
@@ -2,15 +2,18 @@
SH="/bin/sh"
if test "$OSTYPE" = msdosdjgpp; then
- PATH=./apps\;../apps\;$PATH
+ PATH="../apps\;$PATH"
else
- PATH=../apps:$PATH
+ PATH="../apps:$PATH"
fi
export SH PATH
SSLEAY_CONFIG="-config CAss.cnf"
export SSLEAY_CONFIG
+OPENSSL="`pwd`/../util/opensslwrap.sh"
+export OPENSSL
+
/bin/rm -fr demoCA
$SH ../apps/CA.sh -newca <<EOF
EOF
diff --git a/test/testenc b/test/testenc
index 0656c7f525..23e3f5a376 100644
--- a/test/testenc
+++ b/test/testenc
@@ -2,7 +2,7 @@
testsrc=Makefile.ssl
test=./p
-cmd=../apps/openssl
+cmd="../util/shlib_wrap.sh ../apps/openssl"
cat $testsrc >$test;
diff --git a/test/testgen b/test/testgen
index 3798543e04..524c0d134c 100644
--- a/test/testgen
+++ b/test/testgen
@@ -17,7 +17,7 @@ echo "generating certificate request"
echo "string to make the random number generator think it has entropy" >> ./.rnd
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
req_new='-newkey dsa:../apps/dsa512.pem'
else
req_new='-new'
@@ -29,13 +29,13 @@ echo "This could take some time."
rm -f testkey.pem testreq.pem
-../apps/openssl req -config test.cnf $req_new -out testreq.pem
+../util/shlib_wrap.sh ../apps/openssl req -config test.cnf $req_new -out testreq.pem
if [ $? != 0 ]; then
echo problems creating request
exit 1
fi
-../apps/openssl req -config test.cnf -verify -in testreq.pem -noout
+../util/shlib_wrap.sh ../apps/openssl req -config test.cnf -verify -in testreq.pem -noout
if [ $? != 0 ]; then
echo signature on req is wrong
exit 1
diff --git a/test/testss b/test/testss
index 8d3557f356..1a426857d3 100644
--- a/test/testss
+++ b/test/testss
@@ -1,9 +1,9 @@
#!/bin/sh
-digest='-md5'
-reqcmd="../apps/openssl req"
-x509cmd="../apps/openssl x509 $digest"
-verifycmd="../apps/openssl verify"
+digest='-sha1'
+reqcmd="../util/shlib_wrap.sh ../apps/openssl req"
+x509cmd="../util/shlib_wrap.sh ../apps/openssl x509 $digest"
+verifycmd="../util/shlib_wrap.sh ../apps/openssl verify"
dummycnf="../apps/openssl.cnf"
CAkey="keyCA.ss"
@@ -17,12 +17,24 @@ Ukey="keyU.ss"
Ureq="reqU.ss"
Ucert="certU.ss"
+P1conf="P1ss.cnf"
+P1key="keyP1.ss"
+P1req="reqP1.ss"
+P1cert="certP1.ss"
+P1intermediate="tmp_intP1.ss"
+
+P2conf="P2ss.cnf"
+P2key="keyP2.ss"
+P2req="reqP2.ss"
+P2cert="certP2.ss"
+P2intermediate="tmp_intP2.ss"
+
echo
echo "make a certificate request using 'req'"
echo "string to make the random number generator think it has entropy" >> ./.rnd
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
req_new='-newkey dsa:../apps/dsa512.pem'
else
req_new='-new'
@@ -35,7 +47,7 @@ if [ $? != 0 ]; then
fi
echo
echo "convert the certificate request into a self signed certificate using 'x509'"
-$x509cmd -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey >err.ss
+$x509cmd -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey -extfile $CAconf -extensions v3_ca >err.ss
if [ $? != 0 ]; then
echo "error using 'x509' to self sign a certificate request"
exit 1
@@ -68,18 +80,18 @@ if [ $? != 0 ]; then
fi
echo
-echo "make another certificate request using 'req'"
+echo "make a user certificate request using 'req'"
$reqcmd -config $Uconf -out $Ureq -keyout $Ukey $req_new >err.ss
if [ $? != 0 ]; then
- echo "error using 'req' to generate a certificate request"
+ echo "error using 'req' to generate a user certificate request"
exit 1
fi
echo
-echo "sign certificate request with the just created CA via 'x509'"
-$x509cmd -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey >err.ss
+echo "sign user certificate request with the just created CA via 'x509'"
+$x509cmd -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -extfile $Uconf -extensions v3_ee >err.ss
if [ $? != 0 ]; then
- echo "error using 'x509' to sign a certificate request"
+ echo "error using 'x509' to sign a user certificate request"
exit 1
fi
@@ -89,11 +101,63 @@ echo "Certificate details"
$x509cmd -subject -issuer -startdate -enddate -noout -in $Ucert
echo
+echo "make a proxy certificate request using 'req'"
+$reqcmd -config $P1conf -out $P1req -keyout $P1key $req_new >err.ss
+if [ $? != 0 ]; then
+ echo "error using 'req' to generate a proxy certificate request"
+ exit 1
+fi
+
+echo
+echo "sign proxy certificate request with the just created user certificate via 'x509'"
+$x509cmd -CAcreateserial -in $P1req -days 30 -req -out $P1cert -CA $Ucert -CAkey $Ukey -extfile $P1conf -extensions v3_proxy >err.ss
+if [ $? != 0 ]; then
+ echo "error using 'x509' to sign a proxy certificate request"
+ exit 1
+fi
+
+cat $Ucert > $P1intermediate
+$verifycmd -CAfile $CAcert -untrusted $P1intermediate $P1cert
+echo
+echo "Certificate details"
+$x509cmd -subject -issuer -startdate -enddate -noout -in $P1cert
+
+echo
+echo "make another proxy certificate request using 'req'"
+$reqcmd -config $P2conf -out $P2req -keyout $P2key $req_new >err.ss
+if [ $? != 0 ]; then
+ echo "error using 'req' to generate another proxy certificate request"
+ exit 1
+fi
+
+echo
+echo "sign second proxy certificate request with the first proxy certificate via 'x509'"
+$x509cmd -CAcreateserial -in $P2req -days 30 -req -out $P2cert -CA $P1cert -CAkey $P1key -extfile $P2conf -extensions v3_proxy >err.ss
+if [ $? != 0 ]; then
+ echo "error using 'x509' to sign a second proxy certificate request"
+ exit 1
+fi
+
+cat $Ucert $P1cert > $P2intermediate
+$verifycmd -CAfile $CAcert -untrusted $P2intermediate $P2cert
+echo
+echo "Certificate details"
+$x509cmd -subject -issuer -startdate -enddate -noout -in $P2cert
+
+echo
echo The generated CA certificate is $CAcert
echo The generated CA private key is $CAkey
echo The generated user certificate is $Ucert
echo The generated user private key is $Ukey
+echo The first generated proxy certificate is $P1cert
+echo The first generated proxy private key is $P1key
+
+echo The second generated proxy certificate is $P2cert
+echo The second generated proxy private key is $P2key
+
/bin/rm err.ss
+#/bin/rm $P1intermediate
+#/bin/rm $P2intermediate
exit 0
diff --git a/test/testssl b/test/testssl
index ca8e718022..8ac90ae5ee 100644
--- a/test/testssl
+++ b/test/testssl
@@ -10,9 +10,9 @@ if [ "$2" = "" ]; then
else
cert="$2"
fi
-ssltest="./ssltest -key $key -cert $cert -c_key $key -c_cert $cert"
+ssltest="../util/shlib_wrap.sh ./ssltest -key $key -cert $cert -c_key $key -c_cert $cert"
-if ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then
+if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then
dsa_cert=YES
else
dsa_cert=NO
@@ -121,24 +121,24 @@ $ssltest -bio_pair -server_auth -client_auth -app_verify $CA $extra || exit 1
#############################################################################
-if ../apps/openssl no-dh; then
+if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
echo skipping anonymous DH tests
else
echo test tls1 with 1024bit anonymous DH, multiple handshakes
$ssltest -v -bio_pair -tls1 -cipher ADH -dhe1024dsa -num 10 -f -time $extra || exit 1
fi
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
echo skipping RSA tests
else
echo test tls1 with 1024bit RSA, no DHE, multiple handshakes
- ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f -time $extra || exit 1
+ ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f -time $extra || exit 1
- if ../apps/openssl no-dh; then
+ if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
echo skipping RSA+DHE tests
else
echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes
- ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
+ ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
fi
fi
diff --git a/test/tpkcs7 b/test/tpkcs7
index cf3bd9fadb..3e435ffbf9 100644
--- a/test/tpkcs7
+++ b/test/tpkcs7
@@ -1,13 +1,6 @@
#!/bin/sh
-if test "$OSTYPE" = msdosdjgpp; then
- PATH=../apps\;$PATH
-else
- PATH=../apps:$PATH
-fi
-export PATH
-
-cmd='../apps/openssl pkcs7'
+cmd='../util/shlib_wrap.sh ../apps/openssl pkcs7'
if [ "$1"x != "x" ]; then
t=$1
diff --git a/test/tpkcs7d b/test/tpkcs7d
index 18f9311b06..64fc28e88f 100644
--- a/test/tpkcs7d
+++ b/test/tpkcs7d
@@ -1,13 +1,6 @@
#!/bin/sh
-if test "$OSTYPE" = msdosdjgpp; then
- PATH=../apps\;$PATH
-else
- PATH=../apps:$PATH
-fi
-export PATH
-
-cmd='../apps/openssl pkcs7'
+cmd='../util/shlib_wrap.sh ../apps/openssl pkcs7'
if [ "$1"x != "x" ]; then
t=$1
diff --git a/test/treq b/test/treq
index 47a8273cde..2f20e640cf 100644
--- a/test/treq
+++ b/test/treq
@@ -1,13 +1,6 @@
#!/bin/sh
-if test "$OSTYPE" = msdosdjgpp; then
- PATH=../apps\;$PATH
-else
- PATH=../apps:$PATH
-fi
-export PATH
-
-cmd='../apps/openssl req -config ../apps/openssl.cnf'
+cmd='../util/shlib_wrap.sh ../apps/openssl req -config ../apps/openssl.cnf'
if [ "$1"x != "x" ]; then
t=$1
diff --git a/test/trsa b/test/trsa
index 413e2ec0a0..249ac1ddcc 100644
--- a/test/trsa
+++ b/test/trsa
@@ -1,18 +1,11 @@
#!/bin/sh
-if test "$OSTYPE" = msdosdjgpp; then
- PATH=../apps\;$PATH
-else
- PATH=../apps:$PATH
-fi
-export PATH
-
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
echo skipping rsa conversion test
exit 0
fi
-cmd='../apps/openssl rsa'
+cmd='../util/shlib_wrap.sh ../apps/openssl rsa'
if [ "$1"x != "x" ]; then
t=$1
diff --git a/test/tsid b/test/tsid
index 40a1dfa97c..6adbd531ce 100644
--- a/test/tsid
+++ b/test/tsid
@@ -1,13 +1,6 @@
#!/bin/sh
-if test "$OSTYPE" = msdosdjgpp; then
- PATH=../apps\;$PATH
-else
- PATH=../apps:$PATH
-fi
-export PATH
-
-cmd='../apps/openssl sess_id'
+cmd='../util/shlib_wrap.sh ../apps/openssl sess_id'
if [ "$1"x != "x" ]; then
t=$1
diff --git a/test/tx509 b/test/tx509
index d380963abc..4a15b98d17 100644
--- a/test/tx509
+++ b/test/tx509
@@ -1,13 +1,6 @@
#!/bin/sh
-if test "$OSTYPE" = msdosdjgpp; then
- PATH=../apps\;$PATH
-else
- PATH=../apps:$PATH
-fi
-export PATH
-
-cmd='../apps/openssl x509'
+cmd='../util/shlib_wrap.sh ../apps/openssl x509'
if [ "$1"x != "x" ]; then
t=$1
diff --git a/util/cygwin.sh b/util/cygwin.sh
index 930f766b4f..0cc3197870 100755
--- a/util/cygwin.sh
+++ b/util/cygwin.sh
@@ -39,7 +39,7 @@ function base_install()
function doc_install()
{
- DOC_DIR=${INSTALL_PREFIX}/usr/doc/openssl
+ DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl
mkdir -p ${DOC_DIR}
cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR}
@@ -49,7 +49,7 @@ function doc_install()
function create_cygwin_readme()
{
- README_DIR=${INSTALL_PREFIX}/usr/doc/Cygwin
+ README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin
README_FILE=${README_DIR}/openssl-${VERSION}.README
mkdir -p ${README_DIR}
@@ -112,8 +112,8 @@ cd ${INSTALL_PREFIX}
strip usr/bin/*.exe usr/bin/*.dll
# Runtime package
-find etc usr/bin usr/doc usr/ssl/certs usr/ssl/man/man[157] usr/ssl/misc \
- usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d |
+find etc usr/bin usr/share/doc usr/ssl/certs usr/ssl/man/man[157] \
+ usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d |
tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
# Development package
find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d |
diff --git a/util/libeay.num b/util/libeay.num
index 2dc32dc7dd..30beee2fb3 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -2804,432 +2804,499 @@ OPENSSL_cleanse 3245 EXIST::FUNCTION:
BN_get0_nist_prime_384 3246 EXIST::FUNCTION:
ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE
ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH
-ERR_set_mark 3248 EXIST::FUNCTION:
-ENGINE_set_STORE 3249 EXIST::FUNCTION:ENGINE
-ENGINE_register_ECDSA 3250 EXIST::FUNCTION:ENGINE
-STORE_method_set_list_start_function 3251 EXIST:!VMS:FUNCTION:
-STORE_meth_set_list_start_fn 3251 EXIST:VMS:FUNCTION:
-NAME_CONSTRAINTS_free 3252 EXIST::FUNCTION:
-STORE_ATTR_INFO_set_number 3253 EXIST::FUNCTION:
-POLICY_MAPPING_it 3254 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-POLICY_MAPPING_it 3254 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-STORE_parse_attrs_start 3255 EXIST::FUNCTION:
-POLICY_CONSTRAINTS_free 3256 EXIST::FUNCTION:
-BN_nist_mod_192 3257 EXIST::FUNCTION:
-EC_GROUP_get_trinomial_basis 3258 EXIST::FUNCTION:EC
-STORE_set_method 3259 EXIST::FUNCTION:
-GENERAL_SUBTREE_free 3260 EXIST::FUNCTION:
-NAME_CONSTRAINTS_it 3261 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-NAME_CONSTRAINTS_it 3261 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-ECDH_get_default_method 3262 EXIST::FUNCTION:ECDH
-PKCS12_add_safe 3263 EXIST::FUNCTION:
-STORE_method_get_update_store_function 3264 EXIST:!VMS:FUNCTION:
-STORE_meth_get_update_store_fn 3264 EXIST:VMS:FUNCTION:
-ENGINE_register_ECDH 3265 EXIST::FUNCTION:ENGINE
-i2d_ECPrivateKey 3266 EXIST::FUNCTION:EC
-BN_get0_nist_prime_192 3267 EXIST::FUNCTION:
-STORE_modify_certificate 3268 EXIST::FUNCTION:
-EC_POINT_set_affine_coordinates_GF2m 3269 EXIST:!VMS:FUNCTION:EC
-EC_POINT_set_affine_coords_GF2m 3269 EXIST:VMS:FUNCTION:EC
-BN_GF2m_mod_exp_arr 3270 EXIST::FUNCTION:
-STORE_ATTR_INFO_modify_number 3271 EXIST::FUNCTION:
-X509_keyid_get0 3272 EXIST::FUNCTION:
-EC_GROUP_new_by_nid 3273 EXIST::FUNCTION:EC
-ENGINE_load_gmp 3274 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
-BN_GF2m_mod_mul_arr 3275 EXIST::FUNCTION:
-STORE_list_public_key_endp 3276 EXIST::FUNCTION:
-o2i_ECPublicKey 3277 EXIST::FUNCTION:EC
-EC_KEY_copy 3278 EXIST::FUNCTION:EC
-EC_GROUP_check_discriminant 3279 EXIST::FUNCTION:EC
-i2o_ECPublicKey 3280 EXIST::FUNCTION:EC
-a2i_IPADDRESS 3281 EXIST::FUNCTION:
-STORE_method_set_initialise_function 3282 EXIST:!VMS:FUNCTION:
-STORE_meth_set_initialise_fn 3282 EXIST:VMS:FUNCTION:
-EC_POINT_point2bn 3283 EXIST::FUNCTION:EC
-STORE_ATTR_INFO_set_dn 3284 EXIST::FUNCTION:
-EC_GROUP_new_curve_GF2m 3285 EXIST::FUNCTION:EC
-STORE_destroy_method 3286 EXIST::FUNCTION:
-ENGINE_unregister_STORE 3287 EXIST::FUNCTION:ENGINE
-EVP_PKEY_get1_EC_KEY 3288 EXIST::FUNCTION:EC
-STORE_ATTR_INFO_get0_number 3289 EXIST::FUNCTION:
-ENGINE_get_default_ECDH 3290 EXIST::FUNCTION:ENGINE
-ASN1_OCTET_STRING_NDEF_it 3291 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-ASN1_OCTET_STRING_NDEF_it 3291 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-STORE_delete_public_key 3292 EXIST::FUNCTION:
-STORE_get_public_key 3293 EXIST::FUNCTION:
-STORE_modify_arbitrary 3294 EXIST::FUNCTION:
-ENGINE_get_static_state 3295 EXIST::FUNCTION:ENGINE
-ECDSA_SIG_new 3296 EXIST::FUNCTION:ECDSA
-BN_GF2m_mod_sqr 3297 EXIST::FUNCTION:
-EC_POINT_bn2point 3298 EXIST::FUNCTION:EC
-STORE_get_method 3299 EXIST::FUNCTION:
-STORE_parse_attrs_end 3300 EXIST::FUNCTION:
-EC_GROUP_get_point_conversion_form 3301 EXIST:!VMS:FUNCTION:EC
-EC_GROUP_get_point_conv_form 3301 EXIST:VMS:FUNCTION:EC
-STORE_method_set_store_function 3302 EXIST::FUNCTION:
-STORE_ATTR_INFO_in 3303 EXIST::FUNCTION:
-PEM_read_bio_ECPKParameters 3304 EXIST::FUNCTION:EC
-EC_GROUP_get_pentanomial_basis 3305 EXIST::FUNCTION:EC
-EC_GROUP_get_nid 3306 EXIST::FUNCTION:EC
-STORE_get_number 3307 EXIST::FUNCTION:
-ECDSA_sign_setup 3308 EXIST::FUNCTION:ECDSA
-BN_GF2m_mod_solve_quad_arr 3309 EXIST::FUNCTION:
-EC_KEY_up_ref 3310 EXIST::FUNCTION:EC
-POLICY_MAPPING_free 3311 EXIST::FUNCTION:
-BN_GF2m_mod_div 3312 EXIST::FUNCTION:
-EC_KEY_free 3313 EXIST::FUNCTION:EC
-STORE_method_set_list_next_function 3314 EXIST:!VMS:FUNCTION:
-STORE_meth_set_list_next_fn 3314 EXIST:VMS:FUNCTION:
-PEM_write_bio_ECPrivateKey 3315 EXIST::FUNCTION:EC
-d2i_EC_PUBKEY 3316 EXIST::FUNCTION:EC
-STORE_method_get_generate_function 3317 EXIST:!VMS:FUNCTION:
-STORE_meth_get_generate_fn 3317 EXIST:VMS:FUNCTION:
-STORE_method_set_list_end_function 3318 EXIST:!VMS:FUNCTION:
-STORE_meth_set_list_end_fn 3318 EXIST:VMS:FUNCTION:
-EC_GROUP_have_precompute_mult 3319 EXIST::FUNCTION:EC
-EC_KEY_print_fp 3320 EXIST::FUNCTION:EC,FP_API
-BN_GF2m_mod_arr 3321 EXIST::FUNCTION:
-PEM_write_bio_X509_CERT_PAIR 3322 EXIST::FUNCTION:
-EVP_PKEY_cmp 3323 EXIST::FUNCTION:
-STORE_new_engine 3324 EXIST::FUNCTION:
-STORE_list_public_key_start 3325 EXIST::FUNCTION:
-ECDH_get_ex_data 3326 EXIST::FUNCTION:ECDH
-ECDSA_do_sign 3327 EXIST::FUNCTION:ECDSA
-ENGINE_unregister_ECDH 3328 EXIST::FUNCTION:ENGINE
-ECDH_OpenSSL 3329 EXIST::FUNCTION:ECDH
-EC_POINT_dup 3330 EXIST::FUNCTION:EC
-GENERAL_SUBTREE_new 3331 EXIST::FUNCTION:
-STORE_list_crl_endp 3332 EXIST::FUNCTION:
-EC_get_builtin_curves 3333 EXIST::FUNCTION:EC
-STORE_list_crl_end 3334 EXIST::FUNCTION:
-EVP_PKEY_set1_EC_KEY 3335 EXIST::FUNCTION:EC
-BN_GF2m_mod_sqrt_arr 3336 EXIST::FUNCTION:
-i2d_ECPrivateKey_bio 3337 EXIST::FUNCTION:BIO,EC
-ECPKParameters_print_fp 3338 EXIST::FUNCTION:EC,FP_API
-ECDSA_SIG_free 3339 EXIST::FUNCTION:ECDSA
-PEM_write_bio_ECPKParameters 3340 EXIST::FUNCTION:EC
-STORE_method_set_ctrl_function 3341 EXIST::FUNCTION:
-STORE_list_public_key_end 3342 EXIST::FUNCTION:
-EC_GROUP_set_nid 3343 EXIST::FUNCTION:EC
-STORE_get_arbitrary 3344 EXIST::FUNCTION:
-STORE_store_crl 3345 EXIST::FUNCTION:
-PKCS12_add_safes 3346 EXIST::FUNCTION:
-BN_GF2m_poly2arr 3347 EXIST::FUNCTION:
-STORE_ctrl 3348 EXIST::FUNCTION:
-STORE_ATTR_INFO_compare 3349 EXIST::FUNCTION:
-BN_get0_nist_prime_224 3350 EXIST::FUNCTION:
-i2d_ECParameters 3351 EXIST::FUNCTION:EC
-i2d_ECPKParameters 3352 EXIST::FUNCTION:EC
-BN_GENCB_call 3353 EXIST::FUNCTION:
-BN_ncopy 3354 EXIST::FUNCTION:
-d2i_ECPKParameters 3355 EXIST::FUNCTION:EC
-STORE_method_set_generate_function 3356 EXIST:!VMS:FUNCTION:
-STORE_meth_set_generate_fn 3356 EXIST:VMS:FUNCTION:
-ENGINE_set_ECDH 3357 EXIST::FUNCTION:ENGINE
-NAME_CONSTRAINTS_new 3358 EXIST::FUNCTION:
-PEM_write_bio_EC_PUBKEY 3359 EXIST::FUNCTION:EC
-STORE_ATTR_INFO_set_cstr 3360 EXIST::FUNCTION:
-STORE_list_crl_next 3361 EXIST::FUNCTION:
-STORE_ATTR_INFO_in_range 3362 EXIST::FUNCTION:
-ECParameters_print 3363 EXIST::FUNCTION:BIO,EC
-STORE_method_set_delete_function 3364 EXIST:!VMS:FUNCTION:
-STORE_meth_set_delete_fn 3364 EXIST:VMS:FUNCTION:
-STORE_list_certificate_next 3365 EXIST::FUNCTION:
-ASN1_generate_nconf 3366 EXIST::FUNCTION:
-BUF_memdup 3367 EXIST::FUNCTION:
-BN_GF2m_mod_mul 3368 EXIST::FUNCTION:
-STORE_method_get_list_next_function 3369 EXIST:!VMS:FUNCTION:
-STORE_meth_get_list_next_fn 3369 EXIST:VMS:FUNCTION:
-STORE_ATTR_INFO_get0_dn 3370 EXIST::FUNCTION:
-STORE_list_private_key_next 3371 EXIST::FUNCTION:
-EC_GROUP_set_seed 3372 EXIST::FUNCTION:EC
-STORE_ATTR_INFO_free 3373 EXIST::FUNCTION:
-STORE_get_private_key 3374 EXIST::FUNCTION:
-STORE_ATTR_INFO_new 3375 EXIST::FUNCTION:
-EC_GROUP_get_curve_GF2m 3376 EXIST::FUNCTION:EC
-STORE_method_set_revoke_function 3377 EXIST:!VMS:FUNCTION:
-STORE_meth_set_revoke_fn 3377 EXIST:VMS:FUNCTION:
-STORE_store_number 3378 EXIST::FUNCTION:
-BN_is_prime_ex 3379 EXIST::FUNCTION:
-STORE_revoke_public_key 3380 EXIST::FUNCTION:
-STORE_delete_arbitrary 3381 EXIST::FUNCTION:
-PEM_read_X509_CERT_PAIR 3382 EXIST:!WIN16:FUNCTION:
-ECDSA_get_ex_data 3383 EXIST::FUNCTION:ECDSA
-BUF_strndup 3384 EXIST::FUNCTION:
-STORE_list_certificate_start 3385 EXIST::FUNCTION:
-BN_GF2m_mod 3386 EXIST::FUNCTION:
-X509_REQ_check_private_key 3387 EXIST::FUNCTION:
-EC_GROUP_get_seed_len 3388 EXIST::FUNCTION:EC
-ERR_load_STORE_strings 3389 EXIST::FUNCTION:
-PEM_read_bio_EC_PUBKEY 3390 EXIST::FUNCTION:EC
-STORE_list_private_key_end 3391 EXIST::FUNCTION:
-i2d_EC_PUBKEY 3392 EXIST::FUNCTION:EC
-ECDSA_get_default_method 3393 EXIST::FUNCTION:ECDSA
-ASN1_put_eoc 3394 EXIST::FUNCTION:
-ECDSA_DATA_free 3395 EXIST::FUNCTION:ECDSA
-STORE_modify_private_key 3396 EXIST::FUNCTION:
-EC_METHOD_get_field_type 3397 EXIST::FUNCTION:EC
-EC_GFp_nist_method 3398 EXIST::FUNCTION:EC
-STORE_method_set_modify_function 3399 EXIST:!VMS:FUNCTION:
-STORE_meth_set_modify_fn 3399 EXIST:VMS:FUNCTION:
-STORE_parse_attrs_next 3400 EXIST::FUNCTION:
-X509_CERT_PAIR_it 3401 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-X509_CERT_PAIR_it 3401 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-STORE_method_get_revoke_function 3402 EXIST:!VMS:FUNCTION:
-STORE_meth_get_revoke_fn 3402 EXIST:VMS:FUNCTION:
-STORE_method_set_get_function 3403 EXIST::FUNCTION:
-STORE_modify_number 3404 EXIST::FUNCTION:
-STORE_method_get_store_function 3405 EXIST::FUNCTION:
-STORE_store_private_key 3406 EXIST::FUNCTION:
-BN_GF2m_mod_sqr_arr 3407 EXIST::FUNCTION:
-STORE_Memory 3408 EXIST::FUNCTION:
-sk_find_ex 3409 EXIST::FUNCTION:
-EC_GROUP_set_curve_GF2m 3410 EXIST::FUNCTION:EC
-ENGINE_set_default_ECDSA 3411 EXIST::FUNCTION:ENGINE
-POLICY_CONSTRAINTS_new 3412 EXIST::FUNCTION:
-BN_GF2m_mod_sqrt 3413 EXIST::FUNCTION:
-ECDH_set_default_method 3414 EXIST::FUNCTION:ECDH
-EC_KEY_generate_key 3415 EXIST::FUNCTION:EC
-BN_GF2m_arr2poly 3416 EXIST::FUNCTION:
-STORE_method_get_get_function 3417 EXIST::FUNCTION:
-STORE_method_set_cleanup_function 3418 EXIST:!VMS:FUNCTION:
-STORE_meth_set_cleanup_fn 3418 EXIST:VMS:FUNCTION:
-EC_GROUP_check 3419 EXIST::FUNCTION:EC
-d2i_ECPrivateKey_bio 3420 EXIST::FUNCTION:BIO,EC
-STORE_method_get_lock_store_function 3421 EXIST:!VMS:FUNCTION:
-STORE_meth_get_lock_store_fn 3421 EXIST:VMS:FUNCTION:
-STORE_method_set_update_store_function 3422 EXIST:!VMS:FUNCTION:
-STORE_meth_set_update_store_fn 3422 EXIST:VMS:FUNCTION:
-d2i_ECPrivateKey 3423 EXIST::FUNCTION:EC
-ASN1_item_ndef_i2d 3424 EXIST::FUNCTION:
-STORE_delete_private_key 3425 EXIST::FUNCTION:
-ERR_pop_to_mark 3426 EXIST::FUNCTION:
-ENGINE_register_all_STORE 3427 EXIST::FUNCTION:ENGINE
-i2d_PKCS7_NDEF 3428 EXIST::FUNCTION:
-EC_GROUP_get_degree 3429 EXIST::FUNCTION:EC
-ASN1_generate_v3 3430 EXIST::FUNCTION:
-STORE_ATTR_INFO_modify_cstr 3431 EXIST::FUNCTION:
-BN_GF2m_add 3432 EXIST::FUNCTION:
-STORE_generate_crl 3433 EXIST::FUNCTION:
-STORE_store_public_key 3434 EXIST::FUNCTION:
-X509_CERT_PAIR_free 3435 EXIST::FUNCTION:
-STORE_revoke_private_key 3436 EXIST::FUNCTION:
-BN_nist_mod_224 3437 EXIST::FUNCTION:
-STORE_ATTR_INFO_modify_dn 3438 EXIST::FUNCTION:
-STORE_method_get_initialise_function 3439 EXIST:!VMS:FUNCTION:
-STORE_meth_get_initialise_fn 3439 EXIST:VMS:FUNCTION:
-STORE_delete_number 3440 EXIST::FUNCTION:
-i2d_EC_PUBKEY_bio 3441 EXIST::FUNCTION:BIO,EC
-EC_GROUP_get_asn1_flag 3442 EXIST::FUNCTION:EC
-STORE_ATTR_INFO_in_ex 3443 EXIST::FUNCTION:
-STORE_list_crl_start 3444 EXIST::FUNCTION:
-ECDH_get_ex_new_index 3445 EXIST::FUNCTION:ECDH
-STORE_method_get_modify_function 3446 EXIST:!VMS:FUNCTION:
-STORE_meth_get_modify_fn 3446 EXIST:VMS:FUNCTION:
-STORE_store_certificate 3447 EXIST::FUNCTION:
-OBJ_bsearch_ex 3448 EXIST::FUNCTION:
-STORE_ATTR_INFO_set_sha1str 3449 EXIST::FUNCTION:
-BN_GF2m_mod_inv 3450 EXIST::FUNCTION:
-BN_GF2m_mod_exp 3451 EXIST::FUNCTION:
-STORE_modify_public_key 3452 EXIST::FUNCTION:
-STORE_method_get_list_start_function 3453 EXIST:!VMS:FUNCTION:
-STORE_meth_get_list_start_fn 3453 EXIST:VMS:FUNCTION:
-EC_GROUP_get0_seed 3454 EXIST::FUNCTION:EC
-ecdsa_check 3455 EXIST::FUNCTION:ECDSA
-STORE_store_arbitrary 3456 EXIST::FUNCTION:
-STORE_method_set_unlock_store_function 3457 EXIST:!VMS:FUNCTION:
-STORE_meth_set_unlock_store_fn 3457 EXIST:VMS:FUNCTION:
-BN_GF2m_mod_div_arr 3458 EXIST::FUNCTION:
-ENGINE_set_ECDSA 3459 EXIST::FUNCTION:ENGINE
-STORE_create_method 3460 EXIST::FUNCTION:
-ECPKParameters_print 3461 EXIST::FUNCTION:BIO,EC
-PEM_write_EC_PUBKEY 3462 EXIST:!WIN16:FUNCTION:EC
-ECDH_set_method 3463 EXIST::FUNCTION:ECDH
-v2i_GENERAL_NAME_ex 3464 EXIST::FUNCTION:
-ECDH_set_ex_data 3465 EXIST::FUNCTION:ECDH
-STORE_generate_key 3466 EXIST::FUNCTION:
-BN_nist_mod_521 3467 EXIST::FUNCTION:
-EC_GROUP_set_point_conversion_form 3468 EXIST:!VMS:FUNCTION:EC
-EC_GROUP_set_point_conv_form 3468 EXIST:VMS:FUNCTION:EC
-PEM_read_EC_PUBKEY 3469 EXIST:!WIN16:FUNCTION:EC
-i2d_ECDSA_SIG 3470 EXIST::FUNCTION:ECDSA
-ECDSA_OpenSSL 3471 EXIST::FUNCTION:ECDSA
-STORE_delete_crl 3472 EXIST::FUNCTION:
-ECDSA_set_default_method 3473 EXIST::FUNCTION:ECDSA
-EC_POINT_set_compressed_coordinates_GF2m 3474 EXIST:!VMS:FUNCTION:EC
-EC_POINT_set_compr_coords_GF2m 3474 EXIST:VMS:FUNCTION:EC
-EC_GROUP_cmp 3475 EXIST::FUNCTION:EC
-STORE_revoke_certificate 3476 EXIST::FUNCTION:
-ECDH_DATA_new_method 3477 EXIST::FUNCTION:ECDH
-BN_get0_nist_prime_256 3478 EXIST::FUNCTION:
-STORE_method_get_delete_function 3479 EXIST:!VMS:FUNCTION:
-STORE_meth_get_delete_fn 3479 EXIST:VMS:FUNCTION:
-PEM_read_ECPrivateKey 3480 EXIST:!WIN16:FUNCTION:EC
-STORE_parse_attrs_endp 3481 EXIST::FUNCTION:
-ERR_load_ECDSA_strings 3482 EXIST::FUNCTION:ECDSA
-EC_GROUP_get_basis_type 3483 EXIST::FUNCTION:EC
-ECDH_DATA_new 3484 EXIST::FUNCTION:ECDH
-STORE_list_public_key_next 3485 EXIST::FUNCTION:
-STORE_OBJECT_free 3486 EXIST::FUNCTION:
-BN_nist_mod_384 3487 EXIST::FUNCTION:
-i2d_X509_CERT_PAIR 3488 EXIST::FUNCTION:
-PEM_write_ECPKParameters 3489 EXIST:!WIN16:FUNCTION:EC
-ECDH_compute_key 3490 EXIST::FUNCTION:ECDH
-STORE_ATTR_INFO_get0_sha1str 3491 EXIST::FUNCTION:
-ENGINE_register_all_ECDH 3492 EXIST::FUNCTION:ENGINE
-STORE_ATTR_INFO_get0_cstr 3493 EXIST::FUNCTION:
-POLICY_CONSTRAINTS_it 3494 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-POLICY_CONSTRAINTS_it 3494 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-STORE_get_ex_new_index 3495 EXIST::FUNCTION:
-BN_GF2m_mod_solve_quad 3496 EXIST::FUNCTION:
-i2d_ECPrivateKey_fp 3497 EXIST::FUNCTION:EC,FP_API
-ENGINE_register_all_ECDSA 3498 EXIST::FUNCTION:ENGINE
-EC_POINT_get_affine_coordinates_GF2m 3499 EXIST:!VMS:FUNCTION:EC
-EC_POINT_get_affine_coords_GF2m 3499 EXIST:VMS:FUNCTION:EC
-EC_GROUP_dup 3500 EXIST::FUNCTION:EC
-ENGINE_get_default_ECDSA 3501 EXIST::FUNCTION:ENGINE
-EC_KEY_new 3502 EXIST::FUNCTION:EC
-ECDSA_verify 3503 EXIST::FUNCTION:ECDSA
-EC_POINT_point2hex 3504 EXIST::FUNCTION:EC
-ENGINE_get_STORE 3505 EXIST::FUNCTION:ENGINE
-STORE_get_certificate 3506 EXIST::FUNCTION:
-ECDSA_do_verify 3507 EXIST::FUNCTION:ECDSA
-d2i_ECPrivateKey_fp 3508 EXIST::FUNCTION:EC,FP_API
-STORE_delete_certificate 3509 EXIST::FUNCTION:
-STORE_method_get_ctrl_function 3510 EXIST::FUNCTION:
-STORE_free 3511 EXIST::FUNCTION:
-PEM_write_ECPrivateKey 3512 EXIST:!WIN16:FUNCTION:EC
-STORE_method_get_unlock_store_function 3513 EXIST:!VMS:FUNCTION:
-STORE_meth_get_unlock_store_fn 3513 EXIST:VMS:FUNCTION:
-STORE_get_ex_data 3514 EXIST::FUNCTION:
-PEM_read_ECPKParameters 3515 EXIST:!WIN16:FUNCTION:EC
-X509_CERT_PAIR_new 3516 EXIST::FUNCTION:
-ENGINE_register_STORE 3517 EXIST::FUNCTION:ENGINE
-RSA_generate_key_ex 3518 EXIST::FUNCTION:RSA
-DSA_generate_parameters_ex 3519 EXIST::FUNCTION:DSA
-ECParameters_print_fp 3520 EXIST::FUNCTION:EC,FP_API
-X509V3_NAME_from_section 3521 EXIST::FUNCTION:
-STORE_modify_crl 3522 EXIST::FUNCTION:
-STORE_list_private_key_start 3523 EXIST::FUNCTION:
-POLICY_MAPPINGS_it 3524 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-POLICY_MAPPINGS_it 3524 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-GENERAL_SUBTREE_it 3525 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-GENERAL_SUBTREE_it 3525 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-ECDH_DATA_free 3526 EXIST::FUNCTION:ECDH
-PEM_write_X509_CERT_PAIR 3527 EXIST:!WIN16:FUNCTION:
-d2i_X509_CERT_PAIR 3528 EXIST::FUNCTION:
-STORE_list_private_key_endp 3529 EXIST::FUNCTION:
-i2d_EC_PUBKEY_fp 3530 EXIST::FUNCTION:EC,FP_API
-BN_nist_mod_256 3531 EXIST::FUNCTION:
-ECDSA_DATA_new 3532 EXIST::FUNCTION:ECDSA
-ECDSA_size 3533 EXIST::FUNCTION:ECDSA
-d2i_EC_PUBKEY_bio 3534 EXIST::FUNCTION:BIO,EC
-BN_get0_nist_prime_521 3535 EXIST::FUNCTION:
-STORE_ATTR_INFO_modify_sha1str 3536 EXIST::FUNCTION:
-BN_generate_prime_ex 3537 EXIST::FUNCTION:
-DH_generate_parameters_ex 3538 EXIST::FUNCTION:DH
-PEM_read_bio_ECPrivateKey 3539 EXIST::FUNCTION:EC
-STORE_method_get_cleanup_function 3540 EXIST:!VMS:FUNCTION:
-STORE_meth_get_cleanup_fn 3540 EXIST:VMS:FUNCTION:
-ENGINE_get_ECDH 3541 EXIST::FUNCTION:ENGINE
-d2i_ECDSA_SIG 3542 EXIST::FUNCTION:ECDSA
-BN_is_prime_fasttest_ex 3543 EXIST::FUNCTION:
-ECDSA_sign 3544 EXIST::FUNCTION:ECDSA
-STORE_set_ex_data 3545 EXIST::FUNCTION:
-ENGINE_get_ECDSA 3546 EXIST::FUNCTION:ENGINE
-EVP_ecdsa 3547 EXIST::FUNCTION:SHA
-PKCS12_add_cert 3548 EXIST::FUNCTION:
-STORE_OBJECT_new 3549 EXIST::FUNCTION:
-ERR_load_ECDH_strings 3550 EXIST::FUNCTION:ECDH
-EC_KEY_dup 3551 EXIST::FUNCTION:EC
-ECDSA_set_method 3552 EXIST::FUNCTION:ECDSA
-a2i_IPADDRESS_NC 3553 EXIST::FUNCTION:
-d2i_ECParameters 3554 EXIST::FUNCTION:EC
-STORE_list_certificate_end 3555 EXIST::FUNCTION:
-STORE_get_crl 3556 EXIST::FUNCTION:
-EC_GF2m_simple_method 3557 EXIST::FUNCTION:EC
-ECDSA_set_ex_data 3558 EXIST::FUNCTION:ECDSA
-EC_KEY_print 3559 EXIST::FUNCTION:BIO,EC
-STORE_method_set_lock_store_function 3560 EXIST:!VMS:FUNCTION:
-STORE_meth_set_lock_store_fn 3560 EXIST:VMS:FUNCTION:
-ECDSA_get_ex_new_index 3561 EXIST::FUNCTION:ECDSA
-POLICY_MAPPING_new 3562 EXIST::FUNCTION:
-STORE_list_certificate_endp 3563 EXIST::FUNCTION:
-EC_GROUP_set_asn1_flag 3564 EXIST::FUNCTION:EC
-EC_KEY_check_key 3565 EXIST::FUNCTION:EC
-d2i_EC_PUBKEY_fp 3566 EXIST::FUNCTION:EC,FP_API
-ecdh_check 3567 EXIST::FUNCTION:ECDH
-ECDSA_DATA_new_method 3568 EXIST::FUNCTION:ECDSA
-PEM_read_bio_X509_CERT_PAIR 3569 EXIST::FUNCTION:
-STORE_method_get_list_end_function 3570 EXIST:!VMS:FUNCTION:
-STORE_meth_get_list_end_fn 3570 EXIST:VMS:FUNCTION:
-ENGINE_set_default_ECDH 3571 EXIST::FUNCTION:ENGINE
-STORE_new_method 3572 EXIST::FUNCTION:
-PKCS12_add_key 3573 EXIST::FUNCTION:
-DSO_merge 3574 EXIST::FUNCTION:
-EC_POINT_hex2point 3575 EXIST::FUNCTION:EC
-BN_GF2m_mod_inv_arr 3576 EXIST::FUNCTION:
-ENGINE_unregister_ECDSA 3577 EXIST::FUNCTION:ENGINE
-PKCS7_set_digest 3578 EXIST::FUNCTION:
-PKCS7_set0_type_other 3579 EXIST::FUNCTION:
-EVP_aes_128_cfb8 3580 EXIST::FUNCTION:AES
-EVP_aes_256_cfb128 3581 EXIST::FUNCTION:AES
-EVP_aes_128_cfb1 3582 EXIST::FUNCTION:AES
-EVP_aes_192_cfb8 3583 EXIST::FUNCTION:AES
-EVP_aes_256_cfb8 3584 EXIST::FUNCTION:AES
-DES_ede3_cfb_encrypt 3585 EXIST::FUNCTION:DES
-EVP_aes_128_cfb128 3586 EXIST::FUNCTION:AES
-EVP_des_ede3_cfb8 3587 EXIST::FUNCTION:DES
-EVP_aes_192_cfb128 3588 EXIST::FUNCTION:AES
-EVP_aes_192_cfb1 3589 EXIST::FUNCTION:AES
-EVP_des_cfb8 3590 EXIST::FUNCTION:DES
-EVP_aes_256_cfb1 3591 EXIST::FUNCTION:AES
-EVP_des_cfb1 3592 EXIST::FUNCTION:DES
-EVP_des_ede3_cfb1 3593 EXIST::FUNCTION:DES
-X509_policy_node_get0_parent 3594 EXIST::FUNCTION:
-X509_policy_tree_get0_policies 3595 EXIST::FUNCTION:
-X509_policy_level_node_count 3596 EXIST::FUNCTION:
-X509_policy_node_get0_qualifiers 3597 EXIST:!VMS:FUNCTION:
-X509_pcy_node_get0_qualifiers 3597 EXIST:VMS:FUNCTION:
-X509_policy_node_get0_policy 3598 EXIST::FUNCTION:
-X509_policy_tree_free 3599 EXIST::FUNCTION:
-AES_cfbr_encrypt_block 3600 EXIST::FUNCTION:AES
-AES_cfb8_encrypt 3601 EXIST::FUNCTION:AES
-X509_policy_level_get0_node 3602 EXIST::FUNCTION:
-X509_policy_tree_level_count 3603 EXIST::FUNCTION:
-X509_policy_tree_get0_level 3604 EXIST::FUNCTION:
-ASN1_const_check_infinite_end 3605 EXIST::FUNCTION:
-X509_policy_tree_get0_user_policies 3606 EXIST:!VMS:FUNCTION:
-X509_pcy_tree_get0_usr_policies 3606 EXIST:VMS:FUNCTION:
-X509_POLICY_NODE_print 3607 EXIST::FUNCTION:
-asn1_const_Finish 3608 EXIST::FUNCTION:
-X509_policy_check 3609 EXIST::FUNCTION:
-AES_cfb1_encrypt 3610 EXIST::FUNCTION:AES
-X509_STORE_CTX_set0_crls 3611 EXIST::FUNCTION:
-v2i_ASN1_BIT_STRING 3612 EXIST::FUNCTION:
-i2v_ASN1_BIT_STRING 3613 EXIST::FUNCTION:
-EVP_CIPHER_CTX_rand_key 3614 EXIST::FUNCTION:
-SHA512_Update 3615 EXIST::FUNCTION:SHA,SHA512
-SHA256_Init 3616 EXIST::FUNCTION:SHA,SHA256
-SHA224 3617 EXIST::FUNCTION:SHA,SHA256
-SHA384_Update 3618 EXIST::FUNCTION:SHA,SHA512
-SHA224_Final 3619 EXIST::FUNCTION:SHA,SHA256
-SHA224_Update 3620 EXIST::FUNCTION:SHA,SHA256
-SHA512_Final 3621 EXIST::FUNCTION:SHA,SHA512
-SHA224_Init 3622 EXIST::FUNCTION:SHA,SHA256
-SHA512_Init 3623 EXIST::FUNCTION:SHA,SHA512
-SHA256 3624 EXIST::FUNCTION:SHA,SHA256
-SHA256_Transform 3625 EXIST::FUNCTION:SHA,SHA256
-SHA512 3626 EXIST::FUNCTION:SHA,SHA512
-SHA512_Transform 3627 EXIST::FUNCTION:SHA,SHA512
-SHA256_Final 3628 EXIST::FUNCTION:SHA,SHA256
-SHA384_Init 3629 EXIST::FUNCTION:SHA,SHA512
-SHA384_Final 3630 EXIST::FUNCTION:SHA,SHA512
-SHA384 3631 EXIST::FUNCTION:SHA,SHA512
-SHA256_Update 3632 EXIST::FUNCTION:SHA,SHA256
-EVP_sha384 3633 EXIST::FUNCTION:SHA,SHA512
-EVP_sha512 3634 EXIST::FUNCTION:SHA,SHA512
-EVP_sha224 3635 EXIST::FUNCTION:SHA,SHA256
-EVP_sha256 3636 EXIST::FUNCTION:SHA,SHA256
-OPENSSL_DIR_end 3637 EXIST::FUNCTION:
-OPENSSL_DIR_read 3638 EXIST::FUNCTION:
+EVP_aes_128_cfb8 3248 EXIST::FUNCTION:AES
+FIPS_corrupt_rsa 3249 NOEXIST::FUNCTION:
+FIPS_selftest_des 3250 NOEXIST::FUNCTION:
+EVP_aes_128_cfb1 3251 EXIST::FUNCTION:AES
+EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES
+FIPS_mode_set 3253 NOEXIST::FUNCTION:
+FIPS_selftest_dsa 3254 NOEXIST::FUNCTION:
+EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES
+FIPS_allow_md5 3256 NOEXIST::FUNCTION:
+DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES
+EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES
+FIPS_rand_seeded 3259 NOEXIST::FUNCTION:
+AES_cfbr_encrypt_block 3260 EXIST::FUNCTION:AES
+AES_cfb8_encrypt 3261 EXIST::FUNCTION:AES
+FIPS_rand_seed 3262 NOEXIST::FUNCTION:
+FIPS_corrupt_des 3263 NOEXIST::FUNCTION:
+EVP_aes_192_cfb1 3264 EXIST::FUNCTION:AES
+FIPS_selftest_aes 3265 NOEXIST::FUNCTION:
+FIPS_set_prng_key 3266 NOEXIST::FUNCTION:
+EVP_des_cfb8 3267 EXIST::FUNCTION:DES
+FIPS_corrupt_dsa 3268 NOEXIST::FUNCTION:
+FIPS_test_mode 3269 NOEXIST::FUNCTION:
+FIPS_rand_method 3270 NOEXIST::FUNCTION:
+EVP_aes_256_cfb1 3271 EXIST::FUNCTION:AES
+ERR_load_FIPS_strings 3272 NOEXIST::FUNCTION:
+FIPS_corrupt_aes 3273 NOEXIST::FUNCTION:
+FIPS_selftest_sha1 3274 NOEXIST::FUNCTION:
+FIPS_selftest_rsa 3275 NOEXIST::FUNCTION:
+FIPS_corrupt_sha1 3276 NOEXIST::FUNCTION:
+EVP_des_cfb1 3277 EXIST::FUNCTION:DES
+FIPS_dsa_check 3278 NOEXIST::FUNCTION:
+AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES
+EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES
+FIPS_rand_check 3281 NOEXIST::FUNCTION:
+FIPS_md5_allowed 3282 NOEXIST::FUNCTION:
+FIPS_mode 3283 NOEXIST::FUNCTION:
+FIPS_selftest_failed 3284 NOEXIST::FUNCTION:
+sk_is_sorted 3285 EXIST::FUNCTION:
+X509_check_ca 3286 EXIST::FUNCTION:
+d2i_PROXY_CERT_INFO_EXTENSION 3287 EXIST::FUNCTION:
+PROXY_POLICY_it 3288 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PROXY_POLICY_it 3288 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+i2d_PROXY_POLICY 3289 EXIST::FUNCTION:
+i2d_PROXY_CERT_INFO_EXTENSION 3290 EXIST::FUNCTION:
+d2i_PROXY_POLICY 3291 EXIST::FUNCTION:
+PROXY_CERT_INFO_EXTENSION_new 3292 EXIST::FUNCTION:
+PROXY_CERT_INFO_EXTENSION_free 3293 EXIST::FUNCTION:
+PROXY_CERT_INFO_EXTENSION_it 3294 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PROXY_CERT_INFO_EXTENSION_it 3294 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PROXY_POLICY_free 3295 EXIST::FUNCTION:
+PROXY_POLICY_new 3296 EXIST::FUNCTION:
+ERR_set_mark 3297 EXIST::FUNCTION:
+X509_STORE_CTX_set0_crls 3298 EXIST::FUNCTION:
+ENGINE_set_STORE 3299 EXIST::FUNCTION:ENGINE
+ENGINE_register_ECDSA 3300 EXIST::FUNCTION:ENGINE
+STORE_method_set_list_start_function 3301 EXIST:!VMS:FUNCTION:
+STORE_meth_set_list_start_fn 3301 EXIST:VMS:FUNCTION:
+NAME_CONSTRAINTS_free 3302 EXIST::FUNCTION:
+STORE_ATTR_INFO_set_number 3303 EXIST::FUNCTION:
+X509_STORE_CTX_set0_param 3304 EXIST::FUNCTION:
+POLICY_MAPPING_it 3305 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICY_MAPPING_it 3305 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+STORE_parse_attrs_start 3306 EXIST::FUNCTION:
+POLICY_CONSTRAINTS_free 3307 EXIST::FUNCTION:
+BN_nist_mod_192 3308 EXIST::FUNCTION:
+EC_GROUP_get_trinomial_basis 3309 EXIST::FUNCTION:EC
+STORE_set_method 3310 EXIST::FUNCTION:
+EVP_aes_256_cfb128 3311 EXIST::FUNCTION:AES
+GENERAL_SUBTREE_free 3312 EXIST::FUNCTION:
+NAME_CONSTRAINTS_it 3313 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NAME_CONSTRAINTS_it 3313 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ECDH_get_default_method 3314 EXIST::FUNCTION:ECDH
+PKCS12_add_safe 3315 EXIST::FUNCTION:
+STORE_method_get_update_store_function 3316 EXIST:!VMS:FUNCTION:
+STORE_meth_get_update_store_fn 3316 EXIST:VMS:FUNCTION:
+ENGINE_register_ECDH 3317 EXIST::FUNCTION:ENGINE
+EVP_sha384 3318 EXIST::FUNCTION:SHA,SHA512
+SHA512_Update 3319 EXIST::FUNCTION:SHA,SHA512
+i2d_ECPrivateKey 3320 EXIST::FUNCTION:EC
+BN_get0_nist_prime_192 3321 EXIST::FUNCTION:
+STORE_modify_certificate 3322 EXIST::FUNCTION:
+EC_POINT_set_affine_coordinates_GF2m 3323 EXIST:!VMS:FUNCTION:EC
+EC_POINT_set_affine_coords_GF2m 3323 EXIST:VMS:FUNCTION:EC
+BN_GF2m_mod_exp_arr 3324 EXIST::FUNCTION:
+STORE_ATTR_INFO_modify_number 3325 EXIST::FUNCTION:
+X509_keyid_get0 3326 EXIST::FUNCTION:
+EC_GROUP_new_by_nid 3327 EXIST::FUNCTION:EC
+ENGINE_load_gmp 3328 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
+BN_GF2m_mod_mul_arr 3329 EXIST::FUNCTION:
+STORE_list_public_key_endp 3330 EXIST::FUNCTION:
+o2i_ECPublicKey 3331 EXIST::FUNCTION:EC
+EC_KEY_copy 3332 EXIST::FUNCTION:EC
+BIO_dump_fp 3333 EXIST::FUNCTION:FP_API
+X509_policy_node_get0_parent 3334 EXIST::FUNCTION:
+EC_GROUP_check_discriminant 3335 EXIST::FUNCTION:EC
+i2o_ECPublicKey 3336 EXIST::FUNCTION:EC
+a2i_IPADDRESS 3337 EXIST::FUNCTION:
+STORE_method_set_initialise_function 3338 EXIST:!VMS:FUNCTION:
+STORE_meth_set_initialise_fn 3338 EXIST:VMS:FUNCTION:
+X509_STORE_CTX_set_depth 3339 EXIST::FUNCTION:
+X509_VERIFY_PARAM_inherit 3340 EXIST::FUNCTION:
+EC_POINT_point2bn 3341 EXIST::FUNCTION:EC
+STORE_ATTR_INFO_set_dn 3342 EXIST::FUNCTION:
+X509_policy_tree_get0_policies 3343 EXIST::FUNCTION:
+EC_GROUP_new_curve_GF2m 3344 EXIST::FUNCTION:EC
+STORE_destroy_method 3345 EXIST::FUNCTION:
+ENGINE_unregister_STORE 3346 EXIST::FUNCTION:ENGINE
+EVP_PKEY_get1_EC_KEY 3347 EXIST::FUNCTION:EC
+STORE_ATTR_INFO_get0_number 3348 EXIST::FUNCTION:
+ENGINE_get_default_ECDH 3349 EXIST::FUNCTION:ENGINE
+ASN1_OCTET_STRING_NDEF_it 3350 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_OCTET_STRING_NDEF_it 3350 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+STORE_delete_public_key 3351 EXIST::FUNCTION:
+STORE_get_public_key 3352 EXIST::FUNCTION:
+STORE_modify_arbitrary 3353 EXIST::FUNCTION:
+ENGINE_get_static_state 3354 EXIST::FUNCTION:ENGINE
+ECDSA_SIG_new 3355 EXIST::FUNCTION:ECDSA
+OPENSSL_DIR_end 3356 EXIST::FUNCTION:
+BN_GF2m_mod_sqr 3357 EXIST::FUNCTION:
+EC_POINT_bn2point 3358 EXIST::FUNCTION:EC
+X509_VERIFY_PARAM_set_depth 3359 EXIST::FUNCTION:
+STORE_get_method 3360 EXIST::FUNCTION:
+STORE_parse_attrs_end 3361 EXIST::FUNCTION:
+EC_GROUP_get_point_conversion_form 3362 EXIST:!VMS:FUNCTION:EC
+EC_GROUP_get_point_conv_form 3362 EXIST:VMS:FUNCTION:EC
+STORE_method_set_store_function 3363 EXIST::FUNCTION:
+STORE_ATTR_INFO_in 3364 EXIST::FUNCTION:
+PEM_read_bio_ECPKParameters 3365 EXIST::FUNCTION:EC
+EC_GROUP_get_pentanomial_basis 3366 EXIST::FUNCTION:EC
+X509_VERIFY_PARAM_set1_policies 3367 EXIST::FUNCTION:
+EVP_sha512 3368 EXIST::FUNCTION:SHA,SHA512
+X509_VERIFY_PARAM_set1_name 3369 EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_purpose 3370 EXIST::FUNCTION:
+EC_GROUP_get_nid 3371 EXIST::FUNCTION:EC
+STORE_get_number 3372 EXIST::FUNCTION:
+ECDSA_sign_setup 3373 EXIST::FUNCTION:ECDSA
+BN_GF2m_mod_solve_quad_arr 3374 EXIST::FUNCTION:
+EC_KEY_up_ref 3375 EXIST::FUNCTION:EC
+POLICY_MAPPING_free 3376 EXIST::FUNCTION:
+BN_GF2m_mod_div 3377 EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_flags 3378 EXIST::FUNCTION:
+EC_KEY_free 3379 EXIST::FUNCTION:EC
+STORE_method_set_list_next_function 3380 EXIST:!VMS:FUNCTION:
+STORE_meth_set_list_next_fn 3380 EXIST:VMS:FUNCTION:
+PEM_write_bio_ECPrivateKey 3381 EXIST::FUNCTION:EC
+d2i_EC_PUBKEY 3382 EXIST::FUNCTION:EC
+STORE_method_get_generate_function 3383 EXIST:!VMS:FUNCTION:
+STORE_meth_get_generate_fn 3383 EXIST:VMS:FUNCTION:
+STORE_method_set_list_end_function 3384 EXIST:!VMS:FUNCTION:
+STORE_meth_set_list_end_fn 3384 EXIST:VMS:FUNCTION:
+EC_GROUP_have_precompute_mult 3385 EXIST::FUNCTION:EC
+EC_KEY_print_fp 3386 EXIST::FUNCTION:EC,FP_API
+BN_GF2m_mod_arr 3387 EXIST::FUNCTION:
+PEM_write_bio_X509_CERT_PAIR 3388 EXIST::FUNCTION:
+EVP_PKEY_cmp 3389 EXIST::FUNCTION:
+X509_policy_level_node_count 3390 EXIST::FUNCTION:
+STORE_new_engine 3391 EXIST::FUNCTION:
+STORE_list_public_key_start 3392 EXIST::FUNCTION:
+X509_VERIFY_PARAM_new 3393 EXIST::FUNCTION:
+ECDH_get_ex_data 3394 EXIST::FUNCTION:ECDH
+ECDSA_do_sign 3395 EXIST::FUNCTION:ECDSA
+ENGINE_unregister_ECDH 3396 EXIST::FUNCTION:ENGINE
+ECDH_OpenSSL 3397 EXIST::FUNCTION:ECDH
+EC_POINT_dup 3398 EXIST::FUNCTION:EC
+GENERAL_SUBTREE_new 3399 EXIST::FUNCTION:
+STORE_list_crl_endp 3400 EXIST::FUNCTION:
+EC_get_builtin_curves 3401 EXIST::FUNCTION:EC
+EVP_aes_128_cfb128 3402 EXIST::FUNCTION:AES
+X509_policy_node_get0_qualifiers 3403 EXIST:!VMS:FUNCTION:
+X509_pcy_node_get0_qualifiers 3403 EXIST:VMS:FUNCTION:
+STORE_list_crl_end 3404 EXIST::FUNCTION:
+EVP_PKEY_set1_EC_KEY 3405 EXIST::FUNCTION:EC
+BN_GF2m_mod_sqrt_arr 3406 EXIST::FUNCTION:
+i2d_ECPrivateKey_bio 3407 EXIST::FUNCTION:BIO,EC
+ECPKParameters_print_fp 3408 EXIST::FUNCTION:EC,FP_API
+ECDSA_SIG_free 3409 EXIST::FUNCTION:ECDSA
+PEM_write_bio_ECPKParameters 3410 EXIST::FUNCTION:EC
+STORE_method_set_ctrl_function 3411 EXIST::FUNCTION:
+STORE_list_public_key_end 3412 EXIST::FUNCTION:
+EC_GROUP_set_nid 3413 EXIST::FUNCTION:EC
+STORE_get_arbitrary 3414 EXIST::FUNCTION:
+STORE_store_crl 3415 EXIST::FUNCTION:
+X509_policy_node_get0_policy 3416 EXIST::FUNCTION:
+PKCS12_add_safes 3417 EXIST::FUNCTION:
+X509_policy_tree_free 3418 EXIST::FUNCTION:
+BN_GF2m_poly2arr 3419 EXIST::FUNCTION:
+STORE_ctrl 3420 EXIST::FUNCTION:
+EVP_sha224 3421 EXIST::FUNCTION:SHA,SHA256
+STORE_ATTR_INFO_compare 3422 EXIST::FUNCTION:
+BN_get0_nist_prime_224 3423 EXIST::FUNCTION:
+i2d_ECParameters 3424 EXIST::FUNCTION:EC
+i2d_ECPKParameters 3425 EXIST::FUNCTION:EC
+BN_GENCB_call 3426 EXIST::FUNCTION:
+BN_ncopy 3427 EXIST::FUNCTION:
+d2i_ECPKParameters 3428 EXIST::FUNCTION:EC
+STORE_method_set_generate_function 3429 EXIST:!VMS:FUNCTION:
+STORE_meth_set_generate_fn 3429 EXIST:VMS:FUNCTION:
+ENGINE_set_ECDH 3430 EXIST::FUNCTION:ENGINE
+NAME_CONSTRAINTS_new 3431 EXIST::FUNCTION:
+SHA256_Init 3432 EXIST::FUNCTION:SHA,SHA256
+PEM_write_bio_EC_PUBKEY 3433 EXIST::FUNCTION:EC
+STORE_ATTR_INFO_set_cstr 3434 EXIST::FUNCTION:
+STORE_list_crl_next 3435 EXIST::FUNCTION:
+STORE_ATTR_INFO_in_range 3436 EXIST::FUNCTION:
+ECParameters_print 3437 EXIST::FUNCTION:BIO,EC
+STORE_method_set_delete_function 3438 EXIST:!VMS:FUNCTION:
+STORE_meth_set_delete_fn 3438 EXIST:VMS:FUNCTION:
+STORE_list_certificate_next 3439 EXIST::FUNCTION:
+ASN1_generate_nconf 3440 EXIST::FUNCTION:
+BUF_memdup 3441 EXIST::FUNCTION:
+BN_GF2m_mod_mul 3442 EXIST::FUNCTION:
+STORE_method_get_list_next_function 3443 EXIST:!VMS:FUNCTION:
+STORE_meth_get_list_next_fn 3443 EXIST:VMS:FUNCTION:
+STORE_ATTR_INFO_get0_dn 3444 EXIST::FUNCTION:
+STORE_list_private_key_next 3445 EXIST::FUNCTION:
+EC_GROUP_set_seed 3446 EXIST::FUNCTION:EC
+X509_VERIFY_PARAM_set_trust 3447 EXIST::FUNCTION:
+STORE_ATTR_INFO_free 3448 EXIST::FUNCTION:
+STORE_get_private_key 3449 EXIST::FUNCTION:
+STORE_ATTR_INFO_new 3450 EXIST::FUNCTION:
+EC_GROUP_get_curve_GF2m 3451 EXIST::FUNCTION:EC
+STORE_method_set_revoke_function 3452 EXIST:!VMS:FUNCTION:
+STORE_meth_set_revoke_fn 3452 EXIST:VMS:FUNCTION:
+STORE_store_number 3453 EXIST::FUNCTION:
+BN_is_prime_ex 3454 EXIST::FUNCTION:
+STORE_revoke_public_key 3455 EXIST::FUNCTION:
+X509_STORE_CTX_get0_param 3456 EXIST::FUNCTION:
+STORE_delete_arbitrary 3457 EXIST::FUNCTION:
+PEM_read_X509_CERT_PAIR 3458 EXIST:!WIN16:FUNCTION:
+X509_STORE_set_depth 3459 EXIST::FUNCTION:
+ECDSA_get_ex_data 3460 EXIST::FUNCTION:ECDSA
+SHA224 3461 EXIST::FUNCTION:SHA,SHA256
+BIO_dump_indent_fp 3462 EXIST::FUNCTION:FP_API
+BUF_strndup 3463 EXIST::FUNCTION:
+STORE_list_certificate_start 3464 EXIST::FUNCTION:
+BN_GF2m_mod 3465 EXIST::FUNCTION:
+X509_REQ_check_private_key 3466 EXIST::FUNCTION:
+EC_GROUP_get_seed_len 3467 EXIST::FUNCTION:EC
+ERR_load_STORE_strings 3468 EXIST::FUNCTION:
+PEM_read_bio_EC_PUBKEY 3469 EXIST::FUNCTION:EC
+STORE_list_private_key_end 3470 EXIST::FUNCTION:
+i2d_EC_PUBKEY 3471 EXIST::FUNCTION:EC
+ECDSA_get_default_method 3472 EXIST::FUNCTION:ECDSA
+ASN1_put_eoc 3473 EXIST::FUNCTION:
+X509_STORE_CTX_get_explicit_policy 3474 EXIST:!VMS:FUNCTION:
+X509_STORE_CTX_get_expl_policy 3474 EXIST:VMS:FUNCTION:
+ECDSA_DATA_free 3475 EXIST::FUNCTION:ECDSA
+X509_VERIFY_PARAM_table_cleanup 3476 EXIST::FUNCTION:
+STORE_modify_private_key 3477 EXIST::FUNCTION:
+X509_VERIFY_PARAM_free 3478 EXIST::FUNCTION:
+EC_METHOD_get_field_type 3479 EXIST::FUNCTION:EC
+EC_GFp_nist_method 3480 EXIST::FUNCTION:EC
+STORE_method_set_modify_function 3481 EXIST:!VMS:FUNCTION:
+STORE_meth_set_modify_fn 3481 EXIST:VMS:FUNCTION:
+STORE_parse_attrs_next 3482 EXIST::FUNCTION:
+ENGINE_load_padlock 3483 EXIST::FUNCTION:ENGINE
+X509_CERT_PAIR_it 3484 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_CERT_PAIR_it 3484 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+STORE_method_get_revoke_function 3485 EXIST:!VMS:FUNCTION:
+STORE_meth_get_revoke_fn 3485 EXIST:VMS:FUNCTION:
+STORE_method_set_get_function 3486 EXIST::FUNCTION:
+STORE_modify_number 3487 EXIST::FUNCTION:
+STORE_method_get_store_function 3488 EXIST::FUNCTION:
+STORE_store_private_key 3489 EXIST::FUNCTION:
+BN_GF2m_mod_sqr_arr 3490 EXIST::FUNCTION:
+STORE_Memory 3491 EXIST::FUNCTION:
+sk_find_ex 3492 EXIST::FUNCTION:
+EC_GROUP_set_curve_GF2m 3493 EXIST::FUNCTION:EC
+ENGINE_set_default_ECDSA 3494 EXIST::FUNCTION:ENGINE
+POLICY_CONSTRAINTS_new 3495 EXIST::FUNCTION:
+BN_GF2m_mod_sqrt 3496 EXIST::FUNCTION:
+ECDH_set_default_method 3497 EXIST::FUNCTION:ECDH
+EC_KEY_generate_key 3498 EXIST::FUNCTION:EC
+SHA384_Update 3499 EXIST::FUNCTION:SHA,SHA512
+BN_GF2m_arr2poly 3500 EXIST::FUNCTION:
+STORE_method_get_get_function 3501 EXIST::FUNCTION:
+STORE_method_set_cleanup_function 3502 EXIST:!VMS:FUNCTION:
+STORE_meth_set_cleanup_fn 3502 EXIST:VMS:FUNCTION:
+EC_GROUP_check 3503 EXIST::FUNCTION:EC
+d2i_ECPrivateKey_bio 3504 EXIST::FUNCTION:BIO,EC
+STORE_method_get_lock_store_function 3505 EXIST:!VMS:FUNCTION:
+STORE_meth_get_lock_store_fn 3505 EXIST:VMS:FUNCTION:
+X509_VERIFY_PARAM_get_depth 3506 EXIST::FUNCTION:
+EVP_aes_192_cfb128 3507 EXIST::FUNCTION:AES
+SHA224_Final 3508 EXIST::FUNCTION:SHA,SHA256
+STORE_method_set_update_store_function 3509 EXIST:!VMS:FUNCTION:
+STORE_meth_set_update_store_fn 3509 EXIST:VMS:FUNCTION:
+SHA224_Update 3510 EXIST::FUNCTION:SHA,SHA256
+d2i_ECPrivateKey 3511 EXIST::FUNCTION:EC
+ASN1_item_ndef_i2d 3512 EXIST::FUNCTION:
+STORE_delete_private_key 3513 EXIST::FUNCTION:
+ERR_pop_to_mark 3514 EXIST::FUNCTION:
+ENGINE_register_all_STORE 3515 EXIST::FUNCTION:ENGINE
+X509_policy_level_get0_node 3516 EXIST::FUNCTION:
+i2d_PKCS7_NDEF 3517 EXIST::FUNCTION:
+EC_GROUP_get_degree 3518 EXIST::FUNCTION:EC
+ASN1_generate_v3 3519 EXIST::FUNCTION:
+STORE_ATTR_INFO_modify_cstr 3520 EXIST::FUNCTION:
+X509_policy_tree_level_count 3521 EXIST::FUNCTION:
+BN_GF2m_add 3522 EXIST::FUNCTION:
+STORE_generate_crl 3523 EXIST::FUNCTION:
+STORE_store_public_key 3524 EXIST::FUNCTION:
+X509_CERT_PAIR_free 3525 EXIST::FUNCTION:
+STORE_revoke_private_key 3526 EXIST::FUNCTION:
+BN_nist_mod_224 3527 EXIST::FUNCTION:
+SHA512_Final 3528 EXIST::FUNCTION:SHA,SHA512
+STORE_ATTR_INFO_modify_dn 3529 EXIST::FUNCTION:
+STORE_method_get_initialise_function 3530 EXIST:!VMS:FUNCTION:
+STORE_meth_get_initialise_fn 3530 EXIST:VMS:FUNCTION:
+STORE_delete_number 3531 EXIST::FUNCTION:
+i2d_EC_PUBKEY_bio 3532 EXIST::FUNCTION:BIO,EC
+EC_GROUP_get_asn1_flag 3533 EXIST::FUNCTION:EC
+STORE_ATTR_INFO_in_ex 3534 EXIST::FUNCTION:
+STORE_list_crl_start 3535 EXIST::FUNCTION:
+ECDH_get_ex_new_index 3536 EXIST::FUNCTION:ECDH
+STORE_method_get_modify_function 3537 EXIST:!VMS:FUNCTION:
+STORE_meth_get_modify_fn 3537 EXIST:VMS:FUNCTION:
+v2i_ASN1_BIT_STRING 3538 EXIST::FUNCTION:
+STORE_store_certificate 3539 EXIST::FUNCTION:
+OBJ_bsearch_ex 3540 EXIST::FUNCTION:
+X509_STORE_CTX_set_default 3541 EXIST::FUNCTION:
+STORE_ATTR_INFO_set_sha1str 3542 EXIST::FUNCTION:
+BN_GF2m_mod_inv 3543 EXIST::FUNCTION:
+BN_GF2m_mod_exp 3544 EXIST::FUNCTION:
+STORE_modify_public_key 3545 EXIST::FUNCTION:
+STORE_method_get_list_start_function 3546 EXIST:!VMS:FUNCTION:
+STORE_meth_get_list_start_fn 3546 EXIST:VMS:FUNCTION:
+EC_GROUP_get0_seed 3547 EXIST::FUNCTION:EC
+ecdsa_check 3548 EXIST::FUNCTION:ECDSA
+STORE_store_arbitrary 3549 EXIST::FUNCTION:
+STORE_method_set_unlock_store_function 3550 EXIST:!VMS:FUNCTION:
+STORE_meth_set_unlock_store_fn 3550 EXIST:VMS:FUNCTION:
+BN_GF2m_mod_div_arr 3551 EXIST::FUNCTION:
+ENGINE_set_ECDSA 3552 EXIST::FUNCTION:ENGINE
+STORE_create_method 3553 EXIST::FUNCTION:
+ECPKParameters_print 3554 EXIST::FUNCTION:BIO,EC
+PEM_write_EC_PUBKEY 3555 EXIST:!WIN16:FUNCTION:EC
+X509_VERIFY_PARAM_set1 3556 EXIST::FUNCTION:
+ECDH_set_method 3557 EXIST::FUNCTION:ECDH
+v2i_GENERAL_NAME_ex 3558 EXIST::FUNCTION:
+ECDH_set_ex_data 3559 EXIST::FUNCTION:ECDH
+STORE_generate_key 3560 EXIST::FUNCTION:
+BN_nist_mod_521 3561 EXIST::FUNCTION:
+X509_policy_tree_get0_level 3562 EXIST::FUNCTION:
+EC_GROUP_set_point_conversion_form 3563 EXIST:!VMS:FUNCTION:EC
+EC_GROUP_set_point_conv_form 3563 EXIST:VMS:FUNCTION:EC
+PEM_read_EC_PUBKEY 3564 EXIST:!WIN16:FUNCTION:EC
+i2d_ECDSA_SIG 3565 EXIST::FUNCTION:ECDSA
+ECDSA_OpenSSL 3566 EXIST::FUNCTION:ECDSA
+STORE_delete_crl 3567 EXIST::FUNCTION:
+ASN1_const_check_infinite_end 3568 EXIST::FUNCTION:
+ECDSA_set_default_method 3569 EXIST::FUNCTION:ECDSA
+EC_POINT_set_compressed_coordinates_GF2m 3570 EXIST:!VMS:FUNCTION:EC
+EC_POINT_set_compr_coords_GF2m 3570 EXIST:VMS:FUNCTION:EC
+EC_GROUP_cmp 3571 EXIST::FUNCTION:EC
+STORE_revoke_certificate 3572 EXIST::FUNCTION:
+ECDH_DATA_new_method 3573 EXIST::FUNCTION:ECDH
+BN_get0_nist_prime_256 3574 EXIST::FUNCTION:
+STORE_method_get_delete_function 3575 EXIST:!VMS:FUNCTION:
+STORE_meth_get_delete_fn 3575 EXIST:VMS:FUNCTION:
+SHA224_Init 3576 EXIST::FUNCTION:SHA,SHA256
+PEM_read_ECPrivateKey 3577 EXIST:!WIN16:FUNCTION:EC
+SHA512_Init 3578 EXIST::FUNCTION:SHA,SHA512
+STORE_parse_attrs_endp 3579 EXIST::FUNCTION:
+ERR_load_ECDSA_strings 3580 EXIST::FUNCTION:ECDSA
+EC_GROUP_get_basis_type 3581 EXIST::FUNCTION:EC
+ECDH_DATA_new 3582 EXIST::FUNCTION:ECDH
+STORE_list_public_key_next 3583 EXIST::FUNCTION:
+i2v_ASN1_BIT_STRING 3584 EXIST::FUNCTION:
+STORE_OBJECT_free 3585 EXIST::FUNCTION:
+BN_nist_mod_384 3586 EXIST::FUNCTION:
+i2d_X509_CERT_PAIR 3587 EXIST::FUNCTION:
+PEM_write_ECPKParameters 3588 EXIST:!WIN16:FUNCTION:EC
+ECDH_compute_key 3589 EXIST::FUNCTION:ECDH
+STORE_ATTR_INFO_get0_sha1str 3590 EXIST::FUNCTION:
+ENGINE_register_all_ECDH 3591 EXIST::FUNCTION:ENGINE
+STORE_ATTR_INFO_get0_cstr 3592 EXIST::FUNCTION:
+POLICY_CONSTRAINTS_it 3593 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICY_CONSTRAINTS_it 3593 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+STORE_get_ex_new_index 3594 EXIST::FUNCTION:
+X509_VERIFY_PARAM_add0_policy 3595 EXIST::FUNCTION:
+BN_GF2m_mod_solve_quad 3596 EXIST::FUNCTION:
+SHA256 3597 EXIST::FUNCTION:SHA,SHA256
+i2d_ECPrivateKey_fp 3598 EXIST::FUNCTION:EC,FP_API
+X509_policy_tree_get0_user_policies 3599 EXIST:!VMS:FUNCTION:
+X509_pcy_tree_get0_usr_policies 3599 EXIST:VMS:FUNCTION:
+OPENSSL_DIR_read 3600 EXIST::FUNCTION:
+ENGINE_register_all_ECDSA 3601 EXIST::FUNCTION:ENGINE
+X509_VERIFY_PARAM_lookup 3602 EXIST::FUNCTION:
+EC_POINT_get_affine_coordinates_GF2m 3603 EXIST:!VMS:FUNCTION:EC
+EC_POINT_get_affine_coords_GF2m 3603 EXIST:VMS:FUNCTION:EC
+EC_GROUP_dup 3604 EXIST::FUNCTION:EC
+ENGINE_get_default_ECDSA 3605 EXIST::FUNCTION:ENGINE
+EC_KEY_new 3606 EXIST::FUNCTION:EC
+SHA256_Transform 3607 EXIST::FUNCTION:SHA,SHA256
+ECDSA_verify 3608 EXIST::FUNCTION:ECDSA
+EC_POINT_point2hex 3609 EXIST::FUNCTION:EC
+ENGINE_get_STORE 3610 EXIST::FUNCTION:ENGINE
+SHA512 3611 EXIST::FUNCTION:SHA,SHA512
+STORE_get_certificate 3612 EXIST::FUNCTION:
+ECDSA_do_verify 3613 EXIST::FUNCTION:ECDSA
+d2i_ECPrivateKey_fp 3614 EXIST::FUNCTION:EC,FP_API
+STORE_delete_certificate 3615 EXIST::FUNCTION:
+SHA512_Transform 3616 EXIST::FUNCTION:SHA,SHA512
+X509_STORE_set1_param 3617 EXIST::FUNCTION:
+STORE_method_get_ctrl_function 3618 EXIST::FUNCTION:
+STORE_free 3619 EXIST::FUNCTION:
+PEM_write_ECPrivateKey 3620 EXIST:!WIN16:FUNCTION:EC
+STORE_method_get_unlock_store_function 3621 EXIST:!VMS:FUNCTION:
+STORE_meth_get_unlock_store_fn 3621 EXIST:VMS:FUNCTION:
+STORE_get_ex_data 3622 EXIST::FUNCTION:
+PEM_read_ECPKParameters 3623 EXIST:!WIN16:FUNCTION:EC
+X509_CERT_PAIR_new 3624 EXIST::FUNCTION:
+ENGINE_register_STORE 3625 EXIST::FUNCTION:ENGINE
+RSA_generate_key_ex 3626 EXIST::FUNCTION:RSA
+DSA_generate_parameters_ex 3627 EXIST::FUNCTION:DSA
+ECParameters_print_fp 3628 EXIST::FUNCTION:EC,FP_API
+X509V3_NAME_from_section 3629 EXIST::FUNCTION:
+STORE_modify_crl 3630 EXIST::FUNCTION:
+STORE_list_private_key_start 3631 EXIST::FUNCTION:
+POLICY_MAPPINGS_it 3632 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICY_MAPPINGS_it 3632 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+GENERAL_SUBTREE_it 3633 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+GENERAL_SUBTREE_it 3633 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ECDH_DATA_free 3634 EXIST::FUNCTION:ECDH
+PEM_write_X509_CERT_PAIR 3635 EXIST:!WIN16:FUNCTION:
+BIO_dump_indent_cb 3636 EXIST::FUNCTION:
+d2i_X509_CERT_PAIR 3637 EXIST::FUNCTION:
+STORE_list_private_key_endp 3638 EXIST::FUNCTION:
+asn1_const_Finish 3639 EXIST::FUNCTION:
+i2d_EC_PUBKEY_fp 3640 EXIST::FUNCTION:EC,FP_API
+BN_nist_mod_256 3641 EXIST::FUNCTION:
+ECDSA_DATA_new 3642 EXIST::FUNCTION:ECDSA
+X509_VERIFY_PARAM_add0_table 3643 EXIST::FUNCTION:
+EVP_sha256 3644 EXIST::FUNCTION:SHA,SHA256
+ECDSA_size 3645 EXIST::FUNCTION:ECDSA
+d2i_EC_PUBKEY_bio 3646 EXIST::FUNCTION:BIO,EC
+BN_get0_nist_prime_521 3647 EXIST::FUNCTION:
+STORE_ATTR_INFO_modify_sha1str 3648 EXIST::FUNCTION:
+BN_generate_prime_ex 3649 EXIST::FUNCTION:
+SHA256_Final 3650 EXIST::FUNCTION:SHA,SHA256
+DH_generate_parameters_ex 3651 EXIST::FUNCTION:DH
+PEM_read_bio_ECPrivateKey 3652 EXIST::FUNCTION:EC
+STORE_method_get_cleanup_function 3653 EXIST:!VMS:FUNCTION:
+STORE_meth_get_cleanup_fn 3653 EXIST:VMS:FUNCTION:
+ENGINE_get_ECDH 3654 EXIST::FUNCTION:ENGINE
+d2i_ECDSA_SIG 3655 EXIST::FUNCTION:ECDSA
+BN_is_prime_fasttest_ex 3656 EXIST::FUNCTION:
+ECDSA_sign 3657 EXIST::FUNCTION:ECDSA
+X509_policy_check 3658 EXIST::FUNCTION:
+STORE_set_ex_data 3659 EXIST::FUNCTION:
+ENGINE_get_ECDSA 3660 EXIST::FUNCTION:ENGINE
+EVP_ecdsa 3661 EXIST::FUNCTION:SHA
+PKCS12_add_cert 3662 EXIST::FUNCTION:
+STORE_OBJECT_new 3663 EXIST::FUNCTION:
+ERR_load_ECDH_strings 3664 EXIST::FUNCTION:ECDH
+EC_KEY_dup 3665 EXIST::FUNCTION:EC
+EVP_CIPHER_CTX_rand_key 3666 EXIST::FUNCTION:
+ECDSA_set_method 3667 EXIST::FUNCTION:ECDSA
+a2i_IPADDRESS_NC 3668 EXIST::FUNCTION:
+d2i_ECParameters 3669 EXIST::FUNCTION:EC
+STORE_list_certificate_end 3670 EXIST::FUNCTION:
+STORE_get_crl 3671 EXIST::FUNCTION:
+X509_POLICY_NODE_print 3672 EXIST::FUNCTION:
+SHA384_Init 3673 EXIST::FUNCTION:SHA,SHA512
+EC_GF2m_simple_method 3674 EXIST::FUNCTION:EC
+ECDSA_set_ex_data 3675 EXIST::FUNCTION:ECDSA
+SHA384_Final 3676 EXIST::FUNCTION:SHA,SHA512
+PKCS7_set_digest 3677 EXIST::FUNCTION:
+EC_KEY_print 3678 EXIST::FUNCTION:BIO,EC
+STORE_method_set_lock_store_function 3679 EXIST:!VMS:FUNCTION:
+STORE_meth_set_lock_store_fn 3679 EXIST:VMS:FUNCTION:
+ECDSA_get_ex_new_index 3680 EXIST::FUNCTION:ECDSA
+SHA384 3681 EXIST::FUNCTION:SHA,SHA512
+POLICY_MAPPING_new 3682 EXIST::FUNCTION:
+STORE_list_certificate_endp 3683 EXIST::FUNCTION:
+X509_STORE_CTX_get0_policy_tree 3684 EXIST::FUNCTION:
+EC_GROUP_set_asn1_flag 3685 EXIST::FUNCTION:EC
+EC_KEY_check_key 3686 EXIST::FUNCTION:EC
+d2i_EC_PUBKEY_fp 3687 EXIST::FUNCTION:EC,FP_API
+PKCS7_set0_type_other 3688 EXIST::FUNCTION:
+ecdh_check 3689 EXIST::FUNCTION:ECDH
+ECDSA_DATA_new_method 3690 EXIST::FUNCTION:ECDSA
+PEM_read_bio_X509_CERT_PAIR 3691 EXIST::FUNCTION:
+STORE_method_get_list_end_function 3692 EXIST:!VMS:FUNCTION:
+STORE_meth_get_list_end_fn 3692 EXIST:VMS:FUNCTION:
+X509_VERIFY_PARAM_set_time 3693 EXIST::FUNCTION:
+ENGINE_set_default_ECDH 3694 EXIST::FUNCTION:ENGINE
+STORE_new_method 3695 EXIST::FUNCTION:
+PKCS12_add_key 3696 EXIST::FUNCTION:
+DSO_merge 3697 EXIST::FUNCTION:
+EC_POINT_hex2point 3698 EXIST::FUNCTION:EC
+BIO_dump_cb 3699 EXIST::FUNCTION:
+SHA256_Update 3700 EXIST::FUNCTION:SHA,SHA256
+BN_GF2m_mod_inv_arr 3701 EXIST::FUNCTION:
+ENGINE_unregister_ECDSA 3702 EXIST::FUNCTION:ENGINE
diff --git a/util/mkdef.pl b/util/mkdef.pl
index 204a056a48..98cd12706c 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -479,7 +479,7 @@ sub do_defs
push(@tag,$1);
$tag{$1}=-1;
}
- } elsif (/^\#\s*ifdef\s+(.*)/) {
+ } elsif (/^\#\s*ifdef\s+(\S*)/) {
push(@tag,"-");
push(@tag,$1);
$tag{$1}=1;
diff --git a/util/mkerr.pl b/util/mkerr.pl
index 1b2915c767..05d0340f6a 100644
--- a/util/mkerr.pl
+++ b/util/mkerr.pl
@@ -262,7 +262,7 @@ foreach $lib (keys %csrc)
} else {
push @out,
"/* ====================================================================\n",
-" * Copyright (c) 2001-2003 The OpenSSL Project. All rights reserved.\n",
+" * Copyright (c) 2001-2005 The OpenSSL Project. All rights reserved.\n",
" *\n",
" * Redistribution and use in source and binary forms, with or without\n",
" * modification, are permitted provided that the following conditions\n",
@@ -404,7 +404,7 @@ EOF
print OUT <<"EOF";
/* $cfile */
/* ====================================================================
- * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/util/mklink.pl b/util/mklink.pl
index 9386da7aa4..c8653cecc3 100755
--- a/util/mklink.pl
+++ b/util/mklink.pl
@@ -52,6 +52,7 @@ $symlink_exists=eval {symlink("",""); 1};
foreach $file (@files) {
my $err = "";
if ($symlink_exists) {
+ unlink "$from/$file";
symlink("$to/$file", "$from/$file") or $err = " [$!]";
} else {
unlink "$from/$file";
diff --git a/util/mkstack.pl b/util/mkstack.pl
index be2cb4f1e7..2a968f395f 100755
--- a/util/mkstack.pl
+++ b/util/mkstack.pl
@@ -85,6 +85,7 @@ while(<IN>) {
#define sk_${type_thing}_shift(st) SKM_sk_shift($type_thing, (st))
#define sk_${type_thing}_pop(st) SKM_sk_pop($type_thing, (st))
#define sk_${type_thing}_sort(st) SKM_sk_sort($type_thing, (st))
+#define sk_${type_thing}_is_sorted(st) SKM_sk_is_sorted($type_thing, (st))
EOF
}
foreach $type_thing (sort @asn1setlst) {
diff --git a/util/pl/VC-CE.pl b/util/pl/VC-CE.pl
index 3267cd4893..547383720a 100644
--- a/util/pl/VC-CE.pl
+++ b/util/pl/VC-CE.pl
@@ -22,7 +22,7 @@ $inc_def="inc32";
if ($debug)
{
- $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DOPENSSL_SYSNAME_WINCE -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
+ $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32";
$lflags.=" /debug";
$mlflags.=' /debug';
}